@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":"DataSfSpan.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/DataSfSpan.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { DATA_ENCRYPTED_FIELD_ATTR, DATA_INFO, DATA_UID } from '../../../../internal/SecuredFields/lib/constants';\nimport { SfSpanProps } from './types';\n\n/**\n * Extract the relevant props and write them as attributes to the span that will contain the securedFields iframe\n * Specifically exists to make the uniqueId created by the Field comp accessible to the SFP via a data-uid attr\n */\nexport default function DataSfSpan(props: SfSpanProps) {\n const opts = {\n [DATA_ENCRYPTED_FIELD_ATTR]: props.encryptedFieldType,\n [DATA_INFO]: props['data-info'],\n [DATA_UID]: props.uniqueId,\n className: props.className\n };\n return <span {...opts}>{props.children}</span>;\n}\n"],"names":["DataSfSpan","props","opts","DATA_ENCRYPTED_FIELD_ATTR","encryptedFieldType","DATA_INFO","DATA_UID","uniqueId","className","h","span","children"],"mappings":"2MAQe,SAASA,EAAWC,GAC/B,MAAMC,EAAO,CACTC,CAACA,GAA4BF,EAAMG,mBACnCC,CAACA,GAAYJ,EAAM,aACnBK,CAACA,GAAWL,EAAMM,SAClBC,UAAWP,EAAMO,WAErB,OAAOC,EAACC,OAASR,EAAOD,EAAMU,SAClC"}
1
+ {"version":3,"file":"DataSfSpan.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/DataSfSpan.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { DATA_ENCRYPTED_FIELD_ATTR, DATA_INFO, DATA_UID } from '../../../../internal/SecuredFields/lib/constants';\nimport { SfSpanProps } from './types';\n\n/**\n * Extract the relevant props and write them as attributes to the span that will contain the securedFields iframe\n * Specifically exists to make the uniqueId created by the Field comp accessible to the SFP via a data-uid attr\n */\nexport default function DataSfSpan(props: Readonly<SfSpanProps>) {\n const opts = {\n [DATA_ENCRYPTED_FIELD_ATTR]: props.encryptedFieldType,\n [DATA_INFO]: props['data-info'],\n [DATA_UID]: props.uniqueId,\n className: props.className\n };\n return <span {...opts}>{props.children}</span>;\n}\n"],"names":["DataSfSpan","props","opts","DATA_ENCRYPTED_FIELD_ATTR","encryptedFieldType","DATA_INFO","DATA_UID","uniqueId","className","h","span","children"],"mappings":"2MAQe,SAASA,EAAWC,GAC/B,MAAMC,EAAO,CACTC,CAACA,GAA4BF,EAAMG,mBACnCC,CAACA,GAAYJ,EAAM,aACnBK,CAACA,GAAWL,EAAMM,SAClBC,UAAWP,EAAMO,WAErB,OAAOC,EAACC,OAASR,EAAOD,EAAMU,SAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpirationDate.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/ExpirationDate.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { ExpirationDateProps } from './types';\nimport DataSfSpan from './DataSfSpan';\nimport {\n DATE_POLICY_HIDDEN,\n DATE_POLICY_OPTIONAL,\n DATE_POLICY_REQUIRED,\n ENCRYPTED_EXPIRY_DATE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport useImage from '../../../../../core/Context/useImage';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\nimport Brand from '../../../../internal/Brand';\nimport './ExpirationDate.scss';\n\nexport default function ExpirationDate(props: ExpirationDateProps) {\n const {\n label,\n focused,\n filled,\n onFocusField,\n className = '',\n classNameModifiers = [],\n error = '',\n isValid = false,\n expiryDatePolicy = DATE_POLICY_REQUIRED,\n showContextualElement,\n contextualText\n } = props;\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const fieldClassnames = classNames(className, {\n 'adyen-checkout__field__exp-date': true,\n 'adyen-checkout__card__exp-date__input--hidden': expiryDatePolicy === DATE_POLICY_HIDDEN,\n 'adyen-checkout__field__exp-date--optional': expiryDatePolicy === DATE_POLICY_OPTIONAL\n });\n\n const fieldLabel = expiryDatePolicy !== DATE_POLICY_OPTIONAL ? label : `${label} ${i18n.get('field.title.optional')}`;\n\n const imageDescription = `${fieldLabel} ${contextualText}`;\n\n return (\n <Field\n label={fieldLabel}\n classNameModifiers={[...classNameModifiers, 'expiryDate']}\n className={fieldClassnames}\n focused={focused}\n filled={filled}\n onFocusField={() => onFocusField(ENCRYPTED_EXPIRY_DATE)}\n errorMessage={error}\n isValid={isValid}\n dir={'ltr'}\n name={'encryptedExpiryDate'}\n i18n={i18n}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n showContextualElement={showContextualElement}\n contextualText={contextualText}\n onInputContainerClick={() => {\n onFocusField(ENCRYPTED_EXPIRY_DATE);\n }}\n >\n <DataSfSpan\n encryptedFieldType={ENCRYPTED_EXPIRY_DATE}\n className={classNames('adyen-checkout__input', 'adyen-checkout__input--small', 'adyen-checkout__card__exp-date__input', {\n 'adyen-checkout__input--error': error,\n 'adyen-checkout__input--focus': focused,\n 'adyen-checkout__input--valid': isValid\n })}\n />\n <Brand\n wrapperClassName={\n error || isValid\n ? classNames('adyen-checkout__field__exp-date_hint_wrapper', 'adyen-checkout__field__exp-date_hint_wrapper--hidden')\n : 'adyen-checkout__field__exp-date_hint_wrapper'\n }\n imgClassName={'adyen-checkout__field__exp-date_hint'}\n alt={imageDescription}\n url={getImage({ imageFolder: 'components/' })('expiry_date_hint')}\n />\n </Field>\n );\n}\n"],"names":["ExpirationDate","props","label","focused","filled","onFocusField","className","classNameModifiers","error","isValid","expiryDatePolicy","DATE_POLICY_REQUIRED","showContextualElement","contextualText","i18n","useCoreContext","getImage","useImage","fieldClassnames","classNames","DATE_POLICY_HIDDEN","DATE_POLICY_OPTIONAL","fieldLabel","get","imageDescription","h","Field","ENCRYPTED_EXPIRY_DATE","errorMessage","dir","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","onInputContainerClick","DataSfSpan","encryptedFieldType","Brand","wrapperClassName","imgClassName","alt","url","imageFolder"],"mappings":"+nBAiBe,SAASA,EAAeC,GACnC,MAAMC,MACFA,EAAKC,QACLA,EAAOC,OACPA,EAAMC,aACNA,EAAYC,UACZA,EAAY,GAAEC,mBACdA,EAAqB,GAAEC,MACvBA,EAAQ,GAAEC,QACVA,GAAU,EAAKC,iBACfA,EAAmBC,EAAoBC,sBACvCA,EAAqBC,eACrBA,GACAZ,GACEa,KAAEA,GAASC,IACXC,EAAWC,IAEXC,EAAkBC,EAAWb,EAAW,CAC1C,mCAAmC,EACnC,gDAAiDI,IAAqBU,EACtE,4CAA6CV,IAAqBW,IAGhEC,EAAaZ,IAAqBW,EAAuBnB,EAAQ,GAAGA,KAASY,EAAKS,IAAI,0BAEtFC,EAAmB,GAAGF,KAAcT,IAE1C,OACIY,EAACC,EAAAA,CACGxB,MAAOoB,EACPf,mBAAoB,IAAIA,EAAoB,cAC5CD,UAAWY,EACXf,QAASA,EACTC,OAAQA,EACRC,aAAc,IAAMA,EAAasB,GACjCC,aAAcpB,EACdC,QAASA,EACToB,IAAK,MACLC,KAAM,sBACNhB,KAAMA,EACNiB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,EAC1BtB,sBAAuBA,EACvBC,eAAgBA,EAChBsB,sBAAuB,KACnB9B,EAAasB,KAGjBF,EAACW,EAAAA,CACGC,mBAAoBV,EACpBrB,UAAWa,EAAW,wBAAyB,+BAAgC,wCAAyC,CACpH,+BAAgCX,EAChC,+BAAgCL,EAChC,+BAAgCM,MAGxCgB,EAACa,EAAAA,CACGC,iBACI/B,GAASC,EACHU,EAAW,+CAAgD,wDAC3D,+CAEVqB,aAAc,uCACdC,IAAKjB,EACLkB,IAAK1B,EAAS,CAAE2B,YAAa,eAAxB3B,CAAyC,sBAI9D"}
1
+ {"version":3,"file":"ExpirationDate.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/ExpirationDate.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { ExpirationDateProps } from './types';\nimport DataSfSpan from './DataSfSpan';\nimport {\n DATE_POLICY_HIDDEN,\n DATE_POLICY_OPTIONAL,\n DATE_POLICY_REQUIRED,\n ENCRYPTED_EXPIRY_DATE\n} from '../../../../internal/SecuredFields/lib/constants';\nimport useImage from '../../../../../core/Context/useImage';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\nimport Brand from '../../../../internal/Brand';\nimport './ExpirationDate.scss';\n\nexport default function ExpirationDate(props: Readonly<ExpirationDateProps>) {\n const {\n label,\n focused,\n filled,\n onFocusField,\n className = '',\n classNameModifiers = [],\n error = '',\n isValid = false,\n expiryDatePolicy = DATE_POLICY_REQUIRED,\n showContextualElement,\n contextualText\n } = props;\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const fieldClassnames = classNames(className, {\n 'adyen-checkout__field__exp-date': true,\n 'adyen-checkout__card__exp-date__input--hidden': expiryDatePolicy === DATE_POLICY_HIDDEN,\n 'adyen-checkout__field__exp-date--optional': expiryDatePolicy === DATE_POLICY_OPTIONAL\n });\n\n const fieldLabel = expiryDatePolicy !== DATE_POLICY_OPTIONAL ? label : `${label} ${i18n.get('field.title.optional')}`;\n\n const imageDescription = `${fieldLabel} ${contextualText}`;\n\n return (\n <Field\n label={fieldLabel}\n classNameModifiers={[...classNameModifiers, 'expiryDate']}\n className={fieldClassnames}\n focused={focused}\n filled={filled}\n onFocusField={() => onFocusField(ENCRYPTED_EXPIRY_DATE)}\n errorMessage={error}\n isValid={isValid}\n dir={'ltr'}\n name={'encryptedExpiryDate'}\n i18n={i18n}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n showContextualElement={showContextualElement}\n contextualText={contextualText}\n onInputContainerClick={() => {\n onFocusField(ENCRYPTED_EXPIRY_DATE);\n }}\n >\n <DataSfSpan\n encryptedFieldType={ENCRYPTED_EXPIRY_DATE}\n className={classNames('adyen-checkout__input', 'adyen-checkout__input--small', 'adyen-checkout__card__exp-date__input', {\n 'adyen-checkout__input--error': error,\n 'adyen-checkout__input--focus': focused,\n 'adyen-checkout__input--valid': isValid\n })}\n />\n <Brand\n wrapperClassName={\n error || isValid\n ? classNames('adyen-checkout__field__exp-date_hint_wrapper', 'adyen-checkout__field__exp-date_hint_wrapper--hidden')\n : 'adyen-checkout__field__exp-date_hint_wrapper'\n }\n imgClassName={'adyen-checkout__field__exp-date_hint'}\n alt={imageDescription}\n url={getImage({ imageFolder: 'components/' })('expiry_date_hint')}\n />\n </Field>\n );\n}\n"],"names":["ExpirationDate","props","label","focused","filled","onFocusField","className","classNameModifiers","error","isValid","expiryDatePolicy","DATE_POLICY_REQUIRED","showContextualElement","contextualText","i18n","useCoreContext","getImage","useImage","fieldClassnames","classNames","DATE_POLICY_HIDDEN","DATE_POLICY_OPTIONAL","fieldLabel","get","imageDescription","h","Field","ENCRYPTED_EXPIRY_DATE","errorMessage","dir","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","onInputContainerClick","DataSfSpan","encryptedFieldType","Brand","wrapperClassName","imgClassName","alt","url","imageFolder"],"mappings":"+nBAiBe,SAASA,EAAeC,GACnC,MAAMC,MACFA,EAAKC,QACLA,EAAOC,OACPA,EAAMC,aACNA,EAAYC,UACZA,EAAY,GAAEC,mBACdA,EAAqB,GAAEC,MACvBA,EAAQ,GAAEC,QACVA,GAAU,EAAKC,iBACfA,EAAmBC,EAAoBC,sBACvCA,EAAqBC,eACrBA,GACAZ,GACEa,KAAEA,GAASC,IACXC,EAAWC,IAEXC,EAAkBC,EAAWb,EAAW,CAC1C,mCAAmC,EACnC,gDAAiDI,IAAqBU,EACtE,4CAA6CV,IAAqBW,IAGhEC,EAAaZ,IAAqBW,EAAuBnB,EAAQ,GAAGA,KAASY,EAAKS,IAAI,0BAEtFC,EAAmB,GAAGF,KAAcT,IAE1C,OACIY,EAACC,EAAAA,CACGxB,MAAOoB,EACPf,mBAAoB,IAAIA,EAAoB,cAC5CD,UAAWY,EACXf,QAASA,EACTC,OAAQA,EACRC,aAAc,IAAMA,EAAasB,GACjCC,aAAcpB,EACdC,QAASA,EACToB,IAAK,MACLC,KAAM,sBACNhB,KAAMA,EACNiB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,EAC1BtB,sBAAuBA,EACvBC,eAAgBA,EAChBsB,sBAAuB,KACnB9B,EAAasB,KAGjBF,EAACW,EAAAA,CACGC,mBAAoBV,EACpBrB,UAAWa,EAAW,wBAAyB,+BAAgC,wCAAyC,CACpH,+BAAgCX,EAChC,+BAAgCL,EAChC,+BAAgCM,MAGxCgB,EAACa,EAAAA,CACGC,iBACI/B,GAASC,EACHU,EAAW,+CAAgD,wDAC3D,+CAEVqB,aAAc,uCACdC,IAAKjB,EACLkB,IAAK1B,EAAS,CAAE2B,YAAa,eAAxB3B,CAAyC,sBAI9D"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../../external/preact/dist/preact.js";import{useState as l,useMemo as n,useEffect as t}from"../../../../../../external/preact/hooks/dist/hooks.js";import a from"../../../../../internal/FormFields/Field/Field.js";import{useCoreContext as s}from"../../../../../../core/Context/CoreProvider.js";import i from"../../../../../internal/FormFields/Fieldset/Fieldset.js";import o from"../../../../../internal/FormFields/RadioGroup/RadioGroup.js";import r from"../../../../../internal/FormFields/Select/Select.js";import{alternativeLabelContent as u}from"../FieldLabelAlternative.js";import{useAmount as m}from"../../../../../../core/Context/AmountProvider.js";function d(e,l,n){return l in e?Object.defineProperty(e,l,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[l]=n,e}function v(v){var c,p,b;const{i18n:f}=s(),{amount:g}=m(),{brand:h,onChange:j,type:y}=v,F=v.installmentOptions[h]||v.installmentOptions.card,O=1===(null==F||null===(c=F.values)||void 0===c?void 0:c.length),[C,x]=l((null==F?void 0:F.preselectedValue)||(null==F?void 0:F.values[0])),[E,N]=l("onetime"),P=(null==F||null===(p=F.plans)||void 0===p?void 0:p.includes("revolving"))||(null==F||null===(b=F.plans)||void 0===b?void 0:b.includes("bonus")),_=n(()=>function(e,l){return e?[{id:"onetime",name:"installments.oneTime"},{id:"installments",name:"installments.installments"},...(null==l?void 0:l.includes("revolving"))?[{id:"revolving",name:"installments.revolving"}]:[],...(null==l?void 0:l.includes("bonus"))?[{id:"bonus",name:"installments.bonus"}]:[]]:[]}(P,null==F?void 0:F.plans),[P,F]),w=e=>{const l=e.target.value;x(Number(l))},k=e=>{const l=e.currentTarget.getAttribute("value");N(l)},L=e=>{let l,n;if("amount"===y){l="installmentOption",n={count:e,values:{times:e,partialValue:(e=>f.amount(g.value/e,g.currency))(e)}}}else l="installmentOptionMonths",n={count:e,values:{times:e}};return{id:e,name:g.value?f.get(l,n):`${e}`}};return t(()=>{var e,l;(null==F||null===(l=F.values)||void 0===l?void 0:l.includes(C))||x(null!==(e=null==F?void 0:F.preselectedValue)&&void 0!==e?e:null==F?void 0:F.values[0])},[h]),t(()=>{const e=function(e){for(var l=1;l<arguments.length;l++){var n=null!=arguments[l]?arguments[l]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(l){d(e,l,n[l])})}return e}({value:C},P&&"onetime"===E&&{value:1},P&&"revolving"===E&&{value:1,plan:"revolving"},P&&"bonus"===E&&{value:1,plan:"bonus"});j(F?e:{value:null})},[j,P,C,F,E]),F?0===g.value?null:P?e("div",{className:"adyen-checkout__installments adyen-checkout__installments--revolving-plan"},e(a,{label:f.get("installments"),classNameModifiers:["installments"],name:"installmentsPseudoLabel",useLabelElement:!1,showContextualElement:!1,renderAlternativeToLabel:u},e(i,{classNameModifiers:["revolving-plan"],label:""},e(o,{items:_,onChange:k,value:E,ariaLabel:f.get("installments")}),e(a,{className:"installments"!==E?"revolving-plan-installments__disabled":"revolving-plan-installments",classNameModifiers:["revolving-plan-installments"],name:"",useLabelElement:!1,showContextualElement:!1},e(r,{filterable:!1,items:F.values.map(L),selectedValue:C,onChange:w,name:"installments",disabled:"installments"!==E}))))):e("div",{className:"adyen-checkout__installments"},e(a,{label:f.get("installments"),classNameModifiers:["installments"],name:"installments",showContextualElement:!1},e(r,{filterable:!1,items:F.values.map(L),selectedValue:C,onChange:w,name:"installments",readonly:O,disabled:O}))):null}v.defaultProps={brand:"",onChange:()=>{}};export{v as default};
1
+ import{createElement as e}from"../../../../../../external/preact/dist/preact.js";import{useState as l,useMemo as n,useEffect as t}from"../../../../../../external/preact/hooks/dist/hooks.js";import a from"../../../../../internal/FormFields/Field/Field.js";import{useCoreContext as s}from"../../../../../../core/Context/CoreProvider.js";import i from"../../../../../internal/FormFields/Fieldset/Fieldset.js";import o from"../../../../../internal/FormFields/RadioGroup/RadioGroup.js";import r from"../../../../../internal/FormFields/Select/Select.js";import{alternativeLabelContent as u}from"../FieldLabelAlternative.js";import{useAmount as m}from"../../../../../../core/Context/AmountProvider.js";function d(e,l,n){return l in e?Object.defineProperty(e,l,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[l]=n,e}function v(v){var c,p,b;const{i18n:f}=s(),{amount:g}=m(),{brand:h,onChange:j,type:y}=v,F=v.installmentOptions[h]||v.installmentOptions.card,O=1===(null==F||null===(c=F.values)||void 0===c?void 0:c.length),[C,x]=l((null==F?void 0:F.preselectedValue)||(null==F?void 0:F.values[0])),[E,N]=l("onetime"),P=(null==F||null===(p=F.plans)||void 0===p?void 0:p.includes("revolving"))||(null==F||null===(b=F.plans)||void 0===b?void 0:b.includes("bonus")),_=n(()=>function(e,l){return e?[{id:"onetime",name:"installments.oneTime"},{id:"installments",name:"installments.installments"},...(null==l?void 0:l.includes("revolving"))?[{id:"revolving",name:"installments.revolving"}]:[],...(null==l?void 0:l.includes("bonus"))?[{id:"bonus",name:"installments.bonus"}]:[]]:[]}(P,null==F?void 0:F.plans),[P,F]),w=e=>{const l=e.target.value;x(Number(l))},k=e=>{const l=e.currentTarget.getAttribute("value");N(l)},L=e=>{let l,n;if("amount"===y){l="installmentOption",n={count:e,values:{times:e,partialValue:(e=>f.amount(g.value/e,g.currency))(e)}}}else l="installmentOptionMonths",n={count:e,values:{times:e}};return{id:e,name:g.value?f.get(l,n):`${e}`}};return t(()=>{var e,l;(null==F||null===(l=F.values)||void 0===l?void 0:l.includes(C))||x(null!==(e=null==F?void 0:F.preselectedValue)&&void 0!==e?e:null==F?void 0:F.values[0])},[h]),t(()=>{const e=function(e){for(var l=1;l<arguments.length;l++){var n=null!=arguments[l]?arguments[l]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(l){d(e,l,n[l])})}return e}({value:C},P&&"onetime"===E&&{value:1},P&&"revolving"===E&&{value:1,plan:"revolving"},P&&"bonus"===E&&{value:1,plan:"bonus"});j(F?e:{value:null})},[j,P,C,F,E]),F&&g&&0!==g.value?P?e("div",{className:"adyen-checkout__installments adyen-checkout__installments--revolving-plan"},e(a,{label:f.get("installments"),classNameModifiers:["installments"],name:"installmentsPseudoLabel",useLabelElement:!1,showContextualElement:!1,renderAlternativeToLabel:u},e(i,{classNameModifiers:["revolving-plan"],label:""},e(o,{items:_,onChange:k,value:E,ariaLabel:f.get("installments")}),e(a,{className:"installments"!==E?"revolving-plan-installments__disabled":"revolving-plan-installments",classNameModifiers:["revolving-plan-installments"],name:"",useLabelElement:!1,showContextualElement:!1},e(r,{filterable:!1,items:F.values.map(L),selectedValue:C,onChange:w,name:"installments",disabled:"installments"!==E}))))):e("div",{className:"adyen-checkout__installments"},e(a,{label:f.get("installments"),classNameModifiers:["installments"],name:"installments",showContextualElement:!1},e(r,{filterable:!1,items:F.values.map(L),selectedValue:C,onChange:w,name:"installments",readonly:O,disabled:O}))):null}v.defaultProps={brand:"",onChange:()=>{}};export{v as default};
2
2
  //# sourceMappingURL=Installments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Installments.js","sources":["../../../../../../../../src/components/Card/components/CardInput/components/Installments/Installments.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useMemo } from 'preact/hooks';\nimport Field from '../../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport { InstallmentsItem } from '../types';\nimport Fieldset from '../../../../../internal/FormFields/Fieldset/Fieldset';\nimport RadioGroup from '../../../../../internal/FormFields/RadioGroup';\nimport Select from '../../../../../internal/FormFields/Select';\nimport { alternativeLabelContent } from '../FieldLabelAlternative';\nimport { useAmount } from '../../../../../../core/Context/AmountProvider';\n\nimport './Installments.scss';\n\nexport type InstallmentPlan = 'revolving' | 'bonus' | 'regular';\n\nexport interface InstallmentsState {\n value: number | null;\n plan?: InstallmentPlan;\n}\n\nexport interface InstallmentOption {\n values: number[];\n plans?: InstallmentPlan[];\n preselectedValue?: number;\n}\n\nexport interface InstallmentOptions {\n [key: string]: InstallmentOption;\n}\nexport interface InstallmentsProps {\n brand?: string;\n onChange?: (installmentObject: InstallmentsState) => void;\n installmentOptions: InstallmentOptions;\n type?: string;\n}\n\nfunction createRadioGroupItems(hasRadioButtonUI: boolean, plans?: InstallmentPlan[]): { id: string; name: string }[] {\n if (!hasRadioButtonUI) {\n return [];\n }\n\n return [\n { id: 'onetime', name: 'installments.oneTime' },\n { id: 'installments', name: 'installments.installments' },\n ...(plans?.includes('revolving') ? [{ id: 'revolving', name: 'installments.revolving' }] : []),\n ...(plans?.includes('bonus') ? [{ id: 'bonus', name: 'installments.bonus' }] : [])\n ];\n}\n\nfunction Installments(props: Readonly<InstallmentsProps>) {\n const { i18n } = useCoreContext();\n const { amount } = useAmount();\n const { brand, onChange, type } = props;\n const installmentOptions = props.installmentOptions[brand] || props.installmentOptions.card;\n const readOnly = installmentOptions?.values?.length === 1;\n const [installmentAmount, setInstallmentAmount] = useState(installmentOptions?.preselectedValue || installmentOptions?.values[0]);\n const [radioBtnValue, setRadioBtnValue] = useState('onetime');\n\n const hasRadioButtonUI = installmentOptions?.plans?.includes('revolving') || installmentOptions?.plans?.includes('bonus');\n const radioGroupItems = useMemo(() => createRadioGroupItems(hasRadioButtonUI, installmentOptions?.plans), [hasRadioButtonUI, installmentOptions]);\n\n const onSelectInstallment = e => {\n const selectedInstallments = e.target.value;\n setInstallmentAmount(Number(selectedInstallments));\n };\n\n const onRadioSelect = e => {\n const selectedBtn = e.currentTarget.getAttribute('value');\n setRadioBtnValue(selectedBtn);\n };\n\n const installmentItemsMapper = (value: number): InstallmentsItem => {\n let translationKey;\n let translationObj;\n\n if (type === 'amount') {\n const getPartialAmount = (divider: number): string => i18n.amount(amount.value / divider, amount.currency);\n\n translationKey = 'installmentOption';\n translationObj = { count: value, values: { times: value, partialValue: getPartialAmount(value) } };\n } else {\n translationKey = `installmentOptionMonths`;\n translationObj = { count: value, values: { times: value } };\n }\n\n return {\n id: value,\n name: amount.value ? i18n.get(translationKey, translationObj) : `${value}`\n };\n };\n\n useEffect(() => {\n if (installmentOptions?.values?.includes(installmentAmount)) {\n return;\n }\n\n setInstallmentAmount(installmentOptions?.preselectedValue ?? installmentOptions?.values[0]);\n }, [brand]);\n\n useEffect(() => {\n const state: InstallmentsState = {\n value: installmentAmount,\n ...(hasRadioButtonUI && radioBtnValue === 'onetime' && { value: 1 }),\n ...(hasRadioButtonUI && radioBtnValue === 'revolving' && { value: 1, plan: 'revolving' }),\n ...(hasRadioButtonUI && radioBtnValue === 'bonus' && { value: 1, plan: 'bonus' })\n };\n\n onChange(installmentOptions ? state : { value: null });\n }, [onChange, hasRadioButtonUI, installmentAmount, installmentOptions, radioBtnValue]);\n\n if (!installmentOptions) return null;\n if (amount.value === 0) return null;\n\n if (hasRadioButtonUI) {\n return (\n <div className=\"adyen-checkout__installments adyen-checkout__installments--revolving-plan\">\n <Field\n label={i18n.get('installments')}\n classNameModifiers={['installments']}\n name={'installmentsPseudoLabel'}\n useLabelElement={false}\n showContextualElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <Fieldset classNameModifiers={['revolving-plan']} label={''}>\n <RadioGroup items={radioGroupItems} onChange={onRadioSelect} value={radioBtnValue} ariaLabel={i18n.get('installments')} />\n\n <Field\n className={radioBtnValue !== 'installments' ? 'revolving-plan-installments__disabled' : 'revolving-plan-installments'}\n classNameModifiers={['revolving-plan-installments']}\n name={''}\n useLabelElement={false}\n showContextualElement={false}\n >\n <Select\n filterable={false}\n items={installmentOptions.values.map(installmentItemsMapper)}\n selectedValue={installmentAmount}\n onChange={onSelectInstallment}\n name={'installments'}\n disabled={radioBtnValue !== 'installments'}\n />\n </Field>\n </Fieldset>\n </Field>\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__installments\">\n <Field label={i18n.get('installments')} classNameModifiers={['installments']} name={'installments'} showContextualElement={false}>\n <Select\n filterable={false}\n items={installmentOptions.values.map(installmentItemsMapper)}\n selectedValue={installmentAmount}\n onChange={onSelectInstallment}\n name={'installments'}\n readonly={readOnly}\n disabled={readOnly}\n />\n </Field>\n </div>\n );\n}\n\nInstallments.defaultProps = {\n brand: '',\n onChange: () => {}\n};\n\nexport default Installments;\n"],"names":["Installments","props","installmentOptions","i18n","useCoreContext","amount","useAmount","brand","onChange","type","card","readOnly","values","length","installmentAmount","setInstallmentAmount","useState","preselectedValue","radioBtnValue","setRadioBtnValue","hasRadioButtonUI","plans","includes","radioGroupItems","useMemo","id","name","createRadioGroupItems","onSelectInstallment","e","selectedInstallments","target","value","Number","onRadioSelect","selectedBtn","currentTarget","getAttribute","installmentItemsMapper","translationKey","translationObj","count","times","partialValue","divider","currency","getPartialAmount","get","useEffect","_ref","state","_object_spread","plan","h","div","className","Field","label","classNameModifiers","useLabelElement","showContextualElement","renderAlternativeToLabel","alternativeLabelContent","Fieldset","RadioGroup","items","ariaLabel","Select","filterable","map","selectedValue","disabled","readonly","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Installments.js","sources":["../../../../../../../../src/components/Card/components/CardInput/components/Installments/Installments.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useMemo } from 'preact/hooks';\nimport Field from '../../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport { InstallmentsItem } from '../types';\nimport Fieldset from '../../../../../internal/FormFields/Fieldset/Fieldset';\nimport RadioGroup from '../../../../../internal/FormFields/RadioGroup';\nimport Select from '../../../../../internal/FormFields/Select';\nimport { alternativeLabelContent } from '../FieldLabelAlternative';\nimport { useAmount } from '../../../../../../core/Context/AmountProvider';\n\nimport './Installments.scss';\n\nexport type InstallmentPlan = 'revolving' | 'bonus' | 'regular';\n\nexport interface InstallmentsState {\n value: number | null;\n plan?: InstallmentPlan;\n}\n\nexport interface InstallmentOption {\n values: number[];\n plans?: InstallmentPlan[];\n preselectedValue?: number;\n}\n\nexport interface InstallmentOptions {\n [key: string]: InstallmentOption;\n}\nexport interface InstallmentsProps {\n brand?: string;\n onChange?: (installmentObject: InstallmentsState) => void;\n installmentOptions: InstallmentOptions;\n type?: string;\n}\n\nfunction createRadioGroupItems(hasRadioButtonUI: boolean, plans?: InstallmentPlan[]): { id: string; name: string }[] {\n if (!hasRadioButtonUI) {\n return [];\n }\n\n return [\n { id: 'onetime', name: 'installments.oneTime' },\n { id: 'installments', name: 'installments.installments' },\n ...(plans?.includes('revolving') ? [{ id: 'revolving', name: 'installments.revolving' }] : []),\n ...(plans?.includes('bonus') ? [{ id: 'bonus', name: 'installments.bonus' }] : [])\n ];\n}\n\nfunction Installments(props: Readonly<InstallmentsProps>) {\n const { i18n } = useCoreContext();\n const { amount } = useAmount();\n const { brand, onChange, type } = props;\n const installmentOptions = props.installmentOptions[brand] || props.installmentOptions.card;\n const readOnly = installmentOptions?.values?.length === 1;\n const [installmentAmount, setInstallmentAmount] = useState(installmentOptions?.preselectedValue || installmentOptions?.values[0]);\n const [radioBtnValue, setRadioBtnValue] = useState('onetime');\n\n const hasRadioButtonUI = installmentOptions?.plans?.includes('revolving') || installmentOptions?.plans?.includes('bonus');\n const radioGroupItems = useMemo(() => createRadioGroupItems(hasRadioButtonUI, installmentOptions?.plans), [hasRadioButtonUI, installmentOptions]);\n\n const onSelectInstallment = e => {\n const selectedInstallments = e.target.value;\n setInstallmentAmount(Number(selectedInstallments));\n };\n\n const onRadioSelect = e => {\n const selectedBtn = e.currentTarget.getAttribute('value');\n setRadioBtnValue(selectedBtn);\n };\n\n const installmentItemsMapper = (value: number): InstallmentsItem => {\n let translationKey;\n let translationObj;\n\n if (type === 'amount') {\n const getPartialAmount = (divider: number): string => i18n.amount(amount.value / divider, amount.currency);\n\n translationKey = 'installmentOption';\n translationObj = { count: value, values: { times: value, partialValue: getPartialAmount(value) } };\n } else {\n translationKey = `installmentOptionMonths`;\n translationObj = { count: value, values: { times: value } };\n }\n\n return {\n id: value,\n name: amount.value ? i18n.get(translationKey, translationObj) : `${value}`\n };\n };\n\n useEffect(() => {\n if (installmentOptions?.values?.includes(installmentAmount)) {\n return;\n }\n\n setInstallmentAmount(installmentOptions?.preselectedValue ?? installmentOptions?.values[0]);\n }, [brand]);\n\n useEffect(() => {\n const state: InstallmentsState = {\n value: installmentAmount,\n ...(hasRadioButtonUI && radioBtnValue === 'onetime' && { value: 1 }),\n ...(hasRadioButtonUI && radioBtnValue === 'revolving' && { value: 1, plan: 'revolving' }),\n ...(hasRadioButtonUI && radioBtnValue === 'bonus' && { value: 1, plan: 'bonus' })\n };\n\n onChange(installmentOptions ? state : { value: null });\n }, [onChange, hasRadioButtonUI, installmentAmount, installmentOptions, radioBtnValue]);\n\n if (!installmentOptions) return null;\n if (!amount || amount.value === 0) return null;\n\n if (hasRadioButtonUI) {\n return (\n <div className=\"adyen-checkout__installments adyen-checkout__installments--revolving-plan\">\n <Field\n label={i18n.get('installments')}\n classNameModifiers={['installments']}\n name={'installmentsPseudoLabel'}\n useLabelElement={false}\n showContextualElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <Fieldset classNameModifiers={['revolving-plan']} label={''}>\n <RadioGroup items={radioGroupItems} onChange={onRadioSelect} value={radioBtnValue} ariaLabel={i18n.get('installments')} />\n\n <Field\n className={radioBtnValue !== 'installments' ? 'revolving-plan-installments__disabled' : 'revolving-plan-installments'}\n classNameModifiers={['revolving-plan-installments']}\n name={''}\n useLabelElement={false}\n showContextualElement={false}\n >\n <Select\n filterable={false}\n items={installmentOptions.values.map(installmentItemsMapper)}\n selectedValue={installmentAmount}\n onChange={onSelectInstallment}\n name={'installments'}\n disabled={radioBtnValue !== 'installments'}\n />\n </Field>\n </Fieldset>\n </Field>\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__installments\">\n <Field label={i18n.get('installments')} classNameModifiers={['installments']} name={'installments'} showContextualElement={false}>\n <Select\n filterable={false}\n items={installmentOptions.values.map(installmentItemsMapper)}\n selectedValue={installmentAmount}\n onChange={onSelectInstallment}\n name={'installments'}\n readonly={readOnly}\n disabled={readOnly}\n />\n </Field>\n </div>\n );\n}\n\nInstallments.defaultProps = {\n brand: '',\n onChange: () => {}\n};\n\nexport default Installments;\n"],"names":["Installments","props","installmentOptions","i18n","useCoreContext","amount","useAmount","brand","onChange","type","card","readOnly","values","length","installmentAmount","setInstallmentAmount","useState","preselectedValue","radioBtnValue","setRadioBtnValue","hasRadioButtonUI","plans","includes","radioGroupItems","useMemo","id","name","createRadioGroupItems","onSelectInstallment","e","selectedInstallments","target","value","Number","onRadioSelect","selectedBtn","currentTarget","getAttribute","installmentItemsMapper","translationKey","translationObj","count","times","partialValue","divider","currency","getPartialAmount","get","useEffect","_ref","state","_object_spread","plan","h","div","className","Field","label","classNameModifiers","useLabelElement","showContextualElement","renderAlternativeToLabel","alternativeLabelContent","Fieldset","RadioGroup","items","ariaLabel","Select","filterable","map","selectedValue","disabled","readonly","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"KCPAuthentication.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/KCPAuthentication.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport classNames from 'classnames';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { KCPProps } from './types';\nimport DataSfSpan from './DataSfSpan';\nimport InputTelephone from '../../../../internal/FormFields/InputTelephone';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\nimport { CREDITCARD_TAX_NUMBER_INVALID } from '../../../../../core/Errors/constants';\n\nexport default function KCPAuthentication(props: KCPProps) {\n const { i18n } = useCoreContext();\n\n const taxNumberLabel = useMemo((): string => {\n if (props.value?.length > 6) return i18n.get('creditCard.taxNumber.labelAlt');\n\n return i18n.get('creditCard.taxNumber.label');\n }, [props.value]);\n\n return (\n <div className=\"adyen-checkout__card__kcp-authentication\">\n <Field\n label={taxNumberLabel}\n filled={props.filled}\n classNameModifiers={['kcp-taxNumber']}\n errorMessage={props.error && i18n.get(CREDITCARD_TAX_NUMBER_INVALID)}\n isValid={props.isValid}\n dir={'ltr'}\n name={'kcpTaxNumberOrDOB'}\n onFocus={e => props.onFieldFocusAnalytics('taxNumber', e)}\n onBlur={e => props.onFieldBlurAnalytics('taxNumber', e)}\n >\n <InputTelephone\n name={'kcpTaxNumberOrDOB'}\n className=\"adyen-checkout__card__kcp-taxNumber__input adyen-checkout__input\"\n maxLength={10}\n minLength={6}\n autoComplete={'false'}\n value={props.value}\n required={true}\n onBlur={props.onBlur}\n onInput={props.onInput}\n disabled={props.disabled}\n placeholder={props.placeholder}\n />\n </Field>\n\n <Field\n label={i18n.get('creditCard.password.label')}\n focused={props.focusedElement === 'encryptedPassword'}\n filled={props.filled}\n classNameModifiers={['50', 'koreanAuthentication-encryptedPassword']}\n onFocusField={() => props.onFocusField('encryptedPassword')}\n errorMessage={props.encryptedPasswordState.errors && i18n.get(String(props.encryptedPasswordState.errors))}\n isValid={props.encryptedPasswordState.valid}\n dir={'ltr'}\n name={'encryptedPassword'}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <DataSfSpan\n encryptedFieldType=\"encryptedPassword\"\n className={classNames({\n 'adyen-checkout__input': true,\n 'adyen-checkout__input--large': true,\n 'adyen-checkout__input--error': props.encryptedPasswordState.errors,\n 'adyen-checkout__input--valid': props.encryptedPasswordState.valid,\n 'adyen-checkout__input--focus': props.focusedElement === 'encryptedPassword'\n })}\n />\n </Field>\n </div>\n );\n}\n"],"names":["KCPAuthentication","props","i18n","useCoreContext","taxNumberLabel","useMemo","value","length","get","h","div","className","Field","label","filled","classNameModifiers","errorMessage","error","CREDITCARD_TAX_NUMBER_INVALID","isValid","dir","name","onFocus","e","onFieldFocusAnalytics","onBlur","onFieldBlurAnalytics","InputTelephone","maxLength","minLength","autoComplete","required","onInput","disabled","placeholder","focused","focusedElement","onFocusField","encryptedPasswordState","errors","String","valid","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","DataSfSpan","encryptedFieldType","classNames"],"mappings":"mlBAWe,SAASA,EAAkBC,GACtC,MAAMC,KAAEA,GAASC,IAEXC,EAAiBC,EAAQ,KACvBJ,IAAAA,EAAJ,OAAe,QAAXA,EAAAA,EAAMK,aAANL,IAAAA,OAAAA,EAAAA,EAAaM,QAAS,EAAUL,EAAKM,IAAI,iCAEtCN,EAAKM,IAAI,+BACjB,CAACP,EAAMK,QAEV,OACIG,EAACC,MAAAA,CAAIC,UAAU,4CACXF,EAACG,EAAAA,CACGC,MAAOT,EACPU,OAAQb,EAAMa,OACdC,mBAAoB,CAAC,iBACrBC,aAAcf,EAAMgB,OAASf,EAAKM,IAAIU,GACtCC,QAASlB,EAAMkB,QACfC,IAAK,MACLC,KAAM,oBACNC,QAASC,GAAKtB,EAAMuB,sBAAsB,YAAaD,GACvDE,OAAQF,GAAKtB,EAAMyB,qBAAqB,YAAaH,IAErDd,EAACkB,EAAAA,CACGN,KAAM,oBACNV,UAAU,mEACViB,UAAW,GACXC,UAAW,EACXC,aAAc,QACdxB,MAAOL,EAAMK,MACbyB,UAAU,EACVN,OAAQxB,EAAMwB,OACdO,QAAS/B,EAAM+B,QACfC,SAAUhC,EAAMgC,SAChBC,YAAajC,EAAMiC,eAI3BzB,EAACG,EAAAA,CACGC,MAAOX,EAAKM,IAAI,6BAChB2B,QAAkC,sBAAzBlC,EAAMmC,eACftB,OAAQb,EAAMa,OACdC,mBAAoB,CAAC,KAAM,0CAC3BsB,aAAc,IAAMpC,EAAMoC,aAAa,qBACvCrB,aAAcf,EAAMqC,uBAAuBC,QAAUrC,EAAKM,IAAIgC,OAAOvC,EAAMqC,uBAAuBC,SAClGpB,QAASlB,EAAMqC,uBAAuBG,MACtCrB,IAAK,MACLC,KAAM,oBACNqB,iBAAiB,EACjBC,yBAA0BC,GAE1BnC,EAACoC,EAAAA,CACGC,mBAAmB,oBACnBnC,UAAWoC,EAAW,CAClB,yBAAyB,EACzB,gCAAgC,EAChC,+BAAgC9C,EAAMqC,uBAAuBC,OAC7D,+BAAgCtC,EAAMqC,uBAAuBG,MAC7D,+BAAyD,sBAAzBxC,EAAMmC,oBAM9D"}
1
+ {"version":3,"file":"KCPAuthentication.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/KCPAuthentication.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useMemo } from 'preact/hooks';\nimport classNames from 'classnames';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { KCPProps } from './types';\nimport DataSfSpan from './DataSfSpan';\nimport InputTelephone from '../../../../internal/FormFields/InputTelephone';\nimport { alternativeLabelContent } from './FieldLabelAlternative';\nimport { CREDITCARD_TAX_NUMBER_INVALID } from '../../../../../core/Errors/constants';\n\nexport default function KCPAuthentication(props: Readonly<KCPProps>) {\n const { i18n } = useCoreContext();\n\n const taxNumberLabel = useMemo((): string => {\n if (props.value?.length > 6) return i18n.get('creditCard.taxNumber.labelAlt');\n\n return i18n.get('creditCard.taxNumber.label');\n }, [props.value]);\n\n return (\n <div className=\"adyen-checkout__card__kcp-authentication\">\n <Field\n label={taxNumberLabel}\n filled={props.filled}\n classNameModifiers={['kcp-taxNumber']}\n errorMessage={props.error && i18n.get(CREDITCARD_TAX_NUMBER_INVALID)}\n isValid={props.isValid}\n dir={'ltr'}\n name={'kcpTaxNumberOrDOB'}\n onFocus={e => props.onFieldFocusAnalytics('taxNumber', e)}\n onBlur={e => props.onFieldBlurAnalytics('taxNumber', e)}\n >\n <InputTelephone\n name={'kcpTaxNumberOrDOB'}\n className=\"adyen-checkout__card__kcp-taxNumber__input adyen-checkout__input\"\n maxLength={10}\n minLength={6}\n autoComplete={'false'}\n value={props.value}\n required={true}\n onBlur={props.onBlur}\n onInput={props.onInput}\n disabled={props.disabled}\n placeholder={props.placeholder}\n />\n </Field>\n\n <Field\n label={i18n.get('creditCard.password.label')}\n focused={props.focusedElement === 'encryptedPassword'}\n filled={props.filled}\n classNameModifiers={['50', 'koreanAuthentication-encryptedPassword']}\n onFocusField={() => props.onFocusField('encryptedPassword')}\n errorMessage={props.encryptedPasswordState.errors && i18n.get(String(props.encryptedPasswordState.errors))}\n isValid={props.encryptedPasswordState.valid}\n dir={'ltr'}\n name={'encryptedPassword'}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <DataSfSpan\n encryptedFieldType=\"encryptedPassword\"\n className={classNames({\n 'adyen-checkout__input': true,\n 'adyen-checkout__input--large': true,\n 'adyen-checkout__input--error': props.encryptedPasswordState.errors,\n 'adyen-checkout__input--valid': props.encryptedPasswordState.valid,\n 'adyen-checkout__input--focus': props.focusedElement === 'encryptedPassword'\n })}\n />\n </Field>\n </div>\n );\n}\n"],"names":["KCPAuthentication","props","i18n","useCoreContext","taxNumberLabel","useMemo","value","length","get","h","div","className","Field","label","filled","classNameModifiers","errorMessage","error","CREDITCARD_TAX_NUMBER_INVALID","isValid","dir","name","onFocus","e","onFieldFocusAnalytics","onBlur","onFieldBlurAnalytics","InputTelephone","maxLength","minLength","autoComplete","required","onInput","disabled","placeholder","focused","focusedElement","onFocusField","encryptedPasswordState","errors","String","valid","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","DataSfSpan","encryptedFieldType","classNames"],"mappings":"mlBAWe,SAASA,EAAkBC,GACtC,MAAMC,KAAEA,GAASC,IAEXC,EAAiBC,EAAQ,KACvBJ,IAAAA,EAAJ,OAAe,QAAXA,EAAAA,EAAMK,aAANL,IAAAA,OAAAA,EAAAA,EAAaM,QAAS,EAAUL,EAAKM,IAAI,iCAEtCN,EAAKM,IAAI,+BACjB,CAACP,EAAMK,QAEV,OACIG,EAACC,MAAAA,CAAIC,UAAU,4CACXF,EAACG,EAAAA,CACGC,MAAOT,EACPU,OAAQb,EAAMa,OACdC,mBAAoB,CAAC,iBACrBC,aAAcf,EAAMgB,OAASf,EAAKM,IAAIU,GACtCC,QAASlB,EAAMkB,QACfC,IAAK,MACLC,KAAM,oBACNC,QAASC,GAAKtB,EAAMuB,sBAAsB,YAAaD,GACvDE,OAAQF,GAAKtB,EAAMyB,qBAAqB,YAAaH,IAErDd,EAACkB,EAAAA,CACGN,KAAM,oBACNV,UAAU,mEACViB,UAAW,GACXC,UAAW,EACXC,aAAc,QACdxB,MAAOL,EAAMK,MACbyB,UAAU,EACVN,OAAQxB,EAAMwB,OACdO,QAAS/B,EAAM+B,QACfC,SAAUhC,EAAMgC,SAChBC,YAAajC,EAAMiC,eAI3BzB,EAACG,EAAAA,CACGC,MAAOX,EAAKM,IAAI,6BAChB2B,QAAkC,sBAAzBlC,EAAMmC,eACftB,OAAQb,EAAMa,OACdC,mBAAoB,CAAC,KAAM,0CAC3BsB,aAAc,IAAMpC,EAAMoC,aAAa,qBACvCrB,aAAcf,EAAMqC,uBAAuBC,QAAUrC,EAAKM,IAAIgC,OAAOvC,EAAMqC,uBAAuBC,SAClGpB,QAASlB,EAAMqC,uBAAuBG,MACtCrB,IAAK,MACLC,KAAM,oBACNqB,iBAAiB,EACjBC,yBAA0BC,GAE1BnC,EAACoC,EAAAA,CACGC,mBAAmB,oBACnBnC,UAAWoC,EAAW,CAClB,yBAAyB,EACzB,gCAAgC,EAChC,+BAAgC9C,EAAMqC,uBAAuBC,OAC7D,+BAAgCtC,EAAMqC,uBAAuBG,MAC7D,+BAAyD,sBAAzBxC,EAAMmC,oBAM9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"StoredCardFields.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/StoredCardFields.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CVC from './CVC';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { StoredCardFieldsProps } from './types';\nimport { ENCRYPTED_SECURITY_CODE } from '../../../../internal/SecuredFields/lib/constants';\nimport InputText from '../../../../internal/FormFields/InputText';\nimport Fieldset from '../../../../internal/FormFields/Fieldset';\nimport './StoredCardFields.scss';\n\nexport default function StoredCardFields({\n brand,\n hasCVC,\n onFocusField,\n errors,\n valid,\n cvcPolicy,\n focusedElement,\n lastFour,\n expiryMonth,\n expiryYear,\n showContextualElement\n}: StoredCardFieldsProps) {\n const { i18n } = useCoreContext();\n const storedCardDescription = i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', lastFour);\n const storedCardDescriptionSuffix = expiryMonth && expiryYear ? ` ${i18n.get('creditCard.expiryDate.label')} ${expiryMonth}/${expiryYear}` : '';\n const ariaLabel = `${storedCardDescription}${storedCardDescriptionSuffix}`;\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 const getError = (errors, fieldType) => {\n return errors[fieldType] ? i18n.get(errors[fieldType]) : null;\n };\n\n return (\n <div className=\"adyen-checkout__card__form adyen-checkout__card__form--oneClick\" aria-label={ariaLabel}>\n <Fieldset classNamesFields={['adyen-checkout__card__exp-cvc']}>\n {expiryMonth && expiryYear && (\n <Field\n label={i18n.get('creditCard.expiryDate.label')}\n classNameModifiers={['col-50', 'storedCard']}\n name={'expiryDateField'}\n disabled\n >\n <InputText\n name={'expiryDateField'}\n className={'adyen-checkout__input adyen-checkout__input--disabled adyen-checkout__card__exp-date__input--oneclick'}\n value={`${expiryMonth} / ${expiryYear}`}\n disabled={true}\n dir={'ltr'}\n />\n </Field>\n )}\n\n {hasCVC && (\n <CVC\n cvcPolicy={cvcPolicy}\n error={getError(errors, ENCRYPTED_SECURITY_CODE)}\n focused={focusedElement === 'encryptedSecurityCode'}\n filled={!!valid.encryptedSecurityCode || !!errors.encryptedSecurityCode}\n isValid={!!valid.encryptedSecurityCode}\n label={i18n.get('creditCard.securityCode.label')}\n onFocusField={onFocusField}\n classNameModifiers={[...(expiryMonth && expiryYear ? ['col-50', 'storedCard'] : ['storedCard'])]}\n frontCVC={isAmex}\n showContextualElement={showContextualElement}\n contextualText={cvcContextualText}\n />\n )}\n </Fieldset>\n </div>\n );\n}\n"],"names":["StoredCardFields","brand","hasCVC","onFocusField","errors","valid","cvcPolicy","focusedElement","lastFour","expiryMonth","expiryYear","showContextualElement","i18n","useCoreContext","ariaLabel","get","replace","isAmex","cvcContextualText","h","div","className","aria-label","Fieldset","classNamesFields","Field","label","classNameModifiers","name","disabled","InputText","value","dir","CVC","error","fieldType","getError","ENCRYPTED_SECURITY_CODE","focused","filled","encryptedSecurityCode","isValid","frontCVC","contextualText"],"mappings":"+cAUe,SAASA,GAAiBC,MACrCA,EAAKC,OACLA,EAAMC,aACNA,EAAYC,OACZA,EAAMC,MACNA,EAAKC,UACLA,EAASC,eACTA,EAAcC,SACdA,EAAQC,YACRA,EAAWC,WACXA,EAAUC,sBACVA,IAEA,MAAMC,KAAEA,GAASC,IAGXC,EAAY,GAFYF,EAAKG,IAAI,+CAA+CC,QAAQ,KAAMR,KAChEC,GAAeC,EAAa,IAAIE,EAAKG,IAAI,kCAAkCN,KAAeC,IAAe,KAEvIO,EAAmB,SAAVhB,EACTiB,EAAoBD,EACpBL,EAAKG,IAAI,kDACTH,EAAKG,IAAI,kDAMf,OACII,EAACC,MAAAA,CAAIC,UAAU,kEAAkEC,aAAYR,GACzFK,EAACI,EAAAA,CAASC,iBAAkB,CAAC,kCACxBf,GAAeC,GACZS,EAACM,EAAAA,CACGC,MAAOd,EAAKG,IAAI,+BAChBY,mBAAoB,CAAC,SAAU,cAC/BC,KAAM,kBACNC,UAAAA,GAEAV,EAACW,EAAAA,CACGF,KAAM,kBACNP,UAAW,wGACXU,MAAO,GAAGtB,OAAiBC,IAC3BmB,UAAU,EACVG,IAAK,SAKhB9B,GACGiB,EAACc,EAAAA,CACG3B,UAAWA,EACX4B,MA3BH,EAAC9B,EAAQ+B,IACf/B,EAAO+B,GAAavB,EAAKG,IAAIX,EAAO+B,IAAc,KA0BlCC,CAAShC,EAAQiC,GACxBC,QAA4B,0BAAnB/B,EACTgC,SAAUlC,EAAMmC,yBAA2BpC,EAAOoC,sBAClDC,UAAWpC,EAAMmC,sBACjBd,MAAOd,EAAKG,IAAI,iCAChBZ,aAAcA,EACdwB,mBAAoB,IAAKlB,GAAeC,EAAa,CAAC,SAAU,cAAgB,CAAC,eACjFgC,SAAUzB,EACVN,sBAAuBA,EACvBgC,eAAgBzB,KAMxC"}
1
+ {"version":3,"file":"StoredCardFields.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/StoredCardFields.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CVC from './CVC';\nimport Field from '../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { StoredCardFieldsProps } from './types';\nimport { ENCRYPTED_SECURITY_CODE } from '../../../../internal/SecuredFields/lib/constants';\nimport InputText from '../../../../internal/FormFields/InputText';\nimport Fieldset from '../../../../internal/FormFields/Fieldset';\nimport './StoredCardFields.scss';\n\nexport default function StoredCardFields({\n brand,\n hasCVC,\n onFocusField,\n errors,\n valid,\n cvcPolicy,\n focusedElement,\n lastFour,\n expiryMonth,\n expiryYear,\n showContextualElement\n}: Readonly<StoredCardFieldsProps>) {\n const { i18n } = useCoreContext();\n const storedCardDescription = i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', lastFour);\n const storedCardDescriptionSuffix = expiryMonth && expiryYear ? ` ${i18n.get('creditCard.expiryDate.label')} ${expiryMonth}/${expiryYear}` : '';\n const ariaLabel = `${storedCardDescription}${storedCardDescriptionSuffix}`;\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 const getError = (errors, fieldType) => {\n return errors[fieldType] ? i18n.get(errors[fieldType]) : null;\n };\n\n return (\n <div className=\"adyen-checkout__card__form adyen-checkout__card__form--oneClick\" aria-label={ariaLabel}>\n <Fieldset classNamesFields={['adyen-checkout__card__exp-cvc']}>\n {expiryMonth && expiryYear && (\n <Field\n label={i18n.get('creditCard.expiryDate.label')}\n classNameModifiers={['col-50', 'storedCard']}\n name={'expiryDateField'}\n disabled\n >\n <InputText\n name={'expiryDateField'}\n className={'adyen-checkout__input adyen-checkout__input--disabled adyen-checkout__card__exp-date__input--oneclick'}\n value={`${expiryMonth} / ${expiryYear}`}\n disabled={true}\n dir={'ltr'}\n />\n </Field>\n )}\n\n {hasCVC && (\n <CVC\n cvcPolicy={cvcPolicy}\n error={getError(errors, ENCRYPTED_SECURITY_CODE)}\n focused={focusedElement === 'encryptedSecurityCode'}\n filled={!!valid.encryptedSecurityCode || !!errors.encryptedSecurityCode}\n isValid={!!valid.encryptedSecurityCode}\n label={i18n.get('creditCard.securityCode.label')}\n onFocusField={onFocusField}\n classNameModifiers={[...(expiryMonth && expiryYear ? ['col-50', 'storedCard'] : ['storedCard'])]}\n frontCVC={isAmex}\n showContextualElement={showContextualElement}\n contextualText={cvcContextualText}\n />\n )}\n </Fieldset>\n </div>\n );\n}\n"],"names":["StoredCardFields","brand","hasCVC","onFocusField","errors","valid","cvcPolicy","focusedElement","lastFour","expiryMonth","expiryYear","showContextualElement","i18n","useCoreContext","ariaLabel","get","replace","isAmex","cvcContextualText","h","div","className","aria-label","Fieldset","classNamesFields","Field","label","classNameModifiers","name","disabled","InputText","value","dir","CVC","error","fieldType","getError","ENCRYPTED_SECURITY_CODE","focused","filled","encryptedSecurityCode","isValid","frontCVC","contextualText"],"mappings":"+cAUe,SAASA,GAAiBC,MACrCA,EAAKC,OACLA,EAAMC,aACNA,EAAYC,OACZA,EAAMC,MACNA,EAAKC,UACLA,EAASC,eACTA,EAAcC,SACdA,EAAQC,YACRA,EAAWC,WACXA,EAAUC,sBACVA,IAEA,MAAMC,KAAEA,GAASC,IAGXC,EAAY,GAFYF,EAAKG,IAAI,+CAA+CC,QAAQ,KAAMR,KAChEC,GAAeC,EAAa,IAAIE,EAAKG,IAAI,kCAAkCN,KAAeC,IAAe,KAEvIO,EAAmB,SAAVhB,EACTiB,EAAoBD,EACpBL,EAAKG,IAAI,kDACTH,EAAKG,IAAI,kDAMf,OACII,EAACC,MAAAA,CAAIC,UAAU,kEAAkEC,aAAYR,GACzFK,EAACI,EAAAA,CAASC,iBAAkB,CAAC,kCACxBf,GAAeC,GACZS,EAACM,EAAAA,CACGC,MAAOd,EAAKG,IAAI,+BAChBY,mBAAoB,CAAC,SAAU,cAC/BC,KAAM,kBACNC,UAAAA,GAEAV,EAACW,EAAAA,CACGF,KAAM,kBACNP,UAAW,wGACXU,MAAO,GAAGtB,OAAiBC,IAC3BmB,UAAU,EACVG,IAAK,SAKhB9B,GACGiB,EAACc,EAAAA,CACG3B,UAAWA,EACX4B,MA3BH,EAAC9B,EAAQ+B,IACf/B,EAAO+B,GAAavB,EAAKG,IAAIX,EAAO+B,IAAc,KA0BlCC,CAAShC,EAAQiC,GACxBC,QAA4B,0BAAnB/B,EACTgC,SAAUlC,EAAMmC,yBAA2BpC,EAAOoC,sBAClDC,UAAWpC,EAAMmC,sBACjBd,MAAOd,EAAKG,IAAI,iCAChBZ,aAAcA,EACdwB,mBAAoB,IAAKlB,GAAeC,EAAa,CAAC,SAAU,cAAgB,CAAC,eACjFgC,SAAUzB,EACVN,sBAAuBA,EACvBgC,eAAgBzB,KAMxC"}
@@ -1,2 +1,2 @@
1
- import{ENCRYPTED_CARD_NUMBER as e,CREDIT_CARD_SF_FIELDS as r}from"../../../internal/SecuredFields/lib/constants.js";import{selectOne as n}from"../../../internal/SecuredFields/lib/utilities/dom.js";const t=(e,n,t)=>{e&&(r.includes(t)?n.current.setFocusOn(t):o(t,n))},s=(e,r,n)=>t=>{e("billingAddress",t.data),r("billingAddress",t.isValid),n("billingAddress",t.errors)},i=(e,r,n)=>t=>{e(t.currentFocusObject),!0===t.focus?r(t.fieldType,t):n(t.fieldType,t)},c=(n,t,s)=>()=>{n.current||(n.current=!0,Promise.resolve().then(()=>{const i=s.findIndex(r=>r===e),c=s.slice(i+1);for(const e of c){if(!r.includes(e)){o(e,t);break}if(!t.current.sfIsOptionalOrHidden(e)){t.current.setFocusOn(e);break}}n.current=!1}))},o=(e,r)=>{let t=e;if("taxNumber"===t&&(t="kcpTaxNumberOrDOB"),"country"===t||"stateOrProvince"===t){const e=n(r.current.rootNode,`.adyen-checkout__field--${t} .adyen-checkout__filter-input`);null==e||e.focus()}else{const e=n(r.current.rootNode,`[name="${t}"]`);null==e||e.focus()}};export{s as getAddressHandler,c as getAutoJumpHandler,i as getFocusHandler,t as setFocusOnFirstField};
1
+ import{ENCRYPTED_CARD_NUMBER as e}from"../../../internal/SecuredFields/lib/constants.js";import{selectOne as r}from"../../../internal/SecuredFields/lib/utilities/dom.js";import t from"../../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{windowScrollTo as i}from"../../../../utils/windowScrollTo.js";import{isSecuredField as o}from"../../../internal/SecuredFields/utils.js";const l=(e,r,l)=>{if(e){if(t.__IS_IOS){var n,s;const e=null===(n=(s=r.current).getRootNode)||void 0===n?void 0:n.call(s),t=null==e?void 0:e.querySelector(`[data-id="${l}"]`);i(t)}o(l)?r.current.setFocusOn(l):d(l,r,t.__IS_IOS)}},n=(e,r,t)=>i=>{e("billingAddress",i.data),r("billingAddress",i.isValid),t("billingAddress",i.errors)},s=(e,r,t)=>i=>{e(i.currentFocusObject),!0===i.focus?r(i.fieldType,i):t(i.fieldType,i)},c=(r,t,i)=>()=>{r.current||(r.current=!0,Promise.resolve().then(()=>{const l=i.findIndex(r=>r===e),n=i.slice(l+1);for(const e of n){if(!o(e)){d(e,t,!1);break}if(!t.current.sfIsOptionalOrHidden(e)){t.current.setFocusOn(e);break}}r.current=!1}))},d=(e,t,i)=>{var o,l;"taxNumber"===e&&(e="kcpTaxNumberOrDOB");const n=null===(o=(l=t.current).getRootNode)||void 0===o?void 0:o.call(l);if("country"===e||"stateOrProvince"===e){const t=r(n,`.adyen-checkout__field--${e} .adyen-checkout__filter-input`);null==t||t.focus({preventScroll:i})}else{const t=r(n,`[name="${e}"]`);null==t||t.focus({preventScroll:i})}};export{n as getAddressHandler,c as getAutoJumpHandler,s as getFocusHandler,l as setFocusOnFirstField};
2
2
  //# sourceMappingURL=handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sources":["../../../../../../src/components/Card/components/CardInput/handlers.ts"],"sourcesContent":["import { ENCRYPTED_CARD_NUMBER, CREDIT_CARD_SF_FIELDS } from '../../../internal/SecuredFields/lib/constants';\nimport { selectOne } from '../../../internal/SecuredFields/lib/utilities/dom';\nimport { CardFocusData } from '../../../internal/SecuredFields/lib/types';\n\n/**\n * Helper for CardInput - gets a field name and sets focus on it\n */\nexport const setFocusOnFirstField = (isValidating, sfp, fieldToFocus) => {\n if (isValidating) {\n // If not a cardInput related securedField - find field and set focus on it\n if (!CREDIT_CARD_SF_FIELDS.includes(fieldToFocus)) {\n setFocusOnNonSF(fieldToFocus, sfp);\n } else {\n // Is a securedField - so it has its own focus procedures\n sfp.current.setFocusOn(fieldToFocus);\n }\n }\n};\n\nexport const getAddressHandler = (setFormData, setFormValid, setFormErrors) => {\n // Return Handler fn:\n return address => {\n setFormData('billingAddress', address.data);\n setFormValid('billingAddress', address.isValid);\n setFormErrors('billingAddress', address.errors);\n };\n};\n\nexport const getFocusHandler = (setFocusedElement, onFocus, onBlur) => {\n // Return Handler fn:\n return (e: CardFocusData) => {\n setFocusedElement(e.currentFocusObject);\n e.focus === true ? onFocus(e.fieldType, e) : onBlur(e.fieldType, e);\n };\n};\n\nexport const getAutoJumpHandler = (isAutoJumping, sfp, layout) => {\n return () => {\n if (!isAutoJumping.current) {\n isAutoJumping.current = true;\n\n // CardInput can call this more than once in quick succession\n // e.g. if field was in error (error + fieldValid) or other SFs are optional (fieldValid + allValid) etc\n // - so make async to avoid double setFocus call\n void Promise.resolve().then(() => {\n const panIndex = layout.findIndex(elem => elem === ENCRYPTED_CARD_NUMBER);\n const subsequentFields = layout.slice(panIndex + 1);\n\n /**\n * Investigate subsequent fields to see if they can/should accept focus\n */\n for (const field of subsequentFields) {\n // Is the next field a credit card related securedField?\n if (CREDIT_CARD_SF_FIELDS.includes(field)) {\n const isOptionalOrHidden = sfp.current.sfIsOptionalOrHidden(field);\n if (!isOptionalOrHidden) {\n sfp.current.setFocusOn(field);\n break;\n }\n } else {\n // If it isn't an SF - shift focus to it (we're currently not concerned with whether the field is optional)\n\n setFocusOnNonSF(field, sfp);\n break;\n }\n }\n\n isAutoJumping.current = false;\n });\n }\n };\n};\n\nconst setFocusOnNonSF = (field, sfp) => {\n let nameVal: string = field;\n\n // We have an exception with the kcp taxNumber where the name of the field ('kcpTaxNumberOrDOB') doesn't match\n // the value by which the field is referred to internally ('taxNumber')\n if (nameVal === 'taxNumber') nameVal = 'kcpTaxNumberOrDOB';\n\n if (nameVal === 'country' || nameVal === 'stateOrProvince') {\n // Set focus on dropdown\n const field: HTMLElement = selectOne(sfp.current.rootNode, `.adyen-checkout__field--${nameVal} .adyen-checkout__filter-input`);\n field?.focus();\n } else {\n // Set focus on input\n const field: HTMLElement = selectOne(sfp.current.rootNode, `[name=\"${nameVal}\"]`);\n field?.focus();\n }\n};\n"],"names":["setFocusOnFirstField","isValidating","sfp","fieldToFocus","CREDIT_CARD_SF_FIELDS","includes","current","setFocusOn","setFocusOnNonSF","getAddressHandler","setFormData","setFormValid","setFormErrors","address","data","isValid","errors","getFocusHandler","setFocusedElement","onFocus","onBlur","e","currentFocusObject","focus","fieldType","getAutoJumpHandler","isAutoJumping","layout","Promise","resolve","then","panIndex","findIndex","elem","ENCRYPTED_CARD_NUMBER","subsequentFields","slice","field","sfIsOptionalOrHidden","nameVal","selectOne","rootNode"],"mappings":"qMAOO,MAAMA,EAAuB,CAACC,EAAcC,EAAKC,KAChDF,IAEKG,EAAsBC,SAASF,GAIhCD,EAAII,QAAQC,WAAWJ,GAHvBK,EAAgBL,EAAcD,KAQ7BO,EAAoB,CAACC,EAAaC,EAAcC,IAElDC,IACHH,EAAY,iBAAkBG,EAAQC,MACtCH,EAAa,iBAAkBE,EAAQE,SACvCH,EAAc,iBAAkBC,EAAQG,SAInCC,EAAkB,CAACC,EAAmBC,EAASC,IAEhDC,IACJH,EAAkBG,EAAEC,qBACR,IAAZD,EAAEE,MAAiBJ,EAAQE,EAAEG,UAAWH,GAAKD,EAAOC,EAAEG,UAAWH,IAI5DI,EAAqB,CAACC,EAAexB,EAAKyB,IAC5C,KACED,EAAcpB,UACfoB,EAAcpB,SAAU,EAKnBsB,QAAQC,UAAUC,KAAK,KACxB,MAAMC,EAAWJ,EAAOK,UAAUC,GAAQA,IAASC,GAC7CC,EAAmBR,EAAOS,MAAML,EAAW,GAKjD,IAAK,MAAMM,KAASF,EAAkB,CAElC,IAAI/B,EAAsBC,SAASgC,GAM5B,CAGH7B,EAAgB6B,EAAOnC,GACvB,KACJ,CATI,IAD2BA,EAAII,QAAQgC,qBAAqBD,GACnC,CACrBnC,EAAII,QAAQC,WAAW8B,GACvB,KACJ,CAOR,CAEAX,EAAcpB,SAAU,MAMlCE,EAAkB,CAAC6B,EAAOnC,KAC5B,IAAIqC,EAAkBF,EAMtB,GAFgB,cAAZE,IAAyBA,EAAU,qBAEvB,YAAZA,GAAqC,oBAAZA,EAA+B,CAExD,MAAMF,EAAqBG,EAAUtC,EAAII,QAAQmC,SAAU,2BAA2BF,mCACtFF,SAAAA,EAAOd,OACX,KAAO,CAEH,MAAMc,EAAqBG,EAAUtC,EAAII,QAAQmC,SAAU,UAAUF,OACrEF,SAAAA,EAAOd,OACX"}
1
+ {"version":3,"file":"handlers.js","sources":["../../../../../../src/components/Card/components/CardInput/handlers.ts"],"sourcesContent":["import { ENCRYPTED_CARD_NUMBER } from '../../../internal/SecuredFields/lib/constants';\nimport { selectOne } from '../../../internal/SecuredFields/lib/utilities/dom';\nimport { CardFocusData } from '../../../internal/SecuredFields/lib/types';\nimport ua from '../../../internal/SecuredFields/lib/CSF/utils/userAgent';\nimport { windowScrollTo } from '../../../../utils/windowScrollTo';\nimport type { SecuredFieldsProviderRef } from '../../../internal/SecuredFields/SFP/types';\nimport { CardSetFormData, CardSetFormValid, CardSetFormErrors, OnFieldFocus } from './types';\nimport type { Dispatch, MutableRef, StateUpdater } from 'preact/hooks';\nimport { isSecuredField } from '../../../internal/SecuredFields/utils';\n\n/**\n * Helper for CardInput - gets a field name and sets focus on it\n */\nexport const setFocusOnFirstField = (isValidating: boolean, sfp: SecuredFieldsProviderRef, fieldToFocus: string) => {\n if (isValidating) {\n // Fix for iOS scrolling issues: can't programmatically set focus on a cross-origin element on iOS, so we scroll to it's label instead, so at least the element is in view\n if (ua.__IS_IOS) {\n const rootNode = sfp.current.getRootNode?.();\n const elementToScrollTo: HTMLElement = rootNode?.querySelector(`[data-id=\"${fieldToFocus}\"]`);\n windowScrollTo(elementToScrollTo);\n }\n\n // If not a cardInput related securedField - find field and set focus on it\n if (!isSecuredField(fieldToFocus)) {\n setFocusOnNonSF(fieldToFocus, sfp, ua.__IS_IOS);\n } else {\n // Is a securedField - so it has its own focus procedures\n sfp.current.setFocusOn(fieldToFocus);\n }\n }\n};\n\nexport const getAddressHandler = (setFormData: CardSetFormData, setFormValid: CardSetFormValid, setFormErrors: CardSetFormErrors) => {\n // Return Handler fn:\n return address => {\n setFormData('billingAddress', address.data);\n setFormValid('billingAddress', address.isValid);\n setFormErrors('billingAddress', address.errors);\n };\n};\n\nexport const getFocusHandler = (setFocusedElement: Dispatch<StateUpdater<string>>, onFocus: OnFieldFocus, onBlur: OnFieldFocus) => {\n // Return Handler fn:\n return (e: CardFocusData) => {\n setFocusedElement(e.currentFocusObject);\n e.focus === true ? onFocus(e.fieldType, e) : onBlur(e.fieldType, e);\n };\n};\n\nexport const getAutoJumpHandler = (isAutoJumping: MutableRef<boolean>, sfp: SecuredFieldsProviderRef, layout: string[]) => {\n return () => {\n if (!isAutoJumping.current) {\n isAutoJumping.current = true;\n\n // CardInput can call this more than once in quick succession\n // e.g. if field was in error (error + fieldValid) or other SFs are optional (fieldValid + allValid) etc\n // - so make async to avoid double setFocus call\n void Promise.resolve().then(() => {\n const panIndex = layout.findIndex(elem => elem === ENCRYPTED_CARD_NUMBER);\n const subsequentFields = layout.slice(panIndex + 1);\n\n /**\n * Investigate subsequent fields to see if they can/should accept focus\n */\n for (const field of subsequentFields) {\n // Is the next field a credit card related securedField?\n if (isSecuredField(field)) {\n const isOptionalOrHidden = sfp.current.sfIsOptionalOrHidden(field);\n if (!isOptionalOrHidden) {\n sfp.current.setFocusOn(field);\n break;\n }\n } else {\n // If it isn't an SF - shift focus to it (we're currently not concerned with whether the field is optional)\n\n setFocusOnNonSF(field, sfp, false);\n break;\n }\n }\n\n isAutoJumping.current = false;\n });\n }\n };\n};\n\nconst setFocusOnNonSF = (fieldName: string, sfp: SecuredFieldsProviderRef, shouldPreventScroll: boolean) => {\n // We have an exception with the kcp taxNumber where the name of the field ('kcpTaxNumberOrDOB') doesn't match\n // the value by which the field is referred to internally ('taxNumber')\n if (fieldName === 'taxNumber') fieldName = 'kcpTaxNumberOrDOB';\n\n const rootNode = sfp.current.getRootNode?.();\n\n if (fieldName === 'country' || fieldName === 'stateOrProvince') {\n // Set focus on dropdown\n const field: HTMLElement = selectOne(rootNode, `.adyen-checkout__field--${fieldName} .adyen-checkout__filter-input`);\n field?.focus({ preventScroll: shouldPreventScroll }); // Don't even attempt to allow the focus call to trigger a scroll on iOS\n } else {\n // Set focus on input\n const field: HTMLElement = selectOne(rootNode, `[name=\"${fieldName}\"]`);\n field?.focus({ preventScroll: shouldPreventScroll }); // Don't even attempt to allow the focus call to trigger a scroll on iOS\n }\n};\n"],"names":["setFocusOnFirstField","isValidating","sfp","fieldToFocus","ua","__IS_IOS","rootNode","current","getRootNode","elementToScrollTo","querySelector","windowScrollTo","isSecuredField","setFocusOn","setFocusOnNonSF","getAddressHandler","setFormData","setFormValid","setFormErrors","address","data","isValid","errors","getFocusHandler","setFocusedElement","onFocus","onBlur","e","currentFocusObject","focus","fieldType","getAutoJumpHandler","isAutoJumping","layout","Promise","resolve","then","panIndex","findIndex","elem","ENCRYPTED_CARD_NUMBER","subsequentFields","slice","field","sfIsOptionalOrHidden","fieldName","shouldPreventScroll","selectOne","preventScroll"],"mappings":"mYAaO,MAAMA,EAAuB,CAACC,EAAuBC,EAA+BC,KACvF,GAAIF,EAAc,CAEd,GAAIG,EAAGC,SAAU,KACIH,EAAAA,EAAjB,MAAMI,EAAkC,QAAvBJ,GAAAA,EAAAA,EAAIK,SAAQC,mBAAZN,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,GACXO,EAAiCH,aAAAA,EAAAA,EAAUI,cAAc,aAAaP,OAC5EQ,EAAeF,EACnB,CAGKG,EAAeT,GAIhBD,EAAIK,QAAQM,WAAWV,GAHvBW,EAAgBX,EAAcD,EAAKE,EAAGC,SAK9C,GAGSU,EAAoB,CAACC,EAA8BC,EAAgCC,IAErFC,IACHH,EAAY,iBAAkBG,EAAQC,MACtCH,EAAa,iBAAkBE,EAAQE,SACvCH,EAAc,iBAAkBC,EAAQG,SAInCC,EAAkB,CAACC,EAAmDC,EAAuBC,IAE9FC,IACJH,EAAkBG,EAAEC,qBACR,IAAZD,EAAEE,MAAiBJ,EAAQE,EAAEG,UAAWH,GAAKD,EAAOC,EAAEG,UAAWH,IAI5DI,EAAqB,CAACC,EAAoC9B,EAA+B+B,IAC3F,KACED,EAAczB,UACfyB,EAAczB,SAAU,EAKnB2B,QAAQC,UAAUC,KAAK,KACxB,MAAMC,EAAWJ,EAAOK,UAAUC,GAAQA,IAASC,GAC7CC,EAAmBR,EAAOS,MAAML,EAAW,GAKjD,IAAK,MAAMM,KAASF,EAAkB,CAElC,IAAI7B,EAAe+B,GAMZ,CAGH7B,EAAgB6B,EAAOzC,GAAK,GAC5B,KACJ,CATI,IAD2BA,EAAIK,QAAQqC,qBAAqBD,GACnC,CACrBzC,EAAIK,QAAQM,WAAW8B,GACvB,KACJ,CAOR,CAEAX,EAAczB,SAAU,MAMlCO,EAAkB,CAAC+B,EAAmB3C,EAA+B4C,SAKtD5C,EAAAA,EAFC,cAAd2C,IAA2BA,EAAY,qBAE3C,MAAMvC,EAAkC,QAAvBJ,GAAAA,EAAAA,EAAIK,SAAQC,mBAAZN,IAAAA,OAAAA,EAAAA,EAAAA,KAAAA,GAEjB,GAAkB,YAAd2C,GAAyC,oBAAdA,EAAiC,CAE5D,MAAMF,EAAqBI,EAAUzC,EAAU,2BAA2BuC,mCAC1EF,SAAAA,EAAOd,MAAM,CAAEmB,cAAeF,GAClC,KAAO,CAEH,MAAMH,EAAqBI,EAAUzC,EAAU,UAAUuC,OACzDF,SAAAA,EAAOd,MAAM,CAAEmB,cAAeF,GAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../../../src/components/Card/components/CardInput/types.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport type {\n BinLookupResponse,\n BrandConfiguration,\n CardBrandsConfiguration,\n CardBackendConfiguration,\n DualBrandSelectElement,\n CardPlaceholders\n} from '../../types';\nimport { ValidationResult } from '../../../internal/PersonalDetails/types';\nimport {\n CardAllValidData,\n CardAutoCompleteData,\n CardBinValueData,\n CardBrandData,\n CardConfigSuccessData,\n CardFieldValidData,\n CardLoadData,\n CVCPolicyType,\n DatePolicyType\n} from '../../../internal/SecuredFields/lib/types';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { AddressSchema } from '../../../internal/Address/types';\nimport { CardErrorData, StylesObject } from '../../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../../core/Context/Resources';\nimport { SRPanel } from '../../../../core/Errors/SRPanel';\nimport RiskElement from '../../../../core/RiskModule';\nimport { DisclaimerMsgObject } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { OnAddressLookupType, OnAddressSelectedType } from '../../../internal/Address/components/AddressSearch';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { AddressData } from '../../../../types/global-types';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { IAnalytics } from '../../../../core/Analytics/Analytics';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport { h } from 'preact';\nimport { InstallmentOptions } from './components/Installments/Installments';\n\nexport interface CardInputValidState {\n holderName?: boolean;\n billingAddress?: boolean;\n socialSecurityNumber?: boolean;\n encryptedCardNumber?: boolean;\n encryptedExpiryMonth?: boolean;\n encryptedExpiryYear?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: boolean;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputErrorState {\n holderName?: ValidationResult;\n billingAddress?: ValidationResult;\n socialSecurityNumber?: ValidationResult;\n encryptedCardNumber?: boolean;\n encryptedExpiryDate?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: ValidationResult;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputDataState {\n holderName?: string;\n billingAddress?: AddressData;\n socialSecurityNumber?: string;\n taxNumber?: string;\n}\n\n/**\n * Should be the subset of the props sent to CardInput that are *actually* used by CardInput\n * - either in the comp itself or are passed on to its children\n */\nexport interface CardInputProps {\n isPayButtonPrimaryVariant?: boolean;\n autoFocus?: boolean;\n billingAddressAllowedCountries?: string[];\n billingAddressRequired?: boolean;\n billingAddressRequiredFields?: string[];\n billingAddressMode?: AddressModeOptions;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n brandsIcons: Array<BrandConfiguration>;\n clientKey: string;\n configuration?: CardBackendConfiguration;\n countryCode?: string;\n cvcPolicy?: CVCPolicyType;\n data?: CardInputDataState;\n disableIOSArrowKeys?: boolean;\n enableStoreDetails?: boolean;\n expiryMonth?: string;\n expiryYear?: string;\n fastlaneConfiguration?: FastlaneSignupConfiguration;\n forceCompat?: boolean;\n fundingSource?: 'debit' | 'credit' | 'prepaid';\n hasCVC?: boolean;\n hasHolderName?: boolean;\n holderName?: string;\n holderNameRequired?: boolean;\n i18n?: Language;\n implementationType?: string;\n installmentOptions?: InstallmentOptions;\n keypadFix?: boolean;\n lastFour?: string;\n loadingContext: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n modules?: {\n srPanel: SRPanel;\n analytics: IAnalytics;\n risk: RiskElement;\n resources: Resources;\n };\n onAdditionalSFConfig?: () => {};\n onAdditionalSFRemoved?: () => {};\n onAllValid?: (o: CardAllValidData) => {};\n onAutoComplete?: (o: CardAutoCompleteData) => {};\n onBinValue?: (o: CardBinValueData) => {};\n onBlur?: (e) => {};\n onBrand?: (o: CardBrandData) => {};\n onConfigSuccess?: (O: CardConfigSuccessData) => {};\n onChange?: (state) => {};\n onError?: () => {};\n onFieldValid?: (o: CardFieldValidData) => {};\n onFocus?: (e) => {};\n onLoad?: (o: CardLoadData) => {};\n onSubmitAnalytics?: (event: AbstractAnalyticsEvent) => void;\n handleKeyPress?: (obj: KeyboardEvent) => void;\n onAddressLookup?: OnAddressLookupType;\n onAddressSelected?: OnAddressSelectedType;\n addressSearchDebounceMs?: number;\n payButton?: (props: PayButtonProps) => h.JSX.Element;\n placeholders?: CardPlaceholders;\n positionHolderNameOnTop?: boolean;\n resources: Resources;\n setComponentRef?: (ref) => void;\n showBrandIcon?: boolean;\n showInstallmentAmounts?: boolean;\n showPayButton: boolean;\n showStoreDetailsCheckbox?: boolean;\n showWarnings?: boolean;\n showContextualElement?: boolean;\n specifications?: Specifications;\n storedPaymentMethodId?: string;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n exposeExpiryDate?: boolean;\n disclaimerMessage?: DisclaimerMsgObject;\n}\n\nexport interface CardInputState {\n dualBrandSelectElements: DualBrandSelectElement[];\n selectedBrandValue: string;\n billingAddress: object;\n brand?: string;\n data?: object;\n errors?: object;\n focusedElement: string;\n cvcPolicy: CVCPolicyType;\n expiryDatePolicy: DatePolicyType;\n isValid: boolean;\n status: string;\n valid?: object;\n issuingCountryCode: string;\n showSocialSecurityNumber?: boolean;\n}\n\n// An interface for the members exposed by CardInput to its parent Card/UIElement\nexport interface CardInputRef extends ComponentMethodsRef {\n sfp?: any;\n setFocusOn?: (who) => void;\n processBinLookupResponse?: (binLookupResponse: BinLookupResponse, isReset: boolean) => void;\n updateStyles?: (stylesObj: StylesObject) => void;\n handleUnsupportedCard?: (errObj: CardErrorData) => boolean;\n}\n\nexport interface FieldError {\n errorMessage?: string;\n errorI18n?: string;\n}\n\nexport interface SFError {\n isValid?: boolean;\n errorMessage?: string;\n errorI18n?: string;\n error: string;\n rootNode: HTMLElement;\n detectedBrands?: string[];\n}\n\nexport interface SFStateErrorObj {\n [key: string]: SFError;\n}\n\nexport interface LayoutObj {\n props: CardInputProps;\n showKCP: boolean;\n showBrazilianSSN: boolean;\n countrySpecificSchemas: AddressSchema;\n billingAddressRequiredFields?: string[];\n}\n\nexport enum AddressModeOptions {\n full = 'full',\n partial = 'partial',\n none = 'none'\n}\n"],"names":["AddressModeOptions"],"mappings":"AA4MO,IAAAA,EAAKA,SAAAA,GAAAA,uDAAAA,CAIX,CAJWA,CAIX,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../../../../../src/components/Card/components/CardInput/types.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport type {\n BinLookupResponse,\n BrandConfiguration,\n CardBrandsConfiguration,\n CardBackendConfiguration,\n DualBrandSelectElement,\n CardPlaceholders\n} from '../../types';\nimport { ValidationResult } from '../../../internal/PersonalDetails/types';\nimport {\n CardAllValidData,\n CardAutoCompleteData,\n CardBinValueData,\n CardBrandData,\n CardConfigSuccessData,\n CardFieldValidData,\n CardFocusData,\n CardLoadData,\n CVCPolicyType,\n DatePolicyType\n} from '../../../internal/SecuredFields/lib/types';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { AddressSchema } from '../../../internal/Address/types';\nimport { CardErrorData, StylesObject } from '../../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../../core/Context/Resources';\nimport { SRPanel } from '../../../../core/Errors/SRPanel';\nimport RiskElement from '../../../../core/RiskModule';\nimport { DisclaimerMsgObject } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { OnAddressLookupType, OnAddressSelectedType } from '../../../internal/Address/components/AddressSearch';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { AddressData } from '../../../../types/global-types';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { IAnalytics } from '../../../../core/Analytics/Analytics';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport { h } from 'preact';\nimport { InstallmentOptions } from './components/Installments/Installments';\nimport type { Form } from '../../../../utils/useForm/types';\n\nexport interface CardInputValidState {\n holderName?: boolean;\n billingAddress?: boolean;\n socialSecurityNumber?: boolean;\n encryptedCardNumber?: boolean;\n encryptedExpiryMonth?: boolean;\n encryptedExpiryYear?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: boolean;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputErrorState {\n holderName?: ValidationResult;\n billingAddress?: ValidationResult;\n socialSecurityNumber?: ValidationResult;\n encryptedCardNumber?: boolean;\n encryptedExpiryDate?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: ValidationResult;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputDataState {\n holderName?: string;\n billingAddress?: AddressData;\n socialSecurityNumber?: string;\n taxNumber?: string;\n}\n\n/**\n * Should be the subset of the props sent to CardInput that are *actually* used by CardInput\n * - either in the comp itself or are passed on to its children\n */\nexport interface CardInputProps {\n isPayButtonPrimaryVariant?: boolean;\n autoFocus?: boolean;\n billingAddressAllowedCountries?: string[];\n billingAddressRequired?: boolean;\n billingAddressRequiredFields?: string[];\n billingAddressMode?: AddressModeOptions;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n brandsIcons: Array<BrandConfiguration>;\n clientKey: string;\n configuration?: CardBackendConfiguration;\n countryCode?: string;\n cvcPolicy?: CVCPolicyType;\n data?: CardInputDataState;\n disableIOSArrowKeys?: boolean;\n enableStoreDetails?: boolean;\n expiryMonth?: string;\n expiryYear?: string;\n fastlaneConfiguration?: FastlaneSignupConfiguration;\n forceCompat?: boolean;\n fundingSource?: 'debit' | 'credit' | 'prepaid';\n hasCVC?: boolean;\n hasHolderName?: boolean;\n holderName?: string;\n holderNameRequired?: boolean;\n i18n?: Language;\n implementationType?: string;\n installmentOptions?: InstallmentOptions;\n keypadFix?: boolean;\n lastFour?: string;\n loadingContext: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n modules?: {\n srPanel: SRPanel;\n analytics: IAnalytics;\n risk: RiskElement;\n resources: Resources;\n };\n onAdditionalSFConfig?: () => {};\n onAdditionalSFRemoved?: () => {};\n onAllValid?: (o: CardAllValidData) => {};\n onAutoComplete?: (o: CardAutoCompleteData) => {};\n onBinValue?: (o: CardBinValueData) => {};\n onBlur?: (e) => {};\n onBrand?: (o: CardBrandData) => {};\n onConfigSuccess?: (O: CardConfigSuccessData) => {};\n onChange?: (state) => {};\n onError?: () => {};\n onFieldValid?: (o: CardFieldValidData) => {};\n onFocus?: (e) => {};\n onLoad?: (o: CardLoadData) => {};\n onSubmitAnalytics?: (event: AbstractAnalyticsEvent) => void;\n handleKeyPress?: (obj: KeyboardEvent) => void;\n onAddressLookup?: OnAddressLookupType;\n onAddressSelected?: OnAddressSelectedType;\n addressSearchDebounceMs?: number;\n payButton?: (props: PayButtonProps) => h.JSX.Element;\n placeholders?: CardPlaceholders;\n positionHolderNameOnTop?: boolean;\n resources: Resources;\n setComponentRef?: (ref) => void;\n showBrandIcon?: boolean;\n showInstallmentAmounts?: boolean;\n showPayButton: boolean;\n showStoreDetailsCheckbox?: boolean;\n showWarnings?: boolean;\n showContextualElement?: boolean;\n specifications?: Specifications;\n storedPaymentMethodId?: string;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n exposeExpiryDate?: boolean;\n disclaimerMessage?: DisclaimerMsgObject;\n}\n\nexport interface CardInputState {\n dualBrandSelectElements: DualBrandSelectElement[];\n selectedBrandValue: string;\n billingAddress: object;\n brand?: string;\n data?: object;\n errors?: object;\n focusedElement: string;\n cvcPolicy: CVCPolicyType;\n expiryDatePolicy: DatePolicyType;\n isValid: boolean;\n status: string;\n valid?: object;\n issuingCountryCode: string;\n showSocialSecurityNumber?: boolean;\n}\n\n// An interface for the members exposed by CardInput to its parent Card/UIElement\nexport interface CardInputRef extends ComponentMethodsRef {\n sfp?: any;\n setFocusOn?: (who) => void;\n processBinLookupResponse?: (binLookupResponse: BinLookupResponse, isReset: boolean) => void;\n updateStyles?: (stylesObj: StylesObject) => void;\n handleUnsupportedCard?: (errObj: CardErrorData) => boolean;\n}\n\nexport interface FieldError {\n errorMessage?: string;\n errorI18n?: string;\n}\n\nexport interface SFError {\n isValid?: boolean;\n errorMessage?: string;\n errorI18n?: string;\n error: string;\n rootNode: HTMLElement;\n detectedBrands?: string[];\n}\n\nexport interface SFStateErrorObj {\n [key: string]: SFError;\n}\n\nexport interface LayoutObj {\n props: CardInputProps;\n showKCP: boolean;\n showBrazilianSSN: boolean;\n countrySpecificSchemas: AddressSchema;\n billingAddressRequiredFields?: string[];\n}\n\nexport enum AddressModeOptions {\n full = 'full',\n partial = 'partial',\n none = 'none'\n}\n\nexport type CardSetFormData = Form<CardInputDataState>['setData'];\nexport type CardSetFormValid = Form<CardInputDataState>['setValid'];\nexport type CardSetFormErrors = Form<CardInputDataState>['setErrors'];\n\nexport type OnFieldFocus = (who: string, e: Event | CardFocusData) => void;\n"],"names":["AddressModeOptions"],"mappings":"AA8MO,IAAAA,EAAKA,SAAAA,GAAAA,uDAAAA,CAIX,CAJWA,CAIX,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSRPanelForCardInputErrors.js","sources":["../../../../../../src/components/Card/components/CardInput/useSRPanelForCardInputErrors.ts"],"sourcesContent":["import { useEffect, useState } from 'preact/hooks';\nimport useSRPanelContext from '../../../../core/Errors/useSRPanelContext';\nimport { SetSRMessagesReturnFn } from '../../../../core/Errors/SRPanelProvider';\nimport { handlePartialAddressMode, lookupBlurBasedErrors, mapFieldKey } from './utils';\nimport { usePrevious } from '../../../../utils/hookUtils';\nimport { SetSRMessagesReturnObject, SortedErrorObject } from '../../../../core/Errors/types';\nimport { ERROR_ACTION_BLUR_SCENARIO, ERROR_ACTION_FOCUS_FIELD } from '../../../../core/Errors/constants';\nimport { setFocusOnFirstField } from './handlers';\nimport { getArrayDifferences } from '../../../../utils/arrayUtils';\n\nconst useSRPanelForCardInputErrors = ({ errors, props, isValidating, retrieveLayout, specifications, billingAddress, sfp }) => {\n // Extract fns from context\n const { setSRMessagesFromObjects, setSRMessagesFromStrings, clearSRPanel, shouldMoveFocusSR } = useSRPanelContext();\n\n // Generate a setSRMessages function - implemented as a partial, since the initial set of arguments don't change.\n const setSRMessages: SetSRMessagesReturnFn = setSRMessagesFromObjects?.({\n fieldTypeMappingFn: mapFieldKey\n });\n\n const partialAddressSchema = handlePartialAddressMode(props.billingAddressMode);\n\n const [sortedErrorList, setSortedErrorList] = useState<SortedErrorObject[]>(null);\n\n // Get the previous list of errors\n const previousSortedErrors = usePrevious(sortedErrorList);\n\n const sfStateErrorsObj = sfp.current?.mapErrorsToValidationRuleResult();\n const mergedErrors = { ...errors, ...sfStateErrorsObj };\n\n useEffect(() => {\n try {\n // Extract and then flatten billingAddress errors into a new object with *all* the field errors at top level\n const { billingAddress: extractedAddressErrors, ...errorsWithoutAddress } = mergedErrors;\n\n const errorsForPanel = { ...errorsWithoutAddress, ...extractedAddressErrors };\n\n // Pass dynamic props (errors, layout etc) to SRPanel via partial\n const srPanelResp: SetSRMessagesReturnObject = setSRMessages?.({\n errors: errorsForPanel,\n isValidating: isValidating.current,\n layout: retrieveLayout(),\n // If we don't have country specific address labels, we might have a label related to a partialAddressSchema (i.e. zipCode)\n countrySpecificLabels: specifications.getAddressLabelsForCountry(billingAddress?.country) ?? partialAddressSchema?.default?.labels\n });\n\n // Store the array of sorted error objects separately so that we can use it to make comparisons between the old and new arrays\n const currentErrorsSortedByLayout = srPanelResp?.currentErrorsSortedByLayout;\n setSortedErrorList(currentErrorsSortedByLayout);\n\n /**\n * Need extra actions after setting SRPanel messages in order to focus field (if required) and because we have some errors that are fired onBlur\n */\n switch (srPanelResp?.action) {\n // A call to focus the first field in error will always follow the call to validate the whole form\n case ERROR_ACTION_FOCUS_FIELD:\n if (shouldMoveFocusSR) setFocusOnFirstField(isValidating.current, sfp, srPanelResp?.fieldToFocus);\n // Remove 'showValidation' mode - allowing time for collation of all the fields in error whilst it is 'showValidation' mode (some errors come in a second render pass)\n setTimeout(() => {\n isValidating.current = false;\n }, 300);\n break;\n\n /**\n * Relates to errors triggered by a field blurring (some pm forms have this, some don't) - check if there is an error to either set or to clear\n */\n case ERROR_ACTION_BLUR_SCENARIO: {\n const difference = getArrayDifferences<SortedErrorObject, string>(currentErrorsSortedByLayout, previousSortedErrors, 'field');\n\n const latestErrorMsg = difference?.[0];\n\n if (latestErrorMsg) {\n // Use the error code to look up whether error is actually a blur based one (most are but some SF ones aren't)\n const isBlurBasedError = lookupBlurBasedErrors(latestErrorMsg.errorCode);\n\n /**\n * ONLY ADD BLUR BASED ERRORS TO THE ERROR PANEL - doing this step prevents the non-blur based errors from being read out twice\n * (once from the aria-live, error panel & once from the aria-describedby element)\n */\n const latestSRError = isBlurBasedError ? latestErrorMsg.errorMessage : null;\n // console.log('### CardInput2::componentDidUpdate:: #2 (not validating) single error:: latestSRError', latestSRError);\n setSRMessagesFromStrings(latestSRError);\n } else {\n // called when previousSortedErrors.length >= currentErrorsSortedByLayout.length\n // console.log('### CardInput2::componentDidUpdate:: #3(not validating) clearing errors:: NO latestErrorMsg');\n clearSRPanel();\n }\n break;\n }\n default:\n break;\n }\n } catch (_) {\n // We don't handle the error related to the sr panel, let it fail silently.\n }\n }, [errors]);\n\n return { sortedErrorList, previousSortedErrors, clearSRPanel };\n};\n\nexport default useSRPanelForCardInputErrors;\n"],"names":["useSRPanelForCardInputErrors","errors","props","isValidating","retrieveLayout","specifications","billingAddress","sfp","setSRMessagesFromObjects","setSRMessagesFromStrings","clearSRPanel","shouldMoveFocusSR","useSRPanelContext","setSRMessages","fieldTypeMappingFn","mapFieldKey","partialAddressSchema","handlePartialAddressMode","billingAddressMode","sortedErrorList","setSortedErrorList","useState","previousSortedErrors","usePrevious","mergedErrors","_object_spread","current","mapErrorsToValidationRuleResult","useEffect","extractedAddressErrors","errorsForPanel","errorsWithoutAddress","srPanelResp","layout","countrySpecificLabels","getAddressLabelsForCountry","country","default","labels","currentErrorsSortedByLayout","action","ERROR_ACTION_FOCUS_FIELD","setFocusOnFirstField","fieldToFocus","setTimeout","ERROR_ACTION_BLUR_SCENARIO","difference","getArrayDifferences","latestErrorMsg","latestSRError","lookupBlurBasedErrors","errorCode","errorMessage","_"],"mappings":"6kDAUA,MAAMA,EAA+B,EAAGC,SAAQC,QAAOC,eAAcC,iBAAgBC,iBAAgBC,iBAAgBC,UAgBxFA,IAAAA,EAdzB,MAAMC,yBAAEA,EAAwBC,yBAAEA,EAAwBC,aAAEA,EAAYC,kBAAEA,GAAsBC,IAG1FC,EAAuCL,aAAAA,EAAAA,EAA2B,CACpEM,mBAAoBC,IAGlBC,EAAuBC,EAAyBf,EAAMgB,qBAErDC,EAAiBC,GAAsBC,EAA8B,MAGtEC,EAAuBC,EAAYJ,GAGnCK,EAAeC,KAAKxB,EADU,QAAXM,EAAAA,EAAImB,eAAJnB,IAAAA,SAAAA,EAAaoB,mCAsEtC,OAnEAC,EAAU,KACN,IAY+BvB,IAAAA,EAAsEW,EAVjG,MAAQV,eAAgBuB,GAAoDL,EAEtEM,EAAiBL,KAF4BM,EAAyBP,EAAAA,oBAEvBK,GAG/CG,EAAyCnB,aAAAA,EAAAA,EAAgB,CAC3DZ,OAAQ6B,EACR3B,aAAcA,EAAauB,QAC3BO,OAAQ7B,IAER8B,sBAAwF,QAAjE7B,EAAAA,EAAe8B,2BAA2B7B,aAAAA,EAAAA,EAAgB8B,oBAA1D/B,EAAAA,EAAsEW,SAA6B,QAA7BA,EAAAA,EAAsBqB,eAAtBrB,IAAAA,SAAAA,EAA+BsB,SAI1HC,EAA8BP,aAAAA,EAAAA,EAAaO,4BAMjD,OALAnB,EAAmBmB,GAKXP,aAAAA,EAAAA,EAAaQ,QAEjB,KAAKC,EACG9B,GAAmB+B,EAAqBvC,EAAauB,QAASnB,EAAKyB,aAAAA,EAAAA,EAAaW,cAEpFC,WAAW,KACPzC,EAAauB,SAAU,GACxB,KACH,MAKJ,KAAKmB,EAA4B,CAC7B,MAAMC,EAAaC,EAA+CR,EAA6BjB,EAAsB,SAE/G0B,EAAiBF,aAAAA,EAAAA,EAAa,GAEpC,GAAIE,EAAgB,CAEhB,MAMMC,EANmBC,EAAsBF,EAAeG,WAMrBH,EAAeI,aAAe,KAEvE3C,EAAyBwC,EAC7B,MAGIvC,IAEJ,KACJ,EAIR,CAAE,MAAO2C,GAET,GACD,CAACpD,IAEG,CAAEkB,kBAAiBG,uBAAsBZ"}
1
+ {"version":3,"file":"useSRPanelForCardInputErrors.js","sources":["../../../../../../src/components/Card/components/CardInput/useSRPanelForCardInputErrors.ts"],"sourcesContent":["import { useEffect, useState } from 'preact/hooks';\nimport useSRPanelContext from '../../../../core/Errors/useSRPanelContext';\nimport { SetSRMessagesReturnFn } from '../../../../core/Errors/SRPanelProvider';\nimport { handlePartialAddressMode, lookupBlurBasedErrors, mapFieldKey } from './utils';\nimport { usePrevious } from '../../../../utils/hookUtils';\nimport { SetSRMessagesReturnObject, SortedErrorObject } from '../../../../core/Errors/types';\nimport { ERROR_ACTION_BLUR_SCENARIO, ERROR_ACTION_FOCUS_FIELD } from '../../../../core/Errors/constants';\nimport { setFocusOnFirstField } from './handlers';\nimport { getArrayDifferences } from '../../../../utils/arrayUtils';\n\nconst useSRPanelForCardInputErrors = ({ errors, props, isValidating, retrieveLayout, specifications, billingAddress, sfp }) => {\n // Extract fns from context\n const { setSRMessagesFromObjects, setSRMessagesFromStrings, clearSRPanel, shouldMoveFocusSR } = useSRPanelContext();\n\n // Generate a setSRMessages function - implemented as a partial, since the initial set of arguments don't change.\n const setSRMessages: SetSRMessagesReturnFn = setSRMessagesFromObjects?.({\n fieldTypeMappingFn: mapFieldKey\n });\n\n const partialAddressSchema = handlePartialAddressMode(props.billingAddressMode);\n\n const [sortedErrorList, setSortedErrorList] = useState<SortedErrorObject[]>(null);\n\n // Get the previous list of errors\n const previousSortedErrors = usePrevious(sortedErrorList);\n\n const sfStateErrorsObj = sfp.current?.mapErrorsToValidationRuleResult();\n const mergedErrors = { ...errors, ...sfStateErrorsObj };\n\n useEffect(() => {\n try {\n // Extract and then flatten billingAddress errors into a new object with *all* the field errors at top level\n const { billingAddress: extractedAddressErrors, ...errorsWithoutAddress } = mergedErrors;\n\n const errorsForPanel = { ...errorsWithoutAddress, ...extractedAddressErrors };\n\n // Pass dynamic props (errors, layout etc) to SRPanel via partial\n const srPanelResp: SetSRMessagesReturnObject = setSRMessages?.({\n errors: errorsForPanel,\n isValidating: isValidating.current,\n layout: retrieveLayout(),\n // If we don't have country specific address labels, we might have a label related to a partialAddressSchema (i.e. zipCode)\n countrySpecificLabels: specifications.getAddressLabelsForCountry(billingAddress?.country) ?? partialAddressSchema?.default?.labels\n });\n\n // Store the array of sorted error objects separately so that we can use it to make comparisons between the old and new arrays\n const currentErrorsSortedByLayout = srPanelResp?.currentErrorsSortedByLayout;\n setSortedErrorList(currentErrorsSortedByLayout);\n\n /**\n * Need extra actions after setting SRPanel messages in order to focus field (if required) and because we have some errors that are fired onBlur\n */\n switch (srPanelResp?.action) {\n // A call to focus the first field in error will always follow the call to validate the whole form\n case ERROR_ACTION_FOCUS_FIELD:\n if (shouldMoveFocusSR) {\n setFocusOnFirstField(isValidating.current, sfp, srPanelResp?.fieldToFocus);\n }\n\n // Remove 'showValidation' mode - allowing time for collation of all the fields in error whilst it is 'showValidation' mode (some errors come in a second render pass)\n setTimeout(() => {\n isValidating.current = false;\n }, 300);\n break;\n\n /**\n * Relates to errors triggered by a field blurring (some pm forms have this, some don't) - check if there is an error to either set or to clear\n */\n case ERROR_ACTION_BLUR_SCENARIO: {\n const difference = getArrayDifferences<SortedErrorObject, string>(currentErrorsSortedByLayout, previousSortedErrors, 'field');\n\n const latestErrorMsg = difference?.[0];\n\n if (latestErrorMsg) {\n // Use the error code to look up whether error is actually a blur based one (most are but some SF ones aren't)\n const isBlurBasedError = lookupBlurBasedErrors(latestErrorMsg.errorCode);\n\n /**\n * ONLY ADD BLUR BASED ERRORS TO THE ERROR PANEL - doing this step prevents the non-blur based errors from being read out twice\n * (once from the aria-live, error panel & once from the aria-describedby element)\n */\n const latestSRError = isBlurBasedError ? latestErrorMsg.errorMessage : null;\n // console.log('### CardInput2::componentDidUpdate:: #2 (not validating) single error:: latestSRError', latestSRError);\n setSRMessagesFromStrings(latestSRError);\n } else {\n // called when previousSortedErrors.length >= currentErrorsSortedByLayout.length\n // console.log('### CardInput2::componentDidUpdate:: #3(not validating) clearing errors:: NO latestErrorMsg');\n clearSRPanel();\n }\n break;\n }\n default:\n break;\n }\n } catch (_) {\n // We don't handle the error related to the sr panel, let it fail silently.\n }\n }, [errors]);\n\n return { sortedErrorList, previousSortedErrors, clearSRPanel };\n};\n\nexport default useSRPanelForCardInputErrors;\n"],"names":["useSRPanelForCardInputErrors","errors","props","isValidating","retrieveLayout","specifications","billingAddress","sfp","setSRMessagesFromObjects","setSRMessagesFromStrings","clearSRPanel","shouldMoveFocusSR","useSRPanelContext","setSRMessages","fieldTypeMappingFn","mapFieldKey","partialAddressSchema","handlePartialAddressMode","billingAddressMode","sortedErrorList","setSortedErrorList","useState","previousSortedErrors","usePrevious","mergedErrors","_object_spread","current","mapErrorsToValidationRuleResult","useEffect","extractedAddressErrors","errorsForPanel","errorsWithoutAddress","srPanelResp","layout","countrySpecificLabels","getAddressLabelsForCountry","country","default","labels","currentErrorsSortedByLayout","action","ERROR_ACTION_FOCUS_FIELD","setFocusOnFirstField","fieldToFocus","setTimeout","ERROR_ACTION_BLUR_SCENARIO","difference","getArrayDifferences","latestErrorMsg","latestSRError","lookupBlurBasedErrors","errorCode","errorMessage","_"],"mappings":"6kDAUA,MAAMA,EAA+B,EAAGC,SAAQC,QAAOC,eAAcC,iBAAgBC,iBAAgBC,iBAAgBC,UAgBxFA,IAAAA,EAdzB,MAAMC,yBAAEA,EAAwBC,yBAAEA,EAAwBC,aAAEA,EAAYC,kBAAEA,GAAsBC,IAG1FC,EAAuCL,aAAAA,EAAAA,EAA2B,CACpEM,mBAAoBC,IAGlBC,EAAuBC,EAAyBf,EAAMgB,qBAErDC,EAAiBC,GAAsBC,EAA8B,MAGtEC,EAAuBC,EAAYJ,GAGnCK,EAAeC,KAAKxB,EADU,QAAXM,EAAAA,EAAImB,eAAJnB,IAAAA,SAAAA,EAAaoB,mCAyEtC,OAtEAC,EAAU,KACN,IAY+BvB,IAAAA,EAAsEW,EAVjG,MAAQV,eAAgBuB,GAAoDL,EAEtEM,EAAiBL,KAF4BM,EAAyBP,EAAAA,oBAEvBK,GAG/CG,EAAyCnB,aAAAA,EAAAA,EAAgB,CAC3DZ,OAAQ6B,EACR3B,aAAcA,EAAauB,QAC3BO,OAAQ7B,IAER8B,sBAAwF,QAAjE7B,EAAAA,EAAe8B,2BAA2B7B,aAAAA,EAAAA,EAAgB8B,oBAA1D/B,EAAAA,EAAsEW,SAA6B,QAA7BA,EAAAA,EAAsBqB,eAAtBrB,IAAAA,SAAAA,EAA+BsB,SAI1HC,EAA8BP,aAAAA,EAAAA,EAAaO,4BAMjD,OALAnB,EAAmBmB,GAKXP,aAAAA,EAAAA,EAAaQ,QAEjB,KAAKC,EACG9B,GACA+B,EAAqBvC,EAAauB,QAASnB,EAAKyB,aAAAA,EAAAA,EAAaW,cAIjEC,WAAW,KACPzC,EAAauB,SAAU,GACxB,KACH,MAKJ,KAAKmB,EAA4B,CAC7B,MAAMC,EAAaC,EAA+CR,EAA6BjB,EAAsB,SAE/G0B,EAAiBF,aAAAA,EAAAA,EAAa,GAEpC,GAAIE,EAAgB,CAEhB,MAMMC,EANmBC,EAAsBF,EAAeG,WAMrBH,EAAeI,aAAe,KAEvE3C,EAAyBwC,EAC7B,MAGIvC,IAEJ,KACJ,EAIR,CAAE,MAAO2C,GAET,GACD,CAACpD,IAEG,CAAEkB,kBAAiBG,uBAAsBZ"}
@@ -1,2 +1,2 @@
1
- import{AddressModeOptions as e}from"./types.js";import{CREDIT_CARD_NAME_TOP as o,CREDIT_CARD_NAME_BOTTOM as n,KCP_CARD_NAME_TOP as i,KCP_CARD_NAME_BOTTOM as r,SSN_CARD_NAME_TOP as l,SSN_CARD_NAME_BOTTOM as t,CREDIT_CARD as a,KCP_CARD as s,SSN_CARD as d}from"./layouts.js";import{PARTIAL_ADDRESS_SCHEMA as c}from"../../../internal/Address/constants.js";import{BRAND_READABLE_NAME_MAP as u}from"../../../internal/SecuredFields/lib/constants.js";import m from"../../../../core/Context/useImage.js";import{SF_ErrorCodes as p}from"../../../../core/Errors/constants.js";const C=(e,o)=>o({type:"card"===e?"nocard":e||"nocard",extension:"svg"})(e),h=e=>["revolving","bonus"].includes(null==e?void 0:e.plan)||(null==e?void 0:e.value)>1,g=({props:e,showKCP:c,showBrazilianSSN:u,countrySpecificSchemas:m=null,billingAddressRequiredFields:p=null})=>{let C=a;const h=e.hasHolderName&&e.holderNameRequired;if(h&&(C=e.positionHolderNameOnTop?o:n),c&&(C=s,h&&(C=e.positionHolderNameOnTop?i:r)),u&&(C=d,h&&(C=e.positionHolderNameOnTop?l:t)),m){const i=m.flat(2).filter(e=>"number"!=typeof e);let r=i;p&&(r=i.filter(e=>p.includes(e))),C=a.concat(r),h&&(C=e.positionHolderNameOnTop?o.concat(r):n.concat(r))}return C},R=(e,o,n)=>{switch(e){case"socialSecurityNumber":return o.get(`boleto.${e}`);case"street":case"houseNumberOrName":case"postalCode":case"stateOrProvince":case"city":case"country":return(null==n?void 0:n[e])?o.get(null==n?void 0:n[e]):o.get(e);default:return null}},y=e=>({billingAddressRequired:e.billingAddressRequired,billingAddressRequiredFields:e.billingAddressRequiredFields,billingAddressAllowedCountries:e.billingAddressAllowedCountries,brandsConfiguration:e.brandsConfiguration,showStoreDetailsCheckbox:e.showStoreDetailsCheckbox,hasCVC:e.hasCVC,hasHolderName:e.hasHolderName,holderNameRequired:e.holderNameRequired,installmentOptions:e.installmentOptions,placeholders:e.placeholders,positionHolderNameOnTop:e.positionHolderNameOnTop,showBrandIcon:e.showBrandIcon,showContextualElement:e.showContextualElement,lastFour:e.lastFour,expiryMonth:e.expiryMonth,expiryYear:e.expiryYear,disclaimerMessage:e.disclaimerMessage}),b=e=>({autoFocus:e.autoFocus,brands:e.brands,brandsConfiguration:e.brandsConfiguration,clientKey:e.clientKey,countryCode:e.countryCode,forceCompat:e.forceCompat,i18n:e.i18n,implementationType:e.implementationType,keypadFix:e.keypadFix,legacyInputMode:e.legacyInputMode,loadingContext:e.loadingContext,maskSecurityCode:e.maskSecurityCode,exposeExpiryDate:e.exposeExpiryDate,minimumExpiryDate:e.minimumExpiryDate,onAdditionalSFConfig:e.onAdditionalSFConfig,onAdditionalSFRemoved:e.onAdditionalSFRemoved,onAllValid:e.onAllValid,onAutoComplete:e.onAutoComplete,onBinValue:e.onBinValue,onConfigSuccess:e.onConfigSuccess,handleKeyPress:e.handleKeyPress,onError:e.onError,onFieldValid:e.onFieldValid,onLoad:e.onLoad,placeholders:e.placeholders,resources:e.resources,showContextualElement:e.showContextualElement,showWarnings:e.showWarnings,trimTrailingSeparator:e.trimTrailingSeparator}),O=o=>o==e.partial?c:null;function f(e){return![p.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,p.ERROR_MSG_CARD_TOO_OLD,p.ERROR_MSG_CARD_TOO_FAR_IN_FUTURE,p.ERROR_MSG_CARD_EXPIRES_TOO_SOON].includes(e)}function S(e){var o;return null!==(o=u[e])&&void 0!==o?o:e}const x=(e,o)=>e.map(e=>{var n,i;const r=e.id,l=m(),t="card"===r?"nocard":r,a=null!==(n=null===(i=o[r])||void 0===i?void 0:i.icon)&&void 0!==n?n:C(t,l);return{id:e.id,name:e.brandObject.localeBrand||e.brandObject.brand,imageURL:a,altName:S(r)}}),A=(e,o,n)=>o.some(o=>e.includes(o[n]));export{y as extractPropsForCardFields,b as extractPropsForSFP,C as getCardImageUrl,S as getFullBrandName,g as getLayout,O as handlePartialAddressMode,f as lookupBlurBasedErrors,x as mapDualBrandButtons,R as mapFieldKey,A as mustHandleDualBrandingAccordingToEURegulations,h as shouldIncludeInstallmentsInPaymentData};
1
+ import{AddressModeOptions as e}from"./types.js";import{CREDIT_CARD_NAME_TOP as o,CREDIT_CARD_NAME_BOTTOM as n,KCP_CARD_NAME_TOP as i,KCP_CARD_NAME_BOTTOM as r,SSN_CARD_NAME_TOP as t,SSN_CARD_NAME_BOTTOM as l,CREDIT_CARD as a,KCP_CARD as s,SSN_CARD as d}from"./layouts.js";import{PARTIAL_ADDRESS_SCHEMA as u}from"../../../internal/Address/constants.js";import{BRAND_READABLE_NAME_MAP as c}from"../../../internal/SecuredFields/lib/constants.js";import m from"../../../../core/Context/useImage.js";import{SF_ErrorCodes as p}from"../../../../core/Errors/constants.js";const C=(e,o)=>o({type:"card"===e?"nocard":e||"nocard",extension:"svg"})(e),g=e=>["revolving","bonus"].includes(null==e?void 0:e.plan)||(null==e?void 0:e.value)>1,h=({props:e,showKCP:u,showBrazilianSSN:c,countrySpecificSchemas:m=null,billingAddressRequiredFields:p=null})=>{let C=a;const g=e.hasHolderName&&e.holderNameRequired;if(g&&(C=e.positionHolderNameOnTop?o:n),u&&(C=s,g&&(C=e.positionHolderNameOnTop?i:r)),c&&(C=d,g&&(C=e.positionHolderNameOnTop?t:l)),m){const i=m.flat(2).filter(e=>"number"!=typeof e);let r=i;p&&(r=i.filter(e=>p.includes(e))),C=a.concat(r),g&&(C=e.positionHolderNameOnTop?o.concat(r):n.concat(r))}return C},R=(e,o,n)=>{switch(e){case"socialSecurityNumber":return o.get(`boleto.${e}`);case"street":case"houseNumberOrName":case"postalCode":case"stateOrProvince":case"city":case"country":return(null==n?void 0:n[e])?o.get(null==n?void 0:n[e]):o.get(e);default:return null}},y=e=>({billingAddressRequired:e.billingAddressRequired,billingAddressRequiredFields:e.billingAddressRequiredFields,billingAddressAllowedCountries:e.billingAddressAllowedCountries,brandsConfiguration:e.brandsConfiguration,showStoreDetailsCheckbox:e.showStoreDetailsCheckbox,hasCVC:e.hasCVC,hasHolderName:e.hasHolderName,holderNameRequired:e.holderNameRequired,installmentOptions:e.installmentOptions,placeholders:e.placeholders,positionHolderNameOnTop:e.positionHolderNameOnTop,showBrandIcon:e.showBrandIcon,showContextualElement:e.showContextualElement,lastFour:e.lastFour,expiryMonth:e.expiryMonth,expiryYear:e.expiryYear,disclaimerMessage:e.disclaimerMessage}),O=e=>({autoFocus:e.autoFocus,brands:e.brands,brandsConfiguration:e.brandsConfiguration,clientKey:e.clientKey,countryCode:e.countryCode,forceCompat:e.forceCompat,i18n:e.i18n,implementationType:e.implementationType,keypadFix:e.keypadFix,legacyInputMode:e.legacyInputMode,loadingContext:e.loadingContext,maskSecurityCode:e.maskSecurityCode,exposeExpiryDate:e.exposeExpiryDate,minimumExpiryDate:e.minimumExpiryDate,onAdditionalSFConfig:e.onAdditionalSFConfig,onAdditionalSFRemoved:e.onAdditionalSFRemoved,onAllValid:e.onAllValid,onAutoComplete:e.onAutoComplete,onBinValue:e.onBinValue,onConfigSuccess:e.onConfigSuccess,handleKeyPress:e.handleKeyPress,onError:e.onError,onFieldValid:e.onFieldValid,onLoad:e.onLoad,placeholders:e.placeholders,resources:e.resources,showContextualElement:e.showContextualElement,showWarnings:e.showWarnings,trimTrailingSeparator:e.trimTrailingSeparator}),b=o=>o==e.partial?u:null;function f(e){return![p.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,p.ERROR_MSG_CARD_TOO_OLD,p.ERROR_MSG_CARD_TOO_FAR_IN_FUTURE,p.ERROR_MSG_CARD_EXPIRES_TOO_SOON].includes(e)}function S(e){var o;return null!==(o=c[e])&&void 0!==o?o:e}const x=(e,o)=>e.map(e=>{var n,i;const r=e.id,t=m(),l="card"===r?"nocard":r,a=null!==(n=null===(i=o[r])||void 0===i?void 0:i.icon)&&void 0!==n?n:C(l,t);return{id:e.id,name:e.brandObject.localeBrand||e.brandObject.brand,imageURL:a,altName:S(r)}}),A=(e,o,n)=>o.some(o=>e.includes(o[n])),E=({installmentOptions:e,fundingSource:o,amount:n})=>!(!e||0===Object.keys(e).length)&&(!(!n||0===n.value)&&(!o||"credit"===o));export{y as extractPropsForCardFields,O as extractPropsForSFP,C as getCardImageUrl,S as getFullBrandName,h as getLayout,b as handlePartialAddressMode,f as lookupBlurBasedErrors,x as mapDualBrandButtons,R as mapFieldKey,A as mustHandleDualBrandingAccordingToEURegulations,g as shouldIncludeInstallmentsInPaymentData,E as shouldShowInstallmentsComponent};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../src/components/Card/components/CardInput/utils.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport { AddressModeOptions, CardInputProps, LayoutObj } from './types';\nimport {\n CREDIT_CARD,\n CREDIT_CARD_NAME_BOTTOM,\n CREDIT_CARD_NAME_TOP,\n KCP_CARD,\n KCP_CARD_NAME_BOTTOM,\n KCP_CARD_NAME_TOP,\n SSN_CARD,\n SSN_CARD_NAME_BOTTOM,\n SSN_CARD_NAME_TOP\n} from './layouts';\nimport { AddressSpecifications, StringObject } from '../../../internal/Address/types';\nimport { PARTIAL_ADDRESS_SCHEMA } from '../../../internal/Address/constants';\nimport { InstallmentsState } from './components/Installments/Installments';\nimport { SFPProps } from '../../../internal/SecuredFields/SFP/types';\nimport { BRAND_READABLE_NAME_MAP } from '../../../internal/SecuredFields/lib/constants';\nimport useImage, { UseImageHookType } from '../../../../core/Context/useImage';\nimport { SF_ErrorCodes } from '../../../../core/Errors/constants';\nimport { BrandObject, CardBrandsConfiguration, DualBrandSelectElement } from '../../types';\n\nexport const getCardImageUrl = (brand: string, getImage: UseImageHookType): string => {\n const imageOptions = {\n type: brand === 'card' ? 'nocard' : brand || 'nocard',\n extension: 'svg'\n };\n\n return getImage(imageOptions)(brand);\n};\n\n/**\n * 'installments' should be added to the payload if it has plan as revolving or bonus\n * or value greater than 1.\n *\n * More about it here: COWEB-1070\n */\nexport const shouldIncludeInstallmentsInPaymentData = (installment?: InstallmentsState): boolean => {\n return ['revolving', 'bonus'].includes(installment?.plan) || installment?.value > 1;\n};\n\nexport const getLayout = ({\n props,\n showKCP,\n showBrazilianSSN,\n countrySpecificSchemas = null,\n billingAddressRequiredFields = null\n}: LayoutObj): string[] => {\n let layout = CREDIT_CARD;\n const hasRequiredHolderName = props.hasHolderName && props.holderNameRequired;\n\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? CREDIT_CARD_NAME_TOP : CREDIT_CARD_NAME_BOTTOM;\n }\n\n if (showKCP) {\n layout = KCP_CARD;\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? KCP_CARD_NAME_TOP : KCP_CARD_NAME_BOTTOM;\n }\n }\n\n if (showBrazilianSSN) {\n layout = SSN_CARD;\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? SSN_CARD_NAME_TOP : SSN_CARD_NAME_BOTTOM;\n }\n }\n\n // w. Billing address\n if (countrySpecificSchemas) {\n // Flatten array and remove any numbers that describe how fields should be aligned\n const countrySpecificSchemasFlat: string[] = countrySpecificSchemas['flat'](2).filter(item => typeof item !== 'number') as string[];\n\n let countryBasedAddressLayout = countrySpecificSchemasFlat;\n\n if (billingAddressRequiredFields) {\n // Get intersection of the 2 arrays\n countryBasedAddressLayout = countrySpecificSchemasFlat.filter(x => billingAddressRequiredFields.includes(x));\n }\n\n layout = CREDIT_CARD.concat(countryBasedAddressLayout);\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop\n ? CREDIT_CARD_NAME_TOP.concat(countryBasedAddressLayout)\n : CREDIT_CARD_NAME_BOTTOM.concat(countryBasedAddressLayout);\n }\n // TODO we are not yet creating a layout for AVS + SSN field (w. or w/o holderName) - is AVS + SSN a real world scenario?\n }\n return layout;\n};\n\n/**\n * Lookup service to map local (CardInput) field refs to a key, possibly region specific, by which to retrieve the translation\n */\nexport const mapFieldKey = (key: string, i18n: Language, countrySpecificLabels: StringObject): string => {\n // console.log('### utils::mapFieldKey:: key', key);\n switch (key) {\n case 'socialSecurityNumber':\n return i18n.get(`boleto.${key}`);\n // Address related - if we have a country specific key for the field - use that to get the translation\n case 'street':\n case 'houseNumberOrName':\n case 'postalCode':\n case 'stateOrProvince':\n case 'city':\n case 'country':\n return countrySpecificLabels?.[key] ? i18n.get(countrySpecificLabels?.[key]) : i18n.get(key);\n // We know that the translated error messages do contain a reference to the field they refer to, so we won't need to map them (currently applies mostly to SecuredFields related errors)\n default:\n return null;\n }\n};\n\nexport const extractPropsForCardFields = (props: CardInputProps) => {\n return {\n // Extract props for CardFieldsWrapper & StoredCardFieldsWrapper(just needs hasCVC, installmentOptions)\n billingAddressRequired: props.billingAddressRequired,\n billingAddressRequiredFields: props.billingAddressRequiredFields,\n billingAddressAllowedCountries: props.billingAddressAllowedCountries,\n brandsConfiguration: props.brandsConfiguration,\n showStoreDetailsCheckbox: props.showStoreDetailsCheckbox,\n hasCVC: props.hasCVC,\n hasHolderName: props.hasHolderName,\n holderNameRequired: props.holderNameRequired,\n installmentOptions: props.installmentOptions,\n placeholders: props.placeholders,\n positionHolderNameOnTop: props.positionHolderNameOnTop,\n // Extract props for CardFields > CardNumber\n showBrandIcon: props.showBrandIcon,\n showContextualElement: props.showContextualElement,\n // Extract props for StoredCardFields\n lastFour: props.lastFour,\n expiryMonth: props.expiryMonth,\n expiryYear: props.expiryYear,\n disclaimerMessage: props.disclaimerMessage\n };\n};\n\nexport const extractPropsForSFP = (props: CardInputProps) => {\n return {\n autoFocus: props.autoFocus,\n brands: props.brands,\n brandsConfiguration: props.brandsConfiguration,\n clientKey: props.clientKey,\n countryCode: props.countryCode,\n forceCompat: props.forceCompat,\n i18n: props.i18n,\n implementationType: props.implementationType,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\n maskSecurityCode: props.maskSecurityCode,\n exposeExpiryDate: props.exposeExpiryDate,\n minimumExpiryDate: props.minimumExpiryDate,\n onAdditionalSFConfig: props.onAdditionalSFConfig,\n onAdditionalSFRemoved: props.onAdditionalSFRemoved,\n onAllValid: props.onAllValid,\n onAutoComplete: props.onAutoComplete,\n onBinValue: props.onBinValue,\n onConfigSuccess: props.onConfigSuccess,\n handleKeyPress: props.handleKeyPress,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onLoad: props.onLoad,\n placeholders: props.placeholders,\n resources: props.resources,\n showContextualElement: props.showContextualElement,\n showWarnings: props.showWarnings,\n trimTrailingSeparator: props.trimTrailingSeparator\n } as SFPProps; // Can't set as return type on fn or it will complain about missing, mandatory, props\n};\n\nexport const handlePartialAddressMode = (addressMode: AddressModeOptions): AddressSpecifications | null => {\n return addressMode == AddressModeOptions.partial ? PARTIAL_ADDRESS_SCHEMA : null;\n};\n\n// Almost all errors are blur based, but some SF ones are not i.e. when an unsupported card is entered or the expiry date is out of range\nexport function lookupBlurBasedErrors(errorCode) {\n // If it's NOT one of these, then it's a blur based error\n return ![\n SF_ErrorCodes.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,\n SF_ErrorCodes.ERROR_MSG_CARD_TOO_OLD,\n SF_ErrorCodes.ERROR_MSG_CARD_TOO_FAR_IN_FUTURE,\n SF_ErrorCodes.ERROR_MSG_CARD_EXPIRES_TOO_SOON\n ].includes(errorCode);\n}\n\nexport function getFullBrandName(brand) {\n return BRAND_READABLE_NAME_MAP[brand] ?? brand;\n}\n\nexport const mapDualBrandButtons = (dualBrandSelectElements: DualBrandSelectElement[], brandsConfiguration: CardBrandsConfiguration): any => {\n return dualBrandSelectElements.map(item => {\n const brand = item.id;\n const getImage = useImage();\n const imageName = brand === 'card' ? 'nocard' : brand;\n const imageURL = brandsConfiguration[brand]?.icon ?? getCardImageUrl(imageName, getImage);\n\n // TODO - check below if we have to still generate altName through the mapping function or whether it just\n // corresponds to item.brandObject.localeBrand\n return {\n id: item.id,\n name: item.brandObject.localeBrand || item.brandObject.brand,\n imageURL,\n altName: getFullBrandName(brand)\n };\n });\n};\n\n/**\n * Only if the brands in EU_BrandArray are present in the binLookup response should we handle dual branding based on EU regulations\n *\n * If the result from Array.some is true - then we are in a EU dual branding regulation scenario, i.e.\n * - Show the new dualBranding UI Buttons\n * - Preselect a card brand\n */\nexport const mustHandleDualBrandingAccordingToEURegulations = (\n EU_BrandArray: readonly string[],\n returnedDualBrandingObjects: DualBrandSelectElement[] | BrandObject[],\n key: string\n) => returnedDualBrandingObjects.some(item => EU_BrandArray.includes(item[key]));\n"],"names":["getCardImageUrl","brand","getImage","type","extension","shouldIncludeInstallmentsInPaymentData","installment","includes","plan","value","getLayout","props","showKCP","showBrazilianSSN","countrySpecificSchemas","billingAddressRequiredFields","layout","CREDIT_CARD","hasRequiredHolderName","hasHolderName","holderNameRequired","positionHolderNameOnTop","CREDIT_CARD_NAME_TOP","CREDIT_CARD_NAME_BOTTOM","KCP_CARD","KCP_CARD_NAME_TOP","KCP_CARD_NAME_BOTTOM","SSN_CARD","SSN_CARD_NAME_TOP","SSN_CARD_NAME_BOTTOM","countrySpecificSchemasFlat","filter","item","countryBasedAddressLayout","x","concat","mapFieldKey","key","i18n","countrySpecificLabels","get","extractPropsForCardFields","billingAddressRequired","billingAddressAllowedCountries","brandsConfiguration","showStoreDetailsCheckbox","hasCVC","installmentOptions","placeholders","showBrandIcon","showContextualElement","lastFour","expiryMonth","expiryYear","disclaimerMessage","extractPropsForSFP","autoFocus","brands","clientKey","countryCode","forceCompat","implementationType","keypadFix","legacyInputMode","loadingContext","maskSecurityCode","exposeExpiryDate","minimumExpiryDate","onAdditionalSFConfig","onAdditionalSFRemoved","onAllValid","onAutoComplete","onBinValue","onConfigSuccess","handleKeyPress","onError","onFieldValid","onLoad","resources","showWarnings","trimTrailingSeparator","handlePartialAddressMode","addressMode","AddressModeOptions","partial","PARTIAL_ADDRESS_SCHEMA","lookupBlurBasedErrors","errorCode","SF_ErrorCodes","ERROR_MSG_UNSUPPORTED_CARD_ENTERED","ERROR_MSG_CARD_TOO_OLD","ERROR_MSG_CARD_TOO_FAR_IN_FUTURE","ERROR_MSG_CARD_EXPIRES_TOO_SOON","getFullBrandName","BRAND_READABLE_NAME_MAP","mapDualBrandButtons","dualBrandSelectElements","map","id","useImage","imageName","imageURL","icon","_ref","name","brandObject","localeBrand","altName","mustHandleDualBrandingAccordingToEURegulations","EU_BrandArray","returnedDualBrandingObjects","some"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/components/Card/components/CardInput/utils.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport { AddressModeOptions, CardInputProps, LayoutObj } from './types';\nimport {\n CREDIT_CARD,\n CREDIT_CARD_NAME_BOTTOM,\n CREDIT_CARD_NAME_TOP,\n KCP_CARD,\n KCP_CARD_NAME_BOTTOM,\n KCP_CARD_NAME_TOP,\n SSN_CARD,\n SSN_CARD_NAME_BOTTOM,\n SSN_CARD_NAME_TOP\n} from './layouts';\nimport { AddressSpecifications, StringObject } from '../../../internal/Address/types';\nimport { PARTIAL_ADDRESS_SCHEMA } from '../../../internal/Address/constants';\nimport type { InstallmentOptions, InstallmentsState } from './components/Installments/Installments';\nimport { SFPProps } from '../../../internal/SecuredFields/SFP/types';\nimport { BRAND_READABLE_NAME_MAP } from '../../../internal/SecuredFields/lib/constants';\nimport useImage, { UseImageHookType } from '../../../../core/Context/useImage';\nimport { SF_ErrorCodes } from '../../../../core/Errors/constants';\nimport { BrandObject, CardBrandsConfiguration, DualBrandSelectElement } from '../../types';\nimport { PaymentAmount } from '../../../../types';\n\nexport const getCardImageUrl = (brand: string, getImage: UseImageHookType): string => {\n const imageOptions = {\n type: brand === 'card' ? 'nocard' : brand || 'nocard',\n extension: 'svg'\n };\n\n return getImage(imageOptions)(brand);\n};\n\n/**\n * 'installments' should be added to the payload if it has plan as revolving or bonus\n * or value greater than 1.\n *\n * More about it here: COWEB-1070\n */\nexport const shouldIncludeInstallmentsInPaymentData = (installment?: InstallmentsState): boolean => {\n return ['revolving', 'bonus'].includes(installment?.plan) || installment?.value > 1;\n};\n\nexport const getLayout = ({\n props,\n showKCP,\n showBrazilianSSN,\n countrySpecificSchemas = null,\n billingAddressRequiredFields = null\n}: LayoutObj): string[] => {\n let layout = CREDIT_CARD;\n const hasRequiredHolderName = props.hasHolderName && props.holderNameRequired;\n\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? CREDIT_CARD_NAME_TOP : CREDIT_CARD_NAME_BOTTOM;\n }\n\n if (showKCP) {\n layout = KCP_CARD;\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? KCP_CARD_NAME_TOP : KCP_CARD_NAME_BOTTOM;\n }\n }\n\n if (showBrazilianSSN) {\n layout = SSN_CARD;\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? SSN_CARD_NAME_TOP : SSN_CARD_NAME_BOTTOM;\n }\n }\n\n // w. Billing address\n if (countrySpecificSchemas) {\n // Flatten array and remove any numbers that describe how fields should be aligned\n const countrySpecificSchemasFlat: string[] = countrySpecificSchemas['flat'](2).filter(item => typeof item !== 'number') as string[];\n\n let countryBasedAddressLayout = countrySpecificSchemasFlat;\n\n if (billingAddressRequiredFields) {\n // Get intersection of the 2 arrays\n countryBasedAddressLayout = countrySpecificSchemasFlat.filter(x => billingAddressRequiredFields.includes(x));\n }\n\n layout = CREDIT_CARD.concat(countryBasedAddressLayout);\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop\n ? CREDIT_CARD_NAME_TOP.concat(countryBasedAddressLayout)\n : CREDIT_CARD_NAME_BOTTOM.concat(countryBasedAddressLayout);\n }\n // TODO we are not yet creating a layout for AVS + SSN field (w. or w/o holderName) - is AVS + SSN a real world scenario?\n }\n return layout;\n};\n\n/**\n * Lookup service to map local (CardInput) field refs to a key, possibly region specific, by which to retrieve the translation\n */\nexport const mapFieldKey = (key: string, i18n: Language, countrySpecificLabels: StringObject): string => {\n // console.log('### utils::mapFieldKey:: key', key);\n switch (key) {\n case 'socialSecurityNumber':\n return i18n.get(`boleto.${key}`);\n // Address related - if we have a country specific key for the field - use that to get the translation\n case 'street':\n case 'houseNumberOrName':\n case 'postalCode':\n case 'stateOrProvince':\n case 'city':\n case 'country':\n return countrySpecificLabels?.[key] ? i18n.get(countrySpecificLabels?.[key]) : i18n.get(key);\n // We know that the translated error messages do contain a reference to the field they refer to, so we won't need to map them (currently applies mostly to SecuredFields related errors)\n default:\n return null;\n }\n};\n\nexport const extractPropsForCardFields = (props: CardInputProps) => {\n return {\n // Extract props for CardFieldsWrapper & StoredCardFieldsWrapper(just needs hasCVC, installmentOptions)\n billingAddressRequired: props.billingAddressRequired,\n billingAddressRequiredFields: props.billingAddressRequiredFields,\n billingAddressAllowedCountries: props.billingAddressAllowedCountries,\n brandsConfiguration: props.brandsConfiguration,\n showStoreDetailsCheckbox: props.showStoreDetailsCheckbox,\n hasCVC: props.hasCVC,\n hasHolderName: props.hasHolderName,\n holderNameRequired: props.holderNameRequired,\n installmentOptions: props.installmentOptions,\n placeholders: props.placeholders,\n positionHolderNameOnTop: props.positionHolderNameOnTop,\n // Extract props for CardFields > CardNumber\n showBrandIcon: props.showBrandIcon,\n showContextualElement: props.showContextualElement,\n // Extract props for StoredCardFields\n lastFour: props.lastFour,\n expiryMonth: props.expiryMonth,\n expiryYear: props.expiryYear,\n disclaimerMessage: props.disclaimerMessage\n };\n};\n\nexport const extractPropsForSFP = (props: CardInputProps) => {\n return {\n autoFocus: props.autoFocus,\n brands: props.brands,\n brandsConfiguration: props.brandsConfiguration,\n clientKey: props.clientKey,\n countryCode: props.countryCode,\n forceCompat: props.forceCompat,\n i18n: props.i18n,\n implementationType: props.implementationType,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\n maskSecurityCode: props.maskSecurityCode,\n exposeExpiryDate: props.exposeExpiryDate,\n minimumExpiryDate: props.minimumExpiryDate,\n onAdditionalSFConfig: props.onAdditionalSFConfig,\n onAdditionalSFRemoved: props.onAdditionalSFRemoved,\n onAllValid: props.onAllValid,\n onAutoComplete: props.onAutoComplete,\n onBinValue: props.onBinValue,\n onConfigSuccess: props.onConfigSuccess,\n handleKeyPress: props.handleKeyPress,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onLoad: props.onLoad,\n placeholders: props.placeholders,\n resources: props.resources,\n showContextualElement: props.showContextualElement,\n showWarnings: props.showWarnings,\n trimTrailingSeparator: props.trimTrailingSeparator\n } as SFPProps; // Can't set as return type on fn or it will complain about missing, mandatory, props\n};\n\nexport const handlePartialAddressMode = (addressMode: AddressModeOptions): AddressSpecifications | null => {\n return addressMode == AddressModeOptions.partial ? PARTIAL_ADDRESS_SCHEMA : null;\n};\n\n// Almost all errors are blur based, but some SF ones are not i.e. when an unsupported card is entered or the expiry date is out of range\nexport function lookupBlurBasedErrors(errorCode) {\n // If it's NOT one of these, then it's a blur based error\n return ![\n SF_ErrorCodes.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,\n SF_ErrorCodes.ERROR_MSG_CARD_TOO_OLD,\n SF_ErrorCodes.ERROR_MSG_CARD_TOO_FAR_IN_FUTURE,\n SF_ErrorCodes.ERROR_MSG_CARD_EXPIRES_TOO_SOON\n ].includes(errorCode);\n}\n\nexport function getFullBrandName(brand) {\n return BRAND_READABLE_NAME_MAP[brand] ?? brand;\n}\n\nexport const mapDualBrandButtons = (dualBrandSelectElements: DualBrandSelectElement[], brandsConfiguration: CardBrandsConfiguration): any => {\n return dualBrandSelectElements.map(item => {\n const brand = item.id;\n const getImage = useImage();\n const imageName = brand === 'card' ? 'nocard' : brand;\n const imageURL = brandsConfiguration[brand]?.icon ?? getCardImageUrl(imageName, getImage);\n\n // TODO - check below if we have to still generate altName through the mapping function or whether it just\n // corresponds to item.brandObject.localeBrand\n return {\n id: item.id,\n name: item.brandObject.localeBrand || item.brandObject.brand,\n imageURL,\n altName: getFullBrandName(brand)\n };\n });\n};\n\n/**\n * Only if the brands in EU_BrandArray are present in the binLookup response should we handle dual branding based on EU regulations\n *\n * If the result from Array.some is true - then we are in a EU dual branding regulation scenario, i.e.\n * - Show the new dualBranding UI Buttons\n * - Preselect a card brand\n */\nexport const mustHandleDualBrandingAccordingToEURegulations = (\n EU_BrandArray: readonly string[],\n returnedDualBrandingObjects: DualBrandSelectElement[] | BrandObject[],\n key: string\n) => returnedDualBrandingObjects.some(item => EU_BrandArray.includes(item[key]));\n\n/**\n * Determines whether the Installments component should be rendered.\n *\n * Installments Component is displayed when:\n * - installmentOptions is provided and not empty\n * - amount is provided and not zero\n * - fundingSource is not provided or is 'credit'\n *\n * @param params.installmentOptions - The installment configuration options\n * @param params.fundingSource - The card funding source (e.g. 'credit', 'debit')\n * @param params.amount - The payment amount\n * @returns Whether the Installments component should be rendered\n */\nexport const shouldShowInstallmentsComponent = ({\n installmentOptions,\n fundingSource,\n amount\n}: {\n installmentOptions?: InstallmentOptions;\n fundingSource?: string;\n amount?: PaymentAmount;\n}): boolean => {\n if (!installmentOptions || Object.keys(installmentOptions).length === 0) return false;\n if (!amount || amount.value === 0) return false;\n if (fundingSource && fundingSource !== 'credit') return false;\n\n return true;\n};\n"],"names":["getCardImageUrl","brand","getImage","type","extension","shouldIncludeInstallmentsInPaymentData","installment","includes","plan","value","getLayout","props","showKCP","showBrazilianSSN","countrySpecificSchemas","billingAddressRequiredFields","layout","CREDIT_CARD","hasRequiredHolderName","hasHolderName","holderNameRequired","positionHolderNameOnTop","CREDIT_CARD_NAME_TOP","CREDIT_CARD_NAME_BOTTOM","KCP_CARD","KCP_CARD_NAME_TOP","KCP_CARD_NAME_BOTTOM","SSN_CARD","SSN_CARD_NAME_TOP","SSN_CARD_NAME_BOTTOM","countrySpecificSchemasFlat","filter","item","countryBasedAddressLayout","x","concat","mapFieldKey","key","i18n","countrySpecificLabels","get","extractPropsForCardFields","billingAddressRequired","billingAddressAllowedCountries","brandsConfiguration","showStoreDetailsCheckbox","hasCVC","installmentOptions","placeholders","showBrandIcon","showContextualElement","lastFour","expiryMonth","expiryYear","disclaimerMessage","extractPropsForSFP","autoFocus","brands","clientKey","countryCode","forceCompat","implementationType","keypadFix","legacyInputMode","loadingContext","maskSecurityCode","exposeExpiryDate","minimumExpiryDate","onAdditionalSFConfig","onAdditionalSFRemoved","onAllValid","onAutoComplete","onBinValue","onConfigSuccess","handleKeyPress","onError","onFieldValid","onLoad","resources","showWarnings","trimTrailingSeparator","handlePartialAddressMode","addressMode","AddressModeOptions","partial","PARTIAL_ADDRESS_SCHEMA","lookupBlurBasedErrors","errorCode","SF_ErrorCodes","ERROR_MSG_UNSUPPORTED_CARD_ENTERED","ERROR_MSG_CARD_TOO_OLD","ERROR_MSG_CARD_TOO_FAR_IN_FUTURE","ERROR_MSG_CARD_EXPIRES_TOO_SOON","getFullBrandName","BRAND_READABLE_NAME_MAP","mapDualBrandButtons","dualBrandSelectElements","map","id","useImage","imageName","imageURL","icon","_ref","name","brandObject","localeBrand","altName","mustHandleDualBrandingAccordingToEURegulations","EU_BrandArray","returnedDualBrandingObjects","some","shouldShowInstallmentsComponent","fundingSource","amount","Object","keys","length"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClickToPayHolder.js","sources":["../../../../../src/components/Card/components/ClickToPayHolder.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useCallback, useEffect, useState } from 'preact/hooks';\nimport useClickToPayContext from '../../internal/ClickToPay/context/useClickToPayContext';\nimport { CtpState } from '../../internal/ClickToPay/services/ClickToPayService';\nimport ClickToPayComponent from '../../internal/ClickToPay';\nimport ContentSeparator from '../../internal/ContentSeparator';\nimport Button from '../../internal/Button';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\n\ntype ClickToPayWrapperProps = {\n children(isCardPrimaryInput?: boolean): h.JSX.Element;\n};\n\nconst ClickToPayHolder = ({ children }: ClickToPayWrapperProps) => {\n const { i18n } = useCoreContext();\n const [isCardInputVisible, setIsCardInputVisible] = useState<boolean>(null);\n const { ctpState, isCtpPrimaryPaymentMethod, setIsCtpPrimaryPaymentMethod, status } = useClickToPayContext();\n\n const areFieldsNotSet = isCardInputVisible === null && isCtpPrimaryPaymentMethod === null;\n\n useEffect(() => {\n if (areFieldsNotSet) {\n if (ctpState === CtpState.ShopperIdentified || ctpState === CtpState.Ready) {\n setIsCardInputVisible(false);\n setIsCtpPrimaryPaymentMethod(true);\n return;\n }\n if (ctpState === CtpState.NotAvailable) {\n setIsCardInputVisible(true);\n setIsCtpPrimaryPaymentMethod(false);\n }\n }\n }, [ctpState, areFieldsNotSet]);\n\n const handleOnShowCardButtonClick = useCallback(() => {\n setIsCardInputVisible(true);\n setIsCtpPrimaryPaymentMethod(false);\n }, []);\n\n const handleButtonKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n void handleOnShowCardButtonClick();\n }\n },\n [handleOnShowCardButtonClick]\n );\n\n if (ctpState === CtpState.NotAvailable) {\n return children();\n }\n\n if (ctpState === CtpState.Loading || ctpState === CtpState.ShopperIdentified) {\n return <ClickToPayComponent />;\n }\n\n return (\n <Fragment>\n <ClickToPayComponent onDisplayCardComponent={handleOnShowCardButtonClick} />\n\n <ContentSeparator classNames={['adyen-checkout-ctp__separator']} label={i18n.get('ctp.separatorText')} />\n\n {isCardInputVisible ? (\n children(!isCtpPrimaryPaymentMethod)\n ) : (\n <Button\n variant=\"secondary\"\n disabled={status === 'loading'}\n label={i18n.get('ctp.manualCardEntry')}\n onClick={handleOnShowCardButtonClick}\n onKeyDown={handleButtonKeyDown}\n />\n )}\n </Fragment>\n );\n};\n\nexport default ClickToPayHolder;\n"],"names":["ClickToPayHolder","children","i18n","useCoreContext","isCardInputVisible","setIsCardInputVisible","useState","ctpState","isCtpPrimaryPaymentMethod","setIsCtpPrimaryPaymentMethod","status","useClickToPayContext","areFieldsNotSet","useEffect","CtpState","ShopperIdentified","Ready","NotAvailable","handleOnShowCardButtonClick","useCallback","handleButtonKeyDown","event","key","Loading","h","ClickToPayComponent","Fragment","onDisplayCardComponent","ContentSeparator","classNames","label","get","Button","variant","disabled","onClick","onKeyDown"],"mappings":"mlBAaA,MAAMA,EAAmB,EAAGC,eACxB,MAAMC,KAAEA,GAASC,KACVC,EAAoBC,GAAyBC,EAAkB,OAChEC,SAAEA,EAAQC,0BAAEA,EAAyBC,6BAAEA,EAA4BC,OAAEA,GAAWC,IAEhFC,EAAyC,OAAvBR,GAA6D,OAA9BI,EAEvDK,EAAU,KACN,GAAID,EAAiB,CACjB,GAAIL,IAAaO,EAASC,mBAAqBR,IAAaO,EAASE,MAGjE,OAFAX,GAAsB,QACtBI,GAA6B,GAG7BF,IAAaO,EAASG,eACtBZ,GAAsB,GACtBI,GAA6B,GAErC,GACD,CAACF,EAAUK,IAEd,MAAMM,EAA8BC,EAAY,KAC5Cd,GAAsB,GACtBI,GAA6B,IAC9B,IAEGW,EAAsBD,EACvBE,IACqB,UAAdA,EAAMC,KACDJ,KAGb,CAACA,IAGL,OAAIX,IAAaO,EAASG,aACfhB,IAGPM,IAAaO,EAASS,SAAWhB,IAAaO,EAASC,kBAChDS,EAACC,EAAAA,MAIRD,EAACE,OACGF,EAACC,EAAAA,CAAoBE,uBAAwBT,IAE7CM,EAACI,EAAAA,CAAiBC,WAAY,CAAC,iCAAkCC,MAAO5B,EAAK6B,IAAI,uBAEhF3B,EACGH,GAAUO,GAEVgB,EAACQ,EAAAA,CACGC,QAAQ,YACRC,SAAqB,YAAXxB,EACVoB,MAAO5B,EAAK6B,IAAI,uBAChBI,QAASjB,EACTkB,UAAWhB"}
1
+ {"version":3,"file":"ClickToPayHolder.js","sources":["../../../../../src/components/Card/components/ClickToPayHolder.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useCallback, useEffect, useState } from 'preact/hooks';\nimport useClickToPayContext from '../../internal/ClickToPay/context/useClickToPayContext';\nimport { CtpState } from '../../internal/ClickToPay/services/ClickToPayService';\nimport ClickToPayComponent from '../../internal/ClickToPay';\nimport ContentSeparator from '../../internal/ContentSeparator';\nimport Button from '../../internal/Button';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\n\ntype ClickToPayWrapperProps = {\n children(isCardPrimaryInput?: boolean): h.JSX.Element;\n};\n\nconst ClickToPayHolder = ({ children }: Readonly<ClickToPayWrapperProps>) => {\n const { i18n } = useCoreContext();\n const [isCardInputVisible, setIsCardInputVisible] = useState<boolean>(null);\n const { ctpState, isCtpPrimaryPaymentMethod, setIsCtpPrimaryPaymentMethod, status } = useClickToPayContext();\n\n const areFieldsNotSet = isCardInputVisible === null && isCtpPrimaryPaymentMethod === null;\n\n useEffect(() => {\n if (areFieldsNotSet) {\n if (ctpState === CtpState.ShopperIdentified || ctpState === CtpState.Ready) {\n setIsCardInputVisible(false);\n setIsCtpPrimaryPaymentMethod(true);\n return;\n }\n if (ctpState === CtpState.NotAvailable) {\n setIsCardInputVisible(true);\n setIsCtpPrimaryPaymentMethod(false);\n }\n }\n }, [ctpState, areFieldsNotSet]);\n\n const handleOnShowCardButtonClick = useCallback(() => {\n setIsCardInputVisible(true);\n setIsCtpPrimaryPaymentMethod(false);\n }, []);\n\n const handleButtonKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n void handleOnShowCardButtonClick();\n }\n },\n [handleOnShowCardButtonClick]\n );\n\n if (ctpState === CtpState.NotAvailable) {\n return children();\n }\n\n if (ctpState === CtpState.Loading || ctpState === CtpState.ShopperIdentified) {\n return <ClickToPayComponent />;\n }\n\n return (\n <Fragment>\n <ClickToPayComponent onDisplayCardComponent={handleOnShowCardButtonClick} />\n\n <ContentSeparator classNames={['adyen-checkout-ctp__separator']} label={i18n.get('ctp.separatorText')} />\n\n {isCardInputVisible ? (\n children(!isCtpPrimaryPaymentMethod)\n ) : (\n <Button\n variant=\"secondary\"\n disabled={status === 'loading'}\n label={i18n.get('ctp.manualCardEntry')}\n onClick={handleOnShowCardButtonClick}\n onKeyDown={handleButtonKeyDown}\n />\n )}\n </Fragment>\n );\n};\n\nexport default ClickToPayHolder;\n"],"names":["ClickToPayHolder","children","i18n","useCoreContext","isCardInputVisible","setIsCardInputVisible","useState","ctpState","isCtpPrimaryPaymentMethod","setIsCtpPrimaryPaymentMethod","status","useClickToPayContext","areFieldsNotSet","useEffect","CtpState","ShopperIdentified","Ready","NotAvailable","handleOnShowCardButtonClick","useCallback","handleButtonKeyDown","event","key","Loading","h","ClickToPayComponent","Fragment","onDisplayCardComponent","ContentSeparator","classNames","label","get","Button","variant","disabled","onClick","onKeyDown"],"mappings":"mlBAaA,MAAMA,EAAmB,EAAGC,eACxB,MAAMC,KAAEA,GAASC,KACVC,EAAoBC,GAAyBC,EAAkB,OAChEC,SAAEA,EAAQC,0BAAEA,EAAyBC,6BAAEA,EAA4BC,OAAEA,GAAWC,IAEhFC,EAAyC,OAAvBR,GAA6D,OAA9BI,EAEvDK,EAAU,KACN,GAAID,EAAiB,CACjB,GAAIL,IAAaO,EAASC,mBAAqBR,IAAaO,EAASE,MAGjE,OAFAX,GAAsB,QACtBI,GAA6B,GAG7BF,IAAaO,EAASG,eACtBZ,GAAsB,GACtBI,GAA6B,GAErC,GACD,CAACF,EAAUK,IAEd,MAAMM,EAA8BC,EAAY,KAC5Cd,GAAsB,GACtBI,GAA6B,IAC9B,IAEGW,EAAsBD,EACvBE,IACqB,UAAdA,EAAMC,KACDJ,KAGb,CAACA,IAGL,OAAIX,IAAaO,EAASG,aACfhB,IAGPM,IAAaO,EAASS,SAAWhB,IAAaO,EAASC,kBAChDS,EAACC,EAAAA,MAIRD,EAACE,OACGF,EAACC,EAAAA,CAAoBE,uBAAwBT,IAE7CM,EAACI,EAAAA,CAAiBC,WAAY,CAAC,iCAAkCC,MAAO5B,EAAK6B,IAAI,uBAEhF3B,EACGH,GAAUO,GAEVgB,EAACQ,EAAAA,CACGC,QAAQ,YACRC,SAAqB,YAAXxB,EACVoB,MAAO5B,EAAK6B,IAAI,uBAChBI,QAASjB,EACTkB,UAAWhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClickToPayWrapper.js","sources":["../../../../../src/components/Card/components/ClickToPayWrapper.tsx"],"sourcesContent":["import ClickToPayProvider, { ClickToPayProviderProps } from '../../internal/ClickToPay/context/ClickToPayProvider';\nimport ClickToPayHolder from './ClickToPayHolder';\nimport { h } from 'preact';\n\nconst ClickToPayWrapper = ({\n configuration,\n clickToPayService,\n setClickToPayRef,\n onSetStatus,\n onSubmit,\n onError,\n isStandaloneComponent,\n ...props\n}: ClickToPayProviderProps) => {\n return (\n <ClickToPayProvider\n isStandaloneComponent={isStandaloneComponent}\n configuration={configuration}\n clickToPayService={clickToPayService}\n setClickToPayRef={setClickToPayRef}\n onSetStatus={onSetStatus}\n onSubmit={onSubmit}\n onError={onError}\n >\n <ClickToPayHolder>{props.children}</ClickToPayHolder>\n </ClickToPayProvider>\n );\n};\n\nexport default ClickToPayWrapper;\n"],"names":["ClickToPayWrapper","_0","configuration","clickToPayService","setClickToPayRef","onSetStatus","onSubmit","onError","isStandaloneComponent","props","h","ClickToPayProvider","ClickToPayHolder","children"],"mappings":"qyBAIA,MAAMA,EAAoBC,IAAC,IAAAC,cACvBA,EAAaC,kBACbA,EAAiBC,iBACjBA,EAAgBC,YAChBA,EAAWC,SACXA,EAAQC,QACRA,EAAOC,sBACPA,GAEsBP,EADnBQ,EAAAA,EAAAA,EAAAA,qHAEH,OACIC,EAACC,EAAAA,CACGH,sBAAuBA,EACvBN,cAAeA,EACfC,kBAAmBA,EACnBC,iBAAkBA,EAClBC,YAAaA,EACbC,SAAUA,EACVC,QAASA,GAETG,EAACE,EAAAA,KAAkBH,EAAMI"}
1
+ {"version":3,"file":"ClickToPayWrapper.js","sources":["../../../../../src/components/Card/components/ClickToPayWrapper.tsx"],"sourcesContent":["import ClickToPayProvider, { ClickToPayProviderProps } from '../../internal/ClickToPay/context/ClickToPayProvider';\nimport ClickToPayHolder from './ClickToPayHolder';\nimport { h } from 'preact';\n\nconst ClickToPayWrapper = ({\n configuration,\n clickToPayService,\n setClickToPayRef,\n onSetStatus,\n onSubmit,\n onError,\n isStandaloneComponent,\n ...props\n}: Readonly<ClickToPayProviderProps>) => {\n return (\n <ClickToPayProvider\n isStandaloneComponent={isStandaloneComponent}\n configuration={configuration}\n clickToPayService={clickToPayService}\n setClickToPayRef={setClickToPayRef}\n onSetStatus={onSetStatus}\n onSubmit={onSubmit}\n onError={onError}\n >\n <ClickToPayHolder>{props.children}</ClickToPayHolder>\n </ClickToPayProvider>\n );\n};\n\nexport default ClickToPayWrapper;\n"],"names":["ClickToPayWrapper","_0","configuration","clickToPayService","setClickToPayRef","onSetStatus","onSubmit","onError","isStandaloneComponent","props","h","ClickToPayProvider","ClickToPayHolder","children"],"mappings":"qyBAIA,MAAMA,EAAoBC,IAAC,IAAAC,cACvBA,EAAaC,kBACbA,EAAiBC,iBACjBA,EAAgBC,YAChBA,EAAWC,SACXA,EAAQC,QACRA,EAAOC,sBACPA,GAEgCP,EAD7BQ,EAAAA,EAAAA,EAAAA,qHAEH,OACIC,EAACC,EAAAA,CACGH,sBAAuBA,EACvBN,cAAeA,EACfC,kBAAmBA,EACnBC,iBAAkBA,EAClBC,YAAaA,EACbC,SAAUA,EACVC,QAASA,GAETG,EAACE,EAAAA,KAAkBH,EAAMI"}
@@ -1 +1 @@
1
- {"version":3,"file":"FastlaneSignup.js","sources":["../../../../../../src/components/Card/components/Fastlane/FastlaneSignup.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport cx from 'classnames';\nimport Toggle from '../../../internal/Toggle';\nimport Img from '../../../internal/Img';\nimport useImage from '../../../../core/Context/useImage';\nimport USOnlyPhoneInput from './USOnlyPhoneInput';\nimport { InfoButton } from './InfoButton';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { LabelOnlyDisclaimerMessage } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { isConfigurationValid } from './utils/validate-configuration';\nimport mobileNumberFormatter from './utils/mobile-number-formatter';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\n\nimport './FastlaneSignup.scss';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../../../core/Analytics/events/AnalyticsInfoEvent';\nimport { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\n\ntype FastlaneSignupProps = FastlaneSignupConfiguration & {\n currentDetectedBrand: string;\n onChange(state: any): void;\n onSubmitAnalytics(event: AbstractAnalyticsEvent): void;\n // Component type (e.g. scheme, bcmc)\n type: string;\n};\n\nconst SUPPORTED_BRANDS = ['mc', 'visa'];\n\nconst FastlaneSignup = ({\n showConsent,\n defaultToggleState,\n termsAndConditionsLink,\n privacyPolicyLink,\n termsAndConditionsVersion,\n fastlaneSessionId,\n currentDetectedBrand,\n telephoneNumber: telephoneNumberFromProps,\n onChange,\n onSubmitAnalytics,\n type\n}: FastlaneSignupProps) => {\n const shouldDisplaySignup = useMemo(() => showConsent && SUPPORTED_BRANDS.includes(currentDetectedBrand), [showConsent, currentDetectedBrand]);\n const [hasConsentFormBeenShown, setHasConsentFormBeenShown] = useState<boolean>(shouldDisplaySignup);\n const [isChecked, setIsChecked] = useState<boolean>(defaultToggleState);\n const getImage = useImage();\n const [telephoneNumber, setTelephoneNumber] = useState<string>('');\n const { i18n } = useCoreContext();\n const isFastlaneConfigurationValid = useMemo(() => {\n return isConfigurationValid({\n showConsent,\n defaultToggleState,\n termsAndConditionsLink,\n privacyPolicyLink,\n termsAndConditionsVersion,\n fastlaneSessionId\n });\n }, [showConsent, defaultToggleState, termsAndConditionsLink, privacyPolicyLink, termsAndConditionsVersion, fastlaneSessionId]);\n\n const handleToggleChange = useCallback(() => {\n const newValue = !isChecked;\n setIsChecked(newValue);\n\n const event = new AnalyticsInfoEvent({\n component: type,\n type: InfoEventType.clicked,\n target: UiTarget.fastlaneSignupConsentToggle,\n configData: {\n isToggleOn: newValue\n }\n });\n onSubmitAnalytics(event);\n }, [isChecked, onSubmitAnalytics, type]);\n\n /**\n * If the configuration is valid, the Component propagates fastlaneData to the Card component state\n *\n * 'telephoneNumber' is optional since the shopper can check out without passing it\n * 'termsAndConditionsVersion' is optional since the signup flow may not be available for the shopper, although we still add fastlaneData to the /payments request for analytics purposes\n */\n useEffect(() => {\n if (!isFastlaneConfigurationValid) {\n return;\n }\n\n onChange({\n fastlaneData: {\n consentShown: hasConsentFormBeenShown,\n fastlaneSessionId: fastlaneSessionId,\n consentGiven: shouldDisplaySignup ? isChecked : false,\n ...(termsAndConditionsVersion && { consentVersion: termsAndConditionsVersion }),\n ...(telephoneNumber && { telephoneNumber })\n }\n });\n }, [\n shouldDisplaySignup,\n hasConsentFormBeenShown,\n termsAndConditionsVersion,\n isChecked,\n fastlaneSessionId,\n telephoneNumber,\n onChange,\n isFastlaneConfigurationValid\n ]);\n\n /**\n * If the sign-up has been displayed at least once, we set hasConsentFormBeenShown: true\n */\n useEffect(() => {\n if (shouldDisplaySignup) {\n setHasConsentFormBeenShown(true);\n }\n }, [shouldDisplaySignup]);\n\n useEffect(() => {\n if (!isFastlaneConfigurationValid) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n component: type,\n type: InfoEventType.rendered,\n configData: {\n isFastlaneSignupRendered: shouldDisplaySignup\n }\n });\n\n onSubmitAnalytics(event);\n }, [shouldDisplaySignup, isFastlaneConfigurationValid, onSubmitAnalytics, type]);\n\n if (!shouldDisplaySignup || !isFastlaneConfigurationValid) {\n return null;\n }\n\n return (\n <div className=\"adyen-checkout-card__fastlane\" data-testid=\"fastlane-signup-component\">\n <div\n className={cx('adyen-checkout-card__fastlane-consent-toggle', {\n 'adyen-checkout-card__fastlane-consent-toggle--active': isChecked\n })}\n >\n <Toggle\n checked={isChecked}\n onChange={handleToggleChange}\n ariaLabel={i18n.get('card.fastlane.consentToggle')}\n label={<span>{i18n.get('card.fastlane.consentToggle')}</span>}\n />\n <InfoButton />\n </div>\n\n {isChecked && (\n <Fragment>\n <USOnlyPhoneInput initialValue={mobileNumberFormatter(telephoneNumberFromProps)} onChange={setTelephoneNumber} />\n <div className=\"adyen-checkout-card__fastlane-consent-text\">\n <LabelOnlyDisclaimerMessage\n message={i18n.get('card.fastlane.consentText')}\n urls={[termsAndConditionsLink, privacyPolicyLink]}\n />\n </div>\n <Img\n className=\"adyen-checkout-card__fastlane-brand\"\n src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_black`)}\n alt={i18n.get('card.fastlane.a11y.logo')}\n />\n </Fragment>\n )}\n </div>\n );\n};\n\nexport default FastlaneSignup;\n"],"names":["SUPPORTED_BRANDS","FastlaneSignup","showConsent","defaultToggleState","termsAndConditionsLink","privacyPolicyLink","termsAndConditionsVersion","fastlaneSessionId","currentDetectedBrand","telephoneNumber","telephoneNumberFromProps","onChange","onSubmitAnalytics","type","shouldDisplaySignup","useMemo","includes","hasConsentFormBeenShown","setHasConsentFormBeenShown","useState","isChecked","setIsChecked","getImage","useImage","setTelephoneNumber","i18n","useCoreContext","isFastlaneConfigurationValid","isConfigurationValid","handleToggleChange","useCallback","newValue","event","AnalyticsInfoEvent","component","InfoEventType","clicked","target","UiTarget","fastlaneSignupConsentToggle","configData","isToggleOn","useEffect","fastlaneData","_object_spread","consentShown","consentGiven","consentVersion","rendered","isFastlaneSignupRendered","h","div","className","data-testid","cx","Toggle","checked","ariaLabel","get","label","span","InfoButton","Fragment","USOnlyPhoneInput","initialValue","mobileNumberFormatter","LabelOnlyDisclaimerMessage","message","urls","Img","src","imageFolder","alt"],"mappings":"u0CA0BA,MAAMA,EAAmB,CAAC,KAAM,QAE1BC,EAAiB,EACnBC,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,oBACAC,uBACAC,gBAAiBC,EACjBC,WACAC,oBACAC,WAEA,MAAMC,EAAsBC,EAAQ,IAAMb,GAAeF,EAAiBgB,SAASR,GAAuB,CAACN,EAAaM,KACjHS,EAAyBC,GAA8BC,EAAkBL,IACzEM,EAAWC,GAAgBF,EAAkBhB,GAC9CmB,EAAWC,KACVd,EAAiBe,GAAsBL,EAAiB,KACzDM,KAAEA,GAASC,IACXC,EAA+BZ,EAAQ,IAClCa,EAAqB,CACxB1B,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,sBAEL,CAACL,EAAaC,EAAoBC,EAAwBC,EAAmBC,EAA2BC,IAErGsB,EAAqBC,EAAY,KACnC,MAAMC,GAAYX,EAClBC,EAAaU,GAEb,MAAMC,EAAQ,IAAIC,EAAmB,CACjCC,UAAWrB,EACXA,KAAMsB,EAAcC,QACpBC,OAAQC,EAASC,4BACjBC,WAAY,CACRC,WAAYV,KAGpBnB,EAAkBoB,IACnB,CAACZ,EAAWR,EAAmBC,IA0DlC,OAlDA6B,EAAU,KACDf,GAILhB,EAAS,CACLgC,aAAcC,EAAA,CACVC,aAAc5B,EACdV,kBAAmBA,EACnBuC,eAAchC,GAAsBM,GAChCd,GAA6B,CAAEyC,eAAgBzC,GAC/CG,GAAmB,CAAEA,uBAGlC,CACCK,EACAG,EACAX,EACAc,EACAb,EACAE,EACAE,EACAgB,IAMJe,EAAU,KACF5B,GACAI,GAA2B,IAEhC,CAACJ,IAEJ4B,EAAU,KACN,IAAKf,EACD,OAGJ,MAAMK,EAAQ,IAAIC,EAAmB,CACjCC,UAAWrB,EACXA,KAAMsB,EAAca,SACpBR,WAAY,CACRS,yBAA0BnC,KAIlCF,EAAkBoB,IACnB,CAAClB,EAAqBa,EAA8Bf,EAAmBC,IAErEC,GAAwBa,EAKzBuB,EAACC,MAAAA,CAAIC,UAAU,gCAAgCC,cAAY,6BACvDH,EAACC,MAAAA,CACGC,UAAWE,EAAG,+CAAgD,CAC1D,uDAAwDlC,KAG5D8B,EAACK,EAAAA,CACGC,QAASpC,EACTT,SAAUkB,EACV4B,UAAWhC,EAAKiC,IAAI,+BACpBC,MAAOT,EAACU,OAAAA,KAAMnC,EAAKiC,IAAI,kCAE3BR,EAACW,EAAAA,OAGJzC,GACG8B,EAACY,EAAAA,KACGZ,EAACa,EAAAA,CAAiBC,aAAcC,EAAsBvD,GAA2BC,SAAUa,IAC3F0B,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACgB,EAAAA,CACGC,QAAS1C,EAAKiC,IAAI,6BAClBU,KAAM,CAAChE,EAAwBC,MAGvC6C,EAACmB,EAAAA,CACGjB,UAAU,sCACVkB,IAAKhD,EAAS,CAAEiD,YAAa,eAAxBjD,CAAyC,yBAC9CkD,IAAK/C,EAAKiC,IAAI,+BA/BvB"}
1
+ {"version":3,"file":"FastlaneSignup.js","sources":["../../../../../../src/components/Card/components/Fastlane/FastlaneSignup.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport cx from 'classnames';\nimport Toggle from '../../../internal/Toggle';\nimport Img from '../../../internal/Img';\nimport useImage from '../../../../core/Context/useImage';\nimport USOnlyPhoneInput from './USOnlyPhoneInput';\nimport { InfoButton } from './InfoButton';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { LabelOnlyDisclaimerMessage } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { isConfigurationValid } from './utils/validate-configuration';\nimport mobileNumberFormatter from './utils/mobile-number-formatter';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\n\nimport './FastlaneSignup.scss';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../../../core/Analytics/events/AnalyticsInfoEvent';\nimport { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\n\ntype FastlaneSignupProps = FastlaneSignupConfiguration & {\n currentDetectedBrand: string;\n onChange(state: any): void;\n onSubmitAnalytics(event: AbstractAnalyticsEvent): void;\n // Component type (e.g. scheme, bcmc)\n type: string;\n};\n\nconst SUPPORTED_BRANDS = ['mc', 'visa'];\n\nconst FastlaneSignup = ({\n showConsent,\n defaultToggleState,\n termsAndConditionsLink,\n privacyPolicyLink,\n termsAndConditionsVersion,\n fastlaneSessionId,\n currentDetectedBrand,\n telephoneNumber: telephoneNumberFromProps,\n onChange,\n onSubmitAnalytics,\n type\n}: Readonly<FastlaneSignupProps>) => {\n const shouldDisplaySignup = useMemo(() => showConsent && SUPPORTED_BRANDS.includes(currentDetectedBrand), [showConsent, currentDetectedBrand]);\n const [hasConsentFormBeenShown, setHasConsentFormBeenShown] = useState<boolean>(shouldDisplaySignup);\n const [isChecked, setIsChecked] = useState<boolean>(defaultToggleState);\n const getImage = useImage();\n const [telephoneNumber, setTelephoneNumber] = useState<string>('');\n const { i18n } = useCoreContext();\n const isFastlaneConfigurationValid = useMemo(() => {\n return isConfigurationValid({\n showConsent,\n defaultToggleState,\n termsAndConditionsLink,\n privacyPolicyLink,\n termsAndConditionsVersion,\n fastlaneSessionId\n });\n }, [showConsent, defaultToggleState, termsAndConditionsLink, privacyPolicyLink, termsAndConditionsVersion, fastlaneSessionId]);\n\n const handleToggleChange = useCallback(() => {\n const newValue = !isChecked;\n setIsChecked(newValue);\n\n const event = new AnalyticsInfoEvent({\n component: type,\n type: InfoEventType.clicked,\n target: UiTarget.fastlaneSignupConsentToggle,\n configData: {\n isToggleOn: newValue\n }\n });\n onSubmitAnalytics(event);\n }, [isChecked, onSubmitAnalytics, type]);\n\n /**\n * If the configuration is valid, the Component propagates fastlaneData to the Card component state\n *\n * 'telephoneNumber' is optional since the shopper can check out without passing it\n * 'termsAndConditionsVersion' is optional since the signup flow may not be available for the shopper, although we still add fastlaneData to the /payments request for analytics purposes\n */\n useEffect(() => {\n if (!isFastlaneConfigurationValid) {\n return;\n }\n\n onChange({\n fastlaneData: {\n consentShown: hasConsentFormBeenShown,\n fastlaneSessionId: fastlaneSessionId,\n consentGiven: shouldDisplaySignup ? isChecked : false,\n ...(termsAndConditionsVersion && { consentVersion: termsAndConditionsVersion }),\n ...(telephoneNumber && { telephoneNumber })\n }\n });\n }, [\n shouldDisplaySignup,\n hasConsentFormBeenShown,\n termsAndConditionsVersion,\n isChecked,\n fastlaneSessionId,\n telephoneNumber,\n onChange,\n isFastlaneConfigurationValid\n ]);\n\n /**\n * If the sign-up has been displayed at least once, we set hasConsentFormBeenShown: true\n */\n useEffect(() => {\n if (shouldDisplaySignup) {\n setHasConsentFormBeenShown(true);\n }\n }, [shouldDisplaySignup]);\n\n useEffect(() => {\n if (!isFastlaneConfigurationValid) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n component: type,\n type: InfoEventType.rendered,\n configData: {\n isFastlaneSignupRendered: shouldDisplaySignup\n }\n });\n\n onSubmitAnalytics(event);\n }, [shouldDisplaySignup, isFastlaneConfigurationValid, onSubmitAnalytics, type]);\n\n if (!shouldDisplaySignup || !isFastlaneConfigurationValid) {\n return null;\n }\n\n return (\n <div className=\"adyen-checkout-card__fastlane\" data-testid=\"fastlane-signup-component\">\n <div\n className={cx('adyen-checkout-card__fastlane-consent-toggle', {\n 'adyen-checkout-card__fastlane-consent-toggle--active': isChecked\n })}\n >\n <Toggle\n checked={isChecked}\n onChange={handleToggleChange}\n ariaLabel={i18n.get('card.fastlane.consentToggle')}\n label={<span>{i18n.get('card.fastlane.consentToggle')}</span>}\n />\n <InfoButton />\n </div>\n\n {isChecked && (\n <Fragment>\n <USOnlyPhoneInput initialValue={mobileNumberFormatter(telephoneNumberFromProps)} onChange={setTelephoneNumber} />\n <div className=\"adyen-checkout-card__fastlane-consent-text\">\n <LabelOnlyDisclaimerMessage\n message={i18n.get('card.fastlane.consentText')}\n urls={[termsAndConditionsLink, privacyPolicyLink]}\n />\n </div>\n <Img\n className=\"adyen-checkout-card__fastlane-brand\"\n src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_black`)}\n alt={i18n.get('card.fastlane.a11y.logo')}\n />\n </Fragment>\n )}\n </div>\n );\n};\n\nexport default FastlaneSignup;\n"],"names":["SUPPORTED_BRANDS","FastlaneSignup","showConsent","defaultToggleState","termsAndConditionsLink","privacyPolicyLink","termsAndConditionsVersion","fastlaneSessionId","currentDetectedBrand","telephoneNumber","telephoneNumberFromProps","onChange","onSubmitAnalytics","type","shouldDisplaySignup","useMemo","includes","hasConsentFormBeenShown","setHasConsentFormBeenShown","useState","isChecked","setIsChecked","getImage","useImage","setTelephoneNumber","i18n","useCoreContext","isFastlaneConfigurationValid","isConfigurationValid","handleToggleChange","useCallback","newValue","event","AnalyticsInfoEvent","component","InfoEventType","clicked","target","UiTarget","fastlaneSignupConsentToggle","configData","isToggleOn","useEffect","fastlaneData","_object_spread","consentShown","consentGiven","consentVersion","rendered","isFastlaneSignupRendered","h","div","className","data-testid","cx","Toggle","checked","ariaLabel","get","label","span","InfoButton","Fragment","USOnlyPhoneInput","initialValue","mobileNumberFormatter","LabelOnlyDisclaimerMessage","message","urls","Img","src","imageFolder","alt"],"mappings":"u0CA0BA,MAAMA,EAAmB,CAAC,KAAM,QAE1BC,EAAiB,EACnBC,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,oBACAC,uBACAC,gBAAiBC,EACjBC,WACAC,oBACAC,WAEA,MAAMC,EAAsBC,EAAQ,IAAMb,GAAeF,EAAiBgB,SAASR,GAAuB,CAACN,EAAaM,KACjHS,EAAyBC,GAA8BC,EAAkBL,IACzEM,EAAWC,GAAgBF,EAAkBhB,GAC9CmB,EAAWC,KACVd,EAAiBe,GAAsBL,EAAiB,KACzDM,KAAEA,GAASC,IACXC,EAA+BZ,EAAQ,IAClCa,EAAqB,CACxB1B,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,sBAEL,CAACL,EAAaC,EAAoBC,EAAwBC,EAAmBC,EAA2BC,IAErGsB,EAAqBC,EAAY,KACnC,MAAMC,GAAYX,EAClBC,EAAaU,GAEb,MAAMC,EAAQ,IAAIC,EAAmB,CACjCC,UAAWrB,EACXA,KAAMsB,EAAcC,QACpBC,OAAQC,EAASC,4BACjBC,WAAY,CACRC,WAAYV,KAGpBnB,EAAkBoB,IACnB,CAACZ,EAAWR,EAAmBC,IA0DlC,OAlDA6B,EAAU,KACDf,GAILhB,EAAS,CACLgC,aAAcC,EAAA,CACVC,aAAc5B,EACdV,kBAAmBA,EACnBuC,eAAchC,GAAsBM,GAChCd,GAA6B,CAAEyC,eAAgBzC,GAC/CG,GAAmB,CAAEA,uBAGlC,CACCK,EACAG,EACAX,EACAc,EACAb,EACAE,EACAE,EACAgB,IAMJe,EAAU,KACF5B,GACAI,GAA2B,IAEhC,CAACJ,IAEJ4B,EAAU,KACN,IAAKf,EACD,OAGJ,MAAMK,EAAQ,IAAIC,EAAmB,CACjCC,UAAWrB,EACXA,KAAMsB,EAAca,SACpBR,WAAY,CACRS,yBAA0BnC,KAIlCF,EAAkBoB,IACnB,CAAClB,EAAqBa,EAA8Bf,EAAmBC,IAErEC,GAAwBa,EAKzBuB,EAACC,MAAAA,CAAIC,UAAU,gCAAgCC,cAAY,6BACvDH,EAACC,MAAAA,CACGC,UAAWE,EAAG,+CAAgD,CAC1D,uDAAwDlC,KAG5D8B,EAACK,EAAAA,CACGC,QAASpC,EACTT,SAAUkB,EACV4B,UAAWhC,EAAKiC,IAAI,+BACpBC,MAAOT,EAACU,OAAAA,KAAMnC,EAAKiC,IAAI,kCAE3BR,EAACW,EAAAA,OAGJzC,GACG8B,EAACY,EAAAA,KACGZ,EAACa,EAAAA,CAAiBC,aAAcC,EAAsBvD,GAA2BC,SAAUa,IAC3F0B,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACgB,EAAAA,CACGC,QAAS1C,EAAKiC,IAAI,6BAClBU,KAAM,CAAChE,EAAwBC,MAGvC6C,EAACmB,EAAAA,CACGjB,UAAU,sCACVkB,IAAKhD,EAAS,CAAEiD,YAAa,eAAxBjD,CAAyC,yBAC9CkD,IAAK/C,EAAKiC,IAAI,+BA/BvB"}