@adyen/adyen-web 6.31.1 → 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 (585) hide show
  1. package/dist/cjs/index.cjs +2 -2
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.cts +178 -152
  4. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  5. package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
  6. package/dist/es/components/Ach/Ach.js.map +1 -1
  7. package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -1
  8. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  9. package/dist/es/components/Address/Address.js.map +1 -1
  10. package/dist/es/components/Affirm/Affirm.js.map +1 -1
  11. package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
  12. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  13. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  14. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  15. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  16. package/dist/es/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  17. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  18. package/dist/es/components/AmazonPay/components/SignOutButton.js.map +1 -1
  19. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  20. package/dist/es/components/ApplePay/components/ApplePayButton.js.map +1 -1
  21. package/dist/es/components/ApplePay/utils/payment-request.js +1 -1
  22. package/dist/es/components/Atome/Atome.js.map +1 -1
  23. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  24. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  25. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  26. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  27. package/dist/es/components/BcmcMobile/BcmcMobile.js.map +1 -1
  28. package/dist/es/components/BillDesk/BillDeskOnline.js.map +1 -1
  29. package/dist/es/components/BillDesk/BillDeskWallet.js.map +1 -1
  30. package/dist/es/components/Blik/Blik.js.map +1 -1
  31. package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
  32. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  33. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  34. package/dist/es/components/Card/Bancontact.js.map +1 -1
  35. package/dist/es/components/Card/Card.js +1 -1
  36. package/dist/es/components/Card/Card.js.map +1 -1
  37. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  38. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  39. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  40. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  41. package/dist/es/components/Card/components/CardInput/components/CVC.js.map +1 -1
  42. package/dist/es/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  43. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  44. package/dist/es/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  45. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  46. package/dist/es/components/Card/components/CardInput/components/DataSfSpan.js.map +1 -1
  47. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  48. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  49. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  50. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  51. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  52. package/dist/es/components/Card/components/CardInput/handlers.js +1 -1
  53. package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
  54. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  55. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  56. package/dist/es/components/Card/components/ClickToPayHolder.js.map +1 -1
  57. package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
  58. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  59. package/dist/es/components/Card/components/Fastlane/InfoModal.js.map +1 -1
  60. package/dist/es/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  61. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  62. package/dist/es/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  63. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  64. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  65. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  66. package/dist/es/components/Doku/Doku.js.map +1 -1
  67. package/dist/es/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js.map +1 -1
  68. package/dist/es/components/Donation/Donation.js.map +1 -1
  69. package/dist/es/components/Donation/components/CampaignContent.js.map +1 -1
  70. package/dist/es/components/Donation/components/CampaignInfo.js.map +1 -1
  71. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  72. package/dist/es/components/Donation/components/FixedAmounts.js.map +1 -1
  73. package/dist/es/components/Donation/components/Roundup.js.map +1 -1
  74. package/dist/es/components/Dotpay/index.js.map +1 -1
  75. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  76. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  77. package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  78. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  79. package/dist/es/components/Dropin/components/DropinSuccessState.js.map +1 -1
  80. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  81. package/dist/es/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  82. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
  83. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js.map +1 -1
  84. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  85. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  86. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  87. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  88. package/dist/es/components/DuitNow/DuitNow.js.map +1 -1
  89. package/dist/es/components/EPS/index.js.map +1 -1
  90. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  91. package/dist/es/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
  92. package/dist/es/components/FacilyPay/FacilyPay10x.js.map +1 -1
  93. package/dist/es/components/FacilyPay/FacilyPay12x.js.map +1 -1
  94. package/dist/es/components/FacilyPay/FacilyPay3x.js.map +1 -1
  95. package/dist/es/components/FacilyPay/FacilyPay4x.js.map +1 -1
  96. package/dist/es/components/FacilyPay/FacilyPay6x.js.map +1 -1
  97. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  98. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  99. package/dist/es/components/Giftcard/components/GiftcardFields.js.map +1 -1
  100. package/dist/es/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  101. package/dist/es/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  102. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  103. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  104. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  105. package/dist/es/components/GooglePay/components/GooglePayButton.js.map +1 -1
  106. package/dist/es/components/GooglePay/requests.js +1 -1
  107. package/dist/es/components/GooglePay/requests.js.map +1 -1
  108. package/dist/es/components/GooglePay/utils.js +1 -1
  109. package/dist/es/components/GooglePay/utils.js.map +1 -1
  110. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  111. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  112. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  113. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  114. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  115. package/dist/es/components/MealVoucherFR/MealVoucherFR.js.map +1 -1
  116. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  117. package/dist/es/components/MealVoucherFR/components/MealVoucherFields.js.map +1 -1
  118. package/dist/es/components/MolPayEBanking/MolPayEBankingMY.js.map +1 -1
  119. package/dist/es/components/MolPayEBanking/MolPayEBankingTH.js.map +1 -1
  120. package/dist/es/components/MolPayEBanking/MolPayEBankingVN.js.map +1 -1
  121. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  122. package/dist/es/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  123. package/dist/es/components/OnlineBankingCZ/index.js.map +1 -1
  124. package/dist/es/components/OnlineBankingFI/OnlineBankingFI.js.map +1 -1
  125. package/dist/es/components/OnlineBankingIN/index.js.map +1 -1
  126. package/dist/es/components/OnlineBankingPL/OnlineBankingPL.js.map +1 -1
  127. package/dist/es/components/OnlineBankingSK/index.js.map +1 -1
  128. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  129. package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  130. package/dist/es/components/PayByBank/PayByBank.js.map +1 -1
  131. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  132. package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -1
  133. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  134. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  135. package/dist/es/components/PayMe/PayMe.js.map +1 -1
  136. package/dist/es/components/PayNow/PayNow.js.map +1 -1
  137. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  138. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  139. package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
  140. package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -1
  141. package/dist/es/components/PayPalFastlane/components/FaslaneCardBrandIcon.js.map +1 -1
  142. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  143. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  144. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -1
  145. package/dist/es/components/PayTo/components/IdentifierSelector.js.map +1 -1
  146. package/dist/es/components/PayTo/components/MandateSummary.js.map +1 -1
  147. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -1
  148. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  149. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  150. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  151. package/dist/es/components/PayU/PayuCashcard.js.map +1 -1
  152. package/dist/es/components/PayU/PayuNetBanking.js.map +1 -1
  153. package/dist/es/components/Pix/Pix.js.map +1 -1
  154. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -1
  155. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  156. package/dist/es/components/PromptPay/PromptPay.js.map +1 -1
  157. package/dist/es/components/RatePay/RatePay.js.map +1 -1
  158. package/dist/es/components/RatePay/RatePayDirectDebit.js.map +1 -1
  159. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  160. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  161. package/dist/es/components/Riverty/Riverty.js.map +1 -1
  162. package/dist/es/components/Sepa/Sepa.js.map +1 -1
  163. package/dist/es/components/Swish/Swish.js.map +1 -1
  164. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  165. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  166. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  167. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  168. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  169. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  170. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  171. package/dist/es/components/Twint/Twint.js.map +1 -1
  172. package/dist/es/components/UPI/UPI.js.map +1 -1
  173. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  174. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  175. package/dist/es/components/UPI/components/UPIMandate/UPIMandate.js.map +1 -1
  176. package/dist/es/components/Vipps/Vipps.js.map +1 -1
  177. package/dist/es/components/WalletIN/index.js.map +1 -1
  178. package/dist/es/components/WeChat/WeChat.js.map +1 -1
  179. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  180. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  181. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  182. package/dist/es/components/internal/Address/Address.js.map +1 -1
  183. package/dist/es/components/internal/Address/components/CountryField.js.map +1 -1
  184. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  185. package/dist/es/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
  186. package/dist/es/components/internal/Address/components/StateField.js.map +1 -1
  187. package/dist/es/components/internal/Alert/Alert.js.map +1 -1
  188. package/dist/es/components/internal/Await/Await.js.map +1 -1
  189. package/dist/es/components/internal/Await/components/AwaitFinalState.js.map +1 -1
  190. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  191. package/dist/es/components/internal/Brand/Brand.js.map +1 -1
  192. package/dist/es/components/internal/Button/CopyButton.js.map +1 -1
  193. package/dist/es/components/internal/Button/CopyIconButton.js.map +1 -1
  194. package/dist/es/components/internal/ClickToPay/ClickToPayComponent.js.map +1 -1
  195. package/dist/es/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  196. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  197. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js.map +1 -1
  198. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  199. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  200. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  201. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  202. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  203. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  204. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  205. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  206. package/dist/es/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  207. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  208. package/dist/es/components/internal/Countdown/index.js.map +1 -1
  209. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  210. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  211. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  212. package/dist/es/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
  213. package/dist/es/components/internal/FormFields/InputEmail.js.map +1 -1
  214. package/dist/es/components/internal/FormFields/InputText.js.map +1 -1
  215. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  216. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -1
  217. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  218. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  219. package/dist/es/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  220. package/dist/es/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  221. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  222. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  223. package/dist/es/components/internal/Icon/Icon.js.map +1 -1
  224. package/dist/es/components/internal/Img/Img.js.map +1 -1
  225. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  226. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  227. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  228. package/dist/es/components/internal/Link/Link.js.map +1 -1
  229. package/dist/es/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  230. package/dist/es/components/internal/Modal/Modal.js.map +1 -1
  231. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  232. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  233. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  234. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  235. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  236. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -1
  237. package/dist/es/components/internal/QRLoader/components/QRCountdown.js.map +1 -1
  238. package/dist/es/components/internal/QRLoader/components/QRFinalState.js.map +1 -1
  239. package/dist/es/components/internal/QRLoader/components/QRImage.js.map +1 -1
  240. package/dist/es/components/internal/QRLoader/components/QRIntructions.js.map +1 -1
  241. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js.map +1 -1
  242. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  243. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  244. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  245. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  246. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  247. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  248. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  249. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  250. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  251. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  252. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/createIframe.js +1 -1
  253. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/createIframe.js.map +1 -1
  254. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
  255. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  256. package/dist/es/components/internal/SecuredFields/utils.js +1 -1
  257. package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
  258. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  259. package/dist/es/components/internal/SegmentedControl/SegmentedControlRegion.js.map +1 -1
  260. package/dist/es/components/internal/Spinner/Spinner.js.map +1 -1
  261. package/dist/es/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  262. package/dist/es/components/internal/Timeline/Timeline.js.map +1 -1
  263. package/dist/es/components/internal/Timeline/TimelineWrapper.js.map +1 -1
  264. package/dist/es/components/internal/Toggle/Toggle.js.map +1 -1
  265. package/dist/es/components/internal/Tooltip/SingletonTooltipProvider.js.map +1 -1
  266. package/dist/es/components/internal/Tooltip/Tooltip.js.map +1 -1
  267. package/dist/es/components/internal/Tooltip/TooltipController.js.map +1 -1
  268. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  269. package/dist/es/core/Analytics/Analytics.js +1 -1
  270. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  271. package/dist/es/core/Context/AmountProvider.js.map +1 -1
  272. package/dist/es/core/Context/CoreProvider.js.map +1 -1
  273. package/dist/es/core/Environment/Environment.js +1 -1
  274. package/dist/es/core/Environment/Environment.js.map +1 -1
  275. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  276. package/dist/es/core/Errors/SRMessages.js.map +1 -1
  277. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  278. package/dist/es/core/Errors/SRPanelProvider.js.map +1 -1
  279. package/dist/es/core/Errors/utils.js +1 -1
  280. package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
  281. package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
  282. package/dist/es/core/RiskModule/RiskModule.js.map +1 -1
  283. package/dist/es/core/RiskModule/components/DeviceFingerprint/DeviceFingerprint.js.map +1 -1
  284. package/dist/es/core/config.js +1 -1
  285. package/dist/es/core/core.js +1 -1
  286. package/dist/es/core/core.js.map +1 -1
  287. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  288. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  289. package/dist/es/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  290. package/dist/es/index.d.ts +178 -152
  291. package/dist/es/index.js +1 -1
  292. package/dist/es/utils/getOrigin.js +1 -1
  293. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  294. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  295. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  296. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -1
  297. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  298. package/dist/es-legacy/components/Address/Address.js.map +1 -1
  299. package/dist/es-legacy/components/Affirm/Affirm.js.map +1 -1
  300. package/dist/es-legacy/components/AfterPay/AfterPay.js.map +1 -1
  301. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  302. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  303. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  304. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  305. package/dist/es-legacy/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  306. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  307. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js.map +1 -1
  308. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  309. package/dist/es-legacy/components/ApplePay/components/ApplePayButton.js.map +1 -1
  310. package/dist/es-legacy/components/ApplePay/utils/payment-request.js +1 -1
  311. package/dist/es-legacy/components/Atome/Atome.js.map +1 -1
  312. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  313. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  314. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  315. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  316. package/dist/es-legacy/components/BcmcMobile/BcmcMobile.js.map +1 -1
  317. package/dist/es-legacy/components/BillDesk/BillDeskOnline.js.map +1 -1
  318. package/dist/es-legacy/components/BillDesk/BillDeskWallet.js.map +1 -1
  319. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  320. package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
  321. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  322. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  323. package/dist/es-legacy/components/Card/Bancontact.js.map +1 -1
  324. package/dist/es-legacy/components/Card/Card.js +1 -1
  325. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  326. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  327. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  328. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  329. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  330. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js.map +1 -1
  331. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  332. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  333. package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  334. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  335. package/dist/es-legacy/components/Card/components/CardInput/components/DataSfSpan.js.map +1 -1
  336. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  337. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  338. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  339. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  340. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  341. package/dist/es-legacy/components/Card/components/CardInput/handlers.js +1 -1
  342. package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
  343. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  344. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  345. package/dist/es-legacy/components/Card/components/ClickToPayHolder.js.map +1 -1
  346. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  347. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  348. package/dist/es-legacy/components/Card/components/Fastlane/InfoModal.js.map +1 -1
  349. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  350. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  351. package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  352. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  353. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  354. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  355. package/dist/es-legacy/components/Doku/Doku.js.map +1 -1
  356. package/dist/es-legacy/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js.map +1 -1
  357. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  358. package/dist/es-legacy/components/Donation/components/CampaignContent.js.map +1 -1
  359. package/dist/es-legacy/components/Donation/components/CampaignInfo.js.map +1 -1
  360. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  361. package/dist/es-legacy/components/Donation/components/FixedAmounts.js.map +1 -1
  362. package/dist/es-legacy/components/Donation/components/Roundup.js.map +1 -1
  363. package/dist/es-legacy/components/Dotpay/index.js.map +1 -1
  364. package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
  365. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  366. package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  367. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  368. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js.map +1 -1
  369. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  370. package/dist/es-legacy/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  371. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
  372. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js.map +1 -1
  373. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  374. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  375. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  376. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  377. package/dist/es-legacy/components/DuitNow/DuitNow.js.map +1 -1
  378. package/dist/es-legacy/components/EPS/index.js.map +1 -1
  379. package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
  380. package/dist/es-legacy/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
  381. package/dist/es-legacy/components/FacilyPay/FacilyPay10x.js.map +1 -1
  382. package/dist/es-legacy/components/FacilyPay/FacilyPay12x.js.map +1 -1
  383. package/dist/es-legacy/components/FacilyPay/FacilyPay3x.js.map +1 -1
  384. package/dist/es-legacy/components/FacilyPay/FacilyPay4x.js.map +1 -1
  385. package/dist/es-legacy/components/FacilyPay/FacilyPay6x.js.map +1 -1
  386. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  387. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  388. package/dist/es-legacy/components/Giftcard/components/GiftcardFields.js.map +1 -1
  389. package/dist/es-legacy/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  390. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  391. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  392. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  393. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  394. package/dist/es-legacy/components/GooglePay/components/GooglePayButton.js.map +1 -1
  395. package/dist/es-legacy/components/GooglePay/requests.js +1 -1
  396. package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
  397. package/dist/es-legacy/components/GooglePay/utils.js +1 -1
  398. package/dist/es-legacy/components/GooglePay/utils.js.map +1 -1
  399. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  400. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  401. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  402. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  403. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  404. package/dist/es-legacy/components/MealVoucherFR/MealVoucherFR.js.map +1 -1
  405. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  406. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherFields.js.map +1 -1
  407. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingMY.js.map +1 -1
  408. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingTH.js.map +1 -1
  409. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingVN.js.map +1 -1
  410. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  411. package/dist/es-legacy/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  412. package/dist/es-legacy/components/OnlineBankingCZ/index.js.map +1 -1
  413. package/dist/es-legacy/components/OnlineBankingFI/OnlineBankingFI.js.map +1 -1
  414. package/dist/es-legacy/components/OnlineBankingIN/index.js.map +1 -1
  415. package/dist/es-legacy/components/OnlineBankingPL/OnlineBankingPL.js.map +1 -1
  416. package/dist/es-legacy/components/OnlineBankingSK/index.js.map +1 -1
  417. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  418. package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  419. package/dist/es-legacy/components/PayByBank/PayByBank.js.map +1 -1
  420. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  421. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -1
  422. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  423. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  424. package/dist/es-legacy/components/PayMe/PayMe.js.map +1 -1
  425. package/dist/es-legacy/components/PayNow/PayNow.js.map +1 -1
  426. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  427. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  428. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
  429. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -1
  430. package/dist/es-legacy/components/PayPalFastlane/components/FaslaneCardBrandIcon.js.map +1 -1
  431. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  432. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  433. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -1
  434. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js.map +1 -1
  435. package/dist/es-legacy/components/PayTo/components/MandateSummary.js.map +1 -1
  436. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -1
  437. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  438. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  439. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  440. package/dist/es-legacy/components/PayU/PayuCashcard.js.map +1 -1
  441. package/dist/es-legacy/components/PayU/PayuNetBanking.js.map +1 -1
  442. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  443. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -1
  444. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  445. package/dist/es-legacy/components/PromptPay/PromptPay.js.map +1 -1
  446. package/dist/es-legacy/components/RatePay/RatePay.js.map +1 -1
  447. package/dist/es-legacy/components/RatePay/RatePayDirectDebit.js.map +1 -1
  448. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  449. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  450. package/dist/es-legacy/components/Riverty/Riverty.js.map +1 -1
  451. package/dist/es-legacy/components/Sepa/Sepa.js.map +1 -1
  452. package/dist/es-legacy/components/Swish/Swish.js.map +1 -1
  453. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  454. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  455. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  456. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  457. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  458. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  459. package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
  460. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  461. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  462. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  463. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  464. package/dist/es-legacy/components/UPI/components/UPIMandate/UPIMandate.js.map +1 -1
  465. package/dist/es-legacy/components/Vipps/Vipps.js.map +1 -1
  466. package/dist/es-legacy/components/WalletIN/index.js.map +1 -1
  467. package/dist/es-legacy/components/WeChat/WeChat.js.map +1 -1
  468. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  469. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  470. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  471. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  472. package/dist/es-legacy/components/internal/Address/components/CountryField.js.map +1 -1
  473. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  474. package/dist/es-legacy/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
  475. package/dist/es-legacy/components/internal/Address/components/StateField.js.map +1 -1
  476. package/dist/es-legacy/components/internal/Alert/Alert.js.map +1 -1
  477. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  478. package/dist/es-legacy/components/internal/Await/components/AwaitFinalState.js.map +1 -1
  479. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  480. package/dist/es-legacy/components/internal/Brand/Brand.js.map +1 -1
  481. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
  482. package/dist/es-legacy/components/internal/Button/CopyIconButton.js.map +1 -1
  483. package/dist/es-legacy/components/internal/ClickToPay/ClickToPayComponent.js.map +1 -1
  484. package/dist/es-legacy/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  485. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  486. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js.map +1 -1
  487. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  488. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  489. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  490. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  491. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  492. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  493. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  494. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  495. package/dist/es-legacy/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  496. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  497. package/dist/es-legacy/components/internal/Countdown/index.js.map +1 -1
  498. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  499. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  500. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  501. package/dist/es-legacy/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
  502. package/dist/es-legacy/components/internal/FormFields/InputEmail.js.map +1 -1
  503. package/dist/es-legacy/components/internal/FormFields/InputText.js.map +1 -1
  504. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  505. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -1
  506. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  507. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  508. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  509. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  510. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  511. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  512. package/dist/es-legacy/components/internal/Icon/Icon.js.map +1 -1
  513. package/dist/es-legacy/components/internal/Img/Img.js.map +1 -1
  514. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  515. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  516. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  517. package/dist/es-legacy/components/internal/Link/Link.js.map +1 -1
  518. package/dist/es-legacy/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  519. package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
  520. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  521. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  522. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  523. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  524. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  525. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -1
  526. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js.map +1 -1
  527. package/dist/es-legacy/components/internal/QRLoader/components/QRFinalState.js.map +1 -1
  528. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js.map +1 -1
  529. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js.map +1 -1
  530. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js.map +1 -1
  531. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  532. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  533. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  534. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  535. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  536. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  537. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  538. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  539. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  540. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  541. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/createIframe.js +1 -1
  542. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/createIframe.js.map +1 -1
  543. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
  544. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  545. package/dist/es-legacy/components/internal/SecuredFields/utils.js +1 -1
  546. package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
  547. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  548. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControlRegion.js.map +1 -1
  549. package/dist/es-legacy/components/internal/Spinner/Spinner.js.map +1 -1
  550. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  551. package/dist/es-legacy/components/internal/Timeline/Timeline.js.map +1 -1
  552. package/dist/es-legacy/components/internal/Timeline/TimelineWrapper.js.map +1 -1
  553. package/dist/es-legacy/components/internal/Toggle/Toggle.js.map +1 -1
  554. package/dist/es-legacy/components/internal/Tooltip/SingletonTooltipProvider.js.map +1 -1
  555. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
  556. package/dist/es-legacy/components/internal/Tooltip/TooltipController.js.map +1 -1
  557. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  558. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  559. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  560. package/dist/es-legacy/core/Context/AmountProvider.js.map +1 -1
  561. package/dist/es-legacy/core/Context/CoreProvider.js.map +1 -1
  562. package/dist/es-legacy/core/Environment/Environment.js +1 -1
  563. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  564. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js.map +1 -1
  565. package/dist/es-legacy/core/Errors/SRMessages.js.map +1 -1
  566. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  567. package/dist/es-legacy/core/Errors/SRPanelProvider.js.map +1 -1
  568. package/dist/es-legacy/core/Errors/utils.js +1 -1
  569. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
  570. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
  571. package/dist/es-legacy/core/RiskModule/RiskModule.js.map +1 -1
  572. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/DeviceFingerprint.js.map +1 -1
  573. package/dist/es-legacy/core/config.js +1 -1
  574. package/dist/es-legacy/core/core.js +1 -1
  575. package/dist/es-legacy/core/core.js.map +1 -1
  576. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  577. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  578. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  579. package/dist/es-legacy/index.js +1 -1
  580. package/dist/es-legacy/utils/getOrigin.js +1 -1
  581. package/package.json +18 -19
  582. package/dist/es/utils/getProp.js +0 -2
  583. package/dist/es/utils/getProp.js.map +0 -1
  584. package/dist/es-legacy/utils/getProp.js +0 -2
  585. package/dist/es-legacy/utils/getProp.js.map +0 -1
@@ -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';\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';\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 (!CREDIT_CARD_SF_FIELDS.includes(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 (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, 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","CREDIT_CARD_SF_FIELDS","includes","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":"oVAYO,MAAMA,EAAuB,CAACC,EAAuBC,EAA+BC,KACvF,GAAIF,EAAc,CAEd,GAAIG,EAAGC,SAAU,CACb,MAAMC,EAAWJ,EAAIK,QAAQC,gBACvBC,EAAiCH,GAAUI,cAAc,aAAaP,OAC5EQ,EAAeF,EACnB,CAGKG,EAAsBC,SAASV,GAIhCD,EAAIK,QAAQO,WAAWX,GAHvBY,EAAgBZ,EAAcD,EAAKE,EAAGC,SAK9C,GAGSW,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,EAAoC/B,EAA+BgC,IAC3F,KACED,EAAc1B,UACf0B,EAAc1B,SAAU,EAKnB4B,QAAQC,UAAUC,KAAK,KACxB,MAAMC,EAAWJ,EAAOK,UAAUC,GAAQA,IAASC,GAC7CC,EAAmBR,EAAOS,MAAML,EAAW,GAKjD,IAAK,MAAMM,KAASF,EAAkB,CAElC,IAAI9B,EAAsBC,SAAS+B,GAM5B,CAGH7B,EAAgB6B,EAAO1C,GAAK,GAC5B,KACJ,CATI,IAD2BA,EAAIK,QAAQsC,qBAAqBD,GACnC,CACrB1C,EAAIK,QAAQO,WAAW8B,GACvB,KACJ,CAOR,CAEAX,EAAc1B,SAAU,MAMlCQ,EAAkB,CAAC+B,EAAmB5C,EAA+B6C,KAGrD,cAAdD,IAA2BA,EAAY,qBAE3C,MAAMxC,EAAWJ,EAAIK,QAAQC,gBAE7B,GAAkB,YAAdsC,GAAyC,oBAAdA,EAAiC,CAE5D,MAAMF,EAAqBI,EAAU1C,EAAU,2BAA2BwC,mCAC1EF,GAAOd,MAAM,CAAEmB,cAAeF,GAClC,KAAO,CAEH,MAAMH,EAAqBI,EAAU1C,EAAU,UAAUwC,OACzDF,GAAOd,MAAM,CAAEmB,cAAeF,GAClC"}
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,CACb,MAAMC,EAAWJ,EAAIK,QAAQC,gBACvBC,EAAiCH,GAAUI,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,KAGrD,cAAdD,IAA2BA,EAAY,qBAE3C,MAAMvC,EAAWJ,EAAIK,QAAQC,gBAE7B,GAAkB,YAAdqC,GAAyC,oBAAdA,EAAiC,CAE5D,MAAMF,EAAqBI,EAAUzC,EAAU,2BAA2BuC,mCAC1EF,GAAOd,MAAM,CAAEmB,cAAeF,GAClC,KAAO,CAEH,MAAMH,EAAqBI,EAAUzC,EAAU,UAAUuC,OACzDF,GAAOd,MAAM,CAAEmB,cAAeF,GAClC"}
@@ -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 r,KCP_CARD_NAME_BOTTOM as i,SSN_CARD_NAME_TOP as t,SSN_CARD_NAME_BOTTOM as a,CREDIT_CARD as s,KCP_CARD as l,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(e?.plan)||e?.value>1,g=({props:e,showKCP:c,showBrazilianSSN:u,countrySpecificSchemas:m=null,billingAddressRequiredFields:p=null})=>{let C=s;const h=e.hasHolderName&&e.holderNameRequired;if(h&&(C=e.positionHolderNameOnTop?o:n),c&&(C=l,h&&(C=e.positionHolderNameOnTop?r:i)),u&&(C=d,h&&(C=e.positionHolderNameOnTop?t:a)),m){const r=m.flat(2).filter(e=>"number"!=typeof e);let i=r;p&&(i=r.filter(e=>p.includes(e))),C=s.concat(i),h&&(C=e.positionHolderNameOnTop?o.concat(i):n.concat(i))}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 n?.[e]?o.get(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){return u[e]??e}const x=(e,o)=>e.map(e=>{const n=e.id,r=m(),i="card"===n?"nocard":n,t=o[n]?.icon??C(i,r);return{id:e.id,name:e.brandObject.localeBrand||e.brandObject.brand,imageURL:t,altName:S(n)}}),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 r,KCP_CARD_NAME_BOTTOM as i,SSN_CARD_NAME_TOP as t,SSN_CARD_NAME_BOTTOM as a,CREDIT_CARD as s,KCP_CARD as l,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),g=e=>["revolving","bonus"].includes(e?.plan)||e?.value>1,h=({props:e,showKCP:c,showBrazilianSSN:u,countrySpecificSchemas:m=null,billingAddressRequiredFields:p=null})=>{let C=s;const g=e.hasHolderName&&e.holderNameRequired;if(g&&(C=e.positionHolderNameOnTop?o:n),c&&(C=l,g&&(C=e.positionHolderNameOnTop?r:i)),u&&(C=d,g&&(C=e.positionHolderNameOnTop?t:a)),m){const r=m.flat(2).filter(e=>"number"!=typeof e);let i=r;p&&(i=r.filter(e=>p.includes(e))),C=s.concat(i),g&&(C=e.positionHolderNameOnTop?o.concat(i):n.concat(i))}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 n?.[e]?o.get(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?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){return u[e]??e}const x=(e,o)=>e.map(e=>{const n=e.id,r=m(),i="card"===n?"nocard":n,t=o[n]?.icon??C(i,r);return{id:e.id,name:e.brandObject.localeBrand||e.brandObject.brand,imageURL:t,altName:S(n)}}),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","name","brandObject","localeBrand","altName","mustHandleDualBrandingAccordingToEURegulations","EU_BrandArray","returnedDualBrandingObjects","some"],"mappings":"ojBAsBO,MAAMA,EAAkB,CAACC,EAAeC,IAMpCA,EALc,CACjBC,KAAgB,SAAVF,EAAmB,SAAWA,GAAS,SAC7CG,UAAW,OAGRF,CAAuBD,GASrBI,EAA0CC,GAC5C,CAAC,YAAa,SAASC,SAASD,GAAaE,OAASF,GAAaG,MAAQ,EAGzEC,EAAY,EACrBC,QACAC,UACAC,mBACAC,yBAAyB,KACzBC,+BAA+B,SAE/B,IAAIC,EAASC,EACb,MAAMC,EAAwBP,EAAMQ,eAAiBR,EAAMS,mBAqB3D,GAnBIF,IACAF,EAASL,EAAMU,wBAA0BC,EAAuBC,GAGhEX,IACAI,EAASQ,EACLN,IACAF,EAASL,EAAMU,wBAA0BI,EAAoBC,IAIjEb,IACAG,EAASW,EACLT,IACAF,EAASL,EAAMU,wBAA0BO,EAAoBC,IAKjEf,EAAwB,CAExB,MAAMgB,EAAuChB,EAAuB,KAAQ,GAAGiB,OAAOC,GAAwB,iBAATA,GAErG,IAAIC,EAA4BH,EAE5Bf,IAEAkB,EAA4BH,EAA2BC,OAAOG,GAAKnB,EAA6BR,SAAS2B,KAG7GlB,EAASC,EAAYkB,OAAOF,GACxBf,IACAF,EAASL,EAAMU,wBACTC,EAAqBa,OAAOF,GAC5BV,EAAwBY,OAAOF,GAG7C,CACA,OAAOjB,GAMEoB,EAAc,CAACC,EAAaC,EAAgBC,KAErD,OAAQF,GACJ,IAAK,uBACD,OAAOC,EAAKE,IAAI,UAAUH,KAE9B,IAAK,SACL,IAAK,oBACL,IAAK,aACL,IAAK,kBACL,IAAK,OACL,IAAK,UACD,OAAOE,IAAwBF,GAAOC,EAAKE,IAAID,IAAwBF,IAAQC,EAAKE,IAAIH,GAE5F,QACI,OAAO,OAINI,EAA6B9B,IAC/B,CAEH+B,uBAAwB/B,EAAM+B,uBAC9B3B,6BAA8BJ,EAAMI,6BACpC4B,+BAAgChC,EAAMgC,+BACtCC,oBAAqBjC,EAAMiC,oBAC3BC,yBAA0BlC,EAAMkC,yBAChCC,OAAQnC,EAAMmC,OACd3B,cAAeR,EAAMQ,cACrBC,mBAAoBT,EAAMS,mBAC1B2B,mBAAoBpC,EAAMoC,mBAC1BC,aAAcrC,EAAMqC,aACpB3B,wBAAyBV,EAAMU,wBAE/B4B,cAAetC,EAAMsC,cACrBC,sBAAuBvC,EAAMuC,sBAE7BC,SAAUxC,EAAMwC,SAChBC,YAAazC,EAAMyC,YACnBC,WAAY1C,EAAM0C,WAClBC,kBAAmB3C,EAAM2C,oBAIpBC,EAAsB5C,IACxB,CACH6C,UAAW7C,EAAM6C,UACjBC,OAAQ9C,EAAM8C,OACdb,oBAAqBjC,EAAMiC,oBAC3Bc,UAAW/C,EAAM+C,UACjBC,YAAahD,EAAMgD,YACnBC,YAAajD,EAAMiD,YACnBtB,KAAM3B,EAAM2B,KACZuB,mBAAoBlD,EAAMkD,mBAC1BC,UAAWnD,EAAMmD,UACjBC,gBAAiBpD,EAAMoD,gBACvBC,eAAgBrD,EAAMqD,eACtBC,iBAAkBtD,EAAMsD,iBACxBC,iBAAkBvD,EAAMuD,iBACxBC,kBAAmBxD,EAAMwD,kBACzBC,qBAAsBzD,EAAMyD,qBAC5BC,sBAAuB1D,EAAM0D,sBAC7BC,WAAY3D,EAAM2D,WAClBC,eAAgB5D,EAAM4D,eACtBC,WAAY7D,EAAM6D,WAClBC,gBAAiB9D,EAAM8D,gBACvBC,eAAgB/D,EAAM+D,eACtBC,QAAShE,EAAMgE,QACfC,aAAcjE,EAAMiE,aACpBC,OAAQlE,EAAMkE,OACd7B,aAAcrC,EAAMqC,aACpB8B,UAAWnE,EAAMmE,UACjB5B,sBAAuBvC,EAAMuC,sBAC7B6B,aAAcpE,EAAMoE,aACpBC,sBAAuBrE,EAAMqE,wBAIxBC,EAA4BC,GAC9BA,GAAeC,EAAmBC,QAAUC,EAAyB,KAIzE,SAASC,EAAsBC,GAElC,OAAQ,CACJC,EAAcC,mCACdD,EAAcE,uBACdF,EAAcG,iCACdH,EAAcI,iCAChBrF,SAASgF,EACf,CAEO,SAASM,EAAiB5F,GAC7B,OAAO6F,EAAwB7F,IAAUA,CAC7C,CAEO,MAAM8F,EAAsB,CAACC,EAAmDpD,IAC5EoD,EAAwBC,IAAIjE,IAC/B,MAAM/B,EAAQ+B,EAAKkE,GACbhG,EAAWiG,IACXC,EAAsB,SAAVnG,EAAmB,SAAWA,EAC1CoG,EAAWzD,EAAoB3C,IAAQqG,MAAQtG,EAAgBoG,EAAWlG,GAIhF,MAAO,CACHgG,GAAIlE,EAAKkE,GACTK,KAAMvE,EAAKwE,YAAYC,aAAezE,EAAKwE,YAAYvG,MACvDoG,WACAK,QAASb,EAAiB5F,MAYzB0G,EAAiD,CAC1DC,EACAC,EACAxE,IACCwE,EAA4BC,KAAK9E,GAAQ4E,EAAcrG,SAASyB,EAAKK"}
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","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","configuration","clickToPayService","setClickToPayRef","onSetStatus","onSubmit","onError","isStandaloneComponent","props","h","ClickToPayProvider","ClickToPayHolder","children"],"mappings":"oLAIA,MAAMA,EAAoB,EACtBC,gBACAC,oBACAC,mBACAC,cACAC,WACAC,UACAC,2BACGC,KAGCC,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","configuration","clickToPayService","setClickToPayRef","onSetStatus","onSubmit","onError","isStandaloneComponent","props","h","ClickToPayProvider","ClickToPayHolder","children"],"mappings":"oLAIA,MAAMA,EAAoB,EACtBC,gBACAC,oBACAC,mBACAC,cACAC,WACAC,UACAC,2BACGC,KAGCC,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","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":"24BA0BA,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,aAAc,CACVC,aAAc3B,EACdV,kBAAmBA,EACnBsC,eAAc/B,GAAsBM,KAChCd,GAA6B,CAAEwC,eAAgBxC,MAC/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,EAAcY,SACpBP,WAAY,CACRQ,yBAA0BlC,KAIlCF,EAAkBoB,IACnB,CAAClB,EAAqBa,EAA8Bf,EAAmBC,IAErEC,GAAwBa,EAKzBsB,EAACC,MAAAA,CAAIC,UAAU,gCAAgCC,cAAY,6BACvDH,EAACC,MAAAA,CACGC,UAAWE,EAAG,+CAAgD,CAC1D,uDAAwDjC,KAG5D6B,EAACK,EAAAA,CACGC,QAASnC,EACTT,SAAUkB,EACV2B,UAAW/B,EAAKgC,IAAI,+BACpBC,MAAOT,EAACU,OAAAA,KAAMlC,EAAKgC,IAAI,kCAE3BR,EAACW,EAAAA,OAGJxC,GACG6B,EAACY,EAAAA,KACGZ,EAACa,EAAAA,CAAiBC,aAAcC,EAAsBtD,GAA2BC,SAAUa,IAC3FyB,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACgB,EAAAA,CACGC,QAASzC,EAAKgC,IAAI,6BAClBU,KAAM,CAAC/D,EAAwBC,MAGvC4C,EAACmB,EAAAA,CACGjB,UAAU,sCACVkB,IAAK/C,EAAS,CAAEgD,YAAa,eAAxBhD,CAAyC,yBAC9CiD,IAAK9C,EAAKgC,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","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":"24BA0BA,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,aAAc,CACVC,aAAc3B,EACdV,kBAAmBA,EACnBsC,eAAc/B,GAAsBM,KAChCd,GAA6B,CAAEwC,eAAgBxC,MAC/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,EAAcY,SACpBP,WAAY,CACRQ,yBAA0BlC,KAIlCF,EAAkBoB,IACnB,CAAClB,EAAqBa,EAA8Bf,EAAmBC,IAErEC,GAAwBa,EAKzBsB,EAACC,MAAAA,CAAIC,UAAU,gCAAgCC,cAAY,6BACvDH,EAACC,MAAAA,CACGC,UAAWE,EAAG,+CAAgD,CAC1D,uDAAwDjC,KAG5D6B,EAACK,EAAAA,CACGC,QAASnC,EACTT,SAAUkB,EACV2B,UAAW/B,EAAKgC,IAAI,+BACpBC,MAAOT,EAACU,OAAAA,KAAMlC,EAAKgC,IAAI,kCAE3BR,EAACW,EAAAA,OAGJxC,GACG6B,EAACY,EAAAA,KACGZ,EAACa,EAAAA,CAAiBC,aAAcC,EAAsBtD,GAA2BC,SAAUa,IAC3FyB,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACgB,EAAAA,CACGC,QAASzC,EAAKgC,IAAI,6BAClBU,KAAM,CAAC/D,EAAwBC,MAGvC4C,EAACmB,EAAAA,CACGjB,UAAU,sCACVkB,IAAK/C,EAAS,CAAEgD,YAAa,eAAxBhD,CAAyC,yBAC9CiD,IAAK9C,EAAKgC,IAAI,+BA/BvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"InfoModal.js","sources":["../../../../../../src/components/Card/components/Fastlane/InfoModal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport useImage from '../../../../core/Context/useImage';\nimport { Modal } from '../../../internal/Modal';\nimport Img from '../../../internal/Img';\nimport Button from '../../../internal/Button';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport uuid from '../../../../utils/uuid';\n\nimport './InfoModal.scss';\n\ninterface InfoModalProps {\n isOpen: boolean;\n focusAfterClose: HTMLElement;\n onClose(): void;\n}\n\nconst FASTLANE_BENEFITS = [\n {\n headerKey: 'card.fastlane.modal.benefit1.header',\n labelById: `adyen-fastlane-modal-label-${uuid()}`,\n descriptionTextKey: 'card.fastlane.modal.benefit1.text',\n describedById: `adyen-fastlane-modal-describedBy-${uuid()}`,\n image: 'fastlane_autofill',\n altImage: ''\n },\n {\n headerKey: 'card.fastlane.modal.benefit2.header',\n labelById: `adyen-fastlane-modal-label-${uuid()}`,\n descriptionTextKey: 'card.fastlane.modal.benefit2.text',\n describedById: `adyen-fastlane-modal-describedBy-${uuid()}`,\n image: 'fastlane_protection',\n altImage: ''\n },\n {\n headerKey: 'card.fastlane.modal.benefit3.header',\n labelById: `adyen-fastlane-modal-label-${uuid()}`,\n descriptionTextKey: 'card.fastlane.modal.benefit3.text',\n describedById: `adyen-fastlane-modal-describedBy-${uuid()}`,\n image: 'fastlane_ubiquity',\n altImage: ''\n }\n];\n\nconst InfoModal = ({ isOpen, onClose, focusAfterClose }: InfoModalProps) => {\n const { i18n } = useCoreContext();\n const focusFirstElement = useRef<HTMLParagraphElement>();\n const getImage = useImage();\n\n const labelledBy = FASTLANE_BENEFITS.map(benefit => benefit.labelById).join(' ');\n const describedBy = FASTLANE_BENEFITS.map(benefit => benefit.describedById).join(' ');\n\n return (\n <Modal\n onClose={onClose}\n isOpen={isOpen}\n labelledBy={labelledBy}\n describedBy={describedBy}\n focusFirst={focusFirstElement.current}\n focusAfterClose={focusAfterClose}\n >\n {({ onCloseModal }) => (\n <div className=\"adyen-checkout-card-fastlane__modal\">\n <div className=\"adyen-checkout-card-fastlane__modal-button-container\">\n <Button\n onClick={onCloseModal}\n inline\n variant=\"link\"\n ariaLabel={i18n.get('card.fastlane.a11y.closeDialog')}\n label={\n <Img height=\"10\" width=\"10\" src={getImage({ imageFolder: 'components/' })('cross_black')} aria-hidden={true} alt=\"\" />\n }\n />\n </div>\n\n {FASTLANE_BENEFITS.map(benefit => (\n <div key={benefit.labelById} className=\"adyen-checkout-card-fastlane__modal-section\">\n <Img\n className=\"adyen-checkout-card-fastlane__modal-section-image\"\n src={getImage({ imageFolder: 'components/' })(benefit.image)}\n alt={benefit.altImage}\n />\n <h1 id={benefit.labelById} className=\"adyen-checkout-card-fastlane__modal-section-header\">\n {i18n.get(benefit.headerKey)}\n </h1>\n <div id={benefit.describedById} className=\"adyen-checkout-card-fastlane__modal-section-text\">\n {i18n.get(benefit.descriptionTextKey)}\n </div>\n </div>\n ))}\n\n <Img\n className=\"adyen-checkout-card-fastlane__modal-brand\"\n src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_black`)}\n alt={i18n.get('card.fastlane.a11y.logo')}\n />\n </div>\n )}\n </Modal>\n );\n};\n\nexport { InfoModal };\n"],"names":["FASTLANE_BENEFITS","headerKey","labelById","uuid","descriptionTextKey","describedById","image","altImage","InfoModal","isOpen","onClose","focusAfterClose","i18n","useCoreContext","focusFirstElement","useRef","getImage","useImage","labelledBy","map","benefit","join","describedBy","h","Modal","focusFirst","current","onCloseModal","div","className","Button","onClick","inline","variant","ariaLabel","get","label","Img","height","width","src","imageFolder","aria-hidden","alt","key","h1","id"],"mappings":"kdAiBA,MAAMA,EAAoB,CACtB,CACIC,UAAW,sCACXC,UAAW,8BAA8BC,MACzCC,mBAAoB,oCACpBC,cAAe,oCAAoCF,MACnDG,MAAO,oBACPC,SAAU,IAEd,CACIN,UAAW,sCACXC,UAAW,8BAA8BC,MACzCC,mBAAoB,oCACpBC,cAAe,oCAAoCF,MACnDG,MAAO,sBACPC,SAAU,IAEd,CACIN,UAAW,sCACXC,UAAW,8BAA8BC,MACzCC,mBAAoB,oCACpBC,cAAe,oCAAoCF,MACnDG,MAAO,oBACPC,SAAU,KAIZC,EAAY,EAAGC,SAAQC,UAASC,sBAClC,MAAMC,KAAEA,GAASC,IACXC,EAAoBC,IACpBC,EAAWC,IAEXC,EAAalB,EAAkBmB,IAAIC,GAAWA,EAAQlB,WAAWmB,KAAK,KACtEC,EAActB,EAAkBmB,IAAIC,GAAWA,EAAQf,eAAegB,KAAK,KAEjF,OACIE,EAACC,EAAAA,CACGd,QAASA,EACTD,OAAQA,EACRS,WAAYA,EACZI,YAAaA,EACbG,WAAYX,EAAkBY,QAC9Bf,gBAAiBA,GAEhB,EAAGgB,kBACAJ,EAACK,MAAAA,CAAIC,UAAU,uCACXN,EAACK,MAAAA,CAAIC,UAAU,wDACXN,EAACO,EAAAA,CACGC,QAASJ,EACTK,QAAAA,EACAC,QAAQ,OACRC,UAAWtB,EAAKuB,IAAI,kCACpBC,MACIb,EAACc,EAAAA,CAAIC,OAAO,KAAKC,MAAM,KAAKC,IAAKxB,EAAS,CAAEyB,YAAa,eAAxBzB,CAAyC,eAAgB0B,eAAa,EAAMC,IAAI,QAK5H3C,EAAkBmB,IAAIC,GACnBG,EAACK,MAAAA,CAAIgB,IAAKxB,EAAQlB,UAAW2B,UAAU,+CACnCN,EAACc,EAAAA,CACGR,UAAU,oDACVW,IAAKxB,EAAS,CAAEyB,YAAa,eAAxBzB,CAAyCI,EAAQd,OACtDqC,IAAKvB,EAAQb,WAEjBgB,EAACsB,KAAAA,CAAGC,GAAI1B,EAAQlB,UAAW2B,UAAU,sDAChCjB,EAAKuB,IAAIf,EAAQnB,YAEtBsB,EAACK,MAAAA,CAAIkB,GAAI1B,EAAQf,cAAewB,UAAU,oDACrCjB,EAAKuB,IAAIf,EAAQhB,uBAK9BmB,EAACc,EAAAA,CACGR,UAAU,4CACVW,IAAKxB,EAAS,CAAEyB,YAAa,eAAxBzB,CAAyC,yBAC9C2B,IAAK/B,EAAKuB,IAAI"}
1
+ {"version":3,"file":"InfoModal.js","sources":["../../../../../../src/components/Card/components/Fastlane/InfoModal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport useImage from '../../../../core/Context/useImage';\nimport { Modal } from '../../../internal/Modal';\nimport Img from '../../../internal/Img';\nimport Button from '../../../internal/Button';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport uuid from '../../../../utils/uuid';\n\nimport './InfoModal.scss';\n\ninterface InfoModalProps {\n isOpen: boolean;\n focusAfterClose: HTMLElement;\n onClose(): void;\n}\n\nconst FASTLANE_BENEFITS = [\n {\n headerKey: 'card.fastlane.modal.benefit1.header',\n labelById: `adyen-fastlane-modal-label-${uuid()}`,\n descriptionTextKey: 'card.fastlane.modal.benefit1.text',\n describedById: `adyen-fastlane-modal-describedBy-${uuid()}`,\n image: 'fastlane_autofill',\n altImage: ''\n },\n {\n headerKey: 'card.fastlane.modal.benefit2.header',\n labelById: `adyen-fastlane-modal-label-${uuid()}`,\n descriptionTextKey: 'card.fastlane.modal.benefit2.text',\n describedById: `adyen-fastlane-modal-describedBy-${uuid()}`,\n image: 'fastlane_protection',\n altImage: ''\n },\n {\n headerKey: 'card.fastlane.modal.benefit3.header',\n labelById: `adyen-fastlane-modal-label-${uuid()}`,\n descriptionTextKey: 'card.fastlane.modal.benefit3.text',\n describedById: `adyen-fastlane-modal-describedBy-${uuid()}`,\n image: 'fastlane_ubiquity',\n altImage: ''\n }\n];\n\nconst InfoModal = ({ isOpen, onClose, focusAfterClose }: Readonly<InfoModalProps>) => {\n const { i18n } = useCoreContext();\n const focusFirstElement = useRef<HTMLParagraphElement>();\n const getImage = useImage();\n\n const labelledBy = FASTLANE_BENEFITS.map(benefit => benefit.labelById).join(' ');\n const describedBy = FASTLANE_BENEFITS.map(benefit => benefit.describedById).join(' ');\n\n return (\n <Modal\n onClose={onClose}\n isOpen={isOpen}\n labelledBy={labelledBy}\n describedBy={describedBy}\n focusFirst={focusFirstElement.current}\n focusAfterClose={focusAfterClose}\n >\n {({ onCloseModal }) => (\n <div className=\"adyen-checkout-card-fastlane__modal\">\n <div className=\"adyen-checkout-card-fastlane__modal-button-container\">\n <Button\n onClick={onCloseModal}\n inline\n variant=\"link\"\n ariaLabel={i18n.get('card.fastlane.a11y.closeDialog')}\n label={\n <Img height=\"10\" width=\"10\" src={getImage({ imageFolder: 'components/' })('cross_black')} aria-hidden={true} alt=\"\" />\n }\n />\n </div>\n\n {FASTLANE_BENEFITS.map(benefit => (\n <div key={benefit.labelById} className=\"adyen-checkout-card-fastlane__modal-section\">\n <Img\n className=\"adyen-checkout-card-fastlane__modal-section-image\"\n src={getImage({ imageFolder: 'components/' })(benefit.image)}\n alt={benefit.altImage}\n />\n <h1 id={benefit.labelById} className=\"adyen-checkout-card-fastlane__modal-section-header\">\n {i18n.get(benefit.headerKey)}\n </h1>\n <div id={benefit.describedById} className=\"adyen-checkout-card-fastlane__modal-section-text\">\n {i18n.get(benefit.descriptionTextKey)}\n </div>\n </div>\n ))}\n\n <Img\n className=\"adyen-checkout-card-fastlane__modal-brand\"\n src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_black`)}\n alt={i18n.get('card.fastlane.a11y.logo')}\n />\n </div>\n )}\n </Modal>\n );\n};\n\nexport { InfoModal };\n"],"names":["FASTLANE_BENEFITS","headerKey","labelById","uuid","descriptionTextKey","describedById","image","altImage","InfoModal","isOpen","onClose","focusAfterClose","i18n","useCoreContext","focusFirstElement","useRef","getImage","useImage","labelledBy","map","benefit","join","describedBy","h","Modal","focusFirst","current","onCloseModal","div","className","Button","onClick","inline","variant","ariaLabel","get","label","Img","height","width","src","imageFolder","aria-hidden","alt","key","h1","id"],"mappings":"kdAiBA,MAAMA,EAAoB,CACtB,CACIC,UAAW,sCACXC,UAAW,8BAA8BC,MACzCC,mBAAoB,oCACpBC,cAAe,oCAAoCF,MACnDG,MAAO,oBACPC,SAAU,IAEd,CACIN,UAAW,sCACXC,UAAW,8BAA8BC,MACzCC,mBAAoB,oCACpBC,cAAe,oCAAoCF,MACnDG,MAAO,sBACPC,SAAU,IAEd,CACIN,UAAW,sCACXC,UAAW,8BAA8BC,MACzCC,mBAAoB,oCACpBC,cAAe,oCAAoCF,MACnDG,MAAO,oBACPC,SAAU,KAIZC,EAAY,EAAGC,SAAQC,UAASC,sBAClC,MAAMC,KAAEA,GAASC,IACXC,EAAoBC,IACpBC,EAAWC,IAEXC,EAAalB,EAAkBmB,IAAIC,GAAWA,EAAQlB,WAAWmB,KAAK,KACtEC,EAActB,EAAkBmB,IAAIC,GAAWA,EAAQf,eAAegB,KAAK,KAEjF,OACIE,EAACC,EAAAA,CACGd,QAASA,EACTD,OAAQA,EACRS,WAAYA,EACZI,YAAaA,EACbG,WAAYX,EAAkBY,QAC9Bf,gBAAiBA,GAEhB,EAAGgB,kBACAJ,EAACK,MAAAA,CAAIC,UAAU,uCACXN,EAACK,MAAAA,CAAIC,UAAU,wDACXN,EAACO,EAAAA,CACGC,QAASJ,EACTK,QAAAA,EACAC,QAAQ,OACRC,UAAWtB,EAAKuB,IAAI,kCACpBC,MACIb,EAACc,EAAAA,CAAIC,OAAO,KAAKC,MAAM,KAAKC,IAAKxB,EAAS,CAAEyB,YAAa,eAAxBzB,CAAyC,eAAgB0B,eAAa,EAAMC,IAAI,QAK5H3C,EAAkBmB,IAAIC,GACnBG,EAACK,MAAAA,CAAIgB,IAAKxB,EAAQlB,UAAW2B,UAAU,+CACnCN,EAACc,EAAAA,CACGR,UAAU,oDACVW,IAAKxB,EAAS,CAAEyB,YAAa,eAAxBzB,CAAyCI,EAAQd,OACtDqC,IAAKvB,EAAQb,WAEjBgB,EAACsB,KAAAA,CAAGC,GAAI1B,EAAQlB,UAAW2B,UAAU,sDAChCjB,EAAKuB,IAAIf,EAAQnB,YAEtBsB,EAACK,MAAAA,CAAIkB,GAAI1B,EAAQf,cAAewB,UAAU,oDACrCjB,EAAKuB,IAAIf,EAAQhB,uBAK9BmB,EAACc,EAAAA,CACGR,UAAU,4CACVW,IAAKxB,EAAS,CAAEyB,YAAa,eAAxBzB,CAAyC,yBAC9C2B,IAAK/B,EAAKuB,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"USOnlyPhoneInput.js","sources":["../../../../../../src/components/Card/components/Fastlane/USOnlyPhoneInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\nimport Field from '../../../internal/FormFields/Field';\nimport useForm from '../../../../utils/useForm';\nimport InputTelephone from '../../../internal/FormFields/InputTelephone';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport mobileNumberFormatter from './utils/mobile-number-formatter';\n\ninterface USOnlyPhoneInputStateData {\n mobileNumber?: string;\n}\n\ninterface USOnlyPhoneInputProps {\n onChange(mobileNumber: string): void;\n initialValue?: string;\n}\n\nconst USOnlyPhoneInput = ({ initialValue, onChange }: USOnlyPhoneInputProps) => {\n const { i18n } = useCoreContext();\n const formSchema = ['mobileNumber'];\n const { handleChangeFor, data } = useForm<USOnlyPhoneInputStateData>({\n schema: formSchema,\n defaultData: {\n mobileNumber: initialValue\n },\n formatters: {\n mobileNumber: mobileNumberFormatter\n }\n });\n const inputRef = useRef<HTMLInputElement>(null);\n\n const focusInput = useCallback(() => {\n inputRef.current?.focus();\n }, [inputRef.current]);\n\n useEffect(() => {\n onChange(data.mobileNumber?.replaceAll(' ', ''));\n }, [data.mobileNumber, onChange]);\n\n return (\n <Field name=\"mobile-number\" label={i18n.get('card.fastlane.mobileInputLabel')} staticValue=\"+1\" onInputContainerClick={focusInput}>\n <InputTelephone\n name={'mobile-number'}\n autocorrect={'off'}\n spellcheck={false}\n maxlength={12}\n value={data.mobileNumber}\n onInput={handleChangeFor('mobileNumber', 'input')}\n onBlur={handleChangeFor('mobileNumber', 'blur')}\n setRef={inputRef}\n />\n </Field>\n );\n};\n\nexport default USOnlyPhoneInput;\n"],"names":["USOnlyPhoneInput","initialValue","onChange","i18n","useCoreContext","handleChangeFor","data","useForm","schema","defaultData","mobileNumber","formatters","mobileNumberFormatter","inputRef","useRef","focusInput","useCallback","current","focus","useEffect","replaceAll","h","Field","name","label","get","staticValue","onInputContainerClick","InputTelephone","autocorrect","spellcheck","maxlength","value","onInput","onBlur","setRef"],"mappings":"6dAiBA,MAAMA,EAAmB,EAAGC,eAAcC,eACtC,MAAMC,KAAEA,GAASC,KAEXC,gBAAEA,EAAeC,KAAEA,GAASC,EAAmC,CACjEC,OAFe,CAAC,gBAGhBC,YAAa,CACTC,aAAcT,GAElBU,WAAY,CACRD,aAAcE,KAGhBC,EAAWC,EAAyB,MAEpCC,EAAaC,EAAY,KAC3BH,EAASI,SAASC,SACnB,CAACL,EAASI,UAMb,OAJAE,EAAU,KACNjB,EAASI,EAAKI,cAAcU,WAAW,IAAK,MAC7C,CAACd,EAAKI,aAAcR,IAGnBmB,EAACC,EAAAA,CAAMC,KAAK,gBAAgBC,MAAOrB,EAAKsB,IAAI,kCAAmCC,YAAY,KAAKC,sBAAuBZ,GACnHM,EAACO,EAAAA,CACGL,KAAM,gBACNM,YAAa,MACbC,YAAY,EACZC,UAAW,GACXC,MAAO1B,EAAKI,aACZuB,QAAS5B,EAAgB,eAAgB,SACzC6B,OAAQ7B,EAAgB,eAAgB,QACxC8B,OAAQtB"}
1
+ {"version":3,"file":"USOnlyPhoneInput.js","sources":["../../../../../../src/components/Card/components/Fastlane/USOnlyPhoneInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useRef } from 'preact/hooks';\nimport Field from '../../../internal/FormFields/Field';\nimport useForm from '../../../../utils/useForm';\nimport InputTelephone from '../../../internal/FormFields/InputTelephone';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport mobileNumberFormatter from './utils/mobile-number-formatter';\n\ninterface USOnlyPhoneInputStateData {\n mobileNumber?: string;\n}\n\ninterface USOnlyPhoneInputProps {\n onChange(mobileNumber: string): void;\n initialValue?: string;\n}\n\nconst USOnlyPhoneInput = ({ initialValue, onChange }: Readonly<USOnlyPhoneInputProps>) => {\n const { i18n } = useCoreContext();\n const formSchema = ['mobileNumber'];\n const { handleChangeFor, data } = useForm<USOnlyPhoneInputStateData>({\n schema: formSchema,\n defaultData: {\n mobileNumber: initialValue\n },\n formatters: {\n mobileNumber: mobileNumberFormatter\n }\n });\n const inputRef = useRef<HTMLInputElement>(null);\n\n const focusInput = useCallback(() => {\n inputRef.current?.focus();\n }, [inputRef.current]);\n\n useEffect(() => {\n onChange(data.mobileNumber?.replaceAll(' ', ''));\n }, [data.mobileNumber, onChange]);\n\n return (\n <Field name=\"mobile-number\" label={i18n.get('card.fastlane.mobileInputLabel')} staticValue=\"+1\" onInputContainerClick={focusInput}>\n <InputTelephone\n name={'mobile-number'}\n autocorrect={'off'}\n spellcheck={false}\n maxlength={12}\n value={data.mobileNumber}\n onInput={handleChangeFor('mobileNumber', 'input')}\n onBlur={handleChangeFor('mobileNumber', 'blur')}\n setRef={inputRef}\n />\n </Field>\n );\n};\n\nexport default USOnlyPhoneInput;\n"],"names":["USOnlyPhoneInput","initialValue","onChange","i18n","useCoreContext","handleChangeFor","data","useForm","schema","defaultData","mobileNumber","formatters","mobileNumberFormatter","inputRef","useRef","focusInput","useCallback","current","focus","useEffect","replaceAll","h","Field","name","label","get","staticValue","onInputContainerClick","InputTelephone","autocorrect","spellcheck","maxlength","value","onInput","onBlur","setRef"],"mappings":"6dAiBA,MAAMA,EAAmB,EAAGC,eAAcC,eACtC,MAAMC,KAAEA,GAASC,KAEXC,gBAAEA,EAAeC,KAAEA,GAASC,EAAmC,CACjEC,OAFe,CAAC,gBAGhBC,YAAa,CACTC,aAAcT,GAElBU,WAAY,CACRD,aAAcE,KAGhBC,EAAWC,EAAyB,MAEpCC,EAAaC,EAAY,KAC3BH,EAASI,SAASC,SACnB,CAACL,EAASI,UAMb,OAJAE,EAAU,KACNjB,EAASI,EAAKI,cAAcU,WAAW,IAAK,MAC7C,CAACd,EAAKI,aAAcR,IAGnBmB,EAACC,EAAAA,CAAMC,KAAK,gBAAgBC,MAAOrB,EAAKsB,IAAI,kCAAmCC,YAAY,KAAKC,sBAAuBZ,GACnHM,EAACO,EAAAA,CACGL,KAAM,gBACNM,YAAa,MACbC,YAAY,EACZC,UAAW,GACXC,MAAO1B,EAAKI,aACZuB,QAAS5B,EAAgB,eAAgB,SACzC6B,OAAQ7B,EAAgB,eAAgB,QACxC8B,OAAQtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CashAppPay.js","sources":["../../../../src/components/CashAppPay/CashAppPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CashAppComponent } from './components/CashAppComponent';\nimport CashAppService from './services/CashAppService';\nimport { CashAppSdkLoader } from './services/CashAppSdkLoader';\nimport { CashAppPayElementData, CashAppPayConfiguration, CashAppPayEventData } from './types';\nimport { ICashAppService } from './services/types';\nimport defaultProps from './defaultProps';\nimport RedirectButton from '../internal/RedirectButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\nimport { TxVariants } from '../tx-variants';\nimport type { ICore } from '../../core/types';\nimport { PREFIX } from '../internal/Icon/constants';\n\nexport class CashAppPay extends UIElement<CashAppPayConfiguration> {\n public static type = TxVariants.cashapp;\n\n private readonly cashAppService: ICashAppService | undefined;\n\n protected static defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: CashAppPayConfiguration) {\n super(checkout, props);\n\n if (this.props.enableStoreDetails && this.props.storePaymentMethod) {\n console.warn(\n 'CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior.'\n );\n }\n\n if (this.props.storedPaymentMethodId) {\n return;\n }\n\n const sdkLoader = new CashAppSdkLoader({\n environment: this.props.environment,\n analytics: this.analytics\n });\n\n this.cashAppService = new CashAppService(sdkLoader, {\n storePaymentMethod: this.props.storePaymentMethod,\n useCashAppButtonUi: this.props.showPayButton,\n environment: this.props.environment,\n redirectURL: this.props.redirectURL,\n clientId: this.props.configuration?.clientId,\n scopeId: this.props.configuration?.scopeId,\n button: this.props.button,\n referenceId: this.props.referenceId\n });\n }\n\n public formatProps(props: CashAppPayConfiguration) {\n return {\n ...props,\n enableStoreDetails: props.session?.configuration?.enableStoreDetails || props.enableStoreDetails\n };\n }\n\n public formatData(): CashAppPayElementData {\n const { shopperWantsToStore, grantId, onFileGrantId, cashTag, customerId } = this.state.data || {};\n const { storePaymentMethod: storePaymentMethodSetByMerchant, storedPaymentMethodId } = this.props;\n\n /**\n * We include 'storePaymentMethod' flag if we either Display the Checkbox OR if it is non-sessions flow AND the merchant wants to store the payment method\n */\n const includeStorePaymentMethod = this.props.enableStoreDetails || (!this.props.session && storePaymentMethodSetByMerchant);\n\n if (storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: CashAppPay.type,\n storedPaymentMethodId\n }\n };\n }\n\n const shouldAddOnFileProperties = onFileGrantId && cashTag;\n\n return {\n paymentMethod: {\n type: CashAppPay.type,\n ...(grantId && { grantId }),\n ...(customerId && { customerId }),\n ...(shouldAddOnFileProperties && { onFileGrantId, cashtag: cashTag })\n },\n ...(includeStorePaymentMethod && { storePaymentMethod: storePaymentMethodSetByMerchant || shopperWantsToStore })\n };\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.cashtag) {\n return this.props.cashtag;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? 'Cash App Pay' : '';\n }\n\n public submit = () => {\n const { onClick, storedPaymentMethodId } = this.props;\n\n if (storedPaymentMethodId) {\n super.submit();\n return;\n }\n\n let onClickPromiseRejected = false;\n\n new Promise<void>((resolve, reject) => onClick({ resolve, reject }))\n .catch(() => {\n onClickPromiseRejected = true;\n throw Error('onClick rejected');\n })\n .then(() => {\n return this.cashAppService.createCustomerRequest(this.props.amount);\n })\n .then(() => {\n this.cashAppService.begin();\n })\n .catch(error => {\n if (onClickPromiseRejected) {\n // Swallow exception triggered by onClick reject\n return;\n }\n this.handleError(error);\n });\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n private handleOnChangeStoreDetails = (storePayment: boolean) => {\n const data = { ...this.state.data, shopperWantsToStore: storePayment };\n this.setState({ data });\n };\n\n private handleAuthorize = (cashAppPaymentData: CashAppPayEventData): void => {\n const data = { ...this.state.data, ...cashAppPaymentData };\n this.setState({ data, valid: {}, errors: {}, isValid: true });\n super.submit();\n };\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n icon={this.resources?.getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <CashAppComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n enableStoreDetails={this.props.enableStoreDetails}\n cashAppService={this.cashAppService}\n onChangeStoreDetails={this.handleOnChangeStoreDetails}\n onError={this.handleError}\n onClick={this.submit}\n onAuthorize={this.handleAuthorize}\n />\n );\n }\n}\n\nexport default CashAppPay;\n"],"names":["CashAppPay","UIElement","formatProps","props","enableStoreDetails","session","configuration","formatData","shopperWantsToStore","grantId","onFileGrantId","cashTag","customerId","this","state","data","storePaymentMethod","storePaymentMethodSetByMerchant","storedPaymentMethodId","includeStorePaymentMethod","paymentMethod","type","cashtag","displayName","name","additionalInfo","isValid","componentToRender","h","RedirectButton","showPayButton","label","payAmountLabel","i18n","amount","icon","resources","getImage","imageFolder","PREFIX","payButton","onSubmit","submit","ref","componentRef","CashAppComponent","cashAppService","onChangeStoreDetails","handleOnChangeStoreDetails","onError","handleError","onClick","onAuthorize","handleAuthorize","constructor","checkout","super","_define_property","onClickPromiseRejected","Promise","resolve","reject","catch","Error","then","createCustomerRequest","begin","error","storePayment","setState","cashAppPaymentData","valid","errors","console","warn","sdkLoader","CashAppSdkLoader","environment","analytics","CashAppService","useCashAppButtonUi","redirectURL","clientId","scopeId","button","referenceId","TxVariants","cashapp","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"CashAppPay.js","sources":["../../../../src/components/CashAppPay/CashAppPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CashAppComponent } from './components/CashAppComponent';\nimport CashAppService from './services/CashAppService';\nimport { CashAppSdkLoader } from './services/CashAppSdkLoader';\nimport { CashAppPayElementData, CashAppPayConfiguration, CashAppPayEventData } from './types';\nimport { ICashAppService } from './services/types';\nimport defaultProps from './defaultProps';\nimport RedirectButton from '../internal/RedirectButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\nimport { TxVariants } from '../tx-variants';\nimport type { ICore } from '../../core/types';\nimport { PREFIX } from '../internal/Icon/constants';\n\nexport class CashAppPay extends UIElement<CashAppPayConfiguration> {\n public static readonly type = TxVariants.cashapp;\n\n private readonly cashAppService: ICashAppService | undefined;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: CashAppPayConfiguration) {\n super(checkout, props);\n\n if (this.props.enableStoreDetails && this.props.storePaymentMethod) {\n console.warn(\n 'CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior.'\n );\n }\n\n if (this.props.storedPaymentMethodId) {\n return;\n }\n\n const sdkLoader = new CashAppSdkLoader({\n environment: this.props.environment,\n analytics: this.analytics\n });\n\n this.cashAppService = new CashAppService(sdkLoader, {\n storePaymentMethod: this.props.storePaymentMethod,\n useCashAppButtonUi: this.props.showPayButton,\n environment: this.props.environment,\n redirectURL: this.props.redirectURL,\n clientId: this.props.configuration?.clientId,\n scopeId: this.props.configuration?.scopeId,\n button: this.props.button,\n referenceId: this.props.referenceId\n });\n }\n\n public formatProps(props: CashAppPayConfiguration) {\n return {\n ...props,\n enableStoreDetails: props.session?.configuration?.enableStoreDetails || props.enableStoreDetails\n };\n }\n\n public formatData(): CashAppPayElementData {\n const { shopperWantsToStore, grantId, onFileGrantId, cashTag, customerId } = this.state.data || {};\n const { storePaymentMethod: storePaymentMethodSetByMerchant, storedPaymentMethodId } = this.props;\n\n /**\n * We include 'storePaymentMethod' flag if we either Display the Checkbox OR if it is non-sessions flow AND the merchant wants to store the payment method\n */\n const includeStorePaymentMethod = this.props.enableStoreDetails || (!this.props.session && storePaymentMethodSetByMerchant);\n\n if (storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: CashAppPay.type,\n storedPaymentMethodId\n }\n };\n }\n\n const shouldAddOnFileProperties = onFileGrantId && cashTag;\n\n return {\n paymentMethod: {\n type: CashAppPay.type,\n ...(grantId && { grantId }),\n ...(customerId && { customerId }),\n ...(shouldAddOnFileProperties && { onFileGrantId, cashtag: cashTag })\n },\n ...(includeStorePaymentMethod && { storePaymentMethod: storePaymentMethodSetByMerchant || shopperWantsToStore })\n };\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.cashtag) {\n return this.props.cashtag;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? 'Cash App Pay' : '';\n }\n\n public submit = () => {\n const { onClick, storedPaymentMethodId } = this.props;\n\n if (storedPaymentMethodId) {\n super.submit();\n return;\n }\n\n let onClickPromiseRejected = false;\n\n new Promise<void>((resolve, reject) => onClick({ resolve, reject }))\n .catch(() => {\n onClickPromiseRejected = true;\n throw Error('onClick rejected');\n })\n .then(() => {\n return this.cashAppService.createCustomerRequest(this.props.amount);\n })\n .then(() => {\n this.cashAppService.begin();\n })\n .catch(error => {\n if (onClickPromiseRejected) {\n // Swallow exception triggered by onClick reject\n return;\n }\n this.handleError(error);\n });\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n private handleOnChangeStoreDetails = (storePayment: boolean) => {\n const data = { ...this.state.data, shopperWantsToStore: storePayment };\n this.setState({ data });\n };\n\n private handleAuthorize = (cashAppPaymentData: CashAppPayEventData): void => {\n const data = { ...this.state.data, ...cashAppPaymentData };\n this.setState({ data, valid: {}, errors: {}, isValid: true });\n super.submit();\n };\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n icon={this.resources?.getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <CashAppComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n enableStoreDetails={this.props.enableStoreDetails}\n cashAppService={this.cashAppService}\n onChangeStoreDetails={this.handleOnChangeStoreDetails}\n onError={this.handleError}\n onClick={this.submit}\n onAuthorize={this.handleAuthorize}\n />\n );\n }\n}\n\nexport default CashAppPay;\n"],"names":["CashAppPay","UIElement","formatProps","props","enableStoreDetails","session","configuration","formatData","shopperWantsToStore","grantId","onFileGrantId","cashTag","customerId","this","state","data","storePaymentMethod","storePaymentMethodSetByMerchant","storedPaymentMethodId","includeStorePaymentMethod","paymentMethod","type","cashtag","displayName","name","additionalInfo","isValid","componentToRender","h","RedirectButton","showPayButton","label","payAmountLabel","i18n","amount","icon","resources","getImage","imageFolder","PREFIX","payButton","onSubmit","submit","ref","componentRef","CashAppComponent","cashAppService","onChangeStoreDetails","handleOnChangeStoreDetails","onError","handleError","onClick","onAuthorize","handleAuthorize","constructor","checkout","super","_define_property","onClickPromiseRejected","Promise","resolve","reject","catch","Error","then","createCustomerRequest","begin","error","storePayment","setState","cashAppPaymentData","valid","errors","console","warn","sdkLoader","CashAppSdkLoader","environment","analytics","CashAppService","useCashAppButtonUi","redirectURL","clientId","scopeId","button","referenceId","TxVariants","cashapp","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CashAppComponent.js","sources":["../../../../../src/components/CashAppPay/components/CashAppComponent.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Spinner from '../../internal/Spinner';\nimport { CashAppPayEvents, ICashAppService } from '../services/types';\nimport { CashAppPayEventData } from '../types';\nimport StoreDetails from '../../internal/StoreDetails';\nimport './CashAppComponent.scss';\nimport { UIElementStatus } from '../../internal/UIElement/types';\n\ninterface CashAppComponentProps {\n enableStoreDetails?: boolean;\n cashAppService: ICashAppService;\n onClick(): void;\n onChangeStoreDetails(data: any): void;\n onAuthorize(payEventData: CashAppPayEventData): void;\n onError(error: AdyenCheckoutError): void;\n ref(ref: RefObject<typeof CashAppComponent>): void;\n}\n\nexport function CashAppComponent({\n enableStoreDetails,\n cashAppService,\n onClick,\n onChangeStoreDetails,\n onAuthorize,\n onError\n}: CashAppComponentProps): h.JSX.Element {\n const cashAppRef = useRef<HTMLDivElement>(null);\n const [status, setStatus] = useState<UIElementStatus>('loading');\n const subscriptions = useRef<Function[]>([]);\n const [storePaymentMethod, setStorePaymentMethod] = useState<boolean>(false);\n\n this.setStatus = setStatus;\n\n const initializeCashAppSdk = useCallback(async () => {\n try {\n await cashAppService.initialize();\n\n subscriptions.current = [\n cashAppService.subscribeToEvent(CashAppPayEvents.CustomerDismissed, () => {\n onError(new AdyenCheckoutError('CANCEL', 'Customer dismissed the modal'));\n }),\n cashAppService.subscribeToEvent(CashAppPayEvents.CustomerRequestDeclined, async () => {\n onError(new AdyenCheckoutError('ERROR', 'Payment declined by CashAppPay'));\n await cashAppService.restart();\n await cashAppService.renderButton(cashAppRef.current);\n }),\n\n cashAppService.subscribeToEvent(CashAppPayEvents.CustomerRequestApproved, ({ customerProfile, grants }) => {\n const cashAppPaymentData: CashAppPayEventData = {\n ...(customerProfile?.id && { customerId: customerProfile.id }),\n ...(customerProfile?.cashtag && { cashTag: customerProfile.cashtag }),\n ...(grants?.payment?.grantId && { grantId: grants.payment.grantId }),\n ...(grants?.onFile?.grantId && { onFileGrantId: grants.onFile.grantId })\n };\n\n onAuthorize(cashAppPaymentData);\n }),\n cashAppService.subscribeToEvent(CashAppPayEvents.CustomerRequestFailed, () => {\n onError(new AdyenCheckoutError('ERROR', 'Customer request failed'));\n })\n ];\n\n await cashAppService.renderButton(cashAppRef.current);\n\n setStatus('ready');\n } catch (error) {\n if (error instanceof AdyenCheckoutError) onError(error);\n else onError(new AdyenCheckoutError('ERROR', 'Error when initializing CashAppPay', { cause: error }));\n }\n }, [cashAppService, onError, onAuthorize]);\n\n useEffect(() => {\n if (enableStoreDetails) {\n cashAppService.setStorePaymentMethod(storePaymentMethod);\n onChangeStoreDetails(storePaymentMethod);\n }\n }, [enableStoreDetails, storePaymentMethod]);\n\n useEffect(() => {\n void initializeCashAppSdk();\n return () => {\n void cashAppService.restart();\n subscriptions.current.forEach(unsubscribeFn => unsubscribeFn());\n };\n }, [cashAppService, initializeCashAppSdk]);\n\n return (\n <div className=\"adyen-checkout__cashapp\" aria-live=\"polite\" aria-busy={status === 'loading'}>\n {status === 'loading' && <Spinner />}\n {status !== 'loading' && enableStoreDetails && <StoreDetails storeDetails={storePaymentMethod} onChange={setStorePaymentMethod} />}\n\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */}\n <div onClick={onClick} className={'adyen-checkout__cashapp-button'} ref={cashAppRef}></div>\n </div>\n );\n}\n"],"names":["CashAppComponent","enableStoreDetails","cashAppService","onClick","onChangeStoreDetails","onAuthorize","onError","cashAppRef","useRef","status","setStatus","useState","subscriptions","storePaymentMethod","setStorePaymentMethod","this","initializeCashAppSdk","useCallback","async","initialize","current","subscribeToEvent","CashAppPayEvents","CustomerDismissed","AdyenCheckoutError","CustomerRequestDeclined","restart","renderButton","CustomerRequestApproved","customerProfile","grants","cashAppPaymentData","id","customerId","cashtag","cashTag","payment","grantId","onFile","onFileGrantId","CustomerRequestFailed","error","cause","useEffect","forEach","unsubscribeFn","h","div","className","aria-live","aria-busy","Spinner","StoreDetails","storeDetails","onChange","ref"],"mappings":"0ZAoBO,SAASA,GAAiBC,mBAC7BA,EAAkBC,eAClBA,EAAcC,QACdA,EAAOC,qBACPA,EAAoBC,YACpBA,EAAWC,QACXA,IAEA,MAAMC,EAAaC,EAAuB,OACnCC,EAAQC,GAAaC,EAA0B,WAChDC,EAAgBJ,EAAmB,KAClCK,EAAoBC,GAAyBH,GAAkB,GAEtEI,KAAKL,UAAYA,EAEjB,MAAMM,EAAuBC,EAAYC,UACrC,UACUhB,EAAeiB,aAErBP,EAAcQ,QAAU,CACpBlB,EAAemB,iBAAiBC,EAAiBC,kBAAmB,KAChEjB,EAAQ,IAAIkB,EAAmB,SAAU,mCAE7CtB,EAAemB,iBAAiBC,EAAiBG,wBAAyBP,UACtEZ,EAAQ,IAAIkB,EAAmB,QAAS,yCAClCtB,EAAewB,gBACfxB,EAAeyB,aAAapB,EAAWa,WAGjDlB,EAAemB,iBAAiBC,EAAiBM,wBAAyB,EAAGC,kBAAiBC,aAC1F,MAAMC,EAA0C,IACxCF,GAAiBG,IAAM,CAAEC,WAAYJ,EAAgBG,OACrDH,GAAiBK,SAAW,CAAEC,QAASN,EAAgBK,YACvDJ,GAAQM,SAASC,SAAW,CAAEA,QAASP,EAAOM,QAAQC,YACtDP,GAAQQ,QAAQD,SAAW,CAAEE,cAAeT,EAAOQ,OAAOD,UAGlEhC,EAAY0B,KAEhB7B,EAAemB,iBAAiBC,EAAiBkB,sBAAuB,KACpElC,EAAQ,IAAIkB,EAAmB,QAAS,qCAI1CtB,EAAeyB,aAAapB,EAAWa,SAE7CV,EAAU,QACd,CAAE,MAAO+B,GACoCnC,EAArCmC,aAAiBjB,EAA4BiB,EACpC,IAAIjB,EAAmB,QAAS,qCAAsC,CAAEkB,MAAOD,IAChG,GACD,CAACvC,EAAgBI,EAASD,IAiB7B,OAfAsC,EAAU,KACF1C,IACAC,EAAeY,sBAAsBD,GACrCT,EAAqBS,KAE1B,CAACZ,EAAoBY,IAExB8B,EAAU,KACD3B,IACE,KACEd,EAAewB,UACpBd,EAAcQ,QAAQwB,QAAQC,GAAiBA,OAEpD,CAAC3C,EAAgBc,IAGhB8B,EAACC,MAAAA,CAAIC,UAAU,0BAA0BC,YAAU,SAASC,YAAsB,YAAXzC,GACvD,YAAXA,GAAwBqC,EAACK,EAAAA,MACd,YAAX1C,GAAwBR,GAAsB6C,EAACM,EAAAA,CAAaC,aAAcxC,EAAoByC,SAAUxC,IAGzGgC,EAACC,MAAAA,CAAI5C,QAASA,EAAS6C,UAAW,iCAAkCO,IAAKhD,IAGrF"}
1
+ {"version":3,"file":"CashAppComponent.js","sources":["../../../../../src/components/CashAppPay/components/CashAppComponent.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Spinner from '../../internal/Spinner';\nimport { CashAppPayEvents, ICashAppService } from '../services/types';\nimport { CashAppPayEventData } from '../types';\nimport StoreDetails from '../../internal/StoreDetails';\nimport './CashAppComponent.scss';\nimport { UIElementStatus } from '../../internal/UIElement/types';\n\ninterface CashAppComponentProps {\n enableStoreDetails?: boolean;\n cashAppService: ICashAppService;\n onClick(): void;\n onChangeStoreDetails(data: any): void;\n onAuthorize(payEventData: CashAppPayEventData): void;\n onError(error: AdyenCheckoutError): void;\n ref(ref: RefObject<typeof CashAppComponent>): void;\n}\n\nexport function CashAppComponent({\n enableStoreDetails,\n cashAppService,\n onClick,\n onChangeStoreDetails,\n onAuthorize,\n onError\n}: Readonly<CashAppComponentProps>): h.JSX.Element {\n const cashAppRef = useRef<HTMLDivElement>(null);\n const [status, setStatus] = useState<UIElementStatus>('loading');\n const subscriptions = useRef<Function[]>([]);\n const [storePaymentMethod, setStorePaymentMethod] = useState<boolean>(false);\n\n this.setStatus = setStatus;\n\n const initializeCashAppSdk = useCallback(async () => {\n try {\n await cashAppService.initialize();\n\n subscriptions.current = [\n cashAppService.subscribeToEvent(CashAppPayEvents.CustomerDismissed, () => {\n onError(new AdyenCheckoutError('CANCEL', 'Customer dismissed the modal'));\n }),\n cashAppService.subscribeToEvent(CashAppPayEvents.CustomerRequestDeclined, async () => {\n onError(new AdyenCheckoutError('ERROR', 'Payment declined by CashAppPay'));\n await cashAppService.restart();\n await cashAppService.renderButton(cashAppRef.current);\n }),\n\n cashAppService.subscribeToEvent(CashAppPayEvents.CustomerRequestApproved, ({ customerProfile, grants }) => {\n const cashAppPaymentData: CashAppPayEventData = {\n ...(customerProfile?.id && { customerId: customerProfile.id }),\n ...(customerProfile?.cashtag && { cashTag: customerProfile.cashtag }),\n ...(grants?.payment?.grantId && { grantId: grants.payment.grantId }),\n ...(grants?.onFile?.grantId && { onFileGrantId: grants.onFile.grantId })\n };\n\n onAuthorize(cashAppPaymentData);\n }),\n cashAppService.subscribeToEvent(CashAppPayEvents.CustomerRequestFailed, () => {\n onError(new AdyenCheckoutError('ERROR', 'Customer request failed'));\n })\n ];\n\n await cashAppService.renderButton(cashAppRef.current);\n\n setStatus('ready');\n } catch (error) {\n if (error instanceof AdyenCheckoutError) onError(error);\n else onError(new AdyenCheckoutError('ERROR', 'Error when initializing CashAppPay', { cause: error }));\n }\n }, [cashAppService, onError, onAuthorize]);\n\n useEffect(() => {\n if (enableStoreDetails) {\n cashAppService.setStorePaymentMethod(storePaymentMethod);\n onChangeStoreDetails(storePaymentMethod);\n }\n }, [enableStoreDetails, storePaymentMethod]);\n\n useEffect(() => {\n void initializeCashAppSdk();\n return () => {\n void cashAppService.restart();\n subscriptions.current.forEach(unsubscribeFn => unsubscribeFn());\n };\n }, [cashAppService, initializeCashAppSdk]);\n\n return (\n <div className=\"adyen-checkout__cashapp\" aria-live=\"polite\" aria-busy={status === 'loading'}>\n {status === 'loading' && <Spinner />}\n {status !== 'loading' && enableStoreDetails && <StoreDetails storeDetails={storePaymentMethod} onChange={setStorePaymentMethod} />}\n\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */}\n <div onClick={onClick} className={'adyen-checkout__cashapp-button'} ref={cashAppRef}></div>\n </div>\n );\n}\n"],"names":["CashAppComponent","enableStoreDetails","cashAppService","onClick","onChangeStoreDetails","onAuthorize","onError","cashAppRef","useRef","status","setStatus","useState","subscriptions","storePaymentMethod","setStorePaymentMethod","this","initializeCashAppSdk","useCallback","async","initialize","current","subscribeToEvent","CashAppPayEvents","CustomerDismissed","AdyenCheckoutError","CustomerRequestDeclined","restart","renderButton","CustomerRequestApproved","customerProfile","grants","cashAppPaymentData","id","customerId","cashtag","cashTag","payment","grantId","onFile","onFileGrantId","CustomerRequestFailed","error","cause","useEffect","forEach","unsubscribeFn","h","div","className","aria-live","aria-busy","Spinner","StoreDetails","storeDetails","onChange","ref"],"mappings":"0ZAoBO,SAASA,GAAiBC,mBAC7BA,EAAkBC,eAClBA,EAAcC,QACdA,EAAOC,qBACPA,EAAoBC,YACpBA,EAAWC,QACXA,IAEA,MAAMC,EAAaC,EAAuB,OACnCC,EAAQC,GAAaC,EAA0B,WAChDC,EAAgBJ,EAAmB,KAClCK,EAAoBC,GAAyBH,GAAkB,GAEtEI,KAAKL,UAAYA,EAEjB,MAAMM,EAAuBC,EAAYC,UACrC,UACUhB,EAAeiB,aAErBP,EAAcQ,QAAU,CACpBlB,EAAemB,iBAAiBC,EAAiBC,kBAAmB,KAChEjB,EAAQ,IAAIkB,EAAmB,SAAU,mCAE7CtB,EAAemB,iBAAiBC,EAAiBG,wBAAyBP,UACtEZ,EAAQ,IAAIkB,EAAmB,QAAS,yCAClCtB,EAAewB,gBACfxB,EAAeyB,aAAapB,EAAWa,WAGjDlB,EAAemB,iBAAiBC,EAAiBM,wBAAyB,EAAGC,kBAAiBC,aAC1F,MAAMC,EAA0C,IACxCF,GAAiBG,IAAM,CAAEC,WAAYJ,EAAgBG,OACrDH,GAAiBK,SAAW,CAAEC,QAASN,EAAgBK,YACvDJ,GAAQM,SAASC,SAAW,CAAEA,QAASP,EAAOM,QAAQC,YACtDP,GAAQQ,QAAQD,SAAW,CAAEE,cAAeT,EAAOQ,OAAOD,UAGlEhC,EAAY0B,KAEhB7B,EAAemB,iBAAiBC,EAAiBkB,sBAAuB,KACpElC,EAAQ,IAAIkB,EAAmB,QAAS,qCAI1CtB,EAAeyB,aAAapB,EAAWa,SAE7CV,EAAU,QACd,CAAE,MAAO+B,GACoCnC,EAArCmC,aAAiBjB,EAA4BiB,EACpC,IAAIjB,EAAmB,QAAS,qCAAsC,CAAEkB,MAAOD,IAChG,GACD,CAACvC,EAAgBI,EAASD,IAiB7B,OAfAsC,EAAU,KACF1C,IACAC,EAAeY,sBAAsBD,GACrCT,EAAqBS,KAE1B,CAACZ,EAAoBY,IAExB8B,EAAU,KACD3B,IACE,KACEd,EAAewB,UACpBd,EAAcQ,QAAQwB,QAAQC,GAAiBA,OAEpD,CAAC3C,EAAgBc,IAGhB8B,EAACC,MAAAA,CAAIC,UAAU,0BAA0BC,YAAU,SAASC,YAAsB,YAAXzC,GACvD,YAAXA,GAAwBqC,EAACK,EAAAA,MACd,YAAX1C,GAAwBR,GAAsB6C,EAACM,EAAAA,CAAaC,aAAcxC,EAAoByC,SAAUxC,IAGzGgC,EAACC,MAAAA,CAAI5C,QAASA,EAAS6C,UAAW,iCAAkCO,IAAKhD,IAGrF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClickToPay.js","sources":["../../../../src/components/ClickToPay/ClickToPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { ClickToPayConfiguration, ClickToPayPaymentData } from './types';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport { ClickToPayProps } from '../internal/ClickToPay/types';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { CtpState } from '../internal/ClickToPay/services/ClickToPayService';\nimport ClickToPayProvider from '../internal/ClickToPay/context/ClickToPayProvider';\nimport ClickToPayComponent from '../internal/ClickToPay';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport type { ICore } from '../../core/types';\n\nexport class ClickToPayElement extends UIElement<ClickToPayConfiguration> {\n public static type = TxVariants.clicktopay;\n\n private readonly clickToPayService: IClickToPayService | null;\n private readonly ctpConfiguration: ClickToPayProps;\n\n constructor(checkout: ICore, props?: ClickToPayConfiguration) {\n super(checkout, props);\n\n this.ctpConfiguration = {\n shopperEmail: this.props.shopperEmail,\n telephoneNumber: this.props.telephoneNumber,\n merchantDisplayName: this.props.merchantDisplayName,\n locale: this.props.locale,\n onReady: this.props.onReady,\n onTimeout: this.props.onTimeout\n };\n\n this.clickToPayService = createClickToPayService(this.props.configuration, this.ctpConfiguration, this.props.environment, this.analytics);\n\n this.clickToPayService?.initialize().catch(error => {\n this.handleError(new AdyenCheckoutError('ERROR', error.toString(), { cause: error }));\n });\n\n if (!this.clickToPayService) {\n console.warn('ClickToPay not initialized - Likely the payment method is not configured or its configuration is missing');\n }\n }\n\n get isValid() {\n return true;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n public formatData(): ClickToPayPaymentData {\n const { srcScheme, srcCorrelationId, srcTokenReference, srcCheckoutPayload, srcDigitalCardId } = this.state.data;\n return {\n paymentMethod: {\n type: ClickToPayElement.type,\n ...(srcScheme && { srcScheme }),\n ...(srcCorrelationId && { srcCorrelationId }),\n ...(srcTokenReference && { srcTokenReference }),\n ...(srcCheckoutPayload && { srcCheckoutPayload }),\n ...(srcDigitalCardId && { srcDigitalCardId })\n },\n browserInfo: this.browserInfo,\n origin: window?.location?.origin\n };\n }\n\n protected formatProps(props: ClickToPayConfiguration) {\n return {\n ...props,\n disableOtpAutoFocus: props.disableOtpAutoFocus || false,\n shopperEmail: props.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.locale || props.i18n?.locale?.replace('-', '_')\n };\n }\n\n /**\n * Method used to let the merchant know if the shopper have a valid CtP accoubt\n *\n * Resolves Promise if the Shopper has cookies OR has valid CtP account\n * Rejects Promise if account isn't found or if Login screen is triggered\n */\n public override async isAvailable(): Promise<void> {\n if (!this.clickToPayService) {\n return Promise.reject();\n }\n\n if (this.clickToPayService.shopperAccountFound) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n this.clickToPayService.subscribeOnStateChange((state: CtpState) => {\n if (this.clickToPayService.shopperAccountFound) resolve();\n if (state === CtpState.NotAvailable || state === CtpState.Login || state === CtpState.Idle) reject();\n });\n });\n }\n\n private handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <ClickToPayProvider\n isStandaloneComponent={true}\n configuration={this.ctpConfiguration}\n clickToPayService={this.clickToPayService}\n setClickToPayRef={this.setComponentRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n <ClickToPayComponent />\n </ClickToPayProvider>\n );\n }\n}\n\nexport default ClickToPayElement;\n"],"names":["ClickToPayElement","UIElement","isValid","browserInfo","collectBrowserInfo","formatData","srcScheme","srcCorrelationId","srcTokenReference","srcCheckoutPayload","srcDigitalCardId","this","state","data","paymentMethod","type","origin","window","location","formatProps","props","disableOtpAutoFocus","shopperEmail","core","options","session","telephoneNumber","locale","i18n","replace","isAvailable","clickToPayService","shopperAccountFound","Promise","resolve","reject","subscribeOnStateChange","CtpState","NotAvailable","Login","Idle","componentToRender","h","ClickToPayProvider","isStandaloneComponent","configuration","ctpConfiguration","setClickToPayRef","setComponentRef","onSetStatus","setElementStatus","onSubmit","handleClickToPaySubmit","onError","handleError","ClickToPayComponent","constructor","checkout","super","_define_property","payload","setState","valid","errors","submit","merchantDisplayName","onReady","onTimeout","createClickToPayService","environment","analytics","initialize","catch","error","AdyenCheckoutError","toString","cause","console","warn","TxVariants","clicktopay"],"mappings":"yqBAcO,MAAMA,UAA0BC,EA6BnC,WAAIC,GACA,OAAO,CACX,CAEA,eAAIC,GACA,OAAOC,GACX,CAEOC,UAAAA,GACH,MAAMC,UAAEA,EAASC,iBAAEA,EAAgBC,kBAAEA,EAAiBC,mBAAEA,EAAkBC,iBAAEA,GAAqBC,KAAKC,MAAMC,KAC5G,MAAO,CACHC,cAAe,CACXC,KAAMf,EAAkBe,QACpBT,GAAa,CAAEA,gBACfC,GAAoB,CAAEA,uBACtBC,GAAqB,CAAEA,wBACvBC,GAAsB,CAAEA,yBACxBC,GAAoB,CAAEA,qBAE9BP,YAAaQ,KAAKR,YAClBa,OAAQC,QAAQC,UAAUF,OAElC,CAEUG,WAAAA,CAAYC,GAClB,MAAO,IACAA,EACHC,oBAAqBD,EAAMC,sBAAuB,EAClDC,aAAcF,EAAME,cAAgBX,KAAKY,KAAKC,SAASC,SAASH,aAChEI,gBAAiBN,EAAMM,iBAAmBf,KAAKY,KAAKC,SAASC,SAASC,gBACtEC,OAAQP,EAAMO,QAAUP,EAAMQ,MAAMD,QAAQE,QAAQ,IAAK,KAEjE,CAQA,iBAAsBC,GAClB,OAAKnB,KAAKoB,kBAINpB,KAAKoB,kBAAkBC,oBAChBC,QAAQC,UAGZ,IAAID,QAAQ,CAACC,EAASC,KACzBxB,KAAKoB,kBAAkBK,uBAAwBxB,IACvCD,KAAKoB,kBAAkBC,qBAAqBE,IAC5CtB,IAAUyB,EAASC,cAAgB1B,IAAUyB,EAASE,OAAS3B,IAAUyB,EAASG,MAAML,QAVzFF,QAAQE,QAavB,CAOmBM,iBAAAA,GACf,OACIC,EAACC,EAAAA,CACGC,uBAAuB,EACvBC,cAAelC,KAAKmC,iBACpBf,kBAAmBpB,KAAKoB,kBACxBgB,iBAAkBpC,KAAKqC,gBACvBC,YAAatC,KAAKuC,iBAClBC,SAAUxC,KAAKyC,uBACfC,QAAS1C,KAAK2C,aAEdZ,EAACa,EAAAA,MAGb,CAnGA,WAAAC,CAAYC,EAAiBrC,GACzBsC,MAAMD,EAAUrC,GAJpBuC,EAAAhD,KAAiBoB,4BACjB4B,EAAAhD,KAAiBmC,2BAkFjBa,EAAAhD,KAAQyC,yBAA0BQ,IAC9BjD,KAAKkD,SAAS,CAAEhD,KAAM,IAAK+C,GAAWE,MAAO,CAAA,EAAIC,OAAQ,CAAA,EAAI7D,SAAS,IACtES,KAAKqD,WA/ELrD,KAAKmC,iBAAmB,CACpBxB,aAAcX,KAAKS,MAAME,aACzBI,gBAAiBf,KAAKS,MAAMM,gBAC5BuC,oBAAqBtD,KAAKS,MAAM6C,oBAChCtC,OAAQhB,KAAKS,MAAMO,OACnBuC,QAASvD,KAAKS,MAAM8C,QACpBC,UAAWxD,KAAKS,MAAM+C,WAG1BxD,KAAKoB,kBAAoBqC,EAAwBzD,KAAKS,MAAMyB,cAAelC,KAAKmC,iBAAkBnC,KAAKS,MAAMiD,YAAa1D,KAAK2D,WAE/H3D,KAAKoB,mBAAmBwC,aAAaC,MAAMC,IACvC9D,KAAK2C,YAAY,IAAIoB,EAAmB,QAASD,EAAME,WAAY,CAAEC,MAAOH,OAG3E9D,KAAKoB,mBACN8C,QAAQC,KAAK,2GAErB,EA1BAnB,EADS3D,EACKe,OAAOgE,EAAWC"}
1
+ {"version":3,"file":"ClickToPay.js","sources":["../../../../src/components/ClickToPay/ClickToPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { ClickToPayConfiguration, ClickToPayPaymentData } from './types';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport { ClickToPayProps } from '../internal/ClickToPay/types';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { CtpState } from '../internal/ClickToPay/services/ClickToPayService';\nimport ClickToPayProvider from '../internal/ClickToPay/context/ClickToPayProvider';\nimport ClickToPayComponent from '../internal/ClickToPay';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport type { ICore } from '../../core/types';\n\nexport class ClickToPayElement extends UIElement<ClickToPayConfiguration> {\n public static readonly type = TxVariants.clicktopay;\n\n private readonly clickToPayService: IClickToPayService | null;\n private readonly ctpConfiguration: ClickToPayProps;\n\n constructor(checkout: ICore, props?: ClickToPayConfiguration) {\n super(checkout, props);\n\n this.ctpConfiguration = {\n shopperEmail: this.props.shopperEmail,\n telephoneNumber: this.props.telephoneNumber,\n merchantDisplayName: this.props.merchantDisplayName,\n locale: this.props.locale,\n onReady: this.props.onReady,\n onTimeout: this.props.onTimeout\n };\n\n this.clickToPayService = createClickToPayService(this.props.configuration, this.ctpConfiguration, this.props.environment, this.analytics);\n\n this.clickToPayService?.initialize().catch(error => {\n this.handleError(new AdyenCheckoutError('ERROR', error.toString(), { cause: error }));\n });\n\n if (!this.clickToPayService) {\n console.warn('ClickToPay not initialized - Likely the payment method is not configured or its configuration is missing');\n }\n }\n\n get isValid() {\n return true;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n public formatData(): ClickToPayPaymentData {\n const { srcScheme, srcCorrelationId, srcTokenReference, srcCheckoutPayload, srcDigitalCardId } = this.state.data;\n return {\n paymentMethod: {\n type: ClickToPayElement.type,\n ...(srcScheme && { srcScheme }),\n ...(srcCorrelationId && { srcCorrelationId }),\n ...(srcTokenReference && { srcTokenReference }),\n ...(srcCheckoutPayload && { srcCheckoutPayload }),\n ...(srcDigitalCardId && { srcDigitalCardId })\n },\n browserInfo: this.browserInfo,\n origin: window?.location?.origin\n };\n }\n\n protected formatProps(props: ClickToPayConfiguration) {\n return {\n ...props,\n disableOtpAutoFocus: props.disableOtpAutoFocus || false,\n shopperEmail: props.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.locale || props.i18n?.locale?.replace('-', '_')\n };\n }\n\n /**\n * Method used to let the merchant know if the shopper have a valid CtP accoubt\n *\n * Resolves Promise if the Shopper has cookies OR has valid CtP account\n * Rejects Promise if account isn't found or if Login screen is triggered\n */\n public override async isAvailable(): Promise<void> {\n if (!this.clickToPayService) {\n return Promise.reject();\n }\n\n if (this.clickToPayService.shopperAccountFound) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n this.clickToPayService.subscribeOnStateChange((state: CtpState) => {\n if (this.clickToPayService.shopperAccountFound) resolve();\n if (state === CtpState.NotAvailable || state === CtpState.Login || state === CtpState.Idle) reject();\n });\n });\n }\n\n private handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <ClickToPayProvider\n isStandaloneComponent={true}\n configuration={this.ctpConfiguration}\n clickToPayService={this.clickToPayService}\n setClickToPayRef={this.setComponentRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n <ClickToPayComponent />\n </ClickToPayProvider>\n );\n }\n}\n\nexport default ClickToPayElement;\n"],"names":["ClickToPayElement","UIElement","isValid","browserInfo","collectBrowserInfo","formatData","srcScheme","srcCorrelationId","srcTokenReference","srcCheckoutPayload","srcDigitalCardId","this","state","data","paymentMethod","type","origin","window","location","formatProps","props","disableOtpAutoFocus","shopperEmail","core","options","session","telephoneNumber","locale","i18n","replace","isAvailable","clickToPayService","shopperAccountFound","Promise","resolve","reject","subscribeOnStateChange","CtpState","NotAvailable","Login","Idle","componentToRender","h","ClickToPayProvider","isStandaloneComponent","configuration","ctpConfiguration","setClickToPayRef","setComponentRef","onSetStatus","setElementStatus","onSubmit","handleClickToPaySubmit","onError","handleError","ClickToPayComponent","constructor","checkout","super","_define_property","payload","setState","valid","errors","submit","merchantDisplayName","onReady","onTimeout","createClickToPayService","environment","analytics","initialize","catch","error","AdyenCheckoutError","toString","cause","console","warn","TxVariants","clicktopay"],"mappings":"yqBAcO,MAAMA,UAA0BC,EA6BnC,WAAIC,GACA,OAAO,CACX,CAEA,eAAIC,GACA,OAAOC,GACX,CAEOC,UAAAA,GACH,MAAMC,UAAEA,EAASC,iBAAEA,EAAgBC,kBAAEA,EAAiBC,mBAAEA,EAAkBC,iBAAEA,GAAqBC,KAAKC,MAAMC,KAC5G,MAAO,CACHC,cAAe,CACXC,KAAMf,EAAkBe,QACpBT,GAAa,CAAEA,gBACfC,GAAoB,CAAEA,uBACtBC,GAAqB,CAAEA,wBACvBC,GAAsB,CAAEA,yBACxBC,GAAoB,CAAEA,qBAE9BP,YAAaQ,KAAKR,YAClBa,OAAQC,QAAQC,UAAUF,OAElC,CAEUG,WAAAA,CAAYC,GAClB,MAAO,IACAA,EACHC,oBAAqBD,EAAMC,sBAAuB,EAClDC,aAAcF,EAAME,cAAgBX,KAAKY,KAAKC,SAASC,SAASH,aAChEI,gBAAiBN,EAAMM,iBAAmBf,KAAKY,KAAKC,SAASC,SAASC,gBACtEC,OAAQP,EAAMO,QAAUP,EAAMQ,MAAMD,QAAQE,QAAQ,IAAK,KAEjE,CAQA,iBAAsBC,GAClB,OAAKnB,KAAKoB,kBAINpB,KAAKoB,kBAAkBC,oBAChBC,QAAQC,UAGZ,IAAID,QAAQ,CAACC,EAASC,KACzBxB,KAAKoB,kBAAkBK,uBAAwBxB,IACvCD,KAAKoB,kBAAkBC,qBAAqBE,IAC5CtB,IAAUyB,EAASC,cAAgB1B,IAAUyB,EAASE,OAAS3B,IAAUyB,EAASG,MAAML,QAVzFF,QAAQE,QAavB,CAOmBM,iBAAAA,GACf,OACIC,EAACC,EAAAA,CACGC,uBAAuB,EACvBC,cAAelC,KAAKmC,iBACpBf,kBAAmBpB,KAAKoB,kBACxBgB,iBAAkBpC,KAAKqC,gBACvBC,YAAatC,KAAKuC,iBAClBC,SAAUxC,KAAKyC,uBACfC,QAAS1C,KAAK2C,aAEdZ,EAACa,EAAAA,MAGb,CAnGA,WAAAC,CAAYC,EAAiBrC,GACzBsC,MAAMD,EAAUrC,GAJpBuC,EAAAhD,KAAiBoB,4BACjB4B,EAAAhD,KAAiBmC,2BAkFjBa,EAAAhD,KAAQyC,yBAA0BQ,IAC9BjD,KAAKkD,SAAS,CAAEhD,KAAM,IAAK+C,GAAWE,MAAO,CAAA,EAAIC,OAAQ,CAAA,EAAI7D,SAAS,IACtES,KAAKqD,WA/ELrD,KAAKmC,iBAAmB,CACpBxB,aAAcX,KAAKS,MAAME,aACzBI,gBAAiBf,KAAKS,MAAMM,gBAC5BuC,oBAAqBtD,KAAKS,MAAM6C,oBAChCtC,OAAQhB,KAAKS,MAAMO,OACnBuC,QAASvD,KAAKS,MAAM8C,QACpBC,UAAWxD,KAAKS,MAAM+C,WAG1BxD,KAAKoB,kBAAoBqC,EAAwBzD,KAAKS,MAAMyB,cAAelC,KAAKmC,iBAAkBnC,KAAKS,MAAMiD,YAAa1D,KAAK2D,WAE/H3D,KAAKoB,mBAAmBwC,aAAaC,MAAMC,IACvC9D,KAAK2C,YAAY,IAAIoB,EAAmB,QAASD,EAAME,WAAY,CAAEC,MAAOH,OAG3E9D,KAAKoB,mBACN8C,QAAQC,KAAK,2GAErB,EA1BAnB,EADS3D,EACce,OAAOgE,EAAWC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCard.js","sources":["../../../../src/components/CustomCard/CustomCard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport CustomCardInput from './CustomCardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { BrandObject } from '../Card/types';\nimport { getCardImageUrl, fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { TxVariants } from '../tx-variants';\nimport { CustomCardConfiguration } from './types';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nexport class CustomCard extends UIElement<CustomCardConfiguration> {\n public static type = TxVariants.customCard;\n\n protected static defaultProps = {\n onBinLookup: () => {},\n brandsConfiguration: {}\n };\n\n private brand = TxVariants.card;\n\n formatProps(props: CustomCardConfiguration) {\n return {\n ...props,\n type: TxVariants.customCard\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const sfBrand = this.state.selectedBrandValue;\n return {\n paymentMethod: {\n type: 'scheme',\n ...this.state.data,\n ...(sfBrand && { brand: sfBrand })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(frame) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(frame);\n return this;\n }\n\n processBinLookupResponse(binLookupResponse) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse);\n return this;\n }\n\n dualBrandingChangeHandler(e: Event | string) {\n if (this.componentRef?.dualBrandingChangeHandler) this.componentRef.dualBrandingChangeHandler(e);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n onBinLookup(obj: CardBinLookupData) {\n const nuObj = { ...obj };\n nuObj.rootNode = this._node;\n\n if (!nuObj.isReset) {\n // Add brandImage urls, first checking if the merchant has configured their own one for the brand\n nuObj.supportedBrandsRaw = obj.supportedBrandsRaw?.map((item: BrandObject) => {\n item.brandImageUrl = this.props.brandsConfiguration[item.brand]?.icon ?? getCardImageUrl(item.brand, this.resources);\n return item;\n });\n }\n\n this.props.onBinLookup(nuObj);\n }\n\n public onBinValue = triggerBinLookUp(this);\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n private onFocus = (obj: CardFocusData) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: obj.focus === true ? InfoEventType.focus : InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n this.props.onFocus?.(obj);\n };\n\n protected onEnterKeyPressed = (activeElement: Element, component: UIElement) => {\n this.props.onEnterKeyPressed?.(activeElement, component);\n };\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <CustomCardInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n {...this.state}\n handleKeyPress={this.handleKeyPress}\n rootNode={this._node}\n onChange={this.setState}\n onBinValue={this.onBinValue}\n implementationType={'custom'}\n resources={this.resources}\n brand={this.brand}\n onFocus={this.onFocus}\n onSubmitAnalytics={this.submitAnalytics}\n />\n );\n }\n}\n\nexport default CustomCard;\n"],"names":["CustomCard","UIElement","formatProps","props","type","TxVariants","customCard","formatData","sfBrand","this","state","selectedBrandValue","paymentMethod","data","brand","browserInfo","origin","window","location","updateStyles","stylesObj","componentRef","setFocusOn","frame","processBinLookupResponse","binLookupResponse","dualBrandingChangeHandler","e","handleUnsupportedCard","errObj","onBinLookup","obj","nuObj","rootNode","_node","isReset","supportedBrandsRaw","map","item","brandImageUrl","brandsConfiguration","icon","getCardImageUrl","resources","isValid","collectBrowserInfo","componentToRender","h","CustomCardInput","ref","handleKeyPress","onChange","setState","onBinValue","implementationType","onFocus","onSubmitAnalytics","submitAnalytics","super","args","_define_property","card","triggerBinLookUp","event","AnalyticsInfoEvent","component","focus","InfoEventType","unfocus","target","fieldTypeToSnakeCase","fieldType","onEnterKeyPressed","activeElement","defaultProps"],"mappings":"ypBAYO,MAAMA,UAAmBC,EAU5BC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAMC,EAAWC,WAEzB,CAKAC,UAAAA,GACI,MAAMC,EAAUC,KAAKC,MAAMC,mBAC3B,MAAO,CACHC,cAAe,CACXR,KAAM,YACHK,KAAKC,MAAMG,QACVL,GAAW,CAAEM,MAAON,IAE5BO,YAAaN,KAAKM,YAClBC,SAAUC,QAAUA,OAAOC,SAASF,OAE5C,CAEAG,YAAAA,CAAaC,GAET,OADIX,KAAKY,cAAcF,cAAcV,KAAKY,aAAaF,aAAaC,GAC7DX,IACX,CAEAa,UAAAA,CAAWC,GAEP,OADId,KAAKY,cAAcC,YAAYb,KAAKY,aAAaC,WAAWC,GACzDd,IACX,CAEAe,wBAAAA,CAAyBC,GAErB,OADIhB,KAAKY,cAAcG,0BAA0Bf,KAAKY,aAAaG,yBAAyBC,GACrFhB,IACX,CAEAiB,yBAAAA,CAA0BC,GAEtB,OADIlB,KAAKY,cAAcK,2BAA2BjB,KAAKY,aAAaK,0BAA0BC,GACvFlB,IACX,CAEAmB,qBAAAA,CAAsBC,GAElB,OADIpB,KAAKY,cAAcO,uBAAuBnB,KAAKY,aAAaO,sBAAsBC,GAC/EpB,IACX,CAEAqB,WAAAA,CAAYC,GACR,MAAMC,EAAQ,IAAKD,GACnBC,EAAMC,SAAWxB,KAAKyB,MAEjBF,EAAMG,UAEPH,EAAMI,mBAAqBL,EAAIK,oBAAoBC,IAAKC,IACpDA,EAAKC,cAAgB9B,KAAKN,MAAMqC,oBAAoBF,EAAKxB,QAAQ2B,MAAQC,EAAgBJ,EAAKxB,MAAOL,KAAKkC,WACnGL,KAIf7B,KAAKN,MAAM2B,YAAYE,EAC3B,CAIA,WAAIY,GACA,QAASnC,KAAKC,MAAMkC,OACxB,CAEA,eAAI7B,GACA,OAAO8B,GACX,CAmBmBC,iBAAAA,GACf,OACIC,EAACC,EAAAA,CACGC,IAAKA,IACDxC,KAAKY,aAAe4B,MAEpBxC,KAAKN,SACLM,KAAKC,MACTwC,eAAgBzC,KAAKyC,eACrBjB,SAAUxB,KAAKyB,MACfiB,SAAU1C,KAAK2C,SACfC,WAAY5C,KAAK4C,WACjBC,mBAAoB,SACpBX,UAAWlC,KAAKkC,UAChB7B,MAAOL,KAAKK,MACZyC,QAAS9C,KAAK8C,QACdC,kBAAmB/C,KAAKgD,iBAGpC,mBAvHGC,SAAAC,GAQHC,EAAAnD,KAAQK,QAAQT,EAAWwD,MAiE3BD,EAAAnD,KAAO4C,aAAaS,EAAiBrD,OAUrCmD,EAAAnD,KAAQ8C,UAAWxB,IACf,MAAMgC,EAAQ,IAAIC,EAAmB,CACjCC,UAAWxD,KAAKL,KAChBA,MAAoB,IAAd2B,EAAImC,MAAiBC,EAAcD,MAAQC,EAAcC,QAC/DC,OAAQC,EAAqBvC,EAAIwC,aAGrC9D,KAAKgD,gBAAgBM,GAGrBtD,KAAKN,MAAMoD,UAAUxB,KAGzB6B,EAAAnD,KAAU+D,oBAAoB,CAACC,EAAwBR,KACnDxD,KAAKN,MAAMqE,oBAAoBC,EAAeR,MAhGlDL,EADS5D,EACKI,OAAOC,EAAWC,YAEhCsD,EAHS5D,EAGQ0E,eAAe,CAC5B5C,YAAa,OACbU,oBAAqB,CAAA"}
1
+ {"version":3,"file":"CustomCard.js","sources":["../../../../src/components/CustomCard/CustomCard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport CustomCardInput from './CustomCardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { BrandObject } from '../Card/types';\nimport { getCardImageUrl, fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { TxVariants } from '../tx-variants';\nimport { CustomCardConfiguration } from './types';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nexport class CustomCard extends UIElement<CustomCardConfiguration> {\n public static readonly type = TxVariants.customCard;\n\n protected static readonly defaultProps = {\n onBinLookup: () => {},\n brandsConfiguration: {}\n };\n\n private brand = TxVariants.card;\n\n formatProps(props: CustomCardConfiguration) {\n return {\n ...props,\n type: TxVariants.customCard\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const sfBrand = this.state.selectedBrandValue;\n return {\n paymentMethod: {\n type: 'scheme',\n ...this.state.data,\n ...(sfBrand && { brand: sfBrand })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(frame) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(frame);\n return this;\n }\n\n processBinLookupResponse(binLookupResponse) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse);\n return this;\n }\n\n dualBrandingChangeHandler(e: Event | string) {\n if (this.componentRef?.dualBrandingChangeHandler) this.componentRef.dualBrandingChangeHandler(e);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n onBinLookup(obj: CardBinLookupData) {\n const nuObj = { ...obj };\n nuObj.rootNode = this._node;\n\n if (!nuObj.isReset) {\n // Add brandImage urls, first checking if the merchant has configured their own one for the brand\n nuObj.supportedBrandsRaw = obj.supportedBrandsRaw?.map((item: BrandObject) => {\n item.brandImageUrl = this.props.brandsConfiguration[item.brand]?.icon ?? getCardImageUrl(item.brand, this.resources);\n return item;\n });\n }\n\n this.props.onBinLookup(nuObj);\n }\n\n public onBinValue = triggerBinLookUp(this);\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n private onFocus = (obj: CardFocusData) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: obj.focus === true ? InfoEventType.focus : InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n this.props.onFocus?.(obj);\n };\n\n protected onEnterKeyPressed = (activeElement: Element, component: UIElement) => {\n this.props.onEnterKeyPressed?.(activeElement, component);\n };\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <CustomCardInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n {...this.state}\n handleKeyPress={this.handleKeyPress}\n rootNode={this._node}\n onChange={this.setState}\n onBinValue={this.onBinValue}\n implementationType={'custom'}\n resources={this.resources}\n brand={this.brand}\n onFocus={this.onFocus}\n onSubmitAnalytics={this.submitAnalytics}\n />\n );\n }\n}\n\nexport default CustomCard;\n"],"names":["CustomCard","UIElement","formatProps","props","type","TxVariants","customCard","formatData","sfBrand","this","state","selectedBrandValue","paymentMethod","data","brand","browserInfo","origin","window","location","updateStyles","stylesObj","componentRef","setFocusOn","frame","processBinLookupResponse","binLookupResponse","dualBrandingChangeHandler","e","handleUnsupportedCard","errObj","onBinLookup","obj","nuObj","rootNode","_node","isReset","supportedBrandsRaw","map","item","brandImageUrl","brandsConfiguration","icon","getCardImageUrl","resources","isValid","collectBrowserInfo","componentToRender","h","CustomCardInput","ref","handleKeyPress","onChange","setState","onBinValue","implementationType","onFocus","onSubmitAnalytics","submitAnalytics","super","args","_define_property","card","triggerBinLookUp","event","AnalyticsInfoEvent","component","focus","InfoEventType","unfocus","target","fieldTypeToSnakeCase","fieldType","onEnterKeyPressed","activeElement","defaultProps"],"mappings":"ypBAYO,MAAMA,UAAmBC,EAU5BC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAMC,EAAWC,WAEzB,CAKAC,UAAAA,GACI,MAAMC,EAAUC,KAAKC,MAAMC,mBAC3B,MAAO,CACHC,cAAe,CACXR,KAAM,YACHK,KAAKC,MAAMG,QACVL,GAAW,CAAEM,MAAON,IAE5BO,YAAaN,KAAKM,YAClBC,SAAUC,QAAUA,OAAOC,SAASF,OAE5C,CAEAG,YAAAA,CAAaC,GAET,OADIX,KAAKY,cAAcF,cAAcV,KAAKY,aAAaF,aAAaC,GAC7DX,IACX,CAEAa,UAAAA,CAAWC,GAEP,OADId,KAAKY,cAAcC,YAAYb,KAAKY,aAAaC,WAAWC,GACzDd,IACX,CAEAe,wBAAAA,CAAyBC,GAErB,OADIhB,KAAKY,cAAcG,0BAA0Bf,KAAKY,aAAaG,yBAAyBC,GACrFhB,IACX,CAEAiB,yBAAAA,CAA0BC,GAEtB,OADIlB,KAAKY,cAAcK,2BAA2BjB,KAAKY,aAAaK,0BAA0BC,GACvFlB,IACX,CAEAmB,qBAAAA,CAAsBC,GAElB,OADIpB,KAAKY,cAAcO,uBAAuBnB,KAAKY,aAAaO,sBAAsBC,GAC/EpB,IACX,CAEAqB,WAAAA,CAAYC,GACR,MAAMC,EAAQ,IAAKD,GACnBC,EAAMC,SAAWxB,KAAKyB,MAEjBF,EAAMG,UAEPH,EAAMI,mBAAqBL,EAAIK,oBAAoBC,IAAKC,IACpDA,EAAKC,cAAgB9B,KAAKN,MAAMqC,oBAAoBF,EAAKxB,QAAQ2B,MAAQC,EAAgBJ,EAAKxB,MAAOL,KAAKkC,WACnGL,KAIf7B,KAAKN,MAAM2B,YAAYE,EAC3B,CAIA,WAAIY,GACA,QAASnC,KAAKC,MAAMkC,OACxB,CAEA,eAAI7B,GACA,OAAO8B,GACX,CAmBmBC,iBAAAA,GACf,OACIC,EAACC,EAAAA,CACGC,IAAKA,IACDxC,KAAKY,aAAe4B,MAEpBxC,KAAKN,SACLM,KAAKC,MACTwC,eAAgBzC,KAAKyC,eACrBjB,SAAUxB,KAAKyB,MACfiB,SAAU1C,KAAK2C,SACfC,WAAY5C,KAAK4C,WACjBC,mBAAoB,SACpBX,UAAWlC,KAAKkC,UAChB7B,MAAOL,KAAKK,MACZyC,QAAS9C,KAAK8C,QACdC,kBAAmB/C,KAAKgD,iBAGpC,mBAvHGC,SAAAC,GAQHC,EAAAnD,KAAQK,QAAQT,EAAWwD,MAiE3BD,EAAAnD,KAAO4C,aAAaS,EAAiBrD,OAUrCmD,EAAAnD,KAAQ8C,UAAWxB,IACf,MAAMgC,EAAQ,IAAIC,EAAmB,CACjCC,UAAWxD,KAAKL,KAChBA,MAAoB,IAAd2B,EAAImC,MAAiBC,EAAcD,MAAQC,EAAcC,QAC/DC,OAAQC,EAAqBvC,EAAIwC,aAGrC9D,KAAKgD,gBAAgBM,GAGrBtD,KAAKN,MAAMoD,UAAUxB,KAGzB6B,EAAAnD,KAAU+D,oBAAoB,CAACC,EAAwBR,KACnDxD,KAAKN,MAAMqE,oBAAoBC,EAAeR,MAhGlDL,EADS5D,EACcI,OAAOC,EAAWC,YAEzCsD,EAHS5D,EAGiB0E,eAAe,CACrC5C,YAAa,OACbU,oBAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCardInput.js","sources":["../../../../../src/components/CustomCard/CustomCardInput/CustomCardInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef, useMemo } from 'preact/hooks';\nimport Language from '../../../language/Language';\nimport SecuredFieldsProvider from '../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport { SFPState } from '../../internal/SecuredFields/SFP/types';\nimport { BinLookupResponse, CardBrandsConfiguration, CardPlaceholders } from '../../Card/types';\nimport SFExtensions from '../../internal/SecuredFields/binLookup/extensions';\nimport { StylesObject } from '../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../core/Context/Resources';\nimport { SFError } from '../../Card/components/CardInput/types';\nimport { ValidationError } from '../types';\nimport type { AbstractAnalyticsEvent } from '../../../core/Analytics/events/AbstractAnalyticsEvent';\n\ninterface SecuredFieldsProps {\n autoFocus?: boolean;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n clientKey?: string;\n countryCode?: string;\n forceCompat?: boolean;\n i18n: Language;\n implementationType?: string;\n keypadFix?: boolean;\n loadingContext?: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n onAdditionalSFConfig?: () => {};\n onAdditionalSFRemoved?: () => {};\n onAllValid?: () => {};\n onAutoComplete?: () => {};\n onBinValue?: () => {};\n onBrand?: () => {};\n onConfigSuccess?: () => {};\n onChange: (data) => void;\n onSubmitAnalytics?: (event: AbstractAnalyticsEvent) => void;\n handleKeyPress?: (obj: KeyboardEvent) => void;\n onError?: () => {};\n onFieldValid?: () => {};\n onFocus?: (e) => {};\n onLoad?: () => {};\n placeholders?: CardPlaceholders;\n rootNode: HTMLElement;\n resources: Resources;\n showWarnings?: boolean;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n}\n\nconst defaultProps = {\n onChange: () => {},\n onError: () => {},\n onValidationError: () => {}\n};\n\nfunction CustomCardInput(props: SecuredFieldsProps) {\n const sfp = useRef(null);\n\n const [errors, setErrors] = useState({});\n const [valid, setValid] = useState({});\n const [data, setData] = useState({});\n\n const [isSfpValid, setIsSfpValid] = useState(false);\n\n const [issuingCountryCode, setIssuingCountryCode] = useState(null);\n\n const [dualBrandSelectElements, setDualBrandSelectElements] = useState([]);\n const [selectedBrandValue, setSelectedBrandValue] = useState('');\n\n const handleSecuredFieldsChange = (sfState: SFPState): void => {\n setData({ ...data, ...sfState.data });\n setErrors({ ...errors, ...sfState.errors });\n setValid({ ...valid, ...sfState.valid });\n\n setIsSfpValid(sfState.isSfpValid);\n };\n\n // Farm the handlers for binLookup related functionality out to another 'extensions' file\n const extensions = useMemo(\n () =>\n SFExtensions(\n props,\n { sfp },\n { dualBrandSelectElements, setDualBrandSelectElements, setSelectedBrandValue, issuingCountryCode, setIssuingCountryCode }\n ),\n [dualBrandSelectElements, issuingCountryCode]\n );\n\n /**\n * EXPECTED METHODS ON SecuredFields.this\n */\n this.processBinLookupResponse = (binLookupResponse: BinLookupResponse, isReset: boolean) => {\n extensions.processBinLookup(binLookupResponse, isReset);\n };\n\n this.dualBrandingChangeHandler = extensions.handleDualBrandSelection;\n\n /**\n * EFFECT HOOKS\n */\n useEffect(() => {\n // componentDidMount\n this.setFocusOn = sfp.current.setFocusOn;\n this.updateStyles = sfp.current.updateStyles;\n this.showValidation = sfp.current.showValidation;\n this.handleUnsupportedCard = sfp.current.handleUnsupportedCard;\n\n // componentWillUnmount\n return () => {\n sfp.current.destroy();\n };\n }, []);\n\n /**\n * Main 'componentDidUpdate' handler\n */\n useEffect(() => {\n const sfStateErrorsObj = sfp.current.mapErrorsToValidationRuleResult();\n\n const mappedErrors = { ...errors, ...sfStateErrorsObj }; // maps sfErrors\n\n props.onChange({\n data,\n valid,\n errors: mappedErrors,\n isValid: isSfpValid,\n selectedBrandValue\n });\n\n // Create an array of Validation error objects and send to callback\n if (Object.keys(mappedErrors).length) {\n const validationErrors: ValidationError[] = Object.entries(mappedErrors).map(([fieldType, error]) => {\n const valErr: ValidationError = {\n fieldType,\n ...(error ? (error as SFError) : { error: '', rootNode: this.props.rootNode })\n };\n return valErr;\n });\n this.props.onValidationError?.(validationErrors);\n }\n }, [data, valid, errors, selectedBrandValue]);\n\n /**\n * RENDER\n */\n // prettier-ignore\n return (\n <SecuredFieldsProvider\n ref={sfp}\n {...extractPropsForSFP(props)}\n type={props.brand}\n componentType={props.type}\n onChange={handleSecuredFieldsChange}\n onSubmitAnalytics={props.onSubmitAnalytics}\n render={() => null}\n />\n );\n}\n\nCustomCardInput.defaultProps = defaultProps;\n\nexport default CustomCardInput;\n\nconst extractPropsForSFP = (props: SecuredFieldsProps) => {\n return {\n autoFocus: props.autoFocus,\n brands: props.brands,\n brandsConfiguration: props.brandsConfiguration,\n clientKey: props.clientKey,\n forceCompat: props.forceCompat,\n // countryCode: props.countryCode, // only used for korean cards when koreanAuthenticationRequired is true\n i18n: props.i18n,\n implementationType: props.implementationType,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\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 onBrand: props.onBrand,\n // onChange // set directly\n onConfigSuccess: props.onConfigSuccess,\n handleKeyPress: props.handleKeyPress,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onFocus: props.onFocus,\n onLoad: props.onLoad,\n // render // set directly\n rootNode: props.rootNode,\n showWarnings: props.showWarnings,\n styles: props.styles,\n trimTrailingSeparator: props.trimTrailingSeparator,\n resources: props.resources,\n maskSecurityCode: props.maskSecurityCode,\n placeholders: props.placeholders\n };\n};\n"],"names":["CustomCardInput","props","sfp","useRef","errors","setErrors","useState","valid","setValid","data","setData","isSfpValid","setIsSfpValid","issuingCountryCode","setIssuingCountryCode","dualBrandSelectElements","setDualBrandSelectElements","selectedBrandValue","setSelectedBrandValue","extensions","useMemo","SFExtensions","this","processBinLookupResponse","binLookupResponse","isReset","processBinLookup","dualBrandingChangeHandler","handleDualBrandSelection","useEffect","setFocusOn","current","updateStyles","showValidation","handleUnsupportedCard","destroy","sfStateErrorsObj","mapErrorsToValidationRuleResult","mappedErrors","onChange","isValid","Object","keys","length","validationErrors","entries","map","fieldType","error","rootNode","onValidationError","h","SecuredFieldsProvider","ref","extractPropsForSFP","type","brand","componentType","sfState","onSubmitAnalytics","render","defaultProps","onError","autoFocus","brands","brandsConfiguration","clientKey","forceCompat","i18n","implementationType","keypadFix","legacyInputMode","loadingContext","minimumExpiryDate","onAdditionalSFConfig","onAdditionalSFRemoved","onAllValid","onAutoComplete","onBinValue","onBrand","onConfigSuccess","handleKeyPress","onFieldValid","onFocus","onLoad","showWarnings","styles","trimTrailingSeparator","resources","maskSecurityCode","placeholders"],"mappings":"qUAyDA,SAASA,EAAgBC,GACrB,MAAMC,EAAMC,EAAO,OAEZC,EAAQC,GAAaC,EAAS,CAAA,IAC9BC,EAAOC,GAAYF,EAAS,CAAA,IAC5BG,EAAMC,GAAWJ,EAAS,CAAA,IAE1BK,EAAYC,GAAiBN,GAAS,IAEtCO,EAAoBC,GAAyBR,EAAS,OAEtDS,EAAyBC,GAA8BV,EAAS,KAChEW,EAAoBC,GAAyBZ,EAAS,IAWvDa,EAAaC,EACf,IACIC,EACIpB,EACA,CAAEC,OACF,CAAEa,0BAAyBC,6BAA4BE,wBAAuBL,qBAAoBC,0BAE1G,CAACC,EAAyBF,IA6D9B,OAvDAS,KAAKC,yBAA2B,CAACC,EAAsCC,KACnEN,EAAWO,iBAAiBF,EAAmBC,IAGnDH,KAAKK,0BAA4BR,EAAWS,yBAK5CC,EAAU,KAENP,KAAKQ,WAAa5B,EAAI6B,QAAQD,WAC9BR,KAAKU,aAAe9B,EAAI6B,QAAQC,aAChCV,KAAKW,eAAiB/B,EAAI6B,QAAQE,eAClCX,KAAKY,sBAAwBhC,EAAI6B,QAAQG,sBAGlC,KACHhC,EAAI6B,QAAQI,YAEjB,IAKHN,EAAU,KACN,MAAMO,EAAmBlC,EAAI6B,QAAQM,kCAE/BC,EAAe,IAAKlC,KAAWgC,GAWrC,GATAnC,EAAMsC,SAAS,CACX9B,OACAF,QACAH,OAAQkC,EACRE,QAAS7B,EACTM,uBAIAwB,OAAOC,KAAKJ,GAAcK,OAAQ,CAClC,MAAMC,EAAsCH,OAAOI,QAAQP,GAAcQ,IAAI,EAAEC,EAAWC,MACtD,CAC5BD,eACIC,GAA6B,CAAEA,MAAO,GAAIC,SAAU3B,KAAKrB,MAAMgD,aAI3E3B,KAAKrB,MAAMiD,oBAAoBN,EACnC,GACD,CAACnC,EAAMF,EAAOH,EAAQa,IAOrBkC,EAACC,EAAAA,CACGC,IAAKnD,KACDoD,EAAmBrD,GACvBsD,KAAMtD,EAAMuD,MACZC,cAAexD,EAAMsD,KACrBhB,SAnF2BmB,IAC/BhD,EAAQ,IAAKD,KAASiD,EAAQjD,OAC9BJ,EAAU,IAAKD,KAAWsD,EAAQtD,SAClCI,EAAS,IAAKD,KAAUmD,EAAQnD,QAEhCK,EAAc8C,EAAQ/C,aA+ElBgD,kBAAmB1D,EAAM0D,kBACzBC,OAAQ,IAAM,MAG1B,CAEA5D,EAAgB6D,aA9GK,CACjBtB,SAAU,OACVuB,QAAS,OACTZ,kBAAmB,QA+GvB,MAAMI,EAAsBrD,IACjB,CACH8D,UAAW9D,EAAM8D,UACjBC,OAAQ/D,EAAM+D,OACdC,oBAAqBhE,EAAMgE,oBAC3BC,UAAWjE,EAAMiE,UACjBC,YAAalE,EAAMkE,YAEnBC,KAAMnE,EAAMmE,KACZC,mBAAoBpE,EAAMoE,mBAC1BC,UAAWrE,EAAMqE,UACjBC,gBAAiBtE,EAAMsE,gBACvBC,eAAgBvE,EAAMuE,eACtBC,kBAAmBxE,EAAMwE,kBACzBC,qBAAsBzE,EAAMyE,qBAC5BC,sBAAuB1E,EAAM0E,sBAC7BC,WAAY3E,EAAM2E,WAClBC,eAAgB5E,EAAM4E,eACtBC,WAAY7E,EAAM6E,WAClBC,QAAS9E,EAAM8E,QAEfC,gBAAiB/E,EAAM+E,gBACvBC,eAAgBhF,EAAMgF,eACtBnB,QAAS7D,EAAM6D,QACfoB,aAAcjF,EAAMiF,aACpBC,QAASlF,EAAMkF,QACfC,OAAQnF,EAAMmF,OAEdnC,SAAUhD,EAAMgD,SAChBoC,aAAcpF,EAAMoF,aACpBC,OAAQrF,EAAMqF,OACdC,sBAAuBtF,EAAMsF,sBAC7BC,UAAWvF,EAAMuF,UACjBC,iBAAkBxF,EAAMwF,iBACxBC,aAAczF,EAAMyF"}
1
+ {"version":3,"file":"CustomCardInput.js","sources":["../../../../../src/components/CustomCard/CustomCardInput/CustomCardInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef, useMemo } from 'preact/hooks';\nimport Language from '../../../language/Language';\nimport SecuredFieldsProvider from '../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport { SFPState } from '../../internal/SecuredFields/SFP/types';\nimport { BinLookupResponse, CardBrandsConfiguration, CardPlaceholders } from '../../Card/types';\nimport SFExtensions from '../../internal/SecuredFields/binLookup/extensions';\nimport { StylesObject } from '../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../core/Context/Resources';\nimport { SFError } from '../../Card/components/CardInput/types';\nimport { ValidationError } from '../types';\nimport type { AbstractAnalyticsEvent } from '../../../core/Analytics/events/AbstractAnalyticsEvent';\n\ninterface SecuredFieldsProps {\n autoFocus?: boolean;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n clientKey?: string;\n countryCode?: string;\n forceCompat?: boolean;\n i18n: Language;\n implementationType?: string;\n keypadFix?: boolean;\n loadingContext?: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n onAdditionalSFConfig?: () => {};\n onAdditionalSFRemoved?: () => {};\n onAllValid?: () => {};\n onAutoComplete?: () => {};\n onBinValue?: () => {};\n onBrand?: () => {};\n onConfigSuccess?: () => {};\n onChange: (data) => void;\n onSubmitAnalytics?: (event: AbstractAnalyticsEvent) => void;\n handleKeyPress?: (obj: KeyboardEvent) => void;\n onError?: () => {};\n onFieldValid?: () => {};\n onFocus?: (e) => {};\n onLoad?: () => {};\n placeholders?: CardPlaceholders;\n rootNode: HTMLElement;\n resources: Resources;\n showWarnings?: boolean;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n}\n\nconst defaultProps = {\n onChange: () => {},\n onError: () => {},\n onValidationError: () => {}\n};\n\nfunction CustomCardInput(props: Readonly<SecuredFieldsProps>) {\n const sfp = useRef(null);\n\n const [errors, setErrors] = useState({});\n const [valid, setValid] = useState({});\n const [data, setData] = useState({});\n\n const [isSfpValid, setIsSfpValid] = useState(false);\n\n const [issuingCountryCode, setIssuingCountryCode] = useState(null);\n\n const [dualBrandSelectElements, setDualBrandSelectElements] = useState([]);\n const [selectedBrandValue, setSelectedBrandValue] = useState('');\n\n const handleSecuredFieldsChange = (sfState: SFPState): void => {\n setData({ ...data, ...sfState.data });\n setErrors({ ...errors, ...sfState.errors });\n setValid({ ...valid, ...sfState.valid });\n\n setIsSfpValid(sfState.isSfpValid);\n };\n\n // Farm the handlers for binLookup related functionality out to another 'extensions' file\n const extensions = useMemo(\n () =>\n SFExtensions(\n props,\n { sfp },\n { dualBrandSelectElements, setDualBrandSelectElements, setSelectedBrandValue, issuingCountryCode, setIssuingCountryCode }\n ),\n [dualBrandSelectElements, issuingCountryCode]\n );\n\n /**\n * EXPECTED METHODS ON SecuredFields.this\n */\n this.processBinLookupResponse = (binLookupResponse: BinLookupResponse, isReset: boolean) => {\n extensions.processBinLookup(binLookupResponse, isReset);\n };\n\n this.dualBrandingChangeHandler = extensions.handleDualBrandSelection;\n\n /**\n * EFFECT HOOKS\n */\n useEffect(() => {\n // componentDidMount\n this.setFocusOn = sfp.current.setFocusOn;\n this.updateStyles = sfp.current.updateStyles;\n this.showValidation = sfp.current.showValidation;\n this.handleUnsupportedCard = sfp.current.handleUnsupportedCard;\n\n // componentWillUnmount\n return () => {\n sfp.current.destroy();\n };\n }, []);\n\n /**\n * Main 'componentDidUpdate' handler\n */\n useEffect(() => {\n const sfStateErrorsObj = sfp.current.mapErrorsToValidationRuleResult();\n\n const mappedErrors = { ...errors, ...sfStateErrorsObj }; // maps sfErrors\n\n props.onChange({\n data,\n valid,\n errors: mappedErrors,\n isValid: isSfpValid,\n selectedBrandValue\n });\n\n // Create an array of Validation error objects and send to callback\n if (Object.keys(mappedErrors).length) {\n const validationErrors: ValidationError[] = Object.entries(mappedErrors).map(([fieldType, error]) => {\n const valErr: ValidationError = {\n fieldType,\n ...(error ? (error as SFError) : { error: '', rootNode: this.props.rootNode })\n };\n return valErr;\n });\n this.props.onValidationError?.(validationErrors);\n }\n }, [data, valid, errors, selectedBrandValue]);\n\n /**\n * RENDER\n */\n // prettier-ignore\n return (\n <SecuredFieldsProvider\n ref={sfp}\n {...extractPropsForSFP(props)}\n type={props.brand}\n componentType={props.type}\n onChange={handleSecuredFieldsChange}\n onSubmitAnalytics={props.onSubmitAnalytics}\n render={() => null}\n />\n );\n}\n\nCustomCardInput.defaultProps = defaultProps;\n\nexport default CustomCardInput;\n\nconst extractPropsForSFP = (props: SecuredFieldsProps) => {\n return {\n autoFocus: props.autoFocus,\n brands: props.brands,\n brandsConfiguration: props.brandsConfiguration,\n clientKey: props.clientKey,\n forceCompat: props.forceCompat,\n // countryCode: props.countryCode, // only used for korean cards when koreanAuthenticationRequired is true\n i18n: props.i18n,\n implementationType: props.implementationType,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\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 onBrand: props.onBrand,\n // onChange // set directly\n onConfigSuccess: props.onConfigSuccess,\n handleKeyPress: props.handleKeyPress,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onFocus: props.onFocus,\n onLoad: props.onLoad,\n // render // set directly\n rootNode: props.rootNode,\n showWarnings: props.showWarnings,\n styles: props.styles,\n trimTrailingSeparator: props.trimTrailingSeparator,\n resources: props.resources,\n maskSecurityCode: props.maskSecurityCode,\n placeholders: props.placeholders\n };\n};\n"],"names":["CustomCardInput","props","sfp","useRef","errors","setErrors","useState","valid","setValid","data","setData","isSfpValid","setIsSfpValid","issuingCountryCode","setIssuingCountryCode","dualBrandSelectElements","setDualBrandSelectElements","selectedBrandValue","setSelectedBrandValue","extensions","useMemo","SFExtensions","this","processBinLookupResponse","binLookupResponse","isReset","processBinLookup","dualBrandingChangeHandler","handleDualBrandSelection","useEffect","setFocusOn","current","updateStyles","showValidation","handleUnsupportedCard","destroy","sfStateErrorsObj","mapErrorsToValidationRuleResult","mappedErrors","onChange","isValid","Object","keys","length","validationErrors","entries","map","fieldType","error","rootNode","onValidationError","h","SecuredFieldsProvider","ref","extractPropsForSFP","type","brand","componentType","sfState","onSubmitAnalytics","render","defaultProps","onError","autoFocus","brands","brandsConfiguration","clientKey","forceCompat","i18n","implementationType","keypadFix","legacyInputMode","loadingContext","minimumExpiryDate","onAdditionalSFConfig","onAdditionalSFRemoved","onAllValid","onAutoComplete","onBinValue","onBrand","onConfigSuccess","handleKeyPress","onFieldValid","onFocus","onLoad","showWarnings","styles","trimTrailingSeparator","resources","maskSecurityCode","placeholders"],"mappings":"qUAyDA,SAASA,EAAgBC,GACrB,MAAMC,EAAMC,EAAO,OAEZC,EAAQC,GAAaC,EAAS,CAAA,IAC9BC,EAAOC,GAAYF,EAAS,CAAA,IAC5BG,EAAMC,GAAWJ,EAAS,CAAA,IAE1BK,EAAYC,GAAiBN,GAAS,IAEtCO,EAAoBC,GAAyBR,EAAS,OAEtDS,EAAyBC,GAA8BV,EAAS,KAChEW,EAAoBC,GAAyBZ,EAAS,IAWvDa,EAAaC,EACf,IACIC,EACIpB,EACA,CAAEC,OACF,CAAEa,0BAAyBC,6BAA4BE,wBAAuBL,qBAAoBC,0BAE1G,CAACC,EAAyBF,IA6D9B,OAvDAS,KAAKC,yBAA2B,CAACC,EAAsCC,KACnEN,EAAWO,iBAAiBF,EAAmBC,IAGnDH,KAAKK,0BAA4BR,EAAWS,yBAK5CC,EAAU,KAENP,KAAKQ,WAAa5B,EAAI6B,QAAQD,WAC9BR,KAAKU,aAAe9B,EAAI6B,QAAQC,aAChCV,KAAKW,eAAiB/B,EAAI6B,QAAQE,eAClCX,KAAKY,sBAAwBhC,EAAI6B,QAAQG,sBAGlC,KACHhC,EAAI6B,QAAQI,YAEjB,IAKHN,EAAU,KACN,MAAMO,EAAmBlC,EAAI6B,QAAQM,kCAE/BC,EAAe,IAAKlC,KAAWgC,GAWrC,GATAnC,EAAMsC,SAAS,CACX9B,OACAF,QACAH,OAAQkC,EACRE,QAAS7B,EACTM,uBAIAwB,OAAOC,KAAKJ,GAAcK,OAAQ,CAClC,MAAMC,EAAsCH,OAAOI,QAAQP,GAAcQ,IAAI,EAAEC,EAAWC,MACtD,CAC5BD,eACIC,GAA6B,CAAEA,MAAO,GAAIC,SAAU3B,KAAKrB,MAAMgD,aAI3E3B,KAAKrB,MAAMiD,oBAAoBN,EACnC,GACD,CAACnC,EAAMF,EAAOH,EAAQa,IAOrBkC,EAACC,EAAAA,CACGC,IAAKnD,KACDoD,EAAmBrD,GACvBsD,KAAMtD,EAAMuD,MACZC,cAAexD,EAAMsD,KACrBhB,SAnF2BmB,IAC/BhD,EAAQ,IAAKD,KAASiD,EAAQjD,OAC9BJ,EAAU,IAAKD,KAAWsD,EAAQtD,SAClCI,EAAS,IAAKD,KAAUmD,EAAQnD,QAEhCK,EAAc8C,EAAQ/C,aA+ElBgD,kBAAmB1D,EAAM0D,kBACzBC,OAAQ,IAAM,MAG1B,CAEA5D,EAAgB6D,aA9GK,CACjBtB,SAAU,OACVuB,QAAS,OACTZ,kBAAmB,QA+GvB,MAAMI,EAAsBrD,IACjB,CACH8D,UAAW9D,EAAM8D,UACjBC,OAAQ/D,EAAM+D,OACdC,oBAAqBhE,EAAMgE,oBAC3BC,UAAWjE,EAAMiE,UACjBC,YAAalE,EAAMkE,YAEnBC,KAAMnE,EAAMmE,KACZC,mBAAoBpE,EAAMoE,mBAC1BC,UAAWrE,EAAMqE,UACjBC,gBAAiBtE,EAAMsE,gBACvBC,eAAgBvE,EAAMuE,eACtBC,kBAAmBxE,EAAMwE,kBACzBC,qBAAsBzE,EAAMyE,qBAC5BC,sBAAuB1E,EAAM0E,sBAC7BC,WAAY3E,EAAM2E,WAClBC,eAAgB5E,EAAM4E,eACtBC,WAAY7E,EAAM6E,WAClBC,QAAS9E,EAAM8E,QAEfC,gBAAiB/E,EAAM+E,gBACvBC,eAAgBhF,EAAMgF,eACtBnB,QAAS7D,EAAM6D,QACfoB,aAAcjF,EAAMiF,aACpBC,QAASlF,EAAMkF,QACfC,OAAQnF,EAAMmF,OAEdnC,SAAUhD,EAAMgD,SAChBoC,aAAcpF,EAAMoF,aACpBC,OAAQrF,EAAMqF,OACdC,sBAAuBtF,EAAMsF,sBAC7BC,UAAWvF,EAAMuF,UACjBC,iBAAkBxF,EAAMwF,iBACxBC,aAAczF,EAAMyF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Doku.js","sources":["../../../../src/components/Doku/Doku.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport DokuInput from './components/DokuInput';\nimport DokuVoucherResult from './components/DokuVoucherResult';\nimport { TxVariants } from '../tx-variants';\nimport { VoucherConfiguration } from '../internal/Voucher/types';\n\nexport class DokuElement extends UIElement<VoucherConfiguration> {\n public static type = TxVariants.doku;\n public static txVariants = [\n TxVariants.doku,\n TxVariants.doku_alfamart,\n TxVariants.doku_permata_lite_atm,\n TxVariants.doku_indomaret,\n TxVariants.doku_atm_mandiri_va,\n TxVariants.doku_sinarmas_va,\n TxVariants.doku_mandiri_va,\n TxVariants.doku_cimb_va,\n TxVariants.doku_danamon_va,\n TxVariants.doku_bri_va,\n TxVariants.doku_bni_va,\n TxVariants.doku_bca_va,\n TxVariants.doku_wallet\n ];\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n ...this.state.data,\n paymentMethod: {\n type: this.type\n }\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.reference ? (\n <DokuVoucherResult\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n onActionHandled={this.onActionHandled}\n />\n ) : (\n <DokuInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default DokuElement;\n"],"names":["DokuElement","UIElement","isValid","this","state","formatData","data","paymentMethod","type","componentToRender","props","reference","h","DokuVoucherResult","ref","componentRef","onActionHandled","DokuInput","setComponentRef","onChange","setState","onSubmit","submit","payButton","_define_property","TxVariants","doku","txVariants","doku_alfamart","doku_permata_lite_atm","doku_indomaret","doku_atm_mandiri_va","doku_sinarmas_va","doku_mandiri_va","doku_cimb_va","doku_danamon_va","doku_bri_va","doku_bni_va","doku_bca_va","doku_wallet"],"mappings":"iaAOO,MAAMA,UAAoBC,EAkB7B,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAO,IACAF,KAAKC,MAAME,KACdC,cAAe,CACXC,KAAML,KAAKK,MAGvB,CAEmBC,iBAAAA,GACf,OAAON,KAAKO,MAAMC,UACdC,EAACC,EAAAA,CACGC,IAAKA,IACDX,KAAKY,aAAeD,MAEpBX,KAAKO,MACTM,gBAAiBb,KAAKa,kBAG1BJ,EAACK,EAAAA,CACGC,gBAAiBf,KAAKe,mBAClBf,KAAKO,MACTS,SAAUhB,KAAKiB,SACfC,SAAUlB,KAAKmB,OACfC,UAAWpB,KAAKoB,WAG5B,EAnDAC,EADSxB,EACKQ,OAAOiB,EAAWC,MAChCF,EAFSxB,EAEK2B,aAAa,CACvBF,EAAWC,KACXD,EAAWG,cACXH,EAAWI,sBACXJ,EAAWK,eACXL,EAAWM,oBACXN,EAAWO,iBACXP,EAAWQ,gBACXR,EAAWS,aACXT,EAAWU,gBACXV,EAAWW,YACXX,EAAWY,YACXZ,EAAWa,YACXb,EAAWc"}
1
+ {"version":3,"file":"Doku.js","sources":["../../../../src/components/Doku/Doku.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport DokuInput from './components/DokuInput';\nimport DokuVoucherResult from './components/DokuVoucherResult';\nimport { TxVariants } from '../tx-variants';\nimport { VoucherConfiguration } from '../internal/Voucher/types';\n\nexport class DokuElement extends UIElement<VoucherConfiguration> {\n public static readonly type = TxVariants.doku;\n public static readonly txVariants = [\n TxVariants.doku,\n TxVariants.doku_alfamart,\n TxVariants.doku_permata_lite_atm,\n TxVariants.doku_indomaret,\n TxVariants.doku_atm_mandiri_va,\n TxVariants.doku_sinarmas_va,\n TxVariants.doku_mandiri_va,\n TxVariants.doku_cimb_va,\n TxVariants.doku_danamon_va,\n TxVariants.doku_bri_va,\n TxVariants.doku_bni_va,\n TxVariants.doku_bca_va,\n TxVariants.doku_wallet\n ];\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n ...this.state.data,\n paymentMethod: {\n type: this.type\n }\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.reference ? (\n <DokuVoucherResult\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n onActionHandled={this.onActionHandled}\n />\n ) : (\n <DokuInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default DokuElement;\n"],"names":["DokuElement","UIElement","isValid","this","state","formatData","data","paymentMethod","type","componentToRender","props","reference","h","DokuVoucherResult","ref","componentRef","onActionHandled","DokuInput","setComponentRef","onChange","setState","onSubmit","submit","payButton","_define_property","TxVariants","doku","txVariants","doku_alfamart","doku_permata_lite_atm","doku_indomaret","doku_atm_mandiri_va","doku_sinarmas_va","doku_mandiri_va","doku_cimb_va","doku_danamon_va","doku_bri_va","doku_bni_va","doku_bca_va","doku_wallet"],"mappings":"iaAOO,MAAMA,UAAoBC,EAkB7B,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAO,IACAF,KAAKC,MAAME,KACdC,cAAe,CACXC,KAAML,KAAKK,MAGvB,CAEmBC,iBAAAA,GACf,OAAON,KAAKO,MAAMC,UACdC,EAACC,EAAAA,CACGC,IAAKA,IACDX,KAAKY,aAAeD,MAEpBX,KAAKO,MACTM,gBAAiBb,KAAKa,kBAG1BJ,EAACK,EAAAA,CACGC,gBAAiBf,KAAKe,mBAClBf,KAAKO,MACTS,SAAUhB,KAAKiB,SACfC,SAAUlB,KAAKmB,OACfC,UAAWpB,KAAKoB,WAG5B,EAnDAC,EADSxB,EACcQ,OAAOiB,EAAWC,MACzCF,EAFSxB,EAEc2B,aAAa,CAChCF,EAAWC,KACXD,EAAWG,cACXH,EAAWI,sBACXJ,EAAWK,eACXL,EAAWM,oBACXN,EAAWO,iBACXP,EAAWQ,gBACXR,EAAWS,aACXT,EAAWU,gBACXV,EAAWW,YACXX,EAAWY,YACXZ,EAAWa,YACXb,EAAWc"}