@adyen/adyen-web 6.31.0 → 6.32.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 (630) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/index.cjs +2 -2
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs/index.d.cts +265 -224
  5. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  6. package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
  7. package/dist/es/components/Ach/Ach.js.map +1 -1
  8. package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -1
  9. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  10. package/dist/es/components/Address/Address.js.map +1 -1
  11. package/dist/es/components/Affirm/Affirm.js.map +1 -1
  12. package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
  13. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  14. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  15. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  16. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  17. package/dist/es/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  18. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  19. package/dist/es/components/AmazonPay/components/SignOutButton.js.map +1 -1
  20. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  21. package/dist/es/components/ApplePay/components/ApplePayButton.js.map +1 -1
  22. package/dist/es/components/ApplePay/utils/payment-request.js +1 -1
  23. package/dist/es/components/Atome/Atome.js.map +1 -1
  24. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  25. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  26. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  27. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  28. package/dist/es/components/BcmcMobile/BcmcMobile.js.map +1 -1
  29. package/dist/es/components/BillDesk/BillDeskOnline.js.map +1 -1
  30. package/dist/es/components/BillDesk/BillDeskWallet.js.map +1 -1
  31. package/dist/es/components/Blik/Blik.js.map +1 -1
  32. package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
  33. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  34. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  35. package/dist/es/components/Card/Bancontact.js.map +1 -1
  36. package/dist/es/components/Card/Card.js +1 -1
  37. package/dist/es/components/Card/Card.js.map +1 -1
  38. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  39. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  40. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  41. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  42. package/dist/es/components/Card/components/CardInput/components/CVC.js.map +1 -1
  43. package/dist/es/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  44. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  45. package/dist/es/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  46. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  47. package/dist/es/components/Card/components/CardInput/components/DataSfSpan.js.map +1 -1
  48. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  49. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  50. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  51. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  52. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  53. package/dist/es/components/Card/components/CardInput/handlers.js +1 -1
  54. package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
  55. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  56. package/dist/es/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  57. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  58. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  59. package/dist/es/components/Card/components/ClickToPayHolder.js.map +1 -1
  60. package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
  61. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  62. package/dist/es/components/Card/components/Fastlane/InfoModal.js.map +1 -1
  63. package/dist/es/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  64. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  65. package/dist/es/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  66. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  67. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  68. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  69. package/dist/es/components/Doku/Doku.js.map +1 -1
  70. package/dist/es/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js.map +1 -1
  71. package/dist/es/components/Donation/Donation.js.map +1 -1
  72. package/dist/es/components/Donation/components/CampaignContent.js.map +1 -1
  73. package/dist/es/components/Donation/components/CampaignInfo.js.map +1 -1
  74. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  75. package/dist/es/components/Donation/components/FixedAmounts.js.map +1 -1
  76. package/dist/es/components/Donation/components/Roundup.js.map +1 -1
  77. package/dist/es/components/Dotpay/index.js.map +1 -1
  78. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  79. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  80. package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  81. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  82. package/dist/es/components/Dropin/components/DropinSuccessState.js.map +1 -1
  83. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  84. package/dist/es/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  85. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
  86. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js.map +1 -1
  87. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  88. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  89. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  90. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  91. package/dist/es/components/DuitNow/DuitNow.js.map +1 -1
  92. package/dist/es/components/EPS/index.js.map +1 -1
  93. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  94. package/dist/es/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
  95. package/dist/es/components/FacilyPay/FacilyPay10x.js.map +1 -1
  96. package/dist/es/components/FacilyPay/FacilyPay12x.js.map +1 -1
  97. package/dist/es/components/FacilyPay/FacilyPay3x.js.map +1 -1
  98. package/dist/es/components/FacilyPay/FacilyPay4x.js.map +1 -1
  99. package/dist/es/components/FacilyPay/FacilyPay6x.js.map +1 -1
  100. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  101. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  102. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  103. package/dist/es/components/Giftcard/components/GiftcardFields.js.map +1 -1
  104. package/dist/es/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  105. package/dist/es/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  106. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  107. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
  108. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  109. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  110. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  111. package/dist/es/components/GooglePay/components/GooglePayButton.js.map +1 -1
  112. package/dist/es/components/GooglePay/requests.js +1 -1
  113. package/dist/es/components/GooglePay/requests.js.map +1 -1
  114. package/dist/es/components/GooglePay/utils.js +1 -1
  115. package/dist/es/components/GooglePay/utils.js.map +1 -1
  116. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  117. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  118. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  119. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  120. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  121. package/dist/es/components/MealVoucherFR/MealVoucherFR.js.map +1 -1
  122. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  123. package/dist/es/components/MealVoucherFR/components/MealVoucherFields.js.map +1 -1
  124. package/dist/es/components/MolPayEBanking/MolPayEBankingMY.js.map +1 -1
  125. package/dist/es/components/MolPayEBanking/MolPayEBankingTH.js.map +1 -1
  126. package/dist/es/components/MolPayEBanking/MolPayEBankingVN.js.map +1 -1
  127. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  128. package/dist/es/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  129. package/dist/es/components/OnlineBankingCZ/index.js.map +1 -1
  130. package/dist/es/components/OnlineBankingFI/OnlineBankingFI.js.map +1 -1
  131. package/dist/es/components/OnlineBankingIN/index.js.map +1 -1
  132. package/dist/es/components/OnlineBankingPL/OnlineBankingPL.js.map +1 -1
  133. package/dist/es/components/OnlineBankingSK/index.js.map +1 -1
  134. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  135. package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  136. package/dist/es/components/PayByBank/PayByBank.js.map +1 -1
  137. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  138. package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -1
  139. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  140. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  141. package/dist/es/components/PayMe/PayMe.js.map +1 -1
  142. package/dist/es/components/PayNow/PayNow.js.map +1 -1
  143. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  144. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  145. package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
  146. package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -1
  147. package/dist/es/components/PayPalFastlane/components/FaslaneCardBrandIcon.js.map +1 -1
  148. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  149. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  150. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -1
  151. package/dist/es/components/PayTo/components/IdentifierSelector.js.map +1 -1
  152. package/dist/es/components/PayTo/components/MandateSummary.js.map +1 -1
  153. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -1
  154. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  155. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  156. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  157. package/dist/es/components/PayU/PayuCashcard.js.map +1 -1
  158. package/dist/es/components/PayU/PayuNetBanking.js.map +1 -1
  159. package/dist/es/components/Pix/Pix.js.map +1 -1
  160. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -1
  161. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  162. package/dist/es/components/PromptPay/PromptPay.js.map +1 -1
  163. package/dist/es/components/RatePay/RatePay.js.map +1 -1
  164. package/dist/es/components/RatePay/RatePayDirectDebit.js.map +1 -1
  165. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  166. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  167. package/dist/es/components/Riverty/Riverty.js.map +1 -1
  168. package/dist/es/components/Sepa/Sepa.js.map +1 -1
  169. package/dist/es/components/Swish/Swish.js.map +1 -1
  170. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  171. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  172. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  173. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  174. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  175. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  176. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  177. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  178. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  179. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  180. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  181. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  182. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  183. package/dist/es/components/Twint/Twint.js.map +1 -1
  184. package/dist/es/components/UPI/UPI.js.map +1 -1
  185. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  186. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  187. package/dist/es/components/UPI/components/UPIMandate/UPIMandate.js.map +1 -1
  188. package/dist/es/components/Vipps/Vipps.js.map +1 -1
  189. package/dist/es/components/WalletIN/index.js.map +1 -1
  190. package/dist/es/components/WeChat/WeChat.js.map +1 -1
  191. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  192. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  193. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  194. package/dist/es/components/internal/Address/Address.js.map +1 -1
  195. package/dist/es/components/internal/Address/components/CountryField.js.map +1 -1
  196. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  197. package/dist/es/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
  198. package/dist/es/components/internal/Address/components/StateField.js.map +1 -1
  199. package/dist/es/components/internal/Alert/Alert.js.map +1 -1
  200. package/dist/es/components/internal/Await/Await.js.map +1 -1
  201. package/dist/es/components/internal/Await/components/AwaitFinalState.js.map +1 -1
  202. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  203. package/dist/es/components/internal/Brand/Brand.js.map +1 -1
  204. package/dist/es/components/internal/Button/CopyButton.js.map +1 -1
  205. package/dist/es/components/internal/Button/CopyIconButton.js.map +1 -1
  206. package/dist/es/components/internal/ClickToPay/ClickToPayComponent.js.map +1 -1
  207. package/dist/es/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  208. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  209. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js.map +1 -1
  210. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  211. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  212. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  213. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  214. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  215. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  216. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  217. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  218. package/dist/es/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  219. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  220. package/dist/es/components/internal/Countdown/index.js.map +1 -1
  221. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  222. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  223. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  224. package/dist/es/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
  225. package/dist/es/components/internal/FormFields/InputEmail.js.map +1 -1
  226. package/dist/es/components/internal/FormFields/InputText.js.map +1 -1
  227. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  228. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -1
  229. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  230. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  231. package/dist/es/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  232. package/dist/es/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  233. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  234. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  235. package/dist/es/components/internal/Icon/Icon.js.map +1 -1
  236. package/dist/es/components/internal/Img/Img.js.map +1 -1
  237. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  238. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  239. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  240. package/dist/es/components/internal/Link/Link.js.map +1 -1
  241. package/dist/es/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  242. package/dist/es/components/internal/Modal/Modal.js.map +1 -1
  243. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  244. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  245. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  246. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  247. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  248. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -1
  249. package/dist/es/components/internal/QRLoader/components/QRCountdown.js.map +1 -1
  250. package/dist/es/components/internal/QRLoader/components/QRFinalState.js.map +1 -1
  251. package/dist/es/components/internal/QRLoader/components/QRImage.js.map +1 -1
  252. package/dist/es/components/internal/QRLoader/components/QRIntructions.js.map +1 -1
  253. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js.map +1 -1
  254. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  255. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  256. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  257. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  258. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  259. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  260. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  261. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  262. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  263. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  264. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  265. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  266. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  267. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  268. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  269. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/createIframe.js +1 -1
  270. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/createIframe.js.map +1 -1
  271. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
  272. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  273. package/dist/es/components/internal/SecuredFields/utils.js +1 -1
  274. package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
  275. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  276. package/dist/es/components/internal/SegmentedControl/SegmentedControlRegion.js.map +1 -1
  277. package/dist/es/components/internal/Spinner/Spinner.js.map +1 -1
  278. package/dist/es/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  279. package/dist/es/components/internal/Timeline/Timeline.js.map +1 -1
  280. package/dist/es/components/internal/Timeline/TimelineWrapper.js.map +1 -1
  281. package/dist/es/components/internal/Toggle/Toggle.js.map +1 -1
  282. package/dist/es/components/internal/Tooltip/SingletonTooltipProvider.js.map +1 -1
  283. package/dist/es/components/internal/Tooltip/Tooltip.js.map +1 -1
  284. package/dist/es/components/internal/Tooltip/TooltipController.js.map +1 -1
  285. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  286. package/dist/es/core/Analytics/Analytics.js +1 -1
  287. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  288. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  289. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  290. package/dist/es/core/Context/AmountProvider.js.map +1 -1
  291. package/dist/es/core/Context/CoreProvider.js.map +1 -1
  292. package/dist/es/core/Environment/Environment.js +1 -1
  293. package/dist/es/core/Environment/Environment.js.map +1 -1
  294. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  295. package/dist/es/core/Errors/SRMessages.js.map +1 -1
  296. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  297. package/dist/es/core/Errors/SRPanelProvider.js.map +1 -1
  298. package/dist/es/core/Errors/utils.js +1 -1
  299. package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
  300. package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
  301. package/dist/es/core/RiskModule/RiskModule.js.map +1 -1
  302. package/dist/es/core/RiskModule/components/DeviceFingerprint/DeviceFingerprint.js.map +1 -1
  303. package/dist/es/core/config.js +1 -1
  304. package/dist/es/core/core.js +1 -1
  305. package/dist/es/core/core.js.map +1 -1
  306. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  307. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  308. package/dist/es/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  309. package/dist/es/index.d.ts +265 -224
  310. package/dist/es/index.js +1 -1
  311. package/dist/es/utils/getOrigin.js +1 -1
  312. package/dist/es/utils/setFocus.js +1 -1
  313. package/dist/es/utils/setFocus.js.map +1 -1
  314. package/dist/es/utils/windowScrollTo.js +2 -0
  315. package/dist/es/utils/windowScrollTo.js.map +1 -0
  316. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  317. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  318. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  319. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -1
  320. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  321. package/dist/es-legacy/components/Address/Address.js.map +1 -1
  322. package/dist/es-legacy/components/Affirm/Affirm.js.map +1 -1
  323. package/dist/es-legacy/components/AfterPay/AfterPay.js.map +1 -1
  324. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  325. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  326. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  327. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  328. package/dist/es-legacy/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  329. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  330. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js.map +1 -1
  331. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  332. package/dist/es-legacy/components/ApplePay/components/ApplePayButton.js.map +1 -1
  333. package/dist/es-legacy/components/ApplePay/utils/payment-request.js +1 -1
  334. package/dist/es-legacy/components/Atome/Atome.js.map +1 -1
  335. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  336. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  337. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  338. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  339. package/dist/es-legacy/components/BcmcMobile/BcmcMobile.js.map +1 -1
  340. package/dist/es-legacy/components/BillDesk/BillDeskOnline.js.map +1 -1
  341. package/dist/es-legacy/components/BillDesk/BillDeskWallet.js.map +1 -1
  342. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  343. package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
  344. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  345. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  346. package/dist/es-legacy/components/Card/Bancontact.js.map +1 -1
  347. package/dist/es-legacy/components/Card/Card.js +1 -1
  348. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  349. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  350. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  351. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  352. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  353. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js.map +1 -1
  354. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  355. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  356. package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  357. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  358. package/dist/es-legacy/components/Card/components/CardInput/components/DataSfSpan.js.map +1 -1
  359. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  360. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  361. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  362. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  363. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  364. package/dist/es-legacy/components/Card/components/CardInput/handlers.js +1 -1
  365. package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
  366. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  367. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  368. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  369. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  370. package/dist/es-legacy/components/Card/components/ClickToPayHolder.js.map +1 -1
  371. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  372. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  373. package/dist/es-legacy/components/Card/components/Fastlane/InfoModal.js.map +1 -1
  374. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  375. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  376. package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  377. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  378. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  379. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  380. package/dist/es-legacy/components/Doku/Doku.js.map +1 -1
  381. package/dist/es-legacy/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js.map +1 -1
  382. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  383. package/dist/es-legacy/components/Donation/components/CampaignContent.js.map +1 -1
  384. package/dist/es-legacy/components/Donation/components/CampaignInfo.js.map +1 -1
  385. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  386. package/dist/es-legacy/components/Donation/components/FixedAmounts.js.map +1 -1
  387. package/dist/es-legacy/components/Donation/components/Roundup.js.map +1 -1
  388. package/dist/es-legacy/components/Dotpay/index.js.map +1 -1
  389. package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
  390. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  391. package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  392. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  393. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js.map +1 -1
  394. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  395. package/dist/es-legacy/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  396. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
  397. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js.map +1 -1
  398. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  399. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  400. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  401. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  402. package/dist/es-legacy/components/DuitNow/DuitNow.js.map +1 -1
  403. package/dist/es-legacy/components/EPS/index.js.map +1 -1
  404. package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
  405. package/dist/es-legacy/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
  406. package/dist/es-legacy/components/FacilyPay/FacilyPay10x.js.map +1 -1
  407. package/dist/es-legacy/components/FacilyPay/FacilyPay12x.js.map +1 -1
  408. package/dist/es-legacy/components/FacilyPay/FacilyPay3x.js.map +1 -1
  409. package/dist/es-legacy/components/FacilyPay/FacilyPay4x.js.map +1 -1
  410. package/dist/es-legacy/components/FacilyPay/FacilyPay6x.js.map +1 -1
  411. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  412. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  413. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  414. package/dist/es-legacy/components/Giftcard/components/GiftcardFields.js.map +1 -1
  415. package/dist/es-legacy/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  416. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  417. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  418. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
  419. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  420. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  421. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  422. package/dist/es-legacy/components/GooglePay/components/GooglePayButton.js.map +1 -1
  423. package/dist/es-legacy/components/GooglePay/requests.js +1 -1
  424. package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
  425. package/dist/es-legacy/components/GooglePay/utils.js +1 -1
  426. package/dist/es-legacy/components/GooglePay/utils.js.map +1 -1
  427. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  428. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  429. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  430. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  431. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  432. package/dist/es-legacy/components/MealVoucherFR/MealVoucherFR.js.map +1 -1
  433. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  434. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherFields.js.map +1 -1
  435. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingMY.js.map +1 -1
  436. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingTH.js.map +1 -1
  437. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingVN.js.map +1 -1
  438. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  439. package/dist/es-legacy/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  440. package/dist/es-legacy/components/OnlineBankingCZ/index.js.map +1 -1
  441. package/dist/es-legacy/components/OnlineBankingFI/OnlineBankingFI.js.map +1 -1
  442. package/dist/es-legacy/components/OnlineBankingIN/index.js.map +1 -1
  443. package/dist/es-legacy/components/OnlineBankingPL/OnlineBankingPL.js.map +1 -1
  444. package/dist/es-legacy/components/OnlineBankingSK/index.js.map +1 -1
  445. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  446. package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  447. package/dist/es-legacy/components/PayByBank/PayByBank.js.map +1 -1
  448. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  449. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -1
  450. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  451. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  452. package/dist/es-legacy/components/PayMe/PayMe.js.map +1 -1
  453. package/dist/es-legacy/components/PayNow/PayNow.js.map +1 -1
  454. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  455. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  456. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
  457. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -1
  458. package/dist/es-legacy/components/PayPalFastlane/components/FaslaneCardBrandIcon.js.map +1 -1
  459. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  460. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  461. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -1
  462. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js.map +1 -1
  463. package/dist/es-legacy/components/PayTo/components/MandateSummary.js.map +1 -1
  464. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -1
  465. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  466. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  467. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  468. package/dist/es-legacy/components/PayU/PayuCashcard.js.map +1 -1
  469. package/dist/es-legacy/components/PayU/PayuNetBanking.js.map +1 -1
  470. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  471. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -1
  472. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  473. package/dist/es-legacy/components/PromptPay/PromptPay.js.map +1 -1
  474. package/dist/es-legacy/components/RatePay/RatePay.js.map +1 -1
  475. package/dist/es-legacy/components/RatePay/RatePayDirectDebit.js.map +1 -1
  476. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  477. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  478. package/dist/es-legacy/components/Riverty/Riverty.js.map +1 -1
  479. package/dist/es-legacy/components/Sepa/Sepa.js.map +1 -1
  480. package/dist/es-legacy/components/Swish/Swish.js.map +1 -1
  481. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  482. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  483. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  484. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  485. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  486. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  487. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  488. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  489. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  490. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  491. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  492. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  493. package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
  494. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  495. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  496. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  497. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  498. package/dist/es-legacy/components/UPI/components/UPIMandate/UPIMandate.js.map +1 -1
  499. package/dist/es-legacy/components/Vipps/Vipps.js.map +1 -1
  500. package/dist/es-legacy/components/WalletIN/index.js.map +1 -1
  501. package/dist/es-legacy/components/WeChat/WeChat.js.map +1 -1
  502. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  503. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  504. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  505. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  506. package/dist/es-legacy/components/internal/Address/components/CountryField.js.map +1 -1
  507. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  508. package/dist/es-legacy/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
  509. package/dist/es-legacy/components/internal/Address/components/StateField.js.map +1 -1
  510. package/dist/es-legacy/components/internal/Alert/Alert.js.map +1 -1
  511. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  512. package/dist/es-legacy/components/internal/Await/components/AwaitFinalState.js.map +1 -1
  513. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  514. package/dist/es-legacy/components/internal/Brand/Brand.js.map +1 -1
  515. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
  516. package/dist/es-legacy/components/internal/Button/CopyIconButton.js.map +1 -1
  517. package/dist/es-legacy/components/internal/ClickToPay/ClickToPayComponent.js.map +1 -1
  518. package/dist/es-legacy/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  519. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  520. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js.map +1 -1
  521. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  522. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  523. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  524. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  525. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  526. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  527. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  528. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  529. package/dist/es-legacy/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  530. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  531. package/dist/es-legacy/components/internal/Countdown/index.js.map +1 -1
  532. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  533. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  534. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  535. package/dist/es-legacy/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
  536. package/dist/es-legacy/components/internal/FormFields/InputEmail.js.map +1 -1
  537. package/dist/es-legacy/components/internal/FormFields/InputText.js.map +1 -1
  538. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  539. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -1
  540. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  541. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  542. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  543. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  544. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  545. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  546. package/dist/es-legacy/components/internal/Icon/Icon.js.map +1 -1
  547. package/dist/es-legacy/components/internal/Img/Img.js.map +1 -1
  548. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  549. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  550. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  551. package/dist/es-legacy/components/internal/Link/Link.js.map +1 -1
  552. package/dist/es-legacy/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  553. package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
  554. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  555. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  556. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  557. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  558. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  559. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -1
  560. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js.map +1 -1
  561. package/dist/es-legacy/components/internal/QRLoader/components/QRFinalState.js.map +1 -1
  562. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js.map +1 -1
  563. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js.map +1 -1
  564. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js.map +1 -1
  565. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  566. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  567. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  568. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  569. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  570. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  571. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  572. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  573. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  574. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  575. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  576. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  577. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  578. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  579. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  580. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/createIframe.js +1 -1
  581. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/createIframe.js.map +1 -1
  582. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
  583. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  584. package/dist/es-legacy/components/internal/SecuredFields/utils.js +1 -1
  585. package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
  586. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  587. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControlRegion.js.map +1 -1
  588. package/dist/es-legacy/components/internal/Spinner/Spinner.js.map +1 -1
  589. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  590. package/dist/es-legacy/components/internal/Timeline/Timeline.js.map +1 -1
  591. package/dist/es-legacy/components/internal/Timeline/TimelineWrapper.js.map +1 -1
  592. package/dist/es-legacy/components/internal/Toggle/Toggle.js.map +1 -1
  593. package/dist/es-legacy/components/internal/Tooltip/SingletonTooltipProvider.js.map +1 -1
  594. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
  595. package/dist/es-legacy/components/internal/Tooltip/TooltipController.js.map +1 -1
  596. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  597. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  598. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  599. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  600. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  601. package/dist/es-legacy/core/Context/AmountProvider.js.map +1 -1
  602. package/dist/es-legacy/core/Context/CoreProvider.js.map +1 -1
  603. package/dist/es-legacy/core/Environment/Environment.js +1 -1
  604. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  605. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js.map +1 -1
  606. package/dist/es-legacy/core/Errors/SRMessages.js.map +1 -1
  607. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  608. package/dist/es-legacy/core/Errors/SRPanelProvider.js.map +1 -1
  609. package/dist/es-legacy/core/Errors/utils.js +1 -1
  610. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
  611. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
  612. package/dist/es-legacy/core/RiskModule/RiskModule.js.map +1 -1
  613. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/DeviceFingerprint.js.map +1 -1
  614. package/dist/es-legacy/core/config.js +1 -1
  615. package/dist/es-legacy/core/core.js +1 -1
  616. package/dist/es-legacy/core/core.js.map +1 -1
  617. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  618. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  619. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  620. package/dist/es-legacy/index.js +1 -1
  621. package/dist/es-legacy/utils/getOrigin.js +1 -1
  622. package/dist/es-legacy/utils/setFocus.js +1 -1
  623. package/dist/es-legacy/utils/setFocus.js.map +1 -1
  624. package/dist/es-legacy/utils/windowScrollTo.js +2 -0
  625. package/dist/es-legacy/utils/windowScrollTo.js.map +1 -0
  626. package/package.json +18 -19
  627. package/dist/es/utils/getProp.js +0 -2
  628. package/dist/es/utils/getProp.js.map +0 -1
  629. package/dist/es-legacy/utils/getProp.js +0 -2
  630. package/dist/es-legacy/utils/getProp.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardConfigSuccessData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { reject } from '../../utils/commonUtils';\nimport { shouldIncludeInstallmentsInPaymentData } from './components/CardInput/utils';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport ClickToPayWrapper from './components/ClickToPayWrapper';\nimport { ComponentFocusObject } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport type { UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport type { ICore } from '../../core/types';\nimport { ALL_SECURED_FIELDS } from '../internal/SecuredFields/lib/constants';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport CardInputDefaultProps from './components/CardInput/defaultProps';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static type = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay && this.props.fundingSource !== 'prepaid') {\n this.clickToPayService = createClickToPayService(\n this.props.configuration,\n this.props.clickToPayConfiguration,\n this.props.environment,\n this.analytics\n );\n\n void this.clickToPayService?.initialize();\n }\n }\n\n protected static defaultProps = {\n showFormInstruction: true,\n _disableClickToPay: false,\n doBinLookup: true,\n // Merge most of CardInput's defaultProps\n ...reject(['type', 'setComponentRef']).from(CardInputDefaultProps)\n };\n\n public setStatus(status: UIElementStatus, props?): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n }\n if (this.clickToPayRef?.setStatus) {\n this.clickToPayRef.setStatus(status, props);\n }\n return this;\n }\n\n private setClickToPayRef = ref => {\n this.clickToPayRef = ref;\n };\n\n formatProps(props: CardConfiguration): CardConfiguration {\n // The value from a session should be used, before falling back to the merchant configuration\n const enableStoreDetails = props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails;\n\n const isZeroAuth = props.amount?.value === 0;\n const showStoreDetailsCheckbox = isZeroAuth ? false : enableStoreDetails;\n\n const storedCardID = props.storedPaymentMethodId || props.id; // check if we've been passed a (checkout) processed storedCard or one that merchant has pulled from the PMs response\n const isEcommerceStoredCard = storedCardID && props?.supportedShopperInteractions?.includes('Ecommerce'); // If we have a storedCard does it support Ecommerce (it might not if the merchant has pulled it from the PMs response)\n\n // If we have a storedPM but it doesn't support Ecommerce - we can't make a storedCard component from it\n if (storedCardID && !isEcommerceStoredCard) {\n // TODO - Decide if an error is too severe? Would a console.warning suffice?\n throw new AdyenCheckoutError(\n IMPLEMENTATION_ERROR,\n 'You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions'\n );\n }\n\n return {\n ...props,\n // Mismatch between hasHolderName & holderNameRequired which can mean card can never be valid\n holderNameRequired: !props.hasHolderName ? false : props.holderNameRequired,\n // False for *stored* BCMC cards & if merchant explicitly wants to hide the CVC field\n hasCVC: !((props.brand && props.brand === 'bcmc') || props.hideCVC),\n // billingAddressRequired only available for non-stored cards\n billingAddressRequired: props.storedPaymentMethodId ? false : props.billingAddressRequired,\n // edge case where merchant has defined both an onAddressLookup callback AND set billingAddressMode: 'partial' - which leads to some strange behaviour in the address UI\n billingAddressMode: props.onAddressLookup ? CardInputDefaultProps.billingAddressMode : props.billingAddressMode,\n /** props.brand will be specified in the case of a StoredCard or a Bancontact component, for a regular Card we default it to 'card' */\n brand: props.brand ?? TxVariants.card,\n countryCode: props.countryCode ? props.countryCode.toLowerCase() : null,\n // Required for transition period (until configuration object becomes the norm)\n // - if merchant has defined value directly in props, use this instead\n configuration: {\n ...props.configuration,\n socialSecurityNumberMode: props.configuration?.socialSecurityNumberMode ?? 'auto'\n },\n brandsConfiguration: props.brandsConfiguration || props.configuration?.brandsConfiguration || {},\n icon: props.icon || props.configuration?.icon,\n // installmentOptions of a session should be used before falling back to the merchant configuration\n installmentOptions: props.session?.configuration?.installmentOptions || props.installmentOptions,\n enableStoreDetails,\n showStoreDetailsCheckbox,\n /**\n * Click to Pay configuration\n * - If email is set explicitly in the configuration, then it can override the one used in the session creation\n */\n clickToPayConfiguration: {\n ...props.clickToPayConfiguration,\n disableOtpAutoFocus: props.clickToPayConfiguration?.disableOtpAutoFocus || false,\n shopperEmail: props.clickToPayConfiguration?.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.clickToPayConfiguration?.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.clickToPayConfiguration?.locale || props.i18n?.locale?.replace('-', '_')\n },\n ...(storedCardID && { storedPaymentMethodId: storedCardID })\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): CardElementData {\n /**\n * this.state.selectedBrandValue will be set when:\n * - /binLookup detects a single brand,\n * - when /binLookup detects a dual-branded card and the shopper makes a brand selection\n * - or, in the case of a storedCard\n */\n const cardBrand = this.state.selectedBrandValue;\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId,\n holderName: this.props.holderName ?? ''\n }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource }),\n ...(this.state.fastlaneData && { fastlaneData: btoa(JSON.stringify(this.state.fastlaneData)) })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(shouldIncludeInstallmentsInPaymentData(this.state.installments) && { installments: this.state.installments }),\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected override beforeRender(configSetByMerchant?: CardConfiguration): void {\n // We don't send 'rendered' events when rendering actions\n if (configSetByMerchant?.originalAction) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.oneClick && {\n isStoredPaymentMethod: true,\n brand: configSetByMerchant.brand\n })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(fieldName) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n public onBrand = event => {\n this.props.onBrand?.(event);\n };\n\n processBinLookupResponse(binLookupResponse: BinLookupResponse, isReset = false) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse, isReset);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n private handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CardBinLookupData) {\n // Handler for regular card comp doesn't need this 'raw' data or to know about 'resets'\n if (!obj.isReset) {\n const nuObj = reject('supportedBrandsRaw').from(obj);\n this.props.onBinLookup?.(nuObj);\n }\n }\n\n private onConfigSuccess = (obj: CardConfigSuccessData) => {\n const event = new AnalyticsInfoEvent({ component: this.type, type: InfoEventType.configured });\n this.submitAnalytics(event);\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private onFocus = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.focus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CardFocusData);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private onBlur = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CardFocusData);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n public onBinValue = triggerBinLookUp(this);\n\n get storePaymentMethodPayload() {\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n if (isStoredCard) {\n return {};\n }\n\n /**\n * For regular card, zero auth payments, we store the payment method, *if* the configuration says we should:\n * - For sessions, this means if the session has been created with storePaymentMethodMode: 'askForConsent'\n * - For the advanced flow, this means if the merchant has still set enableStoreDetails: true\n *\n * What we are doing is.. if for a normal payment we would show the \"Save for my next payment\" checkbox,\n * for a zero-auth payment we effectively click the checkbox on behalf of the shopper.\n */\n const isZeroAuth = this.props.amount?.value === 0;\n if (isZeroAuth) {\n return this.props.enableStoreDetails ? { storePaymentMethod: true } : {};\n }\n\n // For regular card, non-zero auth payments, we store the payment method based on the checkbox value.\n const includeStorePaymentMethod = this.props.showStoreDetailsCheckbox && typeof this.state.storePaymentMethod !== 'undefined';\n return includeStorePaymentMethod ? { storePaymentMethod: Boolean(this.state.storePaymentMethod) } : {};\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.icon ?? this.resources.getImage()(this.props.brand);\n }\n\n get brands(): { icon: any; name: string }[] {\n const { brands, brandsConfiguration } = this.props;\n if (brands) {\n return brands.map(brand => {\n const brandIcon = brandsConfiguration[brand]?.icon ?? this.props.modules.resources.getImage()(brand);\n return { icon: brandIcon, name: brand };\n });\n }\n\n return [];\n }\n\n get displayName(): string {\n if (this.props.storedPaymentMethodId) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name || CardElement.type;\n }\n\n get accessibleName(): string {\n // Use display name, unless it's a stored payment method, there inform user\n return (\n (this.props.name || CardElement.type) +\n (this.props.storedPaymentMethodId\n ? ' ' + this.props.i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', this.props.lastFour)\n : '')\n );\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n protected override payButton = (props: PayButtonProps): h.JSX.Element => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return <PayButton {...props} label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''} onClick={this.submit} />;\n };\n\n private renderCardInput(isCardPrimaryInput = true): h.JSX.Element {\n return (\n <CardInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n {...this.state}\n onSubmitAnalytics={this.submitAnalytics}\n onChange={this.setState}\n onSubmit={this.submit}\n handleKeyPress={this.handleKeyPress}\n payButton={this.payButton}\n onBrand={this.onBrand}\n onBinValue={this.onBinValue}\n brand={this.props.brand}\n brandsIcons={this.brands}\n isPayButtonPrimaryVariant={isCardPrimaryInput}\n resources={this.resources}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <ClickToPayWrapper\n configuration={this.props.clickToPayConfiguration}\n clickToPayService={this.clickToPayService}\n isStandaloneComponent={false}\n setClickToPayRef={this.setClickToPayRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n {isCardPrimaryInput => this.renderCardInput(isCardPrimaryInput)}\n </ClickToPayWrapper>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","setStatus","status","props","_this_componentRef","_this_clickToPayRef","this","componentRef","clickToPayRef","formatProps","_this_core_options_session","_this_core_options","_this_core_options_session1","_this_core_options1","enableStoreDetails","session","configuration","_ref","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","_object_spread","_object_spread_props","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","billingAddressMode","onAddressLookup","CardInputDefaultProps","TxVariants","card","countryCode","toLowerCase","socialSecurityNumberMode","_ref1","brandsConfiguration","icon","installmentOptions","clickToPayConfiguration","disableOtpAutoFocus","shopperEmail","core","options","telephoneNumber","locale","i18n","replace","formatData","_this_props_holderName","cardBrand","state","selectedBrandValue","paymentMethod","type","data","holderName","fundingSource","fastlaneData","btoa","JSON","stringify","billingAddress","socialSecurityNumber","storePaymentMethodPayload","shouldIncludeInstallmentsInPaymentData","installments","browserInfo","origin","window","location","beforeRender","configSetByMerchant","originalAction","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","oneClick","isStoredPaymentMethod","analytics","sendAnalytics","updateStyles","stylesObj","setFocusOn","fieldName","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","onBinLookup","obj","_this_props_onBinLookup","_this_props","nuObj","reject","from","call","_this_props_storedPaymentMethodId","_this_props_amount","length","storePaymentMethod","Boolean","isValid","_this_props_icon","resources","getImage","brands","map","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","renderCardInput","isCardPrimaryInput","h","CardInput","setComponentRef","onSubmitAnalytics","submitAnalytics","onChange","setState","onSubmit","submit","handleKeyPress","payButton","onBrand","onBinValue","brandsIcons","isPayButtonPrimaryVariant","onFocus","onBlur","onConfigSuccess","componentToRender","ClickToPayWrapper","clickToPayService","isStandaloneComponent","setClickToPayRef","onSetStatus","setElementStatus","handleClickToPaySubmit","onError","handleError","constructor","checkout","_this_clickToPayService","super","_define_property","ref","_this_props_onBrand","payload","valid","errors","_this_props_onConfigSuccess","configured","focus","target","fieldTypeToSnakeCase","fieldType","_this_props_onFocus","_this_props_onFocus1","_this_props1","ALL_SECURED_FIELDS","unfocus","_this_props_onBlur","_this_props_onBlur1","triggerBinLookUp","isZeroAuth","isStoredCard","PayButton","label","onClick","_disableClickToPay","createClickToPayService","environment","initialize","scheme","defaultProps","showFormInstruction","doBinLookup"],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardConfigSuccessData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase, isSecuredField } from '../internal/SecuredFields/utils';\nimport { reject } from '../../utils/commonUtils';\nimport { shouldIncludeInstallmentsInPaymentData } from './components/CardInput/utils';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport ClickToPayWrapper from './components/ClickToPayWrapper';\nimport { ComponentFocusObject } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport type { UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport type { ICore } from '../../core/types';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport CardInputDefaultProps from './components/CardInput/defaultProps';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static readonly type: TxVariants = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay && this.props.fundingSource !== 'prepaid') {\n this.clickToPayService = createClickToPayService(\n this.props.configuration,\n this.props.clickToPayConfiguration,\n this.props.environment,\n this.analytics\n );\n\n void this.clickToPayService?.initialize();\n }\n }\n\n protected static readonly defaultProps = {\n showFormInstruction: true,\n _disableClickToPay: false,\n doBinLookup: true,\n // Merge most of CardInput's defaultProps\n ...reject(['type', 'setComponentRef']).from(CardInputDefaultProps)\n };\n\n public setStatus(status: UIElementStatus, props?): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n }\n if (this.clickToPayRef?.setStatus) {\n this.clickToPayRef.setStatus(status, props);\n }\n return this;\n }\n\n private setClickToPayRef = ref => {\n this.clickToPayRef = ref;\n };\n\n // This is the most self contained way of handling funding source matching\n // Alternatives would be to override getPaymentMethodConfigFromResponse and change it's signature\n protected override getPaymentMethodConfigFromResponse(componentProps: CardConfiguration) {\n if (componentProps?.fundingSource) {\n return this.core.paymentMethodsResponse?.findByFundingSource(componentProps.type, componentProps.fundingSource);\n }\n\n return super.getPaymentMethodConfigFromResponse(componentProps);\n }\n\n formatProps(props: CardConfiguration): CardConfiguration {\n // The value from a session should be used, before falling back to the merchant configuration\n const enableStoreDetails = props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails;\n\n const isZeroAuth = props.amount?.value === 0;\n const showStoreDetailsCheckbox = isZeroAuth ? false : enableStoreDetails;\n\n const storedCardID = props.storedPaymentMethodId || props.id; // check if we've been passed a (checkout) processed storedCard or one that merchant has pulled from the PMs response\n const isEcommerceStoredCard = storedCardID && props?.supportedShopperInteractions?.includes('Ecommerce'); // If we have a storedCard does it support Ecommerce (it might not if the merchant has pulled it from the PMs response)\n\n // If we have a storedPM but it doesn't support Ecommerce - we can't make a storedCard component from it\n if (storedCardID && !isEcommerceStoredCard) {\n // TODO - Decide if an error is too severe? Would a console.warning suffice?\n throw new AdyenCheckoutError(\n IMPLEMENTATION_ERROR,\n 'You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions'\n );\n }\n\n return {\n ...props,\n // Mismatch between hasHolderName & holderNameRequired which can mean card can never be valid\n holderNameRequired: !props.hasHolderName ? false : props.holderNameRequired,\n // False for *stored* BCMC cards & if merchant explicitly wants to hide the CVC field\n hasCVC: !((props.brand && props.brand === 'bcmc') || props.hideCVC),\n // billingAddressRequired only available for non-stored cards\n billingAddressRequired: props.storedPaymentMethodId ? false : props.billingAddressRequired,\n // edge case where merchant has defined both an onAddressLookup callback AND set billingAddressMode: 'partial' - which leads to some strange behaviour in the address UI\n billingAddressMode: props.onAddressLookup ? CardInputDefaultProps.billingAddressMode : props.billingAddressMode,\n /** props.brand will be specified in the case of a StoredCard or a Bancontact component, for a regular Card we default it to 'card' */\n brand: props.brand ?? TxVariants.card,\n countryCode: props.countryCode ? props.countryCode.toLowerCase() : null,\n // Required for transition period (until configuration object becomes the norm)\n // - if merchant has defined value directly in props, use this instead\n configuration: {\n ...props.configuration,\n socialSecurityNumberMode: props.configuration?.socialSecurityNumberMode ?? 'auto'\n },\n brandsConfiguration: props.brandsConfiguration || props.configuration?.brandsConfiguration || {},\n icon: props.icon || props.configuration?.icon,\n // installmentOptions of a session should be used before falling back to the merchant configuration\n installmentOptions: props.session?.configuration?.installmentOptions || props.installmentOptions,\n enableStoreDetails,\n showStoreDetailsCheckbox,\n /**\n * Click to Pay configuration\n * - If email is set explicitly in the configuration, then it can override the one used in the session creation\n */\n clickToPayConfiguration: {\n ...props.clickToPayConfiguration,\n disableOtpAutoFocus: props.clickToPayConfiguration?.disableOtpAutoFocus || false,\n shopperEmail: props.clickToPayConfiguration?.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.clickToPayConfiguration?.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.clickToPayConfiguration?.locale || props.i18n?.locale?.replace('-', '_')\n },\n ...(storedCardID && { storedPaymentMethodId: storedCardID })\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): CardElementData {\n /**\n * this.state.selectedBrandValue will be set when:\n * - /binLookup detects a single brand,\n * - when /binLookup detects a dual-branded card and the shopper makes a brand selection\n * - or, in the case of a storedCard\n */\n const cardBrand = this.state.selectedBrandValue;\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId,\n holderName: this.props.holderName ?? ''\n }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource }),\n ...(this.state.fastlaneData && { fastlaneData: btoa(JSON.stringify(this.state.fastlaneData)) })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(shouldIncludeInstallmentsInPaymentData(this.state.installments) && { installments: this.state.installments }),\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected override beforeRender(configSetByMerchant?: CardConfiguration): void {\n // We don't send 'rendered' events when rendering actions\n if (configSetByMerchant?.originalAction) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.oneClick && {\n isStoredPaymentMethod: true,\n brand: configSetByMerchant.brand\n })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(fieldName) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n public onBrand = event => {\n this.props.onBrand?.(event);\n };\n\n processBinLookupResponse(binLookupResponse: BinLookupResponse, isReset = false) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse, isReset);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n private handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CardBinLookupData) {\n // Handler for regular card comp doesn't need this 'raw' data or to know about 'resets'\n if (!obj.isReset) {\n const nuObj = reject('supportedBrandsRaw').from(obj);\n this.props.onBinLookup?.(nuObj);\n }\n }\n\n private onConfigSuccess = (obj: CardConfigSuccessData) => {\n const event = new AnalyticsInfoEvent({ component: this.type, type: InfoEventType.configured });\n this.submitAnalytics(event);\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private onFocus = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.focus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CardFocusData);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private onBlur = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CardFocusData);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n public onBinValue = triggerBinLookUp(this);\n\n get storePaymentMethodPayload() {\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n if (isStoredCard) {\n return {};\n }\n\n /**\n * For regular card, zero auth payments, we store the payment method, *if* the configuration says we should:\n * - For sessions, this means if the session has been created with storePaymentMethodMode: 'askForConsent'\n * - For the advanced flow, this means if the merchant has still set enableStoreDetails: true\n *\n * What we are doing is.. if for a normal payment we would show the \"Save for my next payment\" checkbox,\n * for a zero-auth payment we effectively click the checkbox on behalf of the shopper.\n */\n const isZeroAuth = this.props.amount?.value === 0;\n if (isZeroAuth) {\n return this.props.enableStoreDetails ? { storePaymentMethod: true } : {};\n }\n\n // For regular card, non-zero auth payments, we store the payment method based on the checkbox value.\n const includeStorePaymentMethod = this.props.showStoreDetailsCheckbox && typeof this.state.storePaymentMethod !== 'undefined';\n return includeStorePaymentMethod ? { storePaymentMethod: Boolean(this.state.storePaymentMethod) } : {};\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.icon ?? this.resources.getImage()(this.props.brand);\n }\n\n get brands(): { icon: any; name: string }[] {\n const { brands, brandsConfiguration } = this.props;\n if (brands) {\n return brands.map(brand => {\n const brandIcon = brandsConfiguration[brand]?.icon ?? this.props.modules.resources.getImage()(brand);\n return { icon: brandIcon, name: brand };\n });\n }\n\n return [];\n }\n\n get displayName(): string {\n if (this.props.storedPaymentMethodId) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name || CardElement.type;\n }\n\n get accessibleName(): string {\n // Use display name, unless it's a stored payment method, there inform user\n return (\n (this.props.name || CardElement.type) +\n (this.props.storedPaymentMethodId\n ? ' ' + this.props.i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', this.props.lastFour)\n : '')\n );\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n protected override payButton = (props: PayButtonProps): h.JSX.Element => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return <PayButton {...props} label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''} onClick={this.submit} />;\n };\n\n private renderCardInput(isCardPrimaryInput = true): h.JSX.Element {\n return (\n <CardInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n {...this.state}\n onSubmitAnalytics={this.submitAnalytics}\n onChange={this.setState}\n onSubmit={this.submit}\n handleKeyPress={this.handleKeyPress}\n payButton={this.payButton}\n onBrand={this.onBrand}\n onBinValue={this.onBinValue}\n brand={this.props.brand}\n brandsIcons={this.brands}\n isPayButtonPrimaryVariant={isCardPrimaryInput}\n resources={this.resources}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <ClickToPayWrapper\n configuration={this.props.clickToPayConfiguration}\n clickToPayService={this.clickToPayService}\n isStandaloneComponent={false}\n setClickToPayRef={this.setClickToPayRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n {isCardPrimaryInput => this.renderCardInput(isCardPrimaryInput)}\n </ClickToPayWrapper>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","setStatus","status","props","_this_componentRef","_this_clickToPayRef","this","componentRef","clickToPayRef","getPaymentMethodConfigFromResponse","componentProps","_this_core_paymentMethodsResponse","fundingSource","core","paymentMethodsResponse","findByFundingSource","type","super","formatProps","_this_core_options_session","_this_core_options","_this_core_options_session1","_this_core_options1","enableStoreDetails","session","configuration","_ref","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","_object_spread","_object_spread_props","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","billingAddressMode","onAddressLookup","CardInputDefaultProps","TxVariants","card","countryCode","toLowerCase","socialSecurityNumberMode","_ref1","brandsConfiguration","icon","installmentOptions","clickToPayConfiguration","disableOtpAutoFocus","shopperEmail","options","telephoneNumber","locale","i18n","replace","formatData","_this_props_holderName","cardBrand","state","selectedBrandValue","paymentMethod","data","holderName","fastlaneData","btoa","JSON","stringify","billingAddress","socialSecurityNumber","storePaymentMethodPayload","shouldIncludeInstallmentsInPaymentData","installments","browserInfo","origin","window","location","beforeRender","configSetByMerchant","originalAction","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","oneClick","isStoredPaymentMethod","analytics","sendAnalytics","updateStyles","stylesObj","setFocusOn","fieldName","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","onBinLookup","obj","_this_props_onBinLookup","_this_props","nuObj","reject","from","call","_this_props_storedPaymentMethodId","_this_props_amount","length","storePaymentMethod","Boolean","isValid","_this_props_icon","resources","getImage","brands","map","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","renderCardInput","isCardPrimaryInput","h","CardInput","setComponentRef","onSubmitAnalytics","submitAnalytics","onChange","setState","onSubmit","submit","handleKeyPress","payButton","onBrand","onBinValue","brandsIcons","isPayButtonPrimaryVariant","onFocus","onBlur","onConfigSuccess","componentToRender","ClickToPayWrapper","clickToPayService","isStandaloneComponent","setClickToPayRef","onSetStatus","setElementStatus","handleClickToPaySubmit","onError","handleError","constructor","checkout","_this_clickToPayService","_define_property","ref","_this_props_onBrand","payload","valid","errors","_this_props_onConfigSuccess","configured","focus","target","fieldTypeToSnakeCase","fieldType","_this_props_onFocus","_this_props_onFocus1","_this_props1","isSecuredField","unfocus","_this_props_onBlur","_this_props_onBlur1","triggerBinLookUp","isZeroAuth","isStoredCard","PayButton","label","onClick","_disableClickToPay","createClickToPayService","environment","initialize","scheme","defaultProps","showFormInstruction","doBinLookup"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as r}from"../../../../external/preact/dist/preact.js";import{useRef as t,useMemo as n,useState as o,useCallback as s,useEffect as a}from"../../../../external/preact/hooks/dist/hooks.js";import i from"../../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import l from"./defaultProps.js";import{AddressModeOptions as d}from"./types.js";import{DATE_POLICY_REQUIRED as u,CVC_POLICY_REQUIRED as c,ENCRYPTED_CARD_NUMBER as m}from"../../../internal/SecuredFields/lib/constants.js";import{cardInputValidationRules as p,cardInputFormatters as y,getRuleByNameAndMode as f}from"./validate.js";import b from"../../../internal/SecuredFields/binLookup/extensions.js";import h from"../../../../utils/useForm/useForm.js";import{handlePartialAddressMode as g,extractPropsForSFP as S,getLayout as N,extractPropsForCardFields as A}from"./utils.js";import v from"../../../internal/Address/Specifications.js";import{StoredCardFieldsWrapper as j}from"./components/StoredCardFieldsWrapper.js";import{CardFieldsWrapper as F}from"./components/CardFieldsWrapper.js";import{getAutoJumpHandler as O,getFocusHandler as C,getAddressHandler as w}from"./handlers.js";import P from"../../../../_virtual/index.js";import{getPartialAddressValidationRules as k}from"../../../internal/Address/validate.js";import B from"../../../../core/Context/useImage.js";import{getArrayDifferences as E}from"../../../../utils/arrayUtils.js";import R from"../../../internal/FormInstruction/FormInstruction.js";import{PREFIX as x}from"../../../internal/Icon/constants.js";import I from"./useSRPanelForCardInputErrors.js";import V from"../Fastlane/FastlaneSignup.js";import{fieldTypeToSnakeCase as D}from"../../../internal/SecuredFields/utils.js";import{getErrorMessageFromCode as q}from"../../../../core/Errors/utils.js";import{SF_ErrorCodes as M}from"../../../../core/Errors/constants.js";import{usePrevious as _}from"../../../../utils/hookUtils.js";import{AnalyticsInfoEvent as L,InfoEventType as T,UiTarget as K}from"../../../../core/Analytics/events/AnalyticsInfoEvent.js";function U(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function H(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){U(e,r,t[r])})}return e}function z(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}const W=l=>{var U,W,$,G;const J=t(null),Q=t(!1),X=B(),Y=t(null),Z=e=>{Y.current=e},ee=t({});Object.keys(ee.current).length||l.setComponentRef(ee.current);const re=t(0),te=t(!1),ne=n(()=>new v(l.specifications),[l.specifications]);ee.current.sfp=J;const[oe,se]=o("ready"),[ae,ie]=o({}),[le,de]=o(H({},l.holderNameRequired&&{holderName:!1})),[ue,ce]=o(H({},l.hasHolderName&&{holderName:null!==(U=l.data.holderName)&&void 0!==U?U:""})),[me,pe]=o(""),[ye,fe]=o(!1),[be,he]=o(u),[ge,Se]=o(c),[Ne,Ae]=o(null),[ve,je]=o([]),[Fe,Oe]=o(l.storedPaymentMethodId?l.brand:""),Ce=l.billingAddressMode!==d.none&&l.billingAddressRequired,we=g(l.billingAddressMode),Pe=t(we&&(null===(G=l.data)||void 0===G||null===($=G.billingAddress)||void 0===$?void 0:$.country)),[ke,Be]=o(!1),[Ee,Re]=o(Ce?l.data.billingAddress:null),[xe,Ie]=o(!1),[Ve,De]=o(""),[qe,Me]=o({value:null}),[_e,Le]=o(null),[Te,Ke]=o("card"),[Ue,He]=o(!1),{handleChangeFor:ze,triggerValidation:We,data:$e,valid:Ge,errors:Je,setSchema:Qe,setData:Xe,setValid:Ye,setErrors:Ze}=h({schema:[],defaultData:l.data,formatters:y,rules:p}),er=!(!Object.keys(l.installmentOptions).length||l.fundingSource&&"credit"!==l.fundingSource),rr=null===(W=l.showInstallmentAmounts)||void 0===W||W,tr="kr"===(null!=Ne?Ne:l.countryCode),nr=l.configuration.koreanAuthenticationRequired&&tr,or=xe&&"auto"===l.configuration.socialSecurityNumberMode||"show"===l.configuration.socialSecurityNumberMode,sr=(e,r)=>{l.onFocus({fieldType:e,event:r})},ar=(e,r)=>{l.onBlur({fieldType:e,event:r})},ir=s(e=>{Ke(e.brand),l.onBrand(e)},[]),lr=C(pe,sr,ar),dr=()=>N(H({props:l,showKCP:nr,showBrazilianSSN:or},l.billingAddressRequired&&{countrySpecificSchemas:ne.getAddressSchemaForCountry(null==Ee?void 0:Ee.country),billingAddressRequiredFields:l.billingAddressRequiredFields})),ur=s(e=>{const r="webInternalElement"!==e.fieldType?e.fieldType:e.name;Le(r)},[]),cr=w(Xe,Ye,Ze),mr=O(te,J,dr()),pr=s(e=>{yr(e)},[Ue,He]),yr=e=>{e.status&&("loading"==e.status?He(!1):He(!0))},fr=n(()=>b(l,{sfp:J},{dualBrandSelectElements:ve,setDualBrandSelectElements:je,setSelectedBrandValue:Oe,issuingCountryCode:Ne,setIssuingCountryCode:Ae},re),[ve,Ne]);ee.current.showValidation=()=>{Q.current=!0,null==gr||gr(),J.current.showValidation(),We(["holderName","socialSecurityNumber","taxNumber"]),(null==Y?void 0:Y.current)&&Y.current.showValidation()},ee.current.processBinLookupResponse=(e,r)=>{fr.processBinLookup(e,r)},ee.current.setStatus=se,a(()=>(ee.current.setFocusOn=J.current.setFocusOn,ee.current.updateStyles=J.current.updateStyles,ee.current.handleUnsupportedCard=J.current.handleUnsupportedCard,()=>{J.current.destroy()}),[]),a(()=>{const e=[...l.hasHolderName?["holderName"]:[],...or?["socialSecurityNumber"]:[],...nr?["taxNumber"]:[],...Ce?["billingAddress"]:[]];Qe(e)},[l.hasHolderName,or,nr]),a(()=>{var e;ce(z(H({},ue),{holderName:null!==(e=$e.holderName)&&void 0!==e?e:"",taxNumber:$e.taxNumber})),De($e.socialSecurityNumber),Ce&&Re(H({},$e.billingAddress)),de(z(H({},le),{holderName:!l.holderNameRequired||Ge.holderName,socialSecurityNumber:!!Ge.socialSecurityNumber&&Ge.socialSecurityNumber,taxNumber:!!Ge.taxNumber&&Ge.taxNumber,billingAddress:!!Ge.billingAddress&&Ge.billingAddress}));const r=!!Je.billingAddress&&Object.entries(Je.billingAddress).reduce((e,[,r])=>e||null!=r,!1);ie(z(H({},ae),{holderName:l.holderNameRequired&&Je.holderName?Je.holderName:null,socialSecurityNumber:or&&Je.socialSecurityNumber?Je.socialSecurityNumber:null,taxNumber:nr&&Je.taxNumber?Je.taxNumber:null,billingAddress:Ce&&r?Je.billingAddress:null}))},[$e,Ge,Je]);const{sortedErrorList:br,previousSortedErrors:hr,clearSRPanel:gr}=I({errors:ae,props:l,isValidating:Q,retrieveLayout:dr,specifications:ne,billingAddress:Ee,sfp:J});a(()=>{if(br){const e=E(br,hr,"field");null==e||e.forEach(e=>{const r=new L({component:l.type,type:T.validationError,target:D(e.field),validationErrorCode:e.errorCode,validationErrorMessage:q(e.errorCode,M)});l.onSubmitAnalytics(r)})}},[br]),a(()=>{const e=le.holderName,r=ye,t=!Ce||le.billingAddress,n=!nr||!!le.taxNumber&&!!le.encryptedPassword,o=!or||!!le.socialSecurityNumber,s=r&&e&&t&&n&&o,a=J.current.mapErrorsToValidationRuleResult(),i=H({},ae,a);l.onChange({data:ue,valid:le,errors:i,isValid:s,billingAddress:Ee,selectedBrandValue:Fe,storePaymentMethod:ke,socialSecurityNumber:Ve,installments:qe})},[ue,le,ae,Fe,ke,qe]),a(()=>{if(ve.length>0&&ve){const e=ve.map(e=>e.id),r=e[0],t=e.toString(),n=new L({component:l.type,type:T.displayed,target:K.dualBrandButton,brand:r,configData:{dualBrands:t}});l.onSubmitAnalytics(n)}},[ve]);const Sr=_(Fe);a(()=>{if((null==Sr?void 0:Sr.length)&&(null==Fe?void 0:Fe.length)){const e=new L({component:l.type,type:T.selected,target:K.dualBrandButton,brand:Fe});l.onSubmitAnalytics(e)}},[Fe]);const Nr=l.storedPaymentMethodId?j:F;return e(r,null,e(i,z(H({ref:J},S(l)),{styles:H({},l.styles),koreanAuthenticationRequired:l.configuration.koreanAuthenticationRequired,hasKoreanFields:!(!l.configuration.koreanAuthenticationRequired||"kr"!==l.countryCode),onSubmitAnalytics:l.onSubmitAnalytics,onChange:(e,r)=>{if(e.autoCompleteName){if(!l.hasHolderName)return;const r=f("holderName","blur")(e.autoCompleteName)?e.autoCompleteName:null;return void(r&&(Xe("holderName",r),Ye("holderName",!0),Ze("holderName",null)))}l.autoFocus&&re.current>0&&"handleOnFieldValid"===(null==r?void 0:r.event)&&(null==r?void 0:r.fieldType)===m&&e.valid.encryptedCardNumber&&mr(),ce(H({},ue,e.data)),ie(H({},ae,e.errors)),de(H({},le,e.valid)),fe(e.isSfpValid),Se(e.cvcPolicy),Ie(e.showSocialSecurityNumber),he(e.expiryDatePolicy)},onBrand:ir,onFocus:lr,onStateUpdate:pr,type:l.brand,componentType:l.type,disableIOSArrowKeys:l.disableIOSArrowKeys?ur:null,render:({setRootNode:r,setFocusOn:t},n)=>{var o;return e("div",{ref:r,className:P({"adyen-checkout__card-input":!0,"adyen-checkout-card-input__wrapper":!0,[`adyen-checkout__card-input--${null!==(o=l.fundingSource)&&void 0!==o?o:"credit"}`]:!0,"adyen-checkout__card-input--loading":"loading"===oe}),role:"form"},Ue&&e(R,null),e(Nr,z(H({},A(l)),{data:ue,valid:le,errors:ae,handleChangeFor:ze,focusedElement:me,setFocusOn:t,sfpState:n,cvcPolicy:ge,hasInstallments:er,showAmountsInInstallments:rr,handleInstallments:Me,brandsIcons:l.brandsIcons,formData:$e,formErrors:Je,formValid:Ge,expiryDatePolicy:be,dualBrandSelectElements:ve,extensions:fr,selectedBrandValue:Fe,showKCP:nr,showBrazilianSSN:or,socialSecurityNumber:Ve,handleOnStoreDetails:Be,setAddressRef:Z,billingAddress:Ee,billingAddressValidationRules:we&&k(Pe.current),partialAddressSchema:we,handleAddress:cr,onAddressLookup:l.onAddressLookup,onAddressSelected:l.onAddressSelected,addressSearchDebounceMs:l.addressSearchDebounceMs,iOSFocusedField:_e,onFieldFocusAnalytics:sr,onFieldBlurAnalytics:ar})))}})),l.fastlaneConfiguration&&e(V,z(H({},l.fastlaneConfiguration),{currentDetectedBrand:Te,onChange:l.onChange,onSubmitAnalytics:l.onSubmitAnalytics,type:l.type})),Ue&&l.showPayButton&&l.payButton({status:oe,variant:l.isPayButtonPrimaryVariant?"primary":"secondary",icon:X({imageFolder:"components/"})(`${x}lock`)}))};W.defaultProps=l;export{W as default};
1
+ import{createElement as e,Fragment as r}from"../../../../external/preact/dist/preact.js";import{useRef as t,useMemo as n,useState as o,useCallback as s,useEffect as a}from"../../../../external/preact/hooks/dist/hooks.js";import i from"../../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import l from"./defaultProps.js";import{AddressModeOptions as d}from"./types.js";import{DATE_POLICY_REQUIRED as u,CVC_POLICY_REQUIRED as c,ENCRYPTED_CARD_NUMBER as m}from"../../../internal/SecuredFields/lib/constants.js";import{cardInputValidationRules as p,cardInputFormatters as y,getRuleByNameAndMode as f}from"./validate.js";import b from"../../../internal/SecuredFields/binLookup/extensions.js";import h from"../../../../utils/useForm/useForm.js";import{handlePartialAddressMode as S,shouldShowInstallmentsComponent as g,extractPropsForSFP as N,getLayout as A,extractPropsForCardFields as v}from"./utils.js";import j from"../../../internal/Address/Specifications.js";import{StoredCardFieldsWrapper as C}from"./components/StoredCardFieldsWrapper.js";import{CardFieldsWrapper as F}from"./components/CardFieldsWrapper.js";import{getAutoJumpHandler as O,getFocusHandler as P,getAddressHandler as w}from"./handlers.js";import E from"../../../../_virtual/index.js";import{getPartialAddressValidationRules as k}from"../../../internal/Address/validate.js";import x from"../../../../core/Context/useImage.js";import{getArrayDifferences as B}from"../../../../utils/arrayUtils.js";import R from"../../../internal/FormInstruction/FormInstruction.js";import{PREFIX as I}from"../../../internal/Icon/constants.js";import D from"./useSRPanelForCardInputErrors.js";import V from"../Fastlane/FastlaneSignup.js";import{fieldTypeToSnakeCase as q}from"../../../internal/SecuredFields/utils.js";import{getErrorMessageFromCode as M}from"../../../../core/Errors/utils.js";import{SF_ErrorCodes as _}from"../../../../core/Errors/constants.js";import{usePrevious as L}from"../../../../utils/hookUtils.js";import{AnalyticsInfoEvent as T,InfoEventType as K,UiTarget as U}from"../../../../core/Analytics/events/AnalyticsInfoEvent.js";import{useAmount as H}from"../../../../core/Context/AmountProvider.js";function z(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function W(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){z(e,r,t[r])})}return e}function $(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}const G=l=>{var z,G,J,Q;const X=t(null),Y=t(!1),Z=x(),ee=t(null),re=e=>{ee.current=e},te=t({});Object.keys(te.current).length||l.setComponentRef(te.current);const ne=t(0),oe=t(!1),se=n(()=>new j(l.specifications),[l.specifications]),{amount:ae}=H();te.current.sfp=X;const[ie,le]=o("ready"),[de,ue]=o({}),[ce,me]=o(W({},l.holderNameRequired&&{holderName:!1})),[pe,ye]=o(W({},l.hasHolderName&&{holderName:null!==(z=l.data.holderName)&&void 0!==z?z:""})),[fe,be]=o(""),[he,Se]=o(!1),[ge,Ne]=o(u),[Ae,ve]=o(c),[je,Ce]=o(null),[Fe,Oe]=o([]),[Pe,we]=o(l.storedPaymentMethodId?l.brand:""),Ee=l.billingAddressMode!==d.none&&l.billingAddressRequired,ke=S(l.billingAddressMode),xe=t(ke&&(null===(Q=l.data)||void 0===Q||null===(J=Q.billingAddress)||void 0===J?void 0:J.country)),[Be,Re]=o(!1),[Ie,De]=o(Ee?l.data.billingAddress:null),[Ve,qe]=o(!1),[Me,_e]=o(""),[Le,Te]=o({value:null}),[Ke,Ue]=o(null),[He,ze]=o("card"),[We,$e]=o(!1),{handleChangeFor:Ge,triggerValidation:Je,data:Qe,valid:Xe,errors:Ye,setSchema:Ze,setData:er,setValid:rr,setErrors:tr}=h({schema:[],defaultData:l.data,formatters:y,rules:p}),nr=g({installmentOptions:l.installmentOptions,fundingSource:l.fundingSource,amount:ae}),or=null===(G=l.showInstallmentAmounts)||void 0===G||G,sr="kr"===(null!=je?je:l.countryCode),ar=l.configuration.koreanAuthenticationRequired&&sr,ir=Ve&&"auto"===l.configuration.socialSecurityNumberMode||"show"===l.configuration.socialSecurityNumberMode,lr=(e,r)=>{l.onFocus({fieldType:e,event:r})},dr=(e,r)=>{l.onBlur({fieldType:e,event:r})},ur=s(e=>{ze(e.brand),l.onBrand(e)},[]),cr=P(be,lr,dr),mr=()=>A(W({props:l,showKCP:ar,showBrazilianSSN:ir},l.billingAddressRequired&&{countrySpecificSchemas:se.getAddressSchemaForCountry(null==Ie?void 0:Ie.country),billingAddressRequiredFields:l.billingAddressRequiredFields})),pr=s(e=>{const r="webInternalElement"!==e.fieldType?e.fieldType:e.name;Ue(r)},[]),yr=w(er,rr,tr),fr=O(oe,X,mr()),br=s(e=>{hr(e)},[We,$e]),hr=e=>{e.status&&("loading"==e.status?$e(!1):$e(!0))},Sr=n(()=>b(l,{sfp:X},{dualBrandSelectElements:Fe,setDualBrandSelectElements:Oe,setSelectedBrandValue:we,issuingCountryCode:je,setIssuingCountryCode:Ce},ne),[Fe,je]);te.current.showValidation=()=>{Y.current=!0,null==Ar||Ar(),X.current.showValidation(),Je(["holderName","socialSecurityNumber","taxNumber"]),(null==ee?void 0:ee.current)&&ee.current.showValidation()},te.current.processBinLookupResponse=(e,r)=>{Sr.processBinLookup(e,r)},te.current.setStatus=le,a(()=>(te.current.setFocusOn=X.current.setFocusOn,te.current.updateStyles=X.current.updateStyles,te.current.handleUnsupportedCard=X.current.handleUnsupportedCard,()=>{X.current.destroy()}),[]),a(()=>{const e=[...l.hasHolderName?["holderName"]:[],...ir?["socialSecurityNumber"]:[],...ar?["taxNumber"]:[],...Ee?["billingAddress"]:[]];Ze(e)},[l.hasHolderName,ir,ar]),a(()=>{var e;ye($(W({},pe),{holderName:null!==(e=Qe.holderName)&&void 0!==e?e:"",taxNumber:Qe.taxNumber})),_e(Qe.socialSecurityNumber),Ee&&De(W({},Qe.billingAddress)),me($(W({},ce),{holderName:!l.holderNameRequired||Xe.holderName,socialSecurityNumber:!!Xe.socialSecurityNumber&&Xe.socialSecurityNumber,taxNumber:!!Xe.taxNumber&&Xe.taxNumber,billingAddress:!!Xe.billingAddress&&Xe.billingAddress}));const r=!!Ye.billingAddress&&Object.entries(Ye.billingAddress).reduce((e,[,r])=>e||null!=r,!1);ue($(W({},de),{holderName:l.holderNameRequired&&Ye.holderName?Ye.holderName:null,socialSecurityNumber:ir&&Ye.socialSecurityNumber?Ye.socialSecurityNumber:null,taxNumber:ar&&Ye.taxNumber?Ye.taxNumber:null,billingAddress:Ee&&r?Ye.billingAddress:null}))},[Qe,Xe,Ye]);const{sortedErrorList:gr,previousSortedErrors:Nr,clearSRPanel:Ar}=D({errors:de,props:l,isValidating:Y,retrieveLayout:mr,specifications:se,billingAddress:Ie,sfp:X});a(()=>{if(gr){const e=B(gr,Nr,"field");null==e||e.forEach(e=>{const r=new T({component:l.type,type:K.validationError,target:q(e.field),validationErrorCode:e.errorCode,validationErrorMessage:M(e.errorCode,_)});l.onSubmitAnalytics(r)})}},[gr]),a(()=>{const e=ce.holderName,r=he,t=!Ee||ce.billingAddress,n=!ar||!!ce.taxNumber&&!!ce.encryptedPassword,o=!ir||!!ce.socialSecurityNumber,s=r&&e&&t&&n&&o,a=X.current.mapErrorsToValidationRuleResult(),i=W({},de,a);l.onChange({data:pe,valid:ce,errors:i,isValid:s,billingAddress:Ie,selectedBrandValue:Pe,storePaymentMethod:Be,socialSecurityNumber:Me,installments:Le})},[pe,ce,de,Pe,Be,Le]),a(()=>{if(Fe.length>0&&Fe){const e=Fe.map(e=>e.id),r=e[0],t=e.toString(),n=new T({component:l.type,type:K.displayed,target:U.dualBrandButton,brand:r,configData:{dualBrands:t}});l.onSubmitAnalytics(n)}},[Fe]);const vr=L(Pe);a(()=>{if((null==vr?void 0:vr.length)&&(null==Pe?void 0:Pe.length)){const e=new T({component:l.type,type:K.selected,target:U.dualBrandButton,brand:Pe});l.onSubmitAnalytics(e)}},[Pe]);const jr=l.storedPaymentMethodId?C:F;return e(r,null,e(i,$(W({ref:X},N(l)),{styles:W({},l.styles),koreanAuthenticationRequired:l.configuration.koreanAuthenticationRequired,hasKoreanFields:!(!l.configuration.koreanAuthenticationRequired||"kr"!==l.countryCode),onSubmitAnalytics:l.onSubmitAnalytics,onChange:(e,r)=>{if(e.autoCompleteName){if(!l.hasHolderName)return;const r=f("holderName","blur")(e.autoCompleteName)?e.autoCompleteName:null;return void(r&&(er("holderName",r),rr("holderName",!0),tr("holderName",null)))}var t;l.autoFocus&&ne.current>0&&"handleOnFieldValid"===(null==r?void 0:r.event)&&(null==r?void 0:r.fieldType)===m&&e.valid.encryptedCardNumber&&fr(),ye(W({},pe,e.data)),ue(W({},de,(t=e.errors)?{encryptedCardNumber:!!t.encryptedCardNumber,encryptedExpiryDate:!!t.encryptedExpiryDate,encryptedSecurityCode:!!t.encryptedSecurityCode,encryptedPassword:!!t.encryptedPassword}:{})),me(W({},ce,e.valid)),Se(e.isSfpValid),ve(e.cvcPolicy),qe(e.showSocialSecurityNumber),Ne(e.expiryDatePolicy)},onBrand:ur,onFocus:cr,onStateUpdate:br,type:l.brand,componentType:l.type,disableIOSArrowKeys:l.disableIOSArrowKeys?pr:null,render:({setRootNode:r,setFocusOn:t},n)=>{var o;return e("div",{ref:r,className:E({"adyen-checkout__card-input":!0,"adyen-checkout-card-input__wrapper":!0,[`adyen-checkout__card-input--${null!==(o=l.fundingSource)&&void 0!==o?o:"credit"}`]:!0,"adyen-checkout__card-input--loading":"loading"===ie}),role:"form"},We&&e(R,null),e(jr,$(W({},v(l)),{data:pe,valid:ce,errors:de,handleChangeFor:Ge,focusedElement:fe,setFocusOn:t,sfpState:n,cvcPolicy:Ae,hasInstallments:nr,showAmountsInInstallments:or,handleInstallments:Te,brandsIcons:l.brandsIcons,formData:Qe,formErrors:Ye,formValid:Xe,expiryDatePolicy:ge,dualBrandSelectElements:Fe,extensions:Sr,selectedBrandValue:Pe,showKCP:ar,showBrazilianSSN:ir,socialSecurityNumber:Me,handleOnStoreDetails:Re,setAddressRef:re,billingAddress:Ie,billingAddressValidationRules:ke&&k(xe.current),partialAddressSchema:ke,handleAddress:yr,onAddressLookup:l.onAddressLookup,onAddressSelected:l.onAddressSelected,addressSearchDebounceMs:l.addressSearchDebounceMs,iOSFocusedField:Ke,onFieldFocusAnalytics:lr,onFieldBlurAnalytics:dr})))}})),l.fastlaneConfiguration&&e(V,$(W({},l.fastlaneConfiguration),{currentDetectedBrand:He,onChange:l.onChange,onSubmitAnalytics:l.onSubmitAnalytics,type:l.type})),We&&l.showPayButton&&l.payButton({status:ie,variant:l.isPayButtonPrimaryVariant?"primary":"secondary",icon:Z({imageFolder:"components/"})(`${I}lock`)}))};G.defaultProps=l;export{G as default};
2
2
  //# sourceMappingURL=CardInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardInput.js","sources":["../../../../../../src/components/Card/components/CardInput/CardInput.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport { useState, useEffect, useRef, useMemo, useCallback } from 'preact/hooks';\nimport SecuredFieldsProvider from '../../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport { OnChangeEventDetails, SFPState } from '../../../internal/SecuredFields/SFP/types';\nimport defaultProps from './defaultProps';\nimport './CardInput.scss';\nimport { AddressModeOptions, CardInputDataState, CardInputErrorState, CardInputProps, CardInputRef, CardInputValidState } from './types';\nimport { CVC_POLICY_REQUIRED, DATE_POLICY_REQUIRED, ENCRYPTED_CARD_NUMBER } from '../../../internal/SecuredFields/lib/constants';\nimport { BinLookupResponse } from '../../types';\nimport { cardInputFormatters, cardInputValidationRules, getRuleByNameAndMode } from './validate';\nimport CIExtensions from '../../../internal/SecuredFields/binLookup/extensions';\nimport useForm from '../../../../utils/useForm';\nimport { SortedErrorObject } from '../../../../core/Errors/types';\nimport { handlePartialAddressMode, extractPropsForCardFields, extractPropsForSFP, getLayout } from './utils';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { StoredCardFieldsWrapper } from './components/StoredCardFieldsWrapper';\nimport { CardFieldsWrapper } from './components/CardFieldsWrapper';\nimport { getAddressHandler, getAutoJumpHandler, getFocusHandler } from './handlers';\nimport { InstallmentsState } from './components/Installments/Installments';\nimport { TouchStartEventObj } from './components/types';\nimport classNames from 'classnames';\nimport { getPartialAddressValidationRules } from '../../../internal/Address/validate';\nimport useImage from '../../../../core/Context/useImage';\nimport { getArrayDifferences } from '../../../../utils/arrayUtils';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { AddressData } from '../../../../types/global-types';\nimport { CardBrandData, CardFocusData } from '../../../internal/SecuredFields/lib/types';\nimport { PREFIX } from '../../../internal/Icon/constants';\nimport useSRPanelForCardInputErrors from './useSRPanelForCardInputErrors';\nimport FastlaneSignup from '../Fastlane/FastlaneSignup';\nimport { fieldTypeToSnakeCase } from '../../../internal/SecuredFields/utils';\nimport { getErrorMessageFromCode } from '../../../../core/Errors/utils';\nimport { SF_ErrorCodes } from '../../../../core/Errors/constants';\nimport { usePrevious } from '../../../../utils/hookUtils';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../../../core/Analytics/events/AnalyticsInfoEvent';\n\nconst CardInput = (props: CardInputProps) => {\n const sfp = useRef(null);\n const isValidating = useRef(false);\n const getImage = useImage();\n\n const billingAddressRef = useRef(null);\n const setAddressRef = ref => {\n billingAddressRef.current = ref;\n };\n\n const cardInputRef = useRef<CardInputRef>({});\n // Just call once to create the object by which we expose the members expected by the parent Card comp\n if (!Object.keys(cardInputRef.current).length) {\n props.setComponentRef(cardInputRef.current);\n }\n\n const hasPanLengthRef = useRef(0);\n const isAutoJumping = useRef(false);\n\n const specifications = useMemo(() => new Specifications(props.specifications), [props.specifications]);\n\n // Store ref to sfp (useful for 'deep' debugging)\n cardInputRef.current.sfp = sfp;\n\n /**\n * STATE HOOKS\n */\n const [status, setStatus] = useState('ready');\n\n const [errors, setErrors] = useState<CardInputErrorState>({});\n const [valid, setValid] = useState<CardInputValidState>({\n ...(props.holderNameRequired && { holderName: false })\n });\n const [data, setData] = useState<CardInputDataState>({\n ...(props.hasHolderName && { holderName: props.data.holderName ?? '' })\n });\n\n const [focusedElement, setFocusedElement] = useState('');\n const [isSfpValid, setIsSfpValid] = useState(false);\n const [expiryDatePolicy, setExpiryDatePolicy] = useState(DATE_POLICY_REQUIRED);\n const [cvcPolicy, setCvcPolicy] = useState(CVC_POLICY_REQUIRED);\n const [issuingCountryCode, setIssuingCountryCode] = useState<string>(null);\n\n const [dualBrandSelectElements, setDualBrandSelectElements] = useState([]);\n const [selectedBrandValue, setSelectedBrandValue] = useState(props.storedPaymentMethodId ? props.brand : ''); // If this is a storedCard comp initialise state with the storedCard's brand\n\n const showBillingAddress = props.billingAddressMode !== AddressModeOptions.none && props.billingAddressRequired;\n\n const partialAddressSchema = handlePartialAddressMode(props.billingAddressMode);\n // Keeps the value of the country set initially by the merchant, before the Address Component mutates it\n const partialAddressCountry = useRef<string>(partialAddressSchema && props.data?.billingAddress?.country);\n\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n const [billingAddress, setBillingAddress] = useState<AddressData>(showBillingAddress ? props.data.billingAddress : null);\n const [showSocialSecurityNumber, setShowSocialSecurityNumber] = useState(false);\n const [socialSecurityNumber, setSocialSecurityNumber] = useState('');\n const [installments, setInstallments] = useState<InstallmentsState>({ value: null });\n\n // re. Disable arrows for iOS: The name of the element calling for other elements to be disabled\n // - either a securedField type (like 'encryptedCardNumber') when call is coming from SF\n // or else the name of an internal, Adyen-web, element (like 'holderName')\n const [iOSFocusedField, setIOSFocusedField] = useState(null);\n\n /**\n * This stores the brand as detected by the internal regEx.\n * It eventually gets overwritten by the brand as detected by the /binLookup, but will revert back to the regEx detection\n * if the PAN length drops below the /binLookup digit threshold.\n * Default value, 'card', indicates no brand detected\n */\n const [internallyDetectedBrand, setInternallyDetectedBrand] = useState('card');\n\n /**\n * Used tho show and hide the pay button and instructions text\n * Should mimic the same logic as CardInput loading wrapper\n */\n const [showCardUIElements, setShowCardUIElements] = useState(false);\n\n /**\n * LOCAL VARS\n */\n const {\n handleChangeFor,\n triggerValidation,\n data: formData,\n valid: formValid,\n errors: formErrors,\n setSchema,\n setData: setFormData,\n setValid: setFormValid,\n setErrors: setFormErrors\n } = useForm<CardInputDataState>({\n schema: [],\n defaultData: props.data,\n formatters: cardInputFormatters,\n rules: cardInputValidationRules\n });\n\n const hasInstallments = !!Object.keys(props.installmentOptions).length && (!props.fundingSource || props.fundingSource === 'credit');\n const showAmountsInInstallments = props.showInstallmentAmounts ?? true;\n\n const cardCountryCode: string = issuingCountryCode ?? props.countryCode;\n const isKorea = cardCountryCode === 'kr'; // If issuingCountryCode or the merchant defined countryCode is set to 'kr'\n const showKCP = props.configuration.koreanAuthenticationRequired && isKorea;\n\n const showBrazilianSSN: boolean =\n (showSocialSecurityNumber && props.configuration.socialSecurityNumberMode === 'auto') ||\n props.configuration.socialSecurityNumberMode === 'show';\n\n /**\n * HANDLERS\n */\n // Handlers for focus & blur on all fields. Can be renamed to onFieldFocus once the onFocusField is renamed in Field.tsx\n const onFieldFocusAnalytics = (who: string, e: Event | CardFocusData) => {\n props.onFocus({ fieldType: who, event: e });\n };\n const onFieldBlurAnalytics = (who: string, e: Event | CardFocusData) => {\n props.onBlur({ fieldType: who, event: e });\n };\n\n const onBrand = useCallback((obj: CardBrandData) => {\n setInternallyDetectedBrand(obj.brand);\n props.onBrand(obj);\n }, []);\n\n // Make SecuredFields aware of the focus & blur handlers\n const handleFocus = getFocusHandler(setFocusedElement, onFieldFocusAnalytics, onFieldBlurAnalytics);\n\n const retrieveLayout = (): string[] => {\n return getLayout({\n props,\n showKCP,\n showBrazilianSSN,\n ...(props.billingAddressRequired && {\n countrySpecificSchemas: specifications.getAddressSchemaForCountry(billingAddress?.country),\n billingAddressRequiredFields: props.billingAddressRequiredFields\n })\n });\n };\n\n /**\n * re. Disabling arrow keys in iOS:\n * Only by disabling all fields in the Card PM except for the active securedField input can we force the iOS soft keyboard arrow keys to disable\n *\n * NOTE: only called if ua.__IS_IOS = true && this.config.disableIOSArrowKeys = true (as referenced in CSF)\n *\n * @param obj - has fieldType prop saying whether this function is being called in response to an securedFields click ('encryptedCardNumber' etc)\n * - in which case we should disable all non-SF fields\n * or,\n * due to an internal action ('webInternalElement') - in which case we can enable all non-SF fields\n */\n const handleTouchstartIOS = useCallback((obj: TouchStartEventObj) => {\n const elementType = obj.fieldType !== 'webInternalElement' ? obj.fieldType : obj.name;\n setIOSFocusedField(elementType);\n }, []);\n\n const handleAddress = getAddressHandler(setFormData, setFormValid, setFormErrors);\n\n const doPanAutoJump = getAutoJumpHandler(isAutoJumping, sfp, retrieveLayout());\n\n const handleSecuredFieldsChange = (sfState: SFPState, eventDetails?: OnChangeEventDetails): void => {\n /**\n * Handling auto complete value for holderName (but only if the component is using a holderName field)\n */\n if (sfState.autoCompleteName) {\n if (!props.hasHolderName) return;\n const holderNameValidationFn = getRuleByNameAndMode('holderName', 'blur');\n const acHolderName = holderNameValidationFn(sfState.autoCompleteName) ? sfState.autoCompleteName : null;\n if (acHolderName) {\n setFormData('holderName', acHolderName);\n setFormValid('holderName', true); // only if holderName is valid does this fny get called - so we know it's valid and w/o error\n setFormErrors('holderName', null);\n }\n return;\n }\n\n /**\n * Decide if we can shift focus to the expiryDate field.\n *\n * We can if... the config prop, autoFocus, is true AND we have a panLength value from binLookup\n * AND we are responding to a handleOnFieldValid message about the PAN that says it is valid\n */\n if (\n props.autoFocus &&\n hasPanLengthRef.current > 0 &&\n eventDetails?.event === 'handleOnFieldValid' &&\n eventDetails?.fieldType === ENCRYPTED_CARD_NUMBER &&\n sfState.valid.encryptedCardNumber\n ) {\n doPanAutoJump();\n }\n\n /**\n * Process SFP state\n */\n setData({ ...data, ...sfState.data });\n setErrors({ ...errors, ...sfState.errors });\n setValid({ ...valid, ...sfState.valid });\n\n setIsSfpValid(sfState.isSfpValid);\n\n // Values relating to /binLookup response\n setCvcPolicy(sfState.cvcPolicy);\n setShowSocialSecurityNumber(sfState.showSocialSecurityNumber);\n setExpiryDatePolicy(sfState.expiryDatePolicy);\n };\n\n /**\n * Listen to the full SecureFieldsProvider state and handle actions\n * Used right now to mimic the loading status changes, this can only be done this way\n * Trying to do it via onConfiguSuccess or onChange has side effects\n */\n const handleSFPStateUpdate = useCallback(\n sfpState => {\n mimicLoadingStatusChange(sfpState);\n },\n [showCardUIElements, setShowCardUIElements]\n );\n\n /**\n * This function implements the same logic that LoadingProvider uses to show and hide elements\n * We want to mimic this behavior so we can hide and show the pay button or the instructions text\n * Deciding to do it this way since we garante there's no DOM changes to merchants\n * We can break this in the next major version (v7)\n */\n const mimicLoadingStatusChange = sfpState => {\n if (!sfpState.status) return;\n if (sfpState.status == 'loading') {\n setShowCardUIElements(false);\n } else {\n setShowCardUIElements(true);\n }\n };\n\n // Farm the handlers for binLookup related functionality out to another 'extensions' file\n const extensions = useMemo(\n () =>\n CIExtensions(\n props,\n { sfp },\n {\n dualBrandSelectElements,\n setDualBrandSelectElements,\n setSelectedBrandValue,\n issuingCountryCode,\n setIssuingCountryCode\n },\n hasPanLengthRef\n ),\n [dualBrandSelectElements, issuingCountryCode]\n );\n\n /**\n * EXPOSE METHODS expected by Card.tsx\n */\n cardInputRef.current.showValidation = () => {\n // set flag\n isValidating.current = true;\n\n /**\n * Clear errors prior to validating so that the screenreader will read them *all* again, and in the right order\n * - only using aria-atomic on the error panel will read them in the wrong order\n */\n clearSRPanel?.(); // TODO - recheck if this is still true\n\n // Validate SecuredFields\n sfp.current.showValidation();\n\n // Validate holderName & SSN & KCP (taxNumber) but *not* billingAddress\n triggerValidation(['holderName', 'socialSecurityNumber', 'taxNumber']);\n\n // Validate Address\n if (billingAddressRef?.current) billingAddressRef.current.showValidation();\n };\n\n cardInputRef.current.processBinLookupResponse = (binLookupResponse: BinLookupResponse, isReset: boolean) => {\n extensions.processBinLookup(binLookupResponse, isReset);\n };\n\n cardInputRef.current.setStatus = setStatus;\n\n /**\n * EFFECT HOOKS\n */\n useEffect(() => {\n // componentDidMount - expose more methods expected by Card.tsx\n cardInputRef.current.setFocusOn = sfp.current.setFocusOn;\n cardInputRef.current.updateStyles = sfp.current.updateStyles;\n cardInputRef.current.handleUnsupportedCard = sfp.current.handleUnsupportedCard;\n\n // componentWillUnmount\n return () => {\n sfp.current.destroy();\n };\n }, []);\n\n /**\n * Handle form schema updates\n */\n useEffect(() => {\n const newSchema = [\n ...(props.hasHolderName ? ['holderName'] : []),\n ...(showBrazilianSSN ? ['socialSecurityNumber'] : []),\n ...(showKCP ? ['taxNumber'] : []),\n ...(showBillingAddress ? ['billingAddress'] : [])\n ];\n setSchema(newSchema);\n }, [props.hasHolderName, showBrazilianSSN, showKCP]);\n\n /**\n * Handle updates from useForm\n */\n useEffect(() => {\n setData({ ...data, holderName: formData.holderName ?? '', taxNumber: formData.taxNumber });\n\n setSocialSecurityNumber(formData.socialSecurityNumber);\n\n if (showBillingAddress) setBillingAddress({ ...formData.billingAddress });\n\n setValid({\n ...valid,\n holderName: props.holderNameRequired ? formValid.holderName : true,\n // Setting value to false if it's falsy keeps in line with existing, expected behaviour\n // - but there is an argument to allow 'undefined' as a value to indicate the non-presence of the field\n socialSecurityNumber: formValid.socialSecurityNumber ? formValid.socialSecurityNumber : false,\n taxNumber: formValid.taxNumber ? formValid.taxNumber : false,\n billingAddress: formValid.billingAddress ? formValid.billingAddress : false\n });\n\n // Check if billingAddress errors object has any properties that aren't null or undefined\n const addressHasErrors = formErrors.billingAddress\n ? Object.entries(formErrors.billingAddress).reduce((acc, [, error]) => acc || error != null, false)\n : false;\n\n // Errors\n setErrors({\n ...errors,\n holderName: props.holderNameRequired && !!formErrors.holderName ? formErrors.holderName : null,\n socialSecurityNumber: showBrazilianSSN && !!formErrors.socialSecurityNumber ? formErrors.socialSecurityNumber : null,\n taxNumber: showKCP && !!formErrors.taxNumber ? formErrors.taxNumber : null,\n billingAddress: showBillingAddress && addressHasErrors ? formErrors.billingAddress : null\n });\n }, [formData, formValid, formErrors]);\n\n // Use the custom hook to set (or clear) errors in the SRPanel\n const {\n sortedErrorList: currentErrorsSortedByLayout,\n previousSortedErrors,\n clearSRPanel\n } = useSRPanelForCardInputErrors({\n errors,\n props,\n isValidating,\n retrieveLayout,\n specifications,\n billingAddress,\n sfp\n });\n\n // Analytics: ValidationErrors\n useEffect(() => {\n if (currentErrorsSortedByLayout) {\n const newErrors = getArrayDifferences<SortedErrorObject, string>(currentErrorsSortedByLayout, previousSortedErrors, 'field');\n\n newErrors?.forEach(errorItem => {\n const event = new AnalyticsInfoEvent({\n component: props.type,\n type: InfoEventType.validationError,\n target: fieldTypeToSnakeCase(errorItem.field) as UiTarget,\n validationErrorCode: errorItem.errorCode,\n validationErrorMessage: getErrorMessageFromCode(errorItem.errorCode, SF_ErrorCodes)\n });\n props.onSubmitAnalytics(event);\n });\n }\n }, [currentErrorsSortedByLayout]);\n\n /**\n * Main 'componentDidUpdate' handler\n */\n useEffect(() => {\n const holderNameValid: boolean = valid.holderName;\n\n const sfpValid: boolean = isSfpValid;\n const addressValid: boolean = showBillingAddress ? valid.billingAddress : true;\n\n const koreanAuthentication: boolean = showKCP ? !!valid.taxNumber && !!valid.encryptedPassword : true;\n\n const socialSecurityNumberValid: boolean = showBrazilianSSN ? !!valid.socialSecurityNumber : true;\n\n const isValid: boolean = sfpValid && holderNameValid && addressValid && koreanAuthentication && socialSecurityNumberValid;\n\n const sfStateErrorsObj = sfp.current.mapErrorsToValidationRuleResult();\n const mergedErrors = { ...errors, ...sfStateErrorsObj }; // maps sfErrors AND solves race condition problems for sfp from showValidation\n\n props.onChange({\n data,\n valid,\n errors: mergedErrors,\n isValid,\n billingAddress,\n selectedBrandValue,\n storePaymentMethod,\n socialSecurityNumber,\n installments\n });\n }, [data, valid, errors, selectedBrandValue, storePaymentMethod, installments]);\n\n /**\n * \"Update\" handler related to dual brand buttons being initially displayed\n */\n useEffect(() => {\n if (dualBrandSelectElements.length > 0 && dualBrandSelectElements) {\n const dualBrandsArr = dualBrandSelectElements.map(item => item.id);\n const brand = dualBrandsArr[0]; // initially selected brand\n const dualBrands = dualBrandsArr.toString();\n\n const event = new AnalyticsInfoEvent({\n component: props.type,\n type: InfoEventType.displayed,\n target: UiTarget.dualBrandButton,\n brand,\n configData: { dualBrands }\n });\n\n props.onSubmitAnalytics(event);\n }\n }, [dualBrandSelectElements]);\n\n const previousSelectedBrandValue = usePrevious(selectedBrandValue);\n\n /**\n * \"Update\" handler related to a dual brand button being selected\n */\n useEffect(() => {\n if (previousSelectedBrandValue?.length && selectedBrandValue?.length) {\n const event = new AnalyticsInfoEvent({\n component: props.type,\n type: InfoEventType.selected,\n target: UiTarget.dualBrandButton,\n brand: selectedBrandValue\n });\n\n props.onSubmitAnalytics(event);\n }\n }, [selectedBrandValue]);\n\n /**\n * RENDER\n */\n const FieldToRender = props.storedPaymentMethodId ? StoredCardFieldsWrapper : CardFieldsWrapper;\n\n return (\n <Fragment>\n <SecuredFieldsProvider\n ref={sfp}\n {...extractPropsForSFP(props)}\n styles={{ ...props.styles }}\n koreanAuthenticationRequired={props.configuration.koreanAuthenticationRequired}\n hasKoreanFields={!!(props.configuration.koreanAuthenticationRequired && props.countryCode === 'kr')}\n onSubmitAnalytics={props.onSubmitAnalytics}\n onChange={handleSecuredFieldsChange}\n onBrand={onBrand}\n onFocus={handleFocus}\n onStateUpdate={handleSFPStateUpdate}\n type={props.brand}\n componentType={props.type}\n disableIOSArrowKeys={props.disableIOSArrowKeys ? handleTouchstartIOS : null}\n render={({ setRootNode, setFocusOn }, sfpState) => (\n <div\n ref={setRootNode}\n className={classNames({\n 'adyen-checkout__card-input': true,\n 'adyen-checkout-card-input__wrapper': true,\n [`adyen-checkout__card-input--${props.fundingSource ?? 'credit'}`]: true,\n 'adyen-checkout__card-input--loading': status === 'loading'\n })}\n role={'form'}\n >\n {showCardUIElements && <FormInstruction />}\n\n <FieldToRender\n // Extract exact props that we need to pass down\n {...extractPropsForCardFields(props)}\n // Pass on vars created in CardInput:\n // Base (shared w. StoredCard)\n data={data}\n valid={valid}\n errors={errors}\n handleChangeFor={handleChangeFor}\n focusedElement={focusedElement}\n setFocusOn={setFocusOn}\n sfpState={sfpState}\n cvcPolicy={cvcPolicy}\n hasInstallments={hasInstallments}\n showAmountsInInstallments={showAmountsInInstallments}\n handleInstallments={setInstallments}\n // For Card\n brandsIcons={props.brandsIcons}\n formData={formData}\n formErrors={formErrors}\n formValid={formValid}\n expiryDatePolicy={expiryDatePolicy}\n dualBrandSelectElements={dualBrandSelectElements}\n extensions={extensions}\n selectedBrandValue={selectedBrandValue}\n // For KCP\n showKCP={showKCP}\n // For SSN\n showBrazilianSSN={showBrazilianSSN}\n socialSecurityNumber={socialSecurityNumber}\n // For Store details\n handleOnStoreDetails={setStorePaymentMethod}\n // For Address\n setAddressRef={setAddressRef}\n billingAddress={billingAddress}\n billingAddressValidationRules={partialAddressSchema && getPartialAddressValidationRules(partialAddressCountry.current)}\n partialAddressSchema={partialAddressSchema}\n handleAddress={handleAddress}\n onAddressLookup={props.onAddressLookup}\n onAddressSelected={props.onAddressSelected}\n addressSearchDebounceMs={props.addressSearchDebounceMs}\n //\n iOSFocusedField={iOSFocusedField}\n //\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n </div>\n )}\n />\n\n {props.fastlaneConfiguration && (\n <FastlaneSignup\n {...props.fastlaneConfiguration}\n currentDetectedBrand={internallyDetectedBrand}\n onChange={props.onChange}\n onSubmitAnalytics={props.onSubmitAnalytics}\n type={props.type}\n />\n )}\n\n {showCardUIElements &&\n props.showPayButton &&\n props.payButton({\n status,\n variant: props.isPayButtonPrimaryVariant ? 'primary' : 'secondary',\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)\n })}\n </Fragment>\n );\n};\n\nCardInput.defaultProps = defaultProps;\n\nexport default CardInput;\n"],"names":["CardInput","props","sfp","useRef","isValidating","getImage","useImage","billingAddressRef","setAddressRef","ref","current","cardInputRef","Object","keys","length","setComponentRef","hasPanLengthRef","isAutoJumping","specifications","useMemo","Specifications","status","setStatus","useState","errors","setErrors","valid","setValid","_object_spread","holderNameRequired","holderName","data","setData","hasHolderName","focusedElement","setFocusedElement","isSfpValid","setIsSfpValid","expiryDatePolicy","setExpiryDatePolicy","DATE_POLICY_REQUIRED","cvcPolicy","setCvcPolicy","CVC_POLICY_REQUIRED","issuingCountryCode","setIssuingCountryCode","dualBrandSelectElements","setDualBrandSelectElements","selectedBrandValue","setSelectedBrandValue","storedPaymentMethodId","brand","showBillingAddress","billingAddressMode","AddressModeOptions","none","billingAddressRequired","partialAddressSchema","handlePartialAddressMode","partialAddressCountry","billingAddress","country","storePaymentMethod","setStorePaymentMethod","setBillingAddress","showSocialSecurityNumber","setShowSocialSecurityNumber","socialSecurityNumber","setSocialSecurityNumber","installments","setInstallments","value","iOSFocusedField","setIOSFocusedField","internallyDetectedBrand","setInternallyDetectedBrand","showCardUIElements","setShowCardUIElements","handleChangeFor","triggerValidation","formData","formValid","formErrors","setSchema","setFormData","setFormValid","setFormErrors","useForm","schema","defaultData","formatters","cardInputFormatters","rules","cardInputValidationRules","hasInstallments","installmentOptions","fundingSource","showAmountsInInstallments","showInstallmentAmounts","isKorea","countryCode","showKCP","configuration","koreanAuthenticationRequired","showBrazilianSSN","socialSecurityNumberMode","onFieldFocusAnalytics","who","e","onFocus","fieldType","event","onFieldBlurAnalytics","onBlur","onBrand","useCallback","obj","handleFocus","getFocusHandler","retrieveLayout","getLayout","countrySpecificSchemas","getAddressSchemaForCountry","billingAddressRequiredFields","handleTouchstartIOS","elementType","name","handleAddress","getAddressHandler","doPanAutoJump","getAutoJumpHandler","handleSFPStateUpdate","sfpState","mimicLoadingStatusChange","extensions","CIExtensions","showValidation","clearSRPanel","processBinLookupResponse","binLookupResponse","isReset","processBinLookup","useEffect","setFocusOn","updateStyles","handleUnsupportedCard","destroy","newSchema","_object_spread_props","taxNumber","addressHasErrors","entries","reduce","acc","error","sortedErrorList","currentErrorsSortedByLayout","previousSortedErrors","useSRPanelForCardInputErrors","newErrors","getArrayDifferences","forEach","errorItem","AnalyticsInfoEvent","component","type","InfoEventType","validationError","target","fieldTypeToSnakeCase","field","validationErrorCode","errorCode","validationErrorMessage","getErrorMessageFromCode","SF_ErrorCodes","onSubmitAnalytics","holderNameValid","sfpValid","addressValid","koreanAuthentication","encryptedPassword","socialSecurityNumberValid","isValid","sfStateErrorsObj","mapErrorsToValidationRuleResult","mergedErrors","onChange","dualBrandsArr","map","item","id","dualBrands","toString","displayed","UiTarget","dualBrandButton","configData","previousSelectedBrandValue","usePrevious","selected","FieldToRender","StoredCardFieldsWrapper","CardFieldsWrapper","h","Fragment","SecuredFieldsProvider","extractPropsForSFP","styles","hasKoreanFields","sfState","eventDetails","autoCompleteName","acHolderName","getRuleByNameAndMode","holderNameValidationFn","autoFocus","ENCRYPTED_CARD_NUMBER","encryptedCardNumber","onStateUpdate","componentType","disableIOSArrowKeys","render","setRootNode","div","className","classNames","role","FormInstruction","extractPropsForCardFields","handleInstallments","brandsIcons","handleOnStoreDetails","billingAddressValidationRules","getPartialAddressValidationRules","onAddressLookup","onAddressSelected","addressSearchDebounceMs","fastlaneConfiguration","FastlaneSignup","currentDetectedBrand","showPayButton","payButton","variant","isPayButtonPrimaryVariant","icon","imageFolder","PREFIX","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"CardInput.js","sources":["../../../../../../src/components/Card/components/CardInput/CardInput.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport { useState, useEffect, useRef, useMemo, useCallback } from 'preact/hooks';\nimport SecuredFieldsProvider from '../../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport { OnChangeEventDetails, SFPState } from '../../../internal/SecuredFields/SFP/types';\nimport defaultProps from './defaultProps';\nimport './CardInput.scss';\nimport { AddressModeOptions, CardInputDataState, CardInputErrorState, CardInputProps, CardInputRef, CardInputValidState } from './types';\nimport { CVC_POLICY_REQUIRED, DATE_POLICY_REQUIRED, ENCRYPTED_CARD_NUMBER } from '../../../internal/SecuredFields/lib/constants';\nimport { BinLookupResponse } from '../../types';\nimport { cardInputFormatters, cardInputValidationRules, getRuleByNameAndMode } from './validate';\nimport CIExtensions from '../../../internal/SecuredFields/binLookup/extensions';\nimport useForm from '../../../../utils/useForm';\nimport { SortedErrorObject } from '../../../../core/Errors/types';\nimport { handlePartialAddressMode, extractPropsForCardFields, extractPropsForSFP, getLayout, shouldShowInstallmentsComponent } from './utils';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { StoredCardFieldsWrapper } from './components/StoredCardFieldsWrapper';\nimport { CardFieldsWrapper } from './components/CardFieldsWrapper';\nimport { getAddressHandler, getAutoJumpHandler, getFocusHandler } from './handlers';\nimport { InstallmentsState } from './components/Installments/Installments';\nimport { TouchStartEventObj } from './components/types';\nimport classNames from 'classnames';\nimport { getPartialAddressValidationRules } from '../../../internal/Address/validate';\nimport useImage from '../../../../core/Context/useImage';\nimport { getArrayDifferences } from '../../../../utils/arrayUtils';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { AddressData } from '../../../../types/global-types';\nimport { CardBrandData, CardFocusData } from '../../../internal/SecuredFields/lib/types';\nimport { PREFIX } from '../../../internal/Icon/constants';\nimport useSRPanelForCardInputErrors from './useSRPanelForCardInputErrors';\nimport FastlaneSignup from '../Fastlane/FastlaneSignup';\nimport { fieldTypeToSnakeCase } from '../../../internal/SecuredFields/utils';\nimport { getErrorMessageFromCode } from '../../../../core/Errors/utils';\nimport { SF_ErrorCodes } from '../../../../core/Errors/constants';\nimport { usePrevious } from '../../../../utils/hookUtils';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../../../core/Analytics/events/AnalyticsInfoEvent';\nimport { useAmount } from '../../../../core/Context/AmountProvider';\n\nconst CardInput = (props: Readonly<CardInputProps>) => {\n const sfp = useRef<SecuredFieldsProvider>(null);\n const isValidating = useRef(false);\n const getImage = useImage();\n\n const billingAddressRef = useRef(null);\n const setAddressRef = ref => {\n billingAddressRef.current = ref;\n };\n\n const cardInputRef = useRef<CardInputRef>({});\n // Just call once to create the object by which we expose the members expected by the parent Card comp\n if (!Object.keys(cardInputRef.current).length) {\n props.setComponentRef(cardInputRef.current);\n }\n\n const hasPanLengthRef = useRef(0);\n const isAutoJumping = useRef(false);\n\n const specifications = useMemo(() => new Specifications(props.specifications), [props.specifications]);\n\n const { amount } = useAmount();\n\n // Store ref to sfp (useful for 'deep' debugging)\n cardInputRef.current.sfp = sfp;\n\n /**\n * STATE HOOKS\n */\n const [status, setStatus] = useState('ready');\n\n const [errors, setErrors] = useState<CardInputErrorState>({});\n const [valid, setValid] = useState<CardInputValidState>({\n ...(props.holderNameRequired && { holderName: false })\n });\n const [data, setData] = useState<CardInputDataState>({\n ...(props.hasHolderName && { holderName: props.data.holderName ?? '' })\n });\n\n const [focusedElement, setFocusedElement] = useState('');\n const [isSfpValid, setIsSfpValid] = useState(false);\n const [expiryDatePolicy, setExpiryDatePolicy] = useState(DATE_POLICY_REQUIRED);\n const [cvcPolicy, setCvcPolicy] = useState(CVC_POLICY_REQUIRED);\n const [issuingCountryCode, setIssuingCountryCode] = useState<string>(null);\n\n const [dualBrandSelectElements, setDualBrandSelectElements] = useState([]);\n const [selectedBrandValue, setSelectedBrandValue] = useState(props.storedPaymentMethodId ? props.brand : ''); // If this is a storedCard comp initialise state with the storedCard's brand\n\n const showBillingAddress = props.billingAddressMode !== AddressModeOptions.none && props.billingAddressRequired;\n\n const partialAddressSchema = handlePartialAddressMode(props.billingAddressMode);\n // Keeps the value of the country set initially by the merchant, before the Address Component mutates it\n const partialAddressCountry = useRef<string>(partialAddressSchema && props.data?.billingAddress?.country);\n\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n const [billingAddress, setBillingAddress] = useState<AddressData>(showBillingAddress ? props.data.billingAddress : null);\n const [showSocialSecurityNumber, setShowSocialSecurityNumber] = useState(false);\n const [socialSecurityNumber, setSocialSecurityNumber] = useState('');\n const [installments, setInstallments] = useState<InstallmentsState>({ value: null });\n\n // re. Disable arrows for iOS: The name of the element calling for other elements to be disabled\n // - either a securedField type (like 'encryptedCardNumber') when call is coming from SF\n // or else the name of an internal, Adyen-web, element (like 'holderName')\n const [iOSFocusedField, setIOSFocusedField] = useState(null);\n\n /**\n * This stores the brand as detected by the internal regEx.\n * It eventually gets overwritten by the brand as detected by the /binLookup, but will revert back to the regEx detection\n * if the PAN length drops below the /binLookup digit threshold.\n * Default value, 'card', indicates no brand detected\n */\n const [internallyDetectedBrand, setInternallyDetectedBrand] = useState('card');\n\n /**\n * Used tho show and hide the pay button and instructions text\n * Should mimic the same logic as CardInput loading wrapper\n */\n const [showCardUIElements, setShowCardUIElements] = useState(false);\n\n /**\n * LOCAL VARS\n */\n const {\n handleChangeFor,\n triggerValidation,\n data: formData,\n valid: formValid,\n errors: formErrors,\n setSchema,\n setData: setFormData,\n setValid: setFormValid,\n setErrors: setFormErrors\n } = useForm<CardInputDataState>({\n schema: [],\n defaultData: props.data,\n formatters: cardInputFormatters,\n rules: cardInputValidationRules\n });\n\n const hasInstallments = shouldShowInstallmentsComponent({\n installmentOptions: props.installmentOptions,\n fundingSource: props.fundingSource,\n amount\n });\n\n const showAmountsInInstallments = props.showInstallmentAmounts ?? true;\n\n const cardCountryCode: string = issuingCountryCode ?? props.countryCode;\n const isKorea = cardCountryCode === 'kr'; // If issuingCountryCode or the merchant defined countryCode is set to 'kr'\n const showKCP = props.configuration.koreanAuthenticationRequired && isKorea;\n\n const showBrazilianSSN: boolean =\n (showSocialSecurityNumber && props.configuration.socialSecurityNumberMode === 'auto') ||\n props.configuration.socialSecurityNumberMode === 'show';\n\n /**\n * HANDLERS\n */\n // Handlers for focus & blur on all fields. Can be renamed to onFieldFocus once the onFocusField is renamed in Field.tsx\n const onFieldFocusAnalytics = (who: string, e: Event | CardFocusData) => {\n props.onFocus({ fieldType: who, event: e });\n };\n const onFieldBlurAnalytics = (who: string, e: Event | CardFocusData) => {\n props.onBlur({ fieldType: who, event: e });\n };\n\n const onBrand = useCallback((obj: CardBrandData) => {\n setInternallyDetectedBrand(obj.brand);\n props.onBrand(obj);\n }, []);\n\n // Make SecuredFields aware of the focus & blur handlers\n const handleFocus = getFocusHandler(setFocusedElement, onFieldFocusAnalytics, onFieldBlurAnalytics);\n\n const retrieveLayout = (): string[] => {\n return getLayout({\n props,\n showKCP,\n showBrazilianSSN,\n ...(props.billingAddressRequired && {\n countrySpecificSchemas: specifications.getAddressSchemaForCountry(billingAddress?.country),\n billingAddressRequiredFields: props.billingAddressRequiredFields\n })\n });\n };\n\n /**\n * re. Disabling arrow keys in iOS:\n * Only by disabling all fields in the Card PM except for the active securedField input can we force the iOS soft keyboard arrow keys to disable\n *\n * NOTE: only called if ua.__IS_IOS = true && this.config.disableIOSArrowKeys = true (as referenced in CSF)\n *\n * @param obj - has fieldType prop saying whether this function is being called in response to an securedFields click ('encryptedCardNumber' etc)\n * - in which case we should disable all non-SF fields\n * or,\n * due to an internal action ('webInternalElement') - in which case we can enable all non-SF fields\n */\n const handleTouchstartIOS = useCallback((obj: TouchStartEventObj) => {\n const elementType = obj.fieldType !== 'webInternalElement' ? obj.fieldType : obj.name;\n setIOSFocusedField(elementType);\n }, []);\n\n const handleAddress = getAddressHandler(setFormData, setFormValid, setFormErrors);\n\n const doPanAutoJump = getAutoJumpHandler(isAutoJumping, sfp, retrieveLayout());\n\n const mapSfpErrorsToCardInputErrors = (sfpErrors: SFPState['errors']): Partial<CardInputErrorState> => {\n if (!sfpErrors) return {};\n\n return {\n encryptedCardNumber: !!sfpErrors.encryptedCardNumber,\n encryptedExpiryDate: !!sfpErrors.encryptedExpiryDate,\n encryptedSecurityCode: !!sfpErrors.encryptedSecurityCode,\n encryptedPassword: !!sfpErrors.encryptedPassword\n };\n };\n\n const handleSecuredFieldsChange = (sfState: SFPState, eventDetails?: OnChangeEventDetails): void => {\n /**\n * Handling auto complete value for holderName (but only if the component is using a holderName field)\n */\n if (sfState.autoCompleteName) {\n if (!props.hasHolderName) return;\n const holderNameValidationFn = getRuleByNameAndMode('holderName', 'blur');\n const acHolderName = holderNameValidationFn(sfState.autoCompleteName) ? sfState.autoCompleteName : null;\n if (acHolderName) {\n setFormData('holderName', acHolderName);\n setFormValid('holderName', true); // only if holderName is valid does this fny get called - so we know it's valid and w/o error\n setFormErrors('holderName', null);\n }\n return;\n }\n\n /**\n * Decide if we can shift focus to the expiryDate field.\n *\n * We can if... the config prop, autoFocus, is true AND we have a panLength value from binLookup\n * AND we are responding to a handleOnFieldValid message about the PAN that says it is valid\n */\n if (\n props.autoFocus &&\n hasPanLengthRef.current > 0 &&\n eventDetails?.event === 'handleOnFieldValid' &&\n eventDetails?.fieldType === ENCRYPTED_CARD_NUMBER &&\n sfState.valid.encryptedCardNumber\n ) {\n doPanAutoJump();\n }\n\n /**\n * Process SFP state\n */\n setData({ ...data, ...sfState.data });\n setErrors({ ...errors, ...mapSfpErrorsToCardInputErrors(sfState.errors) });\n setValid({ ...valid, ...sfState.valid });\n\n setIsSfpValid(sfState.isSfpValid);\n\n // Values relating to /binLookup response\n setCvcPolicy(sfState.cvcPolicy);\n setShowSocialSecurityNumber(sfState.showSocialSecurityNumber);\n setExpiryDatePolicy(sfState.expiryDatePolicy);\n };\n\n /**\n * Listen to the full SecureFieldsProvider state and handle actions\n * Used right now to mimic the loading status changes, this can only be done this way\n * Trying to do it via onConfiguSuccess or onChange has side effects\n */\n const handleSFPStateUpdate = useCallback(\n sfpState => {\n mimicLoadingStatusChange(sfpState);\n },\n [showCardUIElements, setShowCardUIElements]\n );\n\n /**\n * This function implements the same logic that LoadingProvider uses to show and hide elements\n * We want to mimic this behavior so we can hide and show the pay button or the instructions text\n * Deciding to do it this way since we garante there's no DOM changes to merchants\n * We can break this in the next major version (v7)\n */\n const mimicLoadingStatusChange = sfpState => {\n if (!sfpState.status) return;\n if (sfpState.status == 'loading') {\n setShowCardUIElements(false);\n } else {\n setShowCardUIElements(true);\n }\n };\n\n // Farm the handlers for binLookup related functionality out to another 'extensions' file\n const extensions = useMemo(\n () =>\n CIExtensions(\n props,\n { sfp },\n {\n dualBrandSelectElements,\n setDualBrandSelectElements,\n setSelectedBrandValue,\n issuingCountryCode,\n setIssuingCountryCode\n },\n hasPanLengthRef\n ),\n [dualBrandSelectElements, issuingCountryCode]\n );\n\n /**\n * EXPOSE METHODS expected by Card.tsx\n */\n cardInputRef.current.showValidation = () => {\n // set flag\n isValidating.current = true;\n\n /**\n * Clear errors prior to validating so that the screenreader will read them *all* again, and in the right order\n * - only using aria-atomic on the error panel will read them in the wrong order\n */\n clearSRPanel?.(); // TODO - recheck if this is still true\n\n // Validate SecuredFields\n sfp.current.showValidation();\n\n // Validate holderName & SSN & KCP (taxNumber) but *not* billingAddress\n triggerValidation(['holderName', 'socialSecurityNumber', 'taxNumber']);\n\n // Validate Address\n if (billingAddressRef?.current) billingAddressRef.current.showValidation();\n };\n\n cardInputRef.current.processBinLookupResponse = (binLookupResponse: BinLookupResponse, isReset: boolean) => {\n extensions.processBinLookup(binLookupResponse, isReset);\n };\n\n cardInputRef.current.setStatus = setStatus;\n\n /**\n * EFFECT HOOKS\n */\n useEffect(() => {\n // componentDidMount - expose more methods expected by Card.tsx\n cardInputRef.current.setFocusOn = sfp.current.setFocusOn;\n cardInputRef.current.updateStyles = sfp.current.updateStyles;\n cardInputRef.current.handleUnsupportedCard = sfp.current.handleUnsupportedCard;\n\n // componentWillUnmount\n return () => {\n sfp.current.destroy();\n };\n }, []);\n\n /**\n * Handle form schema updates\n */\n useEffect(() => {\n const newSchema = [\n ...(props.hasHolderName ? ['holderName'] : []),\n ...(showBrazilianSSN ? ['socialSecurityNumber'] : []),\n ...(showKCP ? ['taxNumber'] : []),\n ...(showBillingAddress ? ['billingAddress'] : [])\n ];\n setSchema(newSchema);\n }, [props.hasHolderName, showBrazilianSSN, showKCP]);\n\n /**\n * Handle updates from useForm\n */\n useEffect(() => {\n setData({ ...data, holderName: formData.holderName ?? '', taxNumber: formData.taxNumber });\n\n setSocialSecurityNumber(formData.socialSecurityNumber);\n\n if (showBillingAddress) setBillingAddress({ ...formData.billingAddress });\n\n setValid({\n ...valid,\n holderName: props.holderNameRequired ? formValid.holderName : true,\n // Setting value to false if it's falsy keeps in line with existing, expected behaviour\n // - but there is an argument to allow 'undefined' as a value to indicate the non-presence of the field\n socialSecurityNumber: formValid.socialSecurityNumber ? formValid.socialSecurityNumber : false,\n taxNumber: formValid.taxNumber ? formValid.taxNumber : false,\n billingAddress: formValid.billingAddress ? formValid.billingAddress : false\n });\n\n // Check if billingAddress errors object has any properties that aren't null or undefined\n const addressHasErrors = formErrors.billingAddress\n ? Object.entries(formErrors.billingAddress).reduce((acc, [, error]) => acc || error != null, false)\n : false;\n\n // Errors\n setErrors({\n ...errors,\n holderName: props.holderNameRequired && !!formErrors.holderName ? formErrors.holderName : null,\n socialSecurityNumber: showBrazilianSSN && !!formErrors.socialSecurityNumber ? formErrors.socialSecurityNumber : null,\n taxNumber: showKCP && !!formErrors.taxNumber ? formErrors.taxNumber : null,\n billingAddress: showBillingAddress && addressHasErrors ? formErrors.billingAddress : null\n });\n }, [formData, formValid, formErrors]);\n\n // Use the custom hook to set (or clear) errors in the SRPanel\n const {\n sortedErrorList: currentErrorsSortedByLayout,\n previousSortedErrors,\n clearSRPanel\n } = useSRPanelForCardInputErrors({\n errors,\n props,\n isValidating,\n retrieveLayout,\n specifications,\n billingAddress,\n sfp\n });\n\n // Analytics: ValidationErrors\n useEffect(() => {\n if (currentErrorsSortedByLayout) {\n const newErrors = getArrayDifferences<SortedErrorObject, string>(currentErrorsSortedByLayout, previousSortedErrors, 'field');\n\n newErrors?.forEach(errorItem => {\n const event = new AnalyticsInfoEvent({\n component: props.type,\n type: InfoEventType.validationError,\n target: fieldTypeToSnakeCase(errorItem.field) as UiTarget,\n validationErrorCode: errorItem.errorCode,\n validationErrorMessage: getErrorMessageFromCode(errorItem.errorCode, SF_ErrorCodes)\n });\n props.onSubmitAnalytics(event);\n });\n }\n }, [currentErrorsSortedByLayout]);\n\n /**\n * Main 'componentDidUpdate' handler\n */\n useEffect(() => {\n const holderNameValid: boolean = valid.holderName;\n\n const sfpValid: boolean = isSfpValid;\n const addressValid: boolean = showBillingAddress ? valid.billingAddress : true;\n\n const koreanAuthentication: boolean = showKCP ? !!valid.taxNumber && !!valid.encryptedPassword : true;\n\n const socialSecurityNumberValid: boolean = showBrazilianSSN ? !!valid.socialSecurityNumber : true;\n\n const isValid: boolean = sfpValid && holderNameValid && addressValid && koreanAuthentication && socialSecurityNumberValid;\n\n const sfStateErrorsObj = sfp.current.mapErrorsToValidationRuleResult();\n const mergedErrors = { ...errors, ...sfStateErrorsObj }; // maps sfErrors AND solves race condition problems for sfp from showValidation\n\n props.onChange({\n data,\n valid,\n errors: mergedErrors,\n isValid,\n billingAddress,\n selectedBrandValue,\n storePaymentMethod,\n socialSecurityNumber,\n installments\n });\n }, [data, valid, errors, selectedBrandValue, storePaymentMethod, installments]);\n\n /**\n * \"Update\" handler related to dual brand buttons being initially displayed\n */\n useEffect(() => {\n if (dualBrandSelectElements.length > 0 && dualBrandSelectElements) {\n const dualBrandsArr = dualBrandSelectElements.map(item => item.id);\n const brand = dualBrandsArr[0]; // initially selected brand\n const dualBrands = dualBrandsArr.toString();\n\n const event = new AnalyticsInfoEvent({\n component: props.type,\n type: InfoEventType.displayed,\n target: UiTarget.dualBrandButton,\n brand,\n configData: { dualBrands }\n });\n\n props.onSubmitAnalytics(event);\n }\n }, [dualBrandSelectElements]);\n\n const previousSelectedBrandValue = usePrevious(selectedBrandValue);\n\n /**\n * \"Update\" handler related to a dual brand button being selected\n */\n useEffect(() => {\n if (previousSelectedBrandValue?.length && selectedBrandValue?.length) {\n const event = new AnalyticsInfoEvent({\n component: props.type,\n type: InfoEventType.selected,\n target: UiTarget.dualBrandButton,\n brand: selectedBrandValue\n });\n\n props.onSubmitAnalytics(event);\n }\n }, [selectedBrandValue]);\n\n /**\n * RENDER\n */\n const FieldToRender = props.storedPaymentMethodId ? StoredCardFieldsWrapper : CardFieldsWrapper;\n\n return (\n <Fragment>\n <SecuredFieldsProvider\n ref={sfp}\n {...extractPropsForSFP(props)}\n styles={{ ...props.styles }}\n koreanAuthenticationRequired={props.configuration.koreanAuthenticationRequired}\n hasKoreanFields={!!(props.configuration.koreanAuthenticationRequired && props.countryCode === 'kr')}\n onSubmitAnalytics={props.onSubmitAnalytics}\n onChange={handleSecuredFieldsChange}\n onBrand={onBrand}\n onFocus={handleFocus}\n onStateUpdate={handleSFPStateUpdate}\n type={props.brand}\n componentType={props.type}\n disableIOSArrowKeys={props.disableIOSArrowKeys ? handleTouchstartIOS : null}\n render={({ setRootNode, setFocusOn }, sfpState) => (\n <div\n ref={setRootNode}\n className={classNames({\n 'adyen-checkout__card-input': true,\n 'adyen-checkout-card-input__wrapper': true,\n [`adyen-checkout__card-input--${props.fundingSource ?? 'credit'}`]: true,\n 'adyen-checkout__card-input--loading': status === 'loading'\n })}\n role={'form'}\n >\n {showCardUIElements && <FormInstruction />}\n\n <FieldToRender\n // Extract exact props that we need to pass down\n {...extractPropsForCardFields(props)}\n // Pass on vars created in CardInput:\n // Base (shared w. StoredCard)\n data={data}\n valid={valid}\n errors={errors}\n handleChangeFor={handleChangeFor}\n focusedElement={focusedElement}\n setFocusOn={setFocusOn}\n sfpState={sfpState}\n cvcPolicy={cvcPolicy}\n hasInstallments={hasInstallments}\n showAmountsInInstallments={showAmountsInInstallments}\n handleInstallments={setInstallments}\n // For Card\n brandsIcons={props.brandsIcons}\n formData={formData}\n formErrors={formErrors}\n formValid={formValid}\n expiryDatePolicy={expiryDatePolicy}\n dualBrandSelectElements={dualBrandSelectElements}\n extensions={extensions}\n selectedBrandValue={selectedBrandValue}\n // For KCP\n showKCP={showKCP}\n // For SSN\n showBrazilianSSN={showBrazilianSSN}\n socialSecurityNumber={socialSecurityNumber}\n // For Store details\n handleOnStoreDetails={setStorePaymentMethod}\n // For Address\n setAddressRef={setAddressRef}\n billingAddress={billingAddress}\n billingAddressValidationRules={partialAddressSchema && getPartialAddressValidationRules(partialAddressCountry.current)}\n partialAddressSchema={partialAddressSchema}\n handleAddress={handleAddress}\n onAddressLookup={props.onAddressLookup}\n onAddressSelected={props.onAddressSelected}\n addressSearchDebounceMs={props.addressSearchDebounceMs}\n //\n iOSFocusedField={iOSFocusedField}\n //\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n </div>\n )}\n />\n\n {props.fastlaneConfiguration && (\n <FastlaneSignup\n {...props.fastlaneConfiguration}\n currentDetectedBrand={internallyDetectedBrand}\n onChange={props.onChange}\n onSubmitAnalytics={props.onSubmitAnalytics}\n type={props.type}\n />\n )}\n\n {showCardUIElements &&\n props.showPayButton &&\n props.payButton({\n status,\n variant: props.isPayButtonPrimaryVariant ? 'primary' : 'secondary',\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)\n })}\n </Fragment>\n );\n};\n\nCardInput.defaultProps = defaultProps;\n\nexport default CardInput;\n"],"names":["CardInput","props","sfp","useRef","isValidating","getImage","useImage","billingAddressRef","setAddressRef","ref","current","cardInputRef","Object","keys","length","setComponentRef","hasPanLengthRef","isAutoJumping","specifications","useMemo","Specifications","amount","useAmount","status","setStatus","useState","errors","setErrors","valid","setValid","_object_spread","holderNameRequired","holderName","data","setData","hasHolderName","focusedElement","setFocusedElement","isSfpValid","setIsSfpValid","expiryDatePolicy","setExpiryDatePolicy","DATE_POLICY_REQUIRED","cvcPolicy","setCvcPolicy","CVC_POLICY_REQUIRED","issuingCountryCode","setIssuingCountryCode","dualBrandSelectElements","setDualBrandSelectElements","selectedBrandValue","setSelectedBrandValue","storedPaymentMethodId","brand","showBillingAddress","billingAddressMode","AddressModeOptions","none","billingAddressRequired","partialAddressSchema","handlePartialAddressMode","partialAddressCountry","billingAddress","country","storePaymentMethod","setStorePaymentMethod","setBillingAddress","showSocialSecurityNumber","setShowSocialSecurityNumber","socialSecurityNumber","setSocialSecurityNumber","installments","setInstallments","value","iOSFocusedField","setIOSFocusedField","internallyDetectedBrand","setInternallyDetectedBrand","showCardUIElements","setShowCardUIElements","handleChangeFor","triggerValidation","formData","formValid","formErrors","setSchema","setFormData","setFormValid","setFormErrors","useForm","schema","defaultData","formatters","cardInputFormatters","rules","cardInputValidationRules","hasInstallments","shouldShowInstallmentsComponent","installmentOptions","fundingSource","showAmountsInInstallments","showInstallmentAmounts","isKorea","countryCode","showKCP","configuration","koreanAuthenticationRequired","showBrazilianSSN","socialSecurityNumberMode","onFieldFocusAnalytics","who","e","onFocus","fieldType","event","onFieldBlurAnalytics","onBlur","onBrand","useCallback","obj","handleFocus","getFocusHandler","retrieveLayout","getLayout","countrySpecificSchemas","getAddressSchemaForCountry","billingAddressRequiredFields","handleTouchstartIOS","elementType","name","handleAddress","getAddressHandler","doPanAutoJump","getAutoJumpHandler","handleSFPStateUpdate","sfpState","mimicLoadingStatusChange","extensions","CIExtensions","showValidation","clearSRPanel","processBinLookupResponse","binLookupResponse","isReset","processBinLookup","useEffect","setFocusOn","updateStyles","handleUnsupportedCard","destroy","newSchema","_object_spread_props","taxNumber","addressHasErrors","entries","reduce","acc","error","sortedErrorList","currentErrorsSortedByLayout","previousSortedErrors","useSRPanelForCardInputErrors","newErrors","getArrayDifferences","forEach","errorItem","AnalyticsInfoEvent","component","type","InfoEventType","validationError","target","fieldTypeToSnakeCase","field","validationErrorCode","errorCode","validationErrorMessage","getErrorMessageFromCode","SF_ErrorCodes","onSubmitAnalytics","holderNameValid","sfpValid","addressValid","koreanAuthentication","encryptedPassword","socialSecurityNumberValid","isValid","sfStateErrorsObj","mapErrorsToValidationRuleResult","mergedErrors","onChange","dualBrandsArr","map","item","id","dualBrands","toString","displayed","UiTarget","dualBrandButton","configData","previousSelectedBrandValue","usePrevious","selected","FieldToRender","StoredCardFieldsWrapper","CardFieldsWrapper","h","Fragment","SecuredFieldsProvider","extractPropsForSFP","styles","hasKoreanFields","sfState","eventDetails","autoCompleteName","acHolderName","getRuleByNameAndMode","holderNameValidationFn","sfpErrors","autoFocus","ENCRYPTED_CARD_NUMBER","encryptedCardNumber","encryptedExpiryDate","encryptedSecurityCode","onStateUpdate","componentType","disableIOSArrowKeys","render","setRootNode","div","className","classNames","role","FormInstruction","extractPropsForCardFields","handleInstallments","brandsIcons","handleOnStoreDetails","billingAddressValidationRules","getPartialAddressValidationRules","onAddressLookup","onAddressSelected","addressSearchDebounceMs","fastlaneConfiguration","FastlaneSignup","currentDetectedBrand","showPayButton","payButton","variant","isPayButtonPrimaryVariant","icon","imageFolder","PREFIX","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AvailableBrands.js","sources":["../../../../../../../../src/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport './AvailableBrands.scss';\nimport { BrandConfiguration } from '../../../../types';\nimport { getFullBrandName } from '../../utils';\nimport Brand from '../../../../../internal/Brand';\n\ntype AvailableBrands = Array<BrandConfiguration>;\n\ninterface PaymentMethodBrandsProps {\n brands: AvailableBrands;\n activeBrand: string;\n}\n\nconst AvailableBrands = ({ brands, activeBrand }: PaymentMethodBrandsProps) => {\n if (!brands?.length) {\n return null;\n }\n\n const isValidBrand = activeBrand !== 'card';\n return (\n <span\n className={classNames('adyen-checkout__card__brands', {\n 'adyen-checkout__card__brands--hidden': isValidBrand\n })}\n >\n {brands.map(({ name, icon }) => (\n <Brand\n showOnError\n wrapperClassName={'adyen-checkout__card__brands__brand-wrapper'}\n key={name}\n url={icon}\n alt={getFullBrandName(name)}\n ></Brand>\n ))}\n </span>\n );\n};\n\nexport default AvailableBrands;\n"],"names":["AvailableBrands","brands","activeBrand","length","h","span","className","classNames","map","name","icon","Brand","showOnError","wrapperClassName","key","url","alt","getFullBrandName"],"mappings":"4OAcA,MAAMA,EAAkB,EAAGC,SAAQC,kBAC/B,KAAKD,eAAAA,EAAQE,QACT,OAAO,KAIX,OACIC,EAACC,OAAAA,CACGC,UAAWC,EAAW,+BAAgC,CAClD,uCAJyB,SAAhBL,KAOZD,EAAOO,IAAI,EAAGC,OAAMC,UACjBN,EAACO,EAAAA,CACGC,aAAAA,EACAC,iBAAkB,8CAClBC,IAAKL,EACLM,IAAKL,EACLM,IAAKC,EAAiBR"}
1
+ {"version":3,"file":"AvailableBrands.js","sources":["../../../../../../../../src/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport './AvailableBrands.scss';\nimport { BrandConfiguration } from '../../../../types';\nimport { getFullBrandName } from '../../utils';\nimport Brand from '../../../../../internal/Brand';\n\ntype AvailableBrands = Array<BrandConfiguration>;\n\ninterface PaymentMethodBrandsProps {\n brands: AvailableBrands;\n activeBrand: string;\n}\n\nconst AvailableBrands = ({ brands, activeBrand }: Readonly<PaymentMethodBrandsProps>) => {\n if (!brands?.length) {\n return null;\n }\n\n const isValidBrand = activeBrand !== 'card';\n return (\n <span\n className={classNames('adyen-checkout__card__brands', {\n 'adyen-checkout__card__brands--hidden': isValidBrand\n })}\n >\n {brands.map(({ name, icon }) => (\n <Brand\n showOnError\n wrapperClassName={'adyen-checkout__card__brands__brand-wrapper'}\n key={name}\n url={icon}\n alt={getFullBrandName(name)}\n ></Brand>\n ))}\n </span>\n );\n};\n\nexport default AvailableBrands;\n"],"names":["AvailableBrands","brands","activeBrand","length","h","span","className","classNames","map","name","icon","Brand","showOnError","wrapperClassName","key","url","alt","getFullBrandName"],"mappings":"4OAcA,MAAMA,EAAkB,EAAGC,SAAQC,kBAC/B,KAAKD,eAAAA,EAAQE,QACT,OAAO,KAIX,OACIC,EAACC,OAAAA,CACGC,UAAWC,EAAW,+BAAgC,CAClD,uCAJyB,SAAhBL,KAOZD,EAAOO,IAAI,EAAGC,OAAMC,UACjBN,EAACO,EAAAA,CACGC,aAAAA,EACAC,iBAAkB,8CAClBC,IAAKL,EACLM,IAAKL,EACLM,IAAKC,EAAiBR"}
@@ -1 +1 @@
1
- {"version":3,"file":"BrandIcon.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/BrandIcon.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { getCardImageUrl, getFullBrandName } from '../utils';\nimport { BrandIconProps } from './types';\nimport useImage from '../../../../../core/Context/useImage';\nimport Brand from '../../../../internal/Brand';\n\nexport default function BrandIcon({ brand, brandsConfiguration = {} }: BrandIconProps) {\n const getImage = useImage();\n const imageName = brand === 'card' ? 'nocard' : brand;\n const imageUrl = brandsConfiguration[brand]?.icon ?? getCardImageUrl(imageName, getImage);\n const imgClassName = `adyen-checkout-card-input__icon adyen-checkout__card__cardNumber__brandIcon`;\n\n return <Brand imgClassName={imgClassName} alt={getFullBrandName(brand)} url={imageUrl} />;\n}\n"],"names":["BrandIcon","brand","brandsConfiguration","getImage","useImage","imageName","imageUrl","icon","_ref","getCardImageUrl","h","Brand","imgClassName","alt","getFullBrandName","url"],"mappings":"4PAMe,SAASA,GAAUC,MAAEA,EAAKC,oBAAEA,EAAsB,CAAA,UAG5CA,EAFjB,MAAMC,EAAWC,IACXC,EAAsB,SAAVJ,EAAmB,SAAWA,EAC1CK,EAA2C,QAA3CA,EAAqC,QAA1BJ,EAAAA,EAAoBD,UAApBC,IAAAA,OAAAA,EAAAA,EAA4BK,YAAI,IAAAC,EAAAA,EAAIC,EAAgBJ,EAAWF,GAGhF,OAAOO,EAACC,EAAAA,CAAMC,aAFO,8EAEqBC,IAAKC,EAAiBb,GAAQc,IAAKT,GACjF"}
1
+ {"version":3,"file":"BrandIcon.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/BrandIcon.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { getCardImageUrl, getFullBrandName } from '../utils';\nimport { BrandIconProps } from './types';\nimport useImage from '../../../../../core/Context/useImage';\nimport Brand from '../../../../internal/Brand';\n\nexport default function BrandIcon({ brand, brandsConfiguration = {} }: Readonly<BrandIconProps>) {\n const getImage = useImage();\n const imageName = brand === 'card' ? 'nocard' : brand;\n const imageUrl = brandsConfiguration[brand]?.icon ?? getCardImageUrl(imageName, getImage);\n const imgClassName = `adyen-checkout-card-input__icon adyen-checkout__card__cardNumber__brandIcon`;\n\n return <Brand imgClassName={imgClassName} alt={getFullBrandName(brand)} url={imageUrl} />;\n}\n"],"names":["BrandIcon","brand","brandsConfiguration","getImage","useImage","imageName","imageUrl","icon","_ref","getCardImageUrl","h","Brand","imgClassName","alt","getFullBrandName","url"],"mappings":"4PAMe,SAASA,GAAUC,MAAEA,EAAKC,oBAAEA,EAAsB,CAAA,UAG5CA,EAFjB,MAAMC,EAAWC,IACXC,EAAsB,SAAVJ,EAAmB,SAAWA,EAC1CK,EAA2C,QAA3CA,EAAqC,QAA1BJ,EAAAA,EAAoBD,UAApBC,IAAAA,OAAAA,EAAAA,EAA4BK,YAAI,IAAAC,EAAAA,EAAIC,EAAgBJ,EAAWF,GAGhF,OAAOO,EAACC,EAAAA,CAAMC,aAFO,8EAEqBC,IAAKC,EAAiBb,GAAQc,IAAKT,GACjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"CVC.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CVC.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport CVCHint from './CVCHint';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CVCProps } from './types';\nimport {\n CVC_POLICY_HIDDEN,\n CVC_POLICY_OPTIONAL,\n CVC_POLICY_REQUIRED,\n ENCRYPTED_SECURITY_CODE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport DataSfSpan from './DataSfSpan';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\nimport './CVC.scss';\n\nexport default function CVC(props: CVCProps) {\n const {\n label,\n onFocusField = () => {},\n error = '',\n className = '',\n classNameModifiers = [],\n focused,\n filled,\n isValid,\n frontCVC = false,\n cvcPolicy = CVC_POLICY_REQUIRED,\n showContextualElement,\n contextualText\n } = props;\n const { i18n } = useCoreContext();\n\n const fieldClassnames = classNames(className, {\n 'adyen-checkout__field__cvc': true,\n 'adyen-checkout__card__cvc__input--hidden': cvcPolicy === CVC_POLICY_HIDDEN,\n 'adyen-checkout__field__cvc--optional': cvcPolicy === CVC_POLICY_OPTIONAL\n });\n\n const cvcClassnames = classNames({\n 'adyen-checkout__input': true,\n 'adyen-checkout__input--small': true,\n 'adyen-checkout__card__cvc__input': true,\n 'adyen-checkout__input--error': error,\n 'adyen-checkout__input--focus': focused,\n 'adyen-checkout__input--valid': isValid\n });\n\n const fieldLabel = cvcPolicy !== CVC_POLICY_OPTIONAL ? label : i18n.get('creditCard.securityCode.label.optional');\n\n const handleIconClick = () => {\n onFocusField(ENCRYPTED_SECURITY_CODE);\n };\n\n const imageDescription = `${fieldLabel} ${contextualText}`;\n\n return (\n <Field\n label={fieldLabel}\n focused={focused}\n filled={filled}\n classNameModifiers={[...classNameModifiers, 'securityCode']}\n onFocusField={() => onFocusField(ENCRYPTED_SECURITY_CODE)}\n className={fieldClassnames}\n errorMessage={error}\n isValid={isValid}\n dir={'ltr'}\n name={ENCRYPTED_SECURITY_CODE}\n i18n={i18n}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n showContextualElement={showContextualElement}\n contextualText={contextualText}\n onInputContainerClick={handleIconClick}\n >\n <DataSfSpan encryptedFieldType={ENCRYPTED_SECURITY_CODE} className={cvcClassnames} />\n\n <CVCHint frontCVC={frontCVC} fieldLabel={imageDescription} />\n </Field>\n );\n}\n"],"names":["CVC","props","label","onFocusField","error","className","classNameModifiers","focused","filled","isValid","frontCVC","cvcPolicy","CVC_POLICY_REQUIRED","showContextualElement","contextualText","i18n","useCoreContext","fieldClassnames","classNames","CVC_POLICY_HIDDEN","CVC_POLICY_OPTIONAL","cvcClassnames","fieldLabel","get","imageDescription","h","Field","ENCRYPTED_SECURITY_CODE","errorMessage","dir","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","onInputContainerClick","DataSfSpan","encryptedFieldType","CVCHint"],"mappings":"gjBAgBe,SAASA,EAAIC,GACxB,MAAMC,MACFA,EAAKC,aACLA,EAAe,OAAQC,MACvBA,EAAQ,GAAEC,UACVA,EAAY,GAAEC,mBACdA,EAAqB,GAAEC,QACvBA,EAAOC,OACPA,EAAMC,QACNA,EAAOC,SACPA,GAAW,EAAKC,UAChBA,EAAYC,EAAmBC,sBAC/BA,EAAqBC,eACrBA,GACAb,GACEc,KAAEA,GAASC,IAEXC,EAAkBC,EAAWb,EAAW,CAC1C,8BAA8B,EAC9B,2CAA4CM,IAAcQ,EAC1D,uCAAwCR,IAAcS,IAGpDC,EAAgBH,EAAW,CAC7B,yBAAyB,EACzB,gCAAgC,EAChC,oCAAoC,EACpC,+BAAgCd,EAChC,+BAAgCG,EAChC,+BAAgCE,IAG9Ba,EAAaX,IAAcS,EAAsBlB,EAAQa,EAAKQ,IAAI,0CAMlEC,EAAmB,GAAGF,KAAcR,IAE1C,OACIW,EAACC,EAAAA,CACGxB,MAAOoB,EACPf,QAASA,EACTC,OAAQA,EACRF,mBAAoB,IAAIA,EAAoB,gBAC5CH,aAAc,IAAMA,EAAawB,GACjCtB,UAAWY,EACXW,aAAcxB,EACdK,QAASA,EACToB,IAAK,MACLC,KAAMH,EACNZ,KAAMA,EACNgB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,EAC1BrB,sBAAuBA,EACvBC,eAAgBA,EAChBqB,sBAxBgB,KACpBhC,EAAawB,KAyBTF,EAACW,EAAAA,CAAWC,mBAAoBV,EAAyBtB,UAAWgB,IAEpEI,EAACa,EAAAA,CAAQ5B,SAAUA,EAAUY,WAAYE,IAGrD"}
1
+ {"version":3,"file":"CVC.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CVC.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport CVCHint from './CVCHint';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CVCProps } from './types';\nimport {\n CVC_POLICY_HIDDEN,\n CVC_POLICY_OPTIONAL,\n CVC_POLICY_REQUIRED,\n ENCRYPTED_SECURITY_CODE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport DataSfSpan from './DataSfSpan';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\nimport './CVC.scss';\n\nexport default function CVC(props: Readonly<CVCProps>) {\n const {\n label,\n onFocusField = () => {},\n error = '',\n className = '',\n classNameModifiers = [],\n focused,\n filled,\n isValid,\n frontCVC = false,\n cvcPolicy = CVC_POLICY_REQUIRED,\n showContextualElement,\n contextualText\n } = props;\n const { i18n } = useCoreContext();\n\n const fieldClassnames = classNames(className, {\n 'adyen-checkout__field__cvc': true,\n 'adyen-checkout__card__cvc__input--hidden': cvcPolicy === CVC_POLICY_HIDDEN,\n 'adyen-checkout__field__cvc--optional': cvcPolicy === CVC_POLICY_OPTIONAL\n });\n\n const cvcClassnames = classNames({\n 'adyen-checkout__input': true,\n 'adyen-checkout__input--small': true,\n 'adyen-checkout__card__cvc__input': true,\n 'adyen-checkout__input--error': error,\n 'adyen-checkout__input--focus': focused,\n 'adyen-checkout__input--valid': isValid\n });\n\n const fieldLabel = cvcPolicy !== CVC_POLICY_OPTIONAL ? label : i18n.get('creditCard.securityCode.label.optional');\n\n const handleIconClick = () => {\n onFocusField(ENCRYPTED_SECURITY_CODE);\n };\n\n const imageDescription = `${fieldLabel} ${contextualText}`;\n\n return (\n <Field\n label={fieldLabel}\n focused={focused}\n filled={filled}\n classNameModifiers={[...classNameModifiers, 'securityCode']}\n onFocusField={() => onFocusField(ENCRYPTED_SECURITY_CODE)}\n className={fieldClassnames}\n errorMessage={error}\n isValid={isValid}\n dir={'ltr'}\n name={ENCRYPTED_SECURITY_CODE}\n i18n={i18n}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n showContextualElement={showContextualElement}\n contextualText={contextualText}\n onInputContainerClick={handleIconClick}\n >\n <DataSfSpan encryptedFieldType={ENCRYPTED_SECURITY_CODE} className={cvcClassnames} />\n\n <CVCHint frontCVC={frontCVC} fieldLabel={imageDescription} />\n </Field>\n );\n}\n"],"names":["CVC","props","label","onFocusField","error","className","classNameModifiers","focused","filled","isValid","frontCVC","cvcPolicy","CVC_POLICY_REQUIRED","showContextualElement","contextualText","i18n","useCoreContext","fieldClassnames","classNames","CVC_POLICY_HIDDEN","CVC_POLICY_OPTIONAL","cvcClassnames","fieldLabel","get","imageDescription","h","Field","ENCRYPTED_SECURITY_CODE","errorMessage","dir","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","onInputContainerClick","DataSfSpan","encryptedFieldType","CVCHint"],"mappings":"gjBAgBe,SAASA,EAAIC,GACxB,MAAMC,MACFA,EAAKC,aACLA,EAAe,OAAQC,MACvBA,EAAQ,GAAEC,UACVA,EAAY,GAAEC,mBACdA,EAAqB,GAAEC,QACvBA,EAAOC,OACPA,EAAMC,QACNA,EAAOC,SACPA,GAAW,EAAKC,UAChBA,EAAYC,EAAmBC,sBAC/BA,EAAqBC,eACrBA,GACAb,GACEc,KAAEA,GAASC,IAEXC,EAAkBC,EAAWb,EAAW,CAC1C,8BAA8B,EAC9B,2CAA4CM,IAAcQ,EAC1D,uCAAwCR,IAAcS,IAGpDC,EAAgBH,EAAW,CAC7B,yBAAyB,EACzB,gCAAgC,EAChC,oCAAoC,EACpC,+BAAgCd,EAChC,+BAAgCG,EAChC,+BAAgCE,IAG9Ba,EAAaX,IAAcS,EAAsBlB,EAAQa,EAAKQ,IAAI,0CAMlEC,EAAmB,GAAGF,KAAcR,IAE1C,OACIW,EAACC,EAAAA,CACGxB,MAAOoB,EACPf,QAASA,EACTC,OAAQA,EACRF,mBAAoB,IAAIA,EAAoB,gBAC5CH,aAAc,IAAMA,EAAawB,GACjCtB,UAAWY,EACXW,aAAcxB,EACdK,QAASA,EACToB,IAAK,MACLC,KAAMH,EACNZ,KAAMA,EACNgB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,EAC1BrB,sBAAuBA,EACvBC,eAAgBA,EAChBqB,sBAxBgB,KACpBhC,EAAawB,KAyBTF,EAACW,EAAAA,CAAWC,mBAAoBV,EAAyBtB,UAAWgB,IAEpEI,EAACa,EAAAA,CAAQ5B,SAAUA,EAAUY,WAAYE,IAGrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"CVCHint.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CVCHint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport { CVCHintProps } from './types';\n\nexport default function CVCHint({ frontCVC = false, fieldLabel }: CVCHintProps) {\n const hintClassnames = classNames({\n 'adyen-checkout__card__cvc__hint__wrapper': true,\n 'adyen-checkout__field__cvc--front-hint': !!frontCVC,\n 'adyen-checkout__field__cvc--back-hint': !frontCVC\n });\n\n return (\n <span className={hintClassnames}>\n <svg\n className={'adyen-checkout__card__cvc__hint adyen-checkout__card__cvc__hint--front'}\n width=\"27\"\n height=\"18\"\n viewBox=\"0 0 27 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden={!frontCVC}\n role={'img'}\n >\n <title id={'adyen-checkout__cvc__front-hint-img'}>{fieldLabel}</title>\n <path\n d=\"M0 3C0 1.34315 1.34315 0 3 0H24C25.6569 0 27 1.34315 27 3V15C27 16.6569 25.6569 18 24 18H3C1.34315 18 0 16.6569 0 15V3Z\"\n fill=\"#E6E9EB\"\n />\n <rect x=\"4\" y=\"12\" width=\"19\" height=\"2\" fill=\"#B9C4C9\" />\n <rect x=\"4\" y=\"4\" width=\"4\" height=\"4\" rx=\"1\" fill=\"white\" />\n <rect className={'adyen-checkout__card__cvc__hint__location'} x=\"16.5\" y=\"4.5\" width=\"7\" height=\"5\" rx=\"2.5\" stroke=\"#C12424\" />\n </svg>\n\n <svg\n className={'adyen-checkout__card__cvc__hint adyen-checkout__card__cvc__hint--back'}\n width=\"27\"\n height=\"18\"\n viewBox=\"0 0 27 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden={!!frontCVC}\n role={'img'}\n >\n <title id={'adyen-checkout__cvc__back-hint-img'}>{fieldLabel}</title>\n <path\n d=\"M27 4.00001V3.37501C27 2.4799 26.6444 1.62146 26.0115 0.988518C25.3786 0.355581 24.5201 0 23.625 0H3.375C2.47989 0 1.62145 0.355581 0.988514 0.988518C0.355579 1.62146 0 2.4799 0 3.37501V4.00001H27Z\"\n fill=\"#E6E9EB\"\n />\n <path\n d=\"M0 6.99994V14.6666C0 15.5507 0.355579 16.3985 0.988514 17.0237C1.62145 17.6488 2.47989 18 3.375 18H23.625C24.5201 18 25.3786 17.6488 26.0115 17.0237C26.6444 16.3985 27 15.5507 27 14.6666V6.99994H0Z\"\n fill=\"#E6E9EB\"\n />\n <rect y=\"4.00012\" width=\"27\" height=\"3.00001\" fill=\"#687282\" />\n <path\n d=\"M4 11C4 10.4477 4.44772 10 5 10H21C22.1046 10 23 10.8954 23 12C23 13.1046 22.1046 14 21 14H5C4.44771 14 4 13.5523 4 13V11Z\"\n fill=\"white\"\n />\n <rect className={'adyen-checkout__card__cvc__hint__location'} x=\"16.5\" y=\"9.5\" width=\"7\" height=\"5\" rx=\"2.5\" stroke=\"#C12424\" />\n </svg>\n </span>\n );\n}\n"],"names":["CVCHint","frontCVC","fieldLabel","hintClassnames","classNames","h","span","className","svg","width","height","viewBox","fill","xmlns","aria-hidden","role","title","id","path","d","rect","x","y","rx","stroke"],"mappings":"8HAIe,SAASA,GAAQC,SAAEA,GAAW,EAAKC,WAAEA,IAChD,MAAMC,EAAiBC,EAAW,CAC9B,4CAA4C,EAC5C,2CAA4CH,EAC5C,yCAA0CA,IAG9C,OACII,EAACC,OAAAA,CAAKC,UAAWJ,GACbE,EAACG,MAAAA,CACGD,UAAW,yEACXE,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,MAAM,6BACNC,eAAcb,EACdc,KAAM,OAENV,EAACW,QAAAA,CAAMC,GAAI,uCAAwCf,GACnDG,EAACa,OAAAA,CACGC,EAAE,0HACFP,KAAK,YAETP,EAACe,OAAAA,CAAKC,EAAE,IAAIC,EAAE,KAAKb,MAAM,KAAKC,OAAO,IAAIE,KAAK,YAC9CP,EAACe,OAAAA,CAAKC,EAAE,IAAIC,EAAE,IAAIb,MAAM,IAAIC,OAAO,IAAIa,GAAG,IAAIX,KAAK,UACnDP,EAACe,OAAAA,CAAKb,UAAW,4CAA6Cc,EAAE,OAAOC,EAAE,MAAMb,MAAM,IAAIC,OAAO,IAAIa,GAAG,MAAMC,OAAO,aAGxHnB,EAACG,MAAAA,CACGD,UAAW,wEACXE,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,MAAM,6BACNC,gBAAeb,EACfc,KAAM,OAENV,EAACW,QAAAA,CAAMC,GAAI,sCAAuCf,GAClDG,EAACa,OAAAA,CACGC,EAAE,wMACFP,KAAK,YAETP,EAACa,OAAAA,CACGC,EAAE,wMACFP,KAAK,YAETP,EAACe,OAAAA,CAAKE,EAAE,UAAUb,MAAM,KAAKC,OAAO,UAAUE,KAAK,YACnDP,EAACa,OAAAA,CACGC,EAAE,6HACFP,KAAK,UAETP,EAACe,OAAAA,CAAKb,UAAW,4CAA6Cc,EAAE,OAAOC,EAAE,MAAMb,MAAM,IAAIC,OAAO,IAAIa,GAAG,MAAMC,OAAO,aAIpI"}
1
+ {"version":3,"file":"CVCHint.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CVCHint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport { CVCHintProps } from './types';\n\nexport default function CVCHint({ frontCVC = false, fieldLabel }: Readonly<CVCHintProps>) {\n const hintClassnames = classNames({\n 'adyen-checkout__card__cvc__hint__wrapper': true,\n 'adyen-checkout__field__cvc--front-hint': !!frontCVC,\n 'adyen-checkout__field__cvc--back-hint': !frontCVC\n });\n\n return (\n <span className={hintClassnames}>\n <svg\n className={'adyen-checkout__card__cvc__hint adyen-checkout__card__cvc__hint--front'}\n width=\"27\"\n height=\"18\"\n viewBox=\"0 0 27 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden={!frontCVC}\n role={'img'}\n >\n <title id={'adyen-checkout__cvc__front-hint-img'}>{fieldLabel}</title>\n <path\n d=\"M0 3C0 1.34315 1.34315 0 3 0H24C25.6569 0 27 1.34315 27 3V15C27 16.6569 25.6569 18 24 18H3C1.34315 18 0 16.6569 0 15V3Z\"\n fill=\"#E6E9EB\"\n />\n <rect x=\"4\" y=\"12\" width=\"19\" height=\"2\" fill=\"#B9C4C9\" />\n <rect x=\"4\" y=\"4\" width=\"4\" height=\"4\" rx=\"1\" fill=\"white\" />\n <rect className={'adyen-checkout__card__cvc__hint__location'} x=\"16.5\" y=\"4.5\" width=\"7\" height=\"5\" rx=\"2.5\" stroke=\"#C12424\" />\n </svg>\n\n <svg\n className={'adyen-checkout__card__cvc__hint adyen-checkout__card__cvc__hint--back'}\n width=\"27\"\n height=\"18\"\n viewBox=\"0 0 27 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden={!!frontCVC}\n role={'img'}\n >\n <title id={'adyen-checkout__cvc__back-hint-img'}>{fieldLabel}</title>\n <path\n d=\"M27 4.00001V3.37501C27 2.4799 26.6444 1.62146 26.0115 0.988518C25.3786 0.355581 24.5201 0 23.625 0H3.375C2.47989 0 1.62145 0.355581 0.988514 0.988518C0.355579 1.62146 0 2.4799 0 3.37501V4.00001H27Z\"\n fill=\"#E6E9EB\"\n />\n <path\n d=\"M0 6.99994V14.6666C0 15.5507 0.355579 16.3985 0.988514 17.0237C1.62145 17.6488 2.47989 18 3.375 18H23.625C24.5201 18 25.3786 17.6488 26.0115 17.0237C26.6444 16.3985 27 15.5507 27 14.6666V6.99994H0Z\"\n fill=\"#E6E9EB\"\n />\n <rect y=\"4.00012\" width=\"27\" height=\"3.00001\" fill=\"#687282\" />\n <path\n d=\"M4 11C4 10.4477 4.44772 10 5 10H21C22.1046 10 23 10.8954 23 12C23 13.1046 22.1046 14 21 14H5C4.44771 14 4 13.5523 4 13V11Z\"\n fill=\"white\"\n />\n <rect className={'adyen-checkout__card__cvc__hint__location'} x=\"16.5\" y=\"9.5\" width=\"7\" height=\"5\" rx=\"2.5\" stroke=\"#C12424\" />\n </svg>\n </span>\n );\n}\n"],"names":["CVCHint","frontCVC","fieldLabel","hintClassnames","classNames","h","span","className","svg","width","height","viewBox","fill","xmlns","aria-hidden","role","title","id","path","d","rect","x","y","rx","stroke"],"mappings":"8HAIe,SAASA,GAAQC,SAAEA,GAAW,EAAKC,WAAEA,IAChD,MAAMC,EAAiBC,EAAW,CAC9B,4CAA4C,EAC5C,2CAA4CH,EAC5C,yCAA0CA,IAG9C,OACII,EAACC,OAAAA,CAAKC,UAAWJ,GACbE,EAACG,MAAAA,CACGD,UAAW,yEACXE,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,MAAM,6BACNC,eAAcb,EACdc,KAAM,OAENV,EAACW,QAAAA,CAAMC,GAAI,uCAAwCf,GACnDG,EAACa,OAAAA,CACGC,EAAE,0HACFP,KAAK,YAETP,EAACe,OAAAA,CAAKC,EAAE,IAAIC,EAAE,KAAKb,MAAM,KAAKC,OAAO,IAAIE,KAAK,YAC9CP,EAACe,OAAAA,CAAKC,EAAE,IAAIC,EAAE,IAAIb,MAAM,IAAIC,OAAO,IAAIa,GAAG,IAAIX,KAAK,UACnDP,EAACe,OAAAA,CAAKb,UAAW,4CAA6Cc,EAAE,OAAOC,EAAE,MAAMb,MAAM,IAAIC,OAAO,IAAIa,GAAG,MAAMC,OAAO,aAGxHnB,EAACG,MAAAA,CACGD,UAAW,wEACXE,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,MAAM,6BACNC,gBAAeb,EACfc,KAAM,OAENV,EAACW,QAAAA,CAAMC,GAAI,sCAAuCf,GAClDG,EAACa,OAAAA,CACGC,EAAE,wMACFP,KAAK,YAETP,EAACa,OAAAA,CACGC,EAAE,wMACFP,KAAK,YAETP,EAACe,OAAAA,CAAKE,EAAE,UAAUb,MAAM,KAAKC,OAAO,UAAUE,KAAK,YACnDP,EAACa,OAAAA,CACGC,EAAE,6HACFP,KAAK,UAETP,EAACe,OAAAA,CAAKb,UAAW,4CAA6Cc,EAAE,OAAOC,EAAE,MAAMb,MAAM,IAAIC,OAAO,IAAIa,GAAG,MAAMC,OAAO,aAIpI"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardFields.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardFields.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardNumber from './CardNumber';\nimport CVC from './CVC';\nimport ExpirationDate from './ExpirationDate';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CardFieldsProps } from './types';\nimport classNames from 'classnames';\nimport {\n BRAND_ICON_UI_EXCLUSION_LIST,\n DATE_POLICY_HIDDEN,\n ENCRYPTED_CARD_NUMBER,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_SECURITY_CODE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport AvailableBrands from './AvailableBrands';\nimport './CardFields.scss';\n\nexport default function CardFields({\n brand,\n brandsIcons,\n brandsConfiguration,\n dualBrandingElements,\n errors,\n focusedElement,\n hasCVC,\n cvcPolicy,\n expiryDatePolicy,\n onFocusField,\n showBrandIcon,\n valid,\n showContextualElement\n}: CardFieldsProps) {\n const { i18n } = useCoreContext();\n\n const getError = (errors, fieldType) => {\n return errors[fieldType] ? i18n.get(errors[fieldType]) : null;\n };\n\n // A set of brands filtered to exclude those that can never appear in the UI\n const allowedBrands = brandsIcons?.filter(brandsIcons => !BRAND_ICON_UI_EXCLUSION_LIST?.includes(brandsIcons.name));\n const isAmex = brand === 'amex';\n const cvcContextualText = isAmex\n ? i18n.get('creditCard.securityCode.contextualText.4digits')\n : i18n.get('creditCard.securityCode.contextualText.3digits');\n\n return (\n <div className=\"adyen-checkout__card__form\">\n <CardNumber\n brand={brand}\n brandsConfiguration={brandsConfiguration}\n error={getError(errors, ENCRYPTED_CARD_NUMBER)}\n focused={focusedElement === ENCRYPTED_CARD_NUMBER}\n isValid={!!valid.encryptedCardNumber}\n label={i18n.get('creditCard.cardNumber.label')}\n onFocusField={onFocusField}\n filled={!!errors.encryptedCardNumber || !!valid.encryptedCardNumber}\n showBrandIcon={showBrandIcon}\n dualBrandingElements={dualBrandingElements}\n />\n\n <AvailableBrands activeBrand={brand} brands={allowedBrands} />\n\n <div\n className={classNames('adyen-checkout__card__exp-cvc', {\n 'adyen-checkout__card__exp-cvc__exp-date__input--hidden': expiryDatePolicy === DATE_POLICY_HIDDEN\n })}\n >\n <ExpirationDate\n classNameModifiers={['col-50']}\n error={getError(errors, ENCRYPTED_EXPIRY_DATE)}\n focused={focusedElement === ENCRYPTED_EXPIRY_DATE}\n isValid={!!valid.encryptedExpiryMonth && !!valid.encryptedExpiryYear}\n filled={!!errors.encryptedExpiryDate || !!valid.encryptedExpiryYear}\n label={i18n.get('creditCard.expiryDate.label')}\n onFocusField={onFocusField}\n expiryDatePolicy={expiryDatePolicy}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('creditCard.expiryDate.contextualText')}\n />\n\n {hasCVC && (\n <CVC\n classNameModifiers={['col-50']}\n error={getError(errors, ENCRYPTED_SECURITY_CODE)}\n focused={focusedElement === ENCRYPTED_SECURITY_CODE}\n cvcPolicy={cvcPolicy}\n isValid={!!valid.encryptedSecurityCode}\n filled={!!errors.encryptedSecurityCode || !!valid.encryptedSecurityCode}\n label={i18n.get('creditCard.securityCode.label')}\n onFocusField={onFocusField}\n frontCVC={isAmex}\n showContextualElement={showContextualElement}\n contextualText={cvcContextualText}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["CardFields","brand","brandsIcons","brandsConfiguration","dualBrandingElements","errors","focusedElement","hasCVC","cvcPolicy","expiryDatePolicy","onFocusField","showBrandIcon","valid","showContextualElement","i18n","useCoreContext","getError","fieldType","get","allowedBrands","filter","BRAND_ICON_UI_EXCLUSION_LIST","includes","name","isAmex","cvcContextualText","h","div","className","CardNumber","error","ENCRYPTED_CARD_NUMBER","focused","isValid","encryptedCardNumber","label","filled","AvailableBrands","activeBrand","brands","classNames","DATE_POLICY_HIDDEN","ExpirationDate","classNameModifiers","ENCRYPTED_EXPIRY_DATE","encryptedExpiryMonth","encryptedExpiryYear","encryptedExpiryDate","contextualText","CVC","ENCRYPTED_SECURITY_CODE","encryptedSecurityCode","frontCVC"],"mappings":"uiBAiBe,SAASA,GAAWC,MAC/BA,EAAKC,YACLA,EAAWC,oBACXA,EAAmBC,qBACnBA,EAAoBC,OACpBA,EAAMC,eACNA,EAAcC,OACdA,EAAMC,UACNA,EAASC,iBACTA,EAAgBC,aAChBA,EAAYC,cACZA,EAAaC,MACbA,EAAKC,sBACLA,IAEA,MAAMC,KAAEA,GAASC,IAEXC,EAAW,CAACX,EAAQY,IACfZ,EAAOY,GAAaH,EAAKI,IAAIb,EAAOY,IAAc,KAIvDE,EAAgBjB,eAAAA,EAAakB,OAAOlB,KAAgBmB,aAAAA,EAAAA,EAA8BC,SAASpB,EAAYqB,QACvGC,EAAmB,SAAVvB,EACTwB,EAAoBD,EACpBV,EAAKI,IAAI,kDACTJ,EAAKI,IAAI,kDAEf,OACIQ,EAACC,MAAAA,CAAIC,UAAU,8BACXF,EAACG,EAAAA,CACG5B,MAAOA,EACPE,oBAAqBA,EACrB2B,MAAOd,EAASX,EAAQ0B,GACxBC,QAAS1B,IAAmByB,EAC5BE,UAAWrB,EAAMsB,oBACjBC,MAAOrB,EAAKI,IAAI,+BAChBR,aAAcA,EACd0B,SAAU/B,EAAO6B,uBAAyBtB,EAAMsB,oBAChDvB,cAAeA,EACfP,qBAAsBA,IAG1BsB,EAACW,EAAAA,CAAgBC,YAAarC,EAAOsC,OAAQpB,IAE7CO,EAACC,MAAAA,CACGC,UAAWY,EAAW,gCAAiC,CACnD,yDAA0D/B,IAAqBgC,KAGnFf,EAACgB,EAAAA,CACGC,mBAAoB,CAAC,UACrBb,MAAOd,EAASX,EAAQuC,GACxBZ,QAAS1B,IAAmBsC,EAC5BX,UAAWrB,EAAMiC,wBAA0BjC,EAAMkC,oBACjDV,SAAU/B,EAAO0C,uBAAyBnC,EAAMkC,oBAChDX,MAAOrB,EAAKI,IAAI,+BAChBR,aAAcA,EACdD,iBAAkBA,EAClBI,sBAAuBA,EACvBmC,eAAgBlC,EAAKI,IAAI,0CAG5BX,GACGmB,EAACuB,EAAAA,CACGN,mBAAoB,CAAC,UACrBb,MAAOd,EAASX,EAAQ6C,GACxBlB,QAAS1B,IAAmB4C,EAC5B1C,UAAWA,EACXyB,UAAWrB,EAAMuC,sBACjBf,SAAU/B,EAAO8C,yBAA2BvC,EAAMuC,sBAClDhB,MAAOrB,EAAKI,IAAI,iCAChBR,aAAcA,EACd0C,SAAU5B,EACVX,sBAAuBA,EACvBmC,eAAgBvB,KAMxC"}
1
+ {"version":3,"file":"CardFields.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardFields.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardNumber from './CardNumber';\nimport CVC from './CVC';\nimport ExpirationDate from './ExpirationDate';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CardFieldsProps } from './types';\nimport classNames from 'classnames';\nimport {\n BRAND_ICON_UI_EXCLUSION_LIST,\n DATE_POLICY_HIDDEN,\n ENCRYPTED_CARD_NUMBER,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_SECURITY_CODE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport AvailableBrands from './AvailableBrands';\nimport './CardFields.scss';\n\nexport default function CardFields({\n brand,\n brandsIcons,\n brandsConfiguration,\n dualBrandingElements,\n errors,\n focusedElement,\n hasCVC,\n cvcPolicy,\n expiryDatePolicy,\n onFocusField,\n showBrandIcon,\n valid,\n showContextualElement\n}: Readonly<CardFieldsProps>) {\n const { i18n } = useCoreContext();\n\n const getError = (errors, fieldType) => {\n return errors[fieldType] ? i18n.get(errors[fieldType]) : null;\n };\n\n // A set of brands filtered to exclude those that can never appear in the UI\n const allowedBrands = brandsIcons?.filter(brandsIcons => !BRAND_ICON_UI_EXCLUSION_LIST?.includes(brandsIcons.name));\n const isAmex = brand === 'amex';\n const cvcContextualText = isAmex\n ? i18n.get('creditCard.securityCode.contextualText.4digits')\n : i18n.get('creditCard.securityCode.contextualText.3digits');\n\n return (\n <div className=\"adyen-checkout__card__form\">\n <CardNumber\n brand={brand}\n brandsConfiguration={brandsConfiguration}\n error={getError(errors, ENCRYPTED_CARD_NUMBER)}\n focused={focusedElement === ENCRYPTED_CARD_NUMBER}\n isValid={!!valid.encryptedCardNumber}\n label={i18n.get('creditCard.cardNumber.label')}\n onFocusField={onFocusField}\n filled={!!errors.encryptedCardNumber || !!valid.encryptedCardNumber}\n showBrandIcon={showBrandIcon}\n dualBrandingElements={dualBrandingElements}\n />\n\n <AvailableBrands activeBrand={brand} brands={allowedBrands} />\n\n <div\n className={classNames('adyen-checkout__card__exp-cvc', {\n 'adyen-checkout__card__exp-cvc__exp-date__input--hidden': expiryDatePolicy === DATE_POLICY_HIDDEN\n })}\n >\n <ExpirationDate\n classNameModifiers={['col-50']}\n error={getError(errors, ENCRYPTED_EXPIRY_DATE)}\n focused={focusedElement === ENCRYPTED_EXPIRY_DATE}\n isValid={!!valid.encryptedExpiryMonth && !!valid.encryptedExpiryYear}\n filled={!!errors.encryptedExpiryDate || !!valid.encryptedExpiryYear}\n label={i18n.get('creditCard.expiryDate.label')}\n onFocusField={onFocusField}\n expiryDatePolicy={expiryDatePolicy}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('creditCard.expiryDate.contextualText')}\n />\n\n {hasCVC && (\n <CVC\n classNameModifiers={['col-50']}\n error={getError(errors, ENCRYPTED_SECURITY_CODE)}\n focused={focusedElement === ENCRYPTED_SECURITY_CODE}\n cvcPolicy={cvcPolicy}\n isValid={!!valid.encryptedSecurityCode}\n filled={!!errors.encryptedSecurityCode || !!valid.encryptedSecurityCode}\n label={i18n.get('creditCard.securityCode.label')}\n onFocusField={onFocusField}\n frontCVC={isAmex}\n showContextualElement={showContextualElement}\n contextualText={cvcContextualText}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["CardFields","brand","brandsIcons","brandsConfiguration","dualBrandingElements","errors","focusedElement","hasCVC","cvcPolicy","expiryDatePolicy","onFocusField","showBrandIcon","valid","showContextualElement","i18n","useCoreContext","getError","fieldType","get","allowedBrands","filter","BRAND_ICON_UI_EXCLUSION_LIST","includes","name","isAmex","cvcContextualText","h","div","className","CardNumber","error","ENCRYPTED_CARD_NUMBER","focused","isValid","encryptedCardNumber","label","filled","AvailableBrands","activeBrand","brands","classNames","DATE_POLICY_HIDDEN","ExpirationDate","classNameModifiers","ENCRYPTED_EXPIRY_DATE","encryptedExpiryMonth","encryptedExpiryYear","encryptedExpiryDate","contextualText","CVC","ENCRYPTED_SECURITY_CODE","encryptedSecurityCode","frontCVC"],"mappings":"uiBAiBe,SAASA,GAAWC,MAC/BA,EAAKC,YACLA,EAAWC,oBACXA,EAAmBC,qBACnBA,EAAoBC,OACpBA,EAAMC,eACNA,EAAcC,OACdA,EAAMC,UACNA,EAASC,iBACTA,EAAgBC,aAChBA,EAAYC,cACZA,EAAaC,MACbA,EAAKC,sBACLA,IAEA,MAAMC,KAAEA,GAASC,IAEXC,EAAW,CAACX,EAAQY,IACfZ,EAAOY,GAAaH,EAAKI,IAAIb,EAAOY,IAAc,KAIvDE,EAAgBjB,eAAAA,EAAakB,OAAOlB,KAAgBmB,aAAAA,EAAAA,EAA8BC,SAASpB,EAAYqB,QACvGC,EAAmB,SAAVvB,EACTwB,EAAoBD,EACpBV,EAAKI,IAAI,kDACTJ,EAAKI,IAAI,kDAEf,OACIQ,EAACC,MAAAA,CAAIC,UAAU,8BACXF,EAACG,EAAAA,CACG5B,MAAOA,EACPE,oBAAqBA,EACrB2B,MAAOd,EAASX,EAAQ0B,GACxBC,QAAS1B,IAAmByB,EAC5BE,UAAWrB,EAAMsB,oBACjBC,MAAOrB,EAAKI,IAAI,+BAChBR,aAAcA,EACd0B,SAAU/B,EAAO6B,uBAAyBtB,EAAMsB,oBAChDvB,cAAeA,EACfP,qBAAsBA,IAG1BsB,EAACW,EAAAA,CAAgBC,YAAarC,EAAOsC,OAAQpB,IAE7CO,EAACC,MAAAA,CACGC,UAAWY,EAAW,gCAAiC,CACnD,yDAA0D/B,IAAqBgC,KAGnFf,EAACgB,EAAAA,CACGC,mBAAoB,CAAC,UACrBb,MAAOd,EAASX,EAAQuC,GACxBZ,QAAS1B,IAAmBsC,EAC5BX,UAAWrB,EAAMiC,wBAA0BjC,EAAMkC,oBACjDV,SAAU/B,EAAO0C,uBAAyBnC,EAAMkC,oBAChDX,MAAOrB,EAAKI,IAAI,+BAChBR,aAAcA,EACdD,iBAAkBA,EAClBI,sBAAuBA,EACvBmC,eAAgBlC,EAAKI,IAAI,0CAG5BX,GACGmB,EAACuB,EAAAA,CACGN,mBAAoB,CAAC,UACrBb,MAAOd,EAASX,EAAQ6C,GACxBlB,QAAS1B,IAAmB4C,EAC5B1C,UAAWA,EACXyB,UAAWrB,EAAMuC,sBACjBf,SAAU/B,EAAO8C,yBAA2BvC,EAAMuC,sBAClDhB,MAAOrB,EAAKI,IAAI,iCAChBR,aAAcA,EACd0C,SAAU5B,EACVX,sBAAuBA,EACvBmC,eAAgBvB,KAMxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardHolderName.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardHolderName.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CardHolderNameProps } from './types';\nimport InputText from '../../../../internal/FormFields/InputText';\nimport { CREDITCARD_HOLDER_NAME_INVALID } from '../../../../../core/Errors/constants';\n\nexport default function CardHolderName({\n onBlur,\n onInput,\n placeholder,\n value,\n required,\n error = false,\n isValid,\n disabled,\n onFieldFocusAnalytics,\n onFieldBlurAnalytics\n}: CardHolderNameProps) {\n const { i18n } = useCoreContext();\n\n return (\n <Field\n label={i18n.get('creditCard.holderName')}\n className={'adyen-checkout__card__holderName'}\n errorMessage={error && i18n.get(CREDITCARD_HOLDER_NAME_INVALID)}\n isValid={!!isValid}\n name={'holderName'}\n i18n={i18n}\n onFocus={e => onFieldFocusAnalytics('holderName', e)}\n onBlur={e => onFieldBlurAnalytics('holderName', e)}\n >\n <InputText\n name={'holderName'}\n className=\"adyen-checkout__card__holderName__input adyen-checkout__input\"\n placeholder={placeholder}\n autocomplete={'cc-name'}\n {...{ value, required, onBlur, onInput, disabled }}\n />\n </Field>\n );\n}\n"],"names":["CardHolderName","onBlur","onInput","placeholder","value","required","error","isValid","disabled","onFieldFocusAnalytics","onFieldBlurAnalytics","i18n","useCoreContext","h","Field","label","get","className","errorMessage","CREDITCARD_HOLDER_NAME_INVALID","name","onFocus","e","InputText","autocomplete"],"mappings":"8WAOe,SAASA,GAAeC,OACnCA,EAAMC,QACNA,EAAOC,YACPA,EAAWC,MACXA,EAAKC,SACLA,EAAQC,MACRA,GAAQ,EAAKC,QACbA,EAAOC,SACPA,EAAQC,sBACRA,EAAqBC,qBACrBA,IAEA,MAAMC,KAAEA,GAASC,IAEjB,OACIC,EAACC,EAAAA,CACGC,MAAOJ,EAAKK,IAAI,yBAChBC,UAAW,mCACXC,aAAcZ,GAASK,EAAKK,IAAIG,GAChCZ,UAAWA,EACXa,KAAM,aACNT,KAAMA,EACNU,QAASC,GAAKb,EAAsB,aAAca,GAClDrB,OAAQqB,GAAKZ,EAAqB,aAAcY,IAEhDT,EAACU,EAAAA,CACGH,KAAM,aACNH,UAAU,gEACVd,YAAaA,EACbqB,aAAc,UACRpB,QAAOC,WAAUJ,SAAQC,UAASM,aAIxD"}
1
+ {"version":3,"file":"CardHolderName.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardHolderName.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CardHolderNameProps } from './types';\nimport InputText from '../../../../internal/FormFields/InputText';\nimport { CREDITCARD_HOLDER_NAME_INVALID } from '../../../../../core/Errors/constants';\n\nexport default function CardHolderName({\n onBlur,\n onInput,\n placeholder,\n value,\n required,\n error = false,\n isValid,\n disabled,\n onFieldFocusAnalytics,\n onFieldBlurAnalytics\n}: Readonly<CardHolderNameProps>) {\n const { i18n } = useCoreContext();\n\n return (\n <Field\n label={i18n.get('creditCard.holderName')}\n className={'adyen-checkout__card__holderName'}\n errorMessage={error && i18n.get(CREDITCARD_HOLDER_NAME_INVALID)}\n isValid={!!isValid}\n name={'holderName'}\n i18n={i18n}\n onFocus={e => onFieldFocusAnalytics('holderName', e)}\n onBlur={e => onFieldBlurAnalytics('holderName', e)}\n >\n <InputText\n name={'holderName'}\n className=\"adyen-checkout__card__holderName__input adyen-checkout__input\"\n placeholder={placeholder}\n autocomplete={'cc-name'}\n {...{ value, required, onBlur, onInput, disabled }}\n />\n </Field>\n );\n}\n"],"names":["CardHolderName","onBlur","onInput","placeholder","value","required","error","isValid","disabled","onFieldFocusAnalytics","onFieldBlurAnalytics","i18n","useCoreContext","h","Field","label","get","className","errorMessage","CREDITCARD_HOLDER_NAME_INVALID","name","onFocus","e","InputText","autocomplete"],"mappings":"8WAOe,SAASA,GAAeC,OACnCA,EAAMC,QACNA,EAAOC,YACPA,EAAWC,MACXA,EAAKC,SACLA,EAAQC,MACRA,GAAQ,EAAKC,QACbA,EAAOC,SACPA,EAAQC,sBACRA,EAAqBC,qBACrBA,IAEA,MAAMC,KAAEA,GAASC,IAEjB,OACIC,EAACC,EAAAA,CACGC,MAAOJ,EAAKK,IAAI,yBAChBC,UAAW,mCACXC,aAAcZ,GAASK,EAAKK,IAAIG,GAChCZ,UAAWA,EACXa,KAAM,aACNT,KAAMA,EACNU,QAASC,GAAKb,EAAsB,aAAca,GAClDrB,OAAQqB,GAAKZ,EAAqB,aAAcY,IAEhDT,EAACU,EAAAA,CACGH,KAAM,aACNH,UAAU,gEACVd,YAAaA,EACbqB,aAAc,UACRpB,QAAOC,WAAUJ,SAAQC,UAASM,aAIxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"CardNumber.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardNumber.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport BrandIcon from './BrandIcon';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CardNumberProps } from './types';\nimport DataSfSpan from './DataSfSpan';\nimport { ENCRYPTED_CARD_NUMBER } from '../../../../internal/SecuredFields/lib/constants';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\nimport './CardNumber.scss';\n\nexport default function CardNumber(props: CardNumberProps) {\n const { i18n } = useCoreContext();\n const { error = '', isValid = false, onFocusField = () => {}, dualBrandingElements } = props;\n\n const handleIconClick = () => {\n onFocusField(ENCRYPTED_CARD_NUMBER);\n };\n\n return (\n <Field\n label={props.label}\n focused={props.focused}\n filled={props.filled}\n classNameModifiers={['cardNumber']}\n onFocusField={() => onFocusField(ENCRYPTED_CARD_NUMBER)}\n errorMessage={error}\n isValid={isValid}\n dir={'ltr'}\n name={ENCRYPTED_CARD_NUMBER}\n showValidIcon={false}\n i18n={i18n}\n contextVisibleToScreenReader={false} // securedFields have their own, internal, aria-describedby element\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n onInputContainerClick={handleIconClick}\n >\n <DataSfSpan\n encryptedFieldType={ENCRYPTED_CARD_NUMBER}\n className={classNames({\n 'adyen-checkout__input': true,\n 'adyen-checkout__input--large': true,\n 'adyen-checkout__card__cardNumber__input': true,\n 'adyen-checkout__input--error': error,\n 'adyen-checkout__input--focus': props.focused,\n 'adyen-checkout__input--valid': isValid,\n 'adyen-checkout__card__cardNumber__input--noBrand': !props.showBrandIcon\n })}\n ></DataSfSpan>\n\n {props.showBrandIcon && !dualBrandingElements && <BrandIcon brandsConfiguration={props.brandsConfiguration} brand={props.brand} />}\n\n {dualBrandingElements && !error && (\n <div className={classNames(['adyen-checkout__card__dual-branding__icons'])}>\n {dualBrandingElements.map(element => (\n <BrandIcon key={element.id} brand={element.id} brandsConfiguration={props.brandsConfiguration} />\n ))}\n </div>\n )}\n </Field>\n );\n}\n"],"names":["CardNumber","props","i18n","useCoreContext","error","isValid","onFocusField","dualBrandingElements","h","Field","label","focused","filled","classNameModifiers","ENCRYPTED_CARD_NUMBER","errorMessage","dir","name","showValidIcon","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","onInputContainerClick","DataSfSpan","encryptedFieldType","className","classNames","showBrandIcon","BrandIcon","brandsConfiguration","brand","div","map","element","key","id"],"mappings":"ueAWe,SAASA,EAAWC,GAC/B,MAAMC,KAAEA,GAASC,KACXC,MAAEA,EAAQ,GAAEC,QAAEA,GAAU,EAAKC,aAAEA,EAAe,OAAQC,qBAAEA,GAAyBN,EAMvF,OACIO,EAACC,EAAAA,CACGC,MAAOT,EAAMS,MACbC,QAASV,EAAMU,QACfC,OAAQX,EAAMW,OACdC,mBAAoB,CAAC,cACrBP,aAAc,IAAMA,EAAaQ,GACjCC,aAAcX,EACdC,QAASA,EACTW,IAAK,MACLC,KAAMH,EACNI,eAAe,EACfhB,KAAMA,EACNiB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,EAC1BC,sBApBgB,KACpBjB,EAAaQ,KAqBTN,EAACgB,EAAAA,CACGC,mBAAoBX,EACpBY,UAAWC,EAAW,CAClB,yBAAyB,EACzB,gCAAgC,EAChC,2CAA2C,EAC3C,+BAAgCvB,EAChC,+BAAgCH,EAAMU,QACtC,+BAAgCN,EAChC,oDAAqDJ,EAAM2B,kBAIlE3B,EAAM2B,gBAAkBrB,GAAwBC,EAACqB,EAAAA,CAAUC,oBAAqB7B,EAAM6B,oBAAqBC,MAAO9B,EAAM8B,QAExHxB,IAAyBH,GACtBI,EAACwB,MAAAA,CAAIN,UAAWC,EAAW,CAAC,gDACvBpB,EAAqB0B,IAAIC,GACtB1B,EAACqB,EAAAA,CAAUM,IAAKD,EAAQE,GAAIL,MAAOG,EAAQE,GAAIN,oBAAqB7B,EAAM6B,wBAMlG"}
1
+ {"version":3,"file":"CardNumber.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardNumber.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport BrandIcon from './BrandIcon';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { CardNumberProps } from './types';\nimport DataSfSpan from './DataSfSpan';\nimport { ENCRYPTED_CARD_NUMBER } from '../../../../internal/SecuredFields/lib/constants';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\nimport './CardNumber.scss';\n\nexport default function CardNumber(props: Readonly<CardNumberProps>) {\n const { i18n } = useCoreContext();\n const { error = '', isValid = false, onFocusField = () => {}, dualBrandingElements } = props;\n\n const handleIconClick = () => {\n onFocusField(ENCRYPTED_CARD_NUMBER);\n };\n\n return (\n <Field\n label={props.label}\n focused={props.focused}\n filled={props.filled}\n classNameModifiers={['cardNumber']}\n onFocusField={() => onFocusField(ENCRYPTED_CARD_NUMBER)}\n errorMessage={error}\n isValid={isValid}\n dir={'ltr'}\n name={ENCRYPTED_CARD_NUMBER}\n showValidIcon={false}\n i18n={i18n}\n contextVisibleToScreenReader={false} // securedFields have their own, internal, aria-describedby element\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n onInputContainerClick={handleIconClick}\n >\n <DataSfSpan\n encryptedFieldType={ENCRYPTED_CARD_NUMBER}\n className={classNames({\n 'adyen-checkout__input': true,\n 'adyen-checkout__input--large': true,\n 'adyen-checkout__card__cardNumber__input': true,\n 'adyen-checkout__input--error': error,\n 'adyen-checkout__input--focus': props.focused,\n 'adyen-checkout__input--valid': isValid,\n 'adyen-checkout__card__cardNumber__input--noBrand': !props.showBrandIcon\n })}\n ></DataSfSpan>\n\n {props.showBrandIcon && !dualBrandingElements && <BrandIcon brandsConfiguration={props.brandsConfiguration} brand={props.brand} />}\n\n {dualBrandingElements && !error && (\n <div className={classNames(['adyen-checkout__card__dual-branding__icons'])}>\n {dualBrandingElements.map(element => (\n <BrandIcon key={element.id} brand={element.id} brandsConfiguration={props.brandsConfiguration} />\n ))}\n </div>\n )}\n </Field>\n );\n}\n"],"names":["CardNumber","props","i18n","useCoreContext","error","isValid","onFocusField","dualBrandingElements","h","Field","label","focused","filled","classNameModifiers","ENCRYPTED_CARD_NUMBER","errorMessage","dir","name","showValidIcon","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","onInputContainerClick","DataSfSpan","encryptedFieldType","className","classNames","showBrandIcon","BrandIcon","brandsConfiguration","brand","div","map","element","key","id"],"mappings":"ueAWe,SAASA,EAAWC,GAC/B,MAAMC,KAAEA,GAASC,KACXC,MAAEA,EAAQ,GAAEC,QAAEA,GAAU,EAAKC,aAAEA,EAAe,OAAQC,qBAAEA,GAAyBN,EAMvF,OACIO,EAACC,EAAAA,CACGC,MAAOT,EAAMS,MACbC,QAASV,EAAMU,QACfC,OAAQX,EAAMW,OACdC,mBAAoB,CAAC,cACrBP,aAAc,IAAMA,EAAaQ,GACjCC,aAAcX,EACdC,QAASA,EACTW,IAAK,MACLC,KAAMH,EACNI,eAAe,EACfhB,KAAMA,EACNiB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,EAC1BC,sBApBgB,KACpBjB,EAAaQ,KAqBTN,EAACgB,EAAAA,CACGC,mBAAoBX,EACpBY,UAAWC,EAAW,CAClB,yBAAyB,EACzB,gCAAgC,EAChC,2CAA2C,EAC3C,+BAAgCvB,EAChC,+BAAgCH,EAAMU,QACtC,+BAAgCN,EAChC,oDAAqDJ,EAAM2B,kBAIlE3B,EAAM2B,gBAAkBrB,GAAwBC,EAACqB,EAAAA,CAAUC,oBAAqB7B,EAAM6B,oBAAqBC,MAAO9B,EAAM8B,QAExHxB,IAAyBH,GACtBI,EAACwB,MAAAA,CAAIN,UAAWC,EAAW,CAAC,gDACvBpB,EAAqB0B,IAAIC,GACtB1B,EAACqB,EAAAA,CAAUM,IAAKD,EAAQE,GAAIL,MAAOG,EAAQE,GAAIN,oBAAqB7B,EAAM6B,wBAMlG"}