@adyen/adyen-web 6.31.0 → 6.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/index.cjs +2 -2
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs/index.d.cts +265 -224
  5. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  6. package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
  7. package/dist/es/components/Ach/Ach.js.map +1 -1
  8. package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -1
  9. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  10. package/dist/es/components/Address/Address.js.map +1 -1
  11. package/dist/es/components/Affirm/Affirm.js.map +1 -1
  12. package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
  13. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  14. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  15. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  16. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  17. package/dist/es/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  18. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  19. package/dist/es/components/AmazonPay/components/SignOutButton.js.map +1 -1
  20. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  21. package/dist/es/components/ApplePay/components/ApplePayButton.js.map +1 -1
  22. package/dist/es/components/ApplePay/utils/payment-request.js +1 -1
  23. package/dist/es/components/Atome/Atome.js.map +1 -1
  24. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  25. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  26. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  27. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  28. package/dist/es/components/BcmcMobile/BcmcMobile.js.map +1 -1
  29. package/dist/es/components/BillDesk/BillDeskOnline.js.map +1 -1
  30. package/dist/es/components/BillDesk/BillDeskWallet.js.map +1 -1
  31. package/dist/es/components/Blik/Blik.js.map +1 -1
  32. package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
  33. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  34. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  35. package/dist/es/components/Card/Bancontact.js.map +1 -1
  36. package/dist/es/components/Card/Card.js +1 -1
  37. package/dist/es/components/Card/Card.js.map +1 -1
  38. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  39. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  40. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  41. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  42. package/dist/es/components/Card/components/CardInput/components/CVC.js.map +1 -1
  43. package/dist/es/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  44. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  45. package/dist/es/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  46. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  47. package/dist/es/components/Card/components/CardInput/components/DataSfSpan.js.map +1 -1
  48. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  49. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  50. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  51. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  52. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  53. package/dist/es/components/Card/components/CardInput/handlers.js +1 -1
  54. package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
  55. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  56. package/dist/es/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  57. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  58. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  59. package/dist/es/components/Card/components/ClickToPayHolder.js.map +1 -1
  60. package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
  61. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  62. package/dist/es/components/Card/components/Fastlane/InfoModal.js.map +1 -1
  63. package/dist/es/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  64. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  65. package/dist/es/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  66. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  67. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  68. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  69. package/dist/es/components/Doku/Doku.js.map +1 -1
  70. package/dist/es/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js.map +1 -1
  71. package/dist/es/components/Donation/Donation.js.map +1 -1
  72. package/dist/es/components/Donation/components/CampaignContent.js.map +1 -1
  73. package/dist/es/components/Donation/components/CampaignInfo.js.map +1 -1
  74. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  75. package/dist/es/components/Donation/components/FixedAmounts.js.map +1 -1
  76. package/dist/es/components/Donation/components/Roundup.js.map +1 -1
  77. package/dist/es/components/Dotpay/index.js.map +1 -1
  78. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  79. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  80. package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  81. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  82. package/dist/es/components/Dropin/components/DropinSuccessState.js.map +1 -1
  83. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  84. package/dist/es/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  85. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
  86. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js.map +1 -1
  87. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  88. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  89. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  90. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  91. package/dist/es/components/DuitNow/DuitNow.js.map +1 -1
  92. package/dist/es/components/EPS/index.js.map +1 -1
  93. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  94. package/dist/es/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
  95. package/dist/es/components/FacilyPay/FacilyPay10x.js.map +1 -1
  96. package/dist/es/components/FacilyPay/FacilyPay12x.js.map +1 -1
  97. package/dist/es/components/FacilyPay/FacilyPay3x.js.map +1 -1
  98. package/dist/es/components/FacilyPay/FacilyPay4x.js.map +1 -1
  99. package/dist/es/components/FacilyPay/FacilyPay6x.js.map +1 -1
  100. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  101. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  102. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  103. package/dist/es/components/Giftcard/components/GiftcardFields.js.map +1 -1
  104. package/dist/es/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  105. package/dist/es/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  106. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  107. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
  108. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  109. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  110. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  111. package/dist/es/components/GooglePay/components/GooglePayButton.js.map +1 -1
  112. package/dist/es/components/GooglePay/requests.js +1 -1
  113. package/dist/es/components/GooglePay/requests.js.map +1 -1
  114. package/dist/es/components/GooglePay/utils.js +1 -1
  115. package/dist/es/components/GooglePay/utils.js.map +1 -1
  116. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  117. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  118. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  119. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  120. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  121. package/dist/es/components/MealVoucherFR/MealVoucherFR.js.map +1 -1
  122. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  123. package/dist/es/components/MealVoucherFR/components/MealVoucherFields.js.map +1 -1
  124. package/dist/es/components/MolPayEBanking/MolPayEBankingMY.js.map +1 -1
  125. package/dist/es/components/MolPayEBanking/MolPayEBankingTH.js.map +1 -1
  126. package/dist/es/components/MolPayEBanking/MolPayEBankingVN.js.map +1 -1
  127. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  128. package/dist/es/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  129. package/dist/es/components/OnlineBankingCZ/index.js.map +1 -1
  130. package/dist/es/components/OnlineBankingFI/OnlineBankingFI.js.map +1 -1
  131. package/dist/es/components/OnlineBankingIN/index.js.map +1 -1
  132. package/dist/es/components/OnlineBankingPL/OnlineBankingPL.js.map +1 -1
  133. package/dist/es/components/OnlineBankingSK/index.js.map +1 -1
  134. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  135. package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  136. package/dist/es/components/PayByBank/PayByBank.js.map +1 -1
  137. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  138. package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -1
  139. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  140. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  141. package/dist/es/components/PayMe/PayMe.js.map +1 -1
  142. package/dist/es/components/PayNow/PayNow.js.map +1 -1
  143. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  144. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  145. package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
  146. package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -1
  147. package/dist/es/components/PayPalFastlane/components/FaslaneCardBrandIcon.js.map +1 -1
  148. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  149. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  150. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -1
  151. package/dist/es/components/PayTo/components/IdentifierSelector.js.map +1 -1
  152. package/dist/es/components/PayTo/components/MandateSummary.js.map +1 -1
  153. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -1
  154. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  155. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  156. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  157. package/dist/es/components/PayU/PayuCashcard.js.map +1 -1
  158. package/dist/es/components/PayU/PayuNetBanking.js.map +1 -1
  159. package/dist/es/components/Pix/Pix.js.map +1 -1
  160. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -1
  161. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  162. package/dist/es/components/PromptPay/PromptPay.js.map +1 -1
  163. package/dist/es/components/RatePay/RatePay.js.map +1 -1
  164. package/dist/es/components/RatePay/RatePayDirectDebit.js.map +1 -1
  165. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  166. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  167. package/dist/es/components/Riverty/Riverty.js.map +1 -1
  168. package/dist/es/components/Sepa/Sepa.js.map +1 -1
  169. package/dist/es/components/Swish/Swish.js.map +1 -1
  170. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  171. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  172. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  173. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  174. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  175. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  176. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  177. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  178. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  179. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  180. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  181. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  182. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  183. package/dist/es/components/Twint/Twint.js.map +1 -1
  184. package/dist/es/components/UPI/UPI.js.map +1 -1
  185. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  186. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  187. package/dist/es/components/UPI/components/UPIMandate/UPIMandate.js.map +1 -1
  188. package/dist/es/components/Vipps/Vipps.js.map +1 -1
  189. package/dist/es/components/WalletIN/index.js.map +1 -1
  190. package/dist/es/components/WeChat/WeChat.js.map +1 -1
  191. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  192. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  193. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  194. package/dist/es/components/internal/Address/Address.js.map +1 -1
  195. package/dist/es/components/internal/Address/components/CountryField.js.map +1 -1
  196. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  197. package/dist/es/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
  198. package/dist/es/components/internal/Address/components/StateField.js.map +1 -1
  199. package/dist/es/components/internal/Alert/Alert.js.map +1 -1
  200. package/dist/es/components/internal/Await/Await.js.map +1 -1
  201. package/dist/es/components/internal/Await/components/AwaitFinalState.js.map +1 -1
  202. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  203. package/dist/es/components/internal/Brand/Brand.js.map +1 -1
  204. package/dist/es/components/internal/Button/CopyButton.js.map +1 -1
  205. package/dist/es/components/internal/Button/CopyIconButton.js.map +1 -1
  206. package/dist/es/components/internal/ClickToPay/ClickToPayComponent.js.map +1 -1
  207. package/dist/es/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  208. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  209. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js.map +1 -1
  210. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  211. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  212. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  213. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  214. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  215. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  216. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  217. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  218. package/dist/es/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  219. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  220. package/dist/es/components/internal/Countdown/index.js.map +1 -1
  221. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  222. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  223. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  224. package/dist/es/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
  225. package/dist/es/components/internal/FormFields/InputEmail.js.map +1 -1
  226. package/dist/es/components/internal/FormFields/InputText.js.map +1 -1
  227. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  228. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -1
  229. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  230. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  231. package/dist/es/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  232. package/dist/es/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  233. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  234. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  235. package/dist/es/components/internal/Icon/Icon.js.map +1 -1
  236. package/dist/es/components/internal/Img/Img.js.map +1 -1
  237. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  238. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  239. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  240. package/dist/es/components/internal/Link/Link.js.map +1 -1
  241. package/dist/es/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  242. package/dist/es/components/internal/Modal/Modal.js.map +1 -1
  243. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  244. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  245. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  246. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  247. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  248. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -1
  249. package/dist/es/components/internal/QRLoader/components/QRCountdown.js.map +1 -1
  250. package/dist/es/components/internal/QRLoader/components/QRFinalState.js.map +1 -1
  251. package/dist/es/components/internal/QRLoader/components/QRImage.js.map +1 -1
  252. package/dist/es/components/internal/QRLoader/components/QRIntructions.js.map +1 -1
  253. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js.map +1 -1
  254. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  255. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  256. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  257. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  258. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  259. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  260. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  261. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  262. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  263. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  264. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  265. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  266. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  267. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  268. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  269. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/createIframe.js +1 -1
  270. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/createIframe.js.map +1 -1
  271. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
  272. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  273. package/dist/es/components/internal/SecuredFields/utils.js +1 -1
  274. package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
  275. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  276. package/dist/es/components/internal/SegmentedControl/SegmentedControlRegion.js.map +1 -1
  277. package/dist/es/components/internal/Spinner/Spinner.js.map +1 -1
  278. package/dist/es/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  279. package/dist/es/components/internal/Timeline/Timeline.js.map +1 -1
  280. package/dist/es/components/internal/Timeline/TimelineWrapper.js.map +1 -1
  281. package/dist/es/components/internal/Toggle/Toggle.js.map +1 -1
  282. package/dist/es/components/internal/Tooltip/SingletonTooltipProvider.js.map +1 -1
  283. package/dist/es/components/internal/Tooltip/Tooltip.js.map +1 -1
  284. package/dist/es/components/internal/Tooltip/TooltipController.js.map +1 -1
  285. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  286. package/dist/es/core/Analytics/Analytics.js +1 -1
  287. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  288. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  289. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  290. package/dist/es/core/Context/AmountProvider.js.map +1 -1
  291. package/dist/es/core/Context/CoreProvider.js.map +1 -1
  292. package/dist/es/core/Environment/Environment.js +1 -1
  293. package/dist/es/core/Environment/Environment.js.map +1 -1
  294. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  295. package/dist/es/core/Errors/SRMessages.js.map +1 -1
  296. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  297. package/dist/es/core/Errors/SRPanelProvider.js.map +1 -1
  298. package/dist/es/core/Errors/utils.js +1 -1
  299. package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
  300. package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
  301. package/dist/es/core/RiskModule/RiskModule.js.map +1 -1
  302. package/dist/es/core/RiskModule/components/DeviceFingerprint/DeviceFingerprint.js.map +1 -1
  303. package/dist/es/core/config.js +1 -1
  304. package/dist/es/core/core.js +1 -1
  305. package/dist/es/core/core.js.map +1 -1
  306. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  307. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  308. package/dist/es/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  309. package/dist/es/index.d.ts +265 -224
  310. package/dist/es/index.js +1 -1
  311. package/dist/es/utils/getOrigin.js +1 -1
  312. package/dist/es/utils/setFocus.js +1 -1
  313. package/dist/es/utils/setFocus.js.map +1 -1
  314. package/dist/es/utils/windowScrollTo.js +2 -0
  315. package/dist/es/utils/windowScrollTo.js.map +1 -0
  316. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  317. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  318. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  319. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -1
  320. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  321. package/dist/es-legacy/components/Address/Address.js.map +1 -1
  322. package/dist/es-legacy/components/Affirm/Affirm.js.map +1 -1
  323. package/dist/es-legacy/components/AfterPay/AfterPay.js.map +1 -1
  324. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  325. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  326. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  327. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  328. package/dist/es-legacy/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  329. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  330. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js.map +1 -1
  331. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  332. package/dist/es-legacy/components/ApplePay/components/ApplePayButton.js.map +1 -1
  333. package/dist/es-legacy/components/ApplePay/utils/payment-request.js +1 -1
  334. package/dist/es-legacy/components/Atome/Atome.js.map +1 -1
  335. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  336. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  337. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  338. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  339. package/dist/es-legacy/components/BcmcMobile/BcmcMobile.js.map +1 -1
  340. package/dist/es-legacy/components/BillDesk/BillDeskOnline.js.map +1 -1
  341. package/dist/es-legacy/components/BillDesk/BillDeskWallet.js.map +1 -1
  342. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  343. package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
  344. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  345. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  346. package/dist/es-legacy/components/Card/Bancontact.js.map +1 -1
  347. package/dist/es-legacy/components/Card/Card.js +1 -1
  348. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  349. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  350. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  351. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  352. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  353. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js.map +1 -1
  354. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  355. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  356. package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  357. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  358. package/dist/es-legacy/components/Card/components/CardInput/components/DataSfSpan.js.map +1 -1
  359. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  360. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  361. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  362. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  363. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  364. package/dist/es-legacy/components/Card/components/CardInput/handlers.js +1 -1
  365. package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
  366. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  367. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  368. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  369. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  370. package/dist/es-legacy/components/Card/components/ClickToPayHolder.js.map +1 -1
  371. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  372. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  373. package/dist/es-legacy/components/Card/components/Fastlane/InfoModal.js.map +1 -1
  374. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  375. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  376. package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  377. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  378. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  379. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  380. package/dist/es-legacy/components/Doku/Doku.js.map +1 -1
  381. package/dist/es-legacy/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js.map +1 -1
  382. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  383. package/dist/es-legacy/components/Donation/components/CampaignContent.js.map +1 -1
  384. package/dist/es-legacy/components/Donation/components/CampaignInfo.js.map +1 -1
  385. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  386. package/dist/es-legacy/components/Donation/components/FixedAmounts.js.map +1 -1
  387. package/dist/es-legacy/components/Donation/components/Roundup.js.map +1 -1
  388. package/dist/es-legacy/components/Dotpay/index.js.map +1 -1
  389. package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
  390. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  391. package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  392. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  393. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js.map +1 -1
  394. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  395. package/dist/es-legacy/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  396. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
  397. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodDetails.js.map +1 -1
  398. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  399. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  400. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  401. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  402. package/dist/es-legacy/components/DuitNow/DuitNow.js.map +1 -1
  403. package/dist/es-legacy/components/EPS/index.js.map +1 -1
  404. package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
  405. package/dist/es-legacy/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
  406. package/dist/es-legacy/components/FacilyPay/FacilyPay10x.js.map +1 -1
  407. package/dist/es-legacy/components/FacilyPay/FacilyPay12x.js.map +1 -1
  408. package/dist/es-legacy/components/FacilyPay/FacilyPay3x.js.map +1 -1
  409. package/dist/es-legacy/components/FacilyPay/FacilyPay4x.js.map +1 -1
  410. package/dist/es-legacy/components/FacilyPay/FacilyPay6x.js.map +1 -1
  411. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  412. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  413. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  414. package/dist/es-legacy/components/Giftcard/components/GiftcardFields.js.map +1 -1
  415. package/dist/es-legacy/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  416. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  417. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  418. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
  419. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  420. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  421. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  422. package/dist/es-legacy/components/GooglePay/components/GooglePayButton.js.map +1 -1
  423. package/dist/es-legacy/components/GooglePay/requests.js +1 -1
  424. package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
  425. package/dist/es-legacy/components/GooglePay/utils.js +1 -1
  426. package/dist/es-legacy/components/GooglePay/utils.js.map +1 -1
  427. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  428. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  429. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  430. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  431. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  432. package/dist/es-legacy/components/MealVoucherFR/MealVoucherFR.js.map +1 -1
  433. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  434. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherFields.js.map +1 -1
  435. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingMY.js.map +1 -1
  436. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingTH.js.map +1 -1
  437. package/dist/es-legacy/components/MolPayEBanking/MolPayEBankingVN.js.map +1 -1
  438. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  439. package/dist/es-legacy/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  440. package/dist/es-legacy/components/OnlineBankingCZ/index.js.map +1 -1
  441. package/dist/es-legacy/components/OnlineBankingFI/OnlineBankingFI.js.map +1 -1
  442. package/dist/es-legacy/components/OnlineBankingIN/index.js.map +1 -1
  443. package/dist/es-legacy/components/OnlineBankingPL/OnlineBankingPL.js.map +1 -1
  444. package/dist/es-legacy/components/OnlineBankingSK/index.js.map +1 -1
  445. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  446. package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  447. package/dist/es-legacy/components/PayByBank/PayByBank.js.map +1 -1
  448. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  449. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -1
  450. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  451. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  452. package/dist/es-legacy/components/PayMe/PayMe.js.map +1 -1
  453. package/dist/es-legacy/components/PayNow/PayNow.js.map +1 -1
  454. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  455. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  456. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
  457. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -1
  458. package/dist/es-legacy/components/PayPalFastlane/components/FaslaneCardBrandIcon.js.map +1 -1
  459. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  460. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  461. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -1
  462. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js.map +1 -1
  463. package/dist/es-legacy/components/PayTo/components/MandateSummary.js.map +1 -1
  464. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -1
  465. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  466. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  467. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  468. package/dist/es-legacy/components/PayU/PayuCashcard.js.map +1 -1
  469. package/dist/es-legacy/components/PayU/PayuNetBanking.js.map +1 -1
  470. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  471. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -1
  472. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  473. package/dist/es-legacy/components/PromptPay/PromptPay.js.map +1 -1
  474. package/dist/es-legacy/components/RatePay/RatePay.js.map +1 -1
  475. package/dist/es-legacy/components/RatePay/RatePayDirectDebit.js.map +1 -1
  476. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  477. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  478. package/dist/es-legacy/components/Riverty/Riverty.js.map +1 -1
  479. package/dist/es-legacy/components/Sepa/Sepa.js.map +1 -1
  480. package/dist/es-legacy/components/Swish/Swish.js.map +1 -1
  481. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  482. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  483. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  484. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  485. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  486. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  487. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  488. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  489. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  490. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  491. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  492. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  493. package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
  494. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  495. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  496. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  497. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  498. package/dist/es-legacy/components/UPI/components/UPIMandate/UPIMandate.js.map +1 -1
  499. package/dist/es-legacy/components/Vipps/Vipps.js.map +1 -1
  500. package/dist/es-legacy/components/WalletIN/index.js.map +1 -1
  501. package/dist/es-legacy/components/WeChat/WeChat.js.map +1 -1
  502. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  503. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  504. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  505. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  506. package/dist/es-legacy/components/internal/Address/components/CountryField.js.map +1 -1
  507. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  508. package/dist/es-legacy/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
  509. package/dist/es-legacy/components/internal/Address/components/StateField.js.map +1 -1
  510. package/dist/es-legacy/components/internal/Alert/Alert.js.map +1 -1
  511. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  512. package/dist/es-legacy/components/internal/Await/components/AwaitFinalState.js.map +1 -1
  513. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  514. package/dist/es-legacy/components/internal/Brand/Brand.js.map +1 -1
  515. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
  516. package/dist/es-legacy/components/internal/Button/CopyIconButton.js.map +1 -1
  517. package/dist/es-legacy/components/internal/ClickToPay/ClickToPayComponent.js.map +1 -1
  518. package/dist/es-legacy/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  519. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  520. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js.map +1 -1
  521. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  522. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  523. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  524. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  525. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  526. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  527. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  528. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  529. package/dist/es-legacy/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  530. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  531. package/dist/es-legacy/components/internal/Countdown/index.js.map +1 -1
  532. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  533. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  534. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  535. package/dist/es-legacy/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
  536. package/dist/es-legacy/components/internal/FormFields/InputEmail.js.map +1 -1
  537. package/dist/es-legacy/components/internal/FormFields/InputText.js.map +1 -1
  538. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  539. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -1
  540. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  541. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  542. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  543. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  544. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  545. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  546. package/dist/es-legacy/components/internal/Icon/Icon.js.map +1 -1
  547. package/dist/es-legacy/components/internal/Img/Img.js.map +1 -1
  548. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  549. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  550. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  551. package/dist/es-legacy/components/internal/Link/Link.js.map +1 -1
  552. package/dist/es-legacy/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  553. package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
  554. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  555. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  556. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  557. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  558. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  559. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -1
  560. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js.map +1 -1
  561. package/dist/es-legacy/components/internal/QRLoader/components/QRFinalState.js.map +1 -1
  562. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js.map +1 -1
  563. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js.map +1 -1
  564. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js.map +1 -1
  565. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  566. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  567. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  568. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  569. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  570. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  571. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  572. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  573. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  574. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  575. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  576. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  577. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  578. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  579. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  580. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/createIframe.js +1 -1
  581. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/createIframe.js.map +1 -1
  582. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
  583. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  584. package/dist/es-legacy/components/internal/SecuredFields/utils.js +1 -1
  585. package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
  586. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  587. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControlRegion.js.map +1 -1
  588. package/dist/es-legacy/components/internal/Spinner/Spinner.js.map +1 -1
  589. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  590. package/dist/es-legacy/components/internal/Timeline/Timeline.js.map +1 -1
  591. package/dist/es-legacy/components/internal/Timeline/TimelineWrapper.js.map +1 -1
  592. package/dist/es-legacy/components/internal/Toggle/Toggle.js.map +1 -1
  593. package/dist/es-legacy/components/internal/Tooltip/SingletonTooltipProvider.js.map +1 -1
  594. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
  595. package/dist/es-legacy/components/internal/Tooltip/TooltipController.js.map +1 -1
  596. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  597. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  598. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  599. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  600. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  601. package/dist/es-legacy/core/Context/AmountProvider.js.map +1 -1
  602. package/dist/es-legacy/core/Context/CoreProvider.js.map +1 -1
  603. package/dist/es-legacy/core/Environment/Environment.js +1 -1
  604. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  605. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js.map +1 -1
  606. package/dist/es-legacy/core/Errors/SRMessages.js.map +1 -1
  607. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  608. package/dist/es-legacy/core/Errors/SRPanelProvider.js.map +1 -1
  609. package/dist/es-legacy/core/Errors/utils.js +1 -1
  610. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
  611. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
  612. package/dist/es-legacy/core/RiskModule/RiskModule.js.map +1 -1
  613. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/DeviceFingerprint.js.map +1 -1
  614. package/dist/es-legacy/core/config.js +1 -1
  615. package/dist/es-legacy/core/core.js +1 -1
  616. package/dist/es-legacy/core/core.js.map +1 -1
  617. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  618. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  619. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  620. package/dist/es-legacy/index.js +1 -1
  621. package/dist/es-legacy/utils/getOrigin.js +1 -1
  622. package/dist/es-legacy/utils/setFocus.js +1 -1
  623. package/dist/es-legacy/utils/setFocus.js.map +1 -1
  624. package/dist/es-legacy/utils/windowScrollTo.js +2 -0
  625. package/dist/es-legacy/utils/windowScrollTo.js.map +1 -0
  626. package/package.json +18 -19
  627. package/dist/es/utils/getProp.js +0 -2
  628. package/dist/es/utils/getProp.js.map +0 -1
  629. package/dist/es-legacy/utils/getProp.js +0 -2
  630. package/dist/es-legacy/utils/getProp.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SecuredField.js","sources":["../../../../../../../src/components/internal/SecuredFields/lib/securedField/SecuredField.ts"],"sourcesContent":["import * as logger from '../utilities/logger';\nimport createIframe from './utils/createIframe';\nimport { removeAllChildren, selectOne } from '../utilities/dom';\nimport { off, on } from '../../../../../utils/listenerUtils';\nimport postMessageToIframe from '../CSF/utils/iframes/postMessageToIframe';\nimport { isChromeVoxPostMsg, isWebpackPostMsg, originCheckPassed } from '../CSF/utils/iframes/postMessageValidation';\nimport {\n CVC_POLICY_HIDDEN,\n CVC_POLICY_OPTIONAL,\n DATE_POLICY_HIDDEN,\n DATE_POLICY_OPTIONAL,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_EXPIRY_MONTH,\n ENCRYPTED_EXPIRY_YEAR,\n ENCRYPTED_SECURITY_CODE\n} from '../constants';\nimport { generateRandomNumber } from '../utilities/commonUtils';\nimport { CVCPolicyType, DatePolicyType, RtnType_callbackFn, RtnType_noParamVoidFn, RtnType_postMessageListener, SFFeedbackObj } from '../types';\nimport AbstractSecuredField from './AbstractSecuredField';\nimport { AriaConfig, IframeConfigObject, SecuredFieldSetupObject, SecuredFieldCommonProps } from '../types';\nimport { reject } from '../../../../../utils/commonUtils';\nimport { processAriaConfig } from './utils/processAriaConfig';\nimport { processPlaceholders } from './utils/processPlaceholders';\nimport Language from '../../../../../language/Language';\nimport { hasOwnProperty } from '../../../../../utils/hasOwnProperty';\nimport { Placeholders } from '../../SFP/types';\nimport './SecuredField.scss';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../../../../core/Analytics/events/AnalyticsErrorEvent';\n\nconst logPostMsg = false;\nconst doLog = false;\n\nclass SecuredField extends AbstractSecuredField {\n constructor(pSetupObj: SecuredFieldSetupObject, i18n: Language) {\n super();\n\n /**\n * List of props to exclude from being set on this.sfConfig.\n * These props are only required for internal purposes. They do not get sent to the iframe\n */\n const deltaPropsArr: string[] = ['loadingContext', 'holderEl', 'iframeSrc', 'showContextualElement', 'placeholders'];\n\n /**\n * List of props from setup object that will be set on this.sfConfig\n * These props will all end up being sent to the iframe\n */\n const configVarsFromSetUpObj = reject(deltaPropsArr).from(pSetupObj);\n\n // Copy passed setup object values to this.sfConfig\n this.sfConfig = {\n // ...this.sfConfig, // Do we need to do this? Pretty sure we don't\n ...configVarsFromSetUpObj,\n // Break references on iframeUIConfig object so we can overwrite its properties in each securedField instance\n iframeUIConfig: { ...configVarsFromSetUpObj.iframeUIConfig }\n } as SecuredFieldCommonProps;\n\n /**\n * Extract values only needed for init\n */\n const { iframeSrc, placeholders, showContextualElement } = pSetupObj;\n\n /**\n * Store those passed setup object values that are needed in multiple functions\n */\n this.loadingContext = pSetupObj.loadingContext;\n this.holderEl = pSetupObj.holderEl;\n this.submitAnalytics = pSetupObj.submitAnalytics;\n this.componentType = pSetupObj.componentType;\n\n /**\n * Initiate other values on 'this' through setters\n */\n this.isValid = false;\n this.iframeContentWindow = null;\n this.numKey = generateRandomNumber();\n this.isEncrypted = false;\n this.hasError = false;\n this.errorType = '';\n this.cvcPolicy = pSetupObj.cvcPolicy;\n this.expiryDatePolicy = pSetupObj.expiryDatePolicy;\n\n if (process.env.NODE_ENV === 'development' && doLog) {\n logger.log(\n '### SecuredField::constructor:: this.sfConfig.fieldType=',\n this.sfConfig.fieldType,\n 'isValid=',\n this._isValid,\n 'numKey=',\n this.numKey\n );\n logger.log('\\n');\n }\n\n return this.init(i18n, iframeSrc, placeholders, showContextualElement);\n }\n\n init(i18n: Language, iframeSrc: string, placeholders: Placeholders, showContextualElement: boolean): SecuredField {\n /**\n * Ensure all fields have a related ariaConfig object containing, at minimum, an iframeTitle property and a (translated) errors object\n */\n const processedAriaConfig: AriaConfig = processAriaConfig(this.sfConfig.txVariant, this.sfConfig.fieldType, i18n, showContextualElement);\n // Set result back onto config object\n this.sfConfig.iframeUIConfig.ariaConfig = processedAriaConfig;\n\n // Set result back onto config object\n this.sfConfig.iframeUIConfig.placeholders = processPlaceholders(this.sfConfig.txVariant, this.sfConfig.fieldType, placeholders);\n\n /**\n * Configure, create & reference iframe and add load listener\n */\n const iframeConfig = {\n src: iframeSrc,\n title: processedAriaConfig[this.sfConfig.fieldType].iframeTitle,\n policy: 'origin'\n };\n\n const iframeEl: HTMLIFrameElement = createIframe(iframeConfig);\n\n // Place the iframe into the holder\n this.holderEl.appendChild(iframeEl);\n\n // Now examine the holder to get an actual DOM node\n const iframe: HTMLIFrameElement = selectOne(this.holderEl, '.js-iframe');\n\n if (iframe) {\n if (!iframe.contentWindow) {\n // Warn the dev\n console.error(\n 'ERROR: Trying to initialise a securedField iframe, but the iframe.contentWindow is undefined. Are you sure the element into which the Card component is being mounted already exists in the DOM *before* the Card component is mounted?'\n );\n // Log the error\n const event = new AnalyticsErrorEvent({\n component: this.componentType,\n code: ErrorEventCode.SECURED_FIELDS_IFRAME_CONTENT_WINDOW_NOT_FOUND,\n errorType: ErrorEventType.implementation,\n message: `Trying to initialise an iframe for ${this.sfConfig.fieldType}, but the iframe.contentWindow is undefined`\n });\n\n this.submitAnalytics?.(event);\n }\n\n this.iframeContentWindow = iframe.contentWindow;\n\n // Create reference to bound fn (see getters/setters for binding)\n this.iframeOnLoadListener = this.iframeOnLoadListenerFn;\n\n on(iframe, 'load', this.iframeOnLoadListener, false);\n }\n\n this.iframeRef = iframe;\n\n return this;\n }\n\n iframeOnLoadListenerFn(): void {\n // Create reference to bound fn (see getters/setters for binding)\n this.postMessageListener = this.postMessageListenerFn;\n\n // Add general listener for 'message' EVENT - the event that 'powers' postMessage\n on(window, 'message', this.postMessageListener, false);\n\n // Create and send config object to iframe\n const configObj: IframeConfigObject = {\n ...this.sfConfig,\n numKey: this.numKey\n };\n\n if (window._b$dl) console.log('### SecuredField:::: onIframeLoaded:: created configObj=', configObj);\n\n postMessageToIframe(configObj, this.iframeContentWindow, this.loadingContext);\n //--\n\n // Callback to say iframe loaded\n this.onIframeLoadedCallback();\n }\n\n postMessageListenerFn(event: MessageEvent): void {\n // Check message is from expected domain\n if (!originCheckPassed(event, this.loadingContext, this.sfConfig.showWarnings)) {\n return;\n }\n\n // TODO - for debugging purposes this would always be useful to see\n // logger.log('\\n',this.sfConfig.fieldType,'### CSF SecuredField::postMessageListener:: event.data=',event.data);\n\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log(\n '\\n###CSF SecuredField::postMessageListener:: DOMAIN & ORIGIN MATCH, NO WEBPACK WEIRDNESS fieldType=',\n this.sfConfig.fieldType,\n 'txVariant=',\n this.sfConfig.txVariant,\n 'this.numKey=',\n this.numKey\n );\n }\n\n // PARSE DATA OBJECT (thus testing if it is a JSON string) - OR TRY & WORK OUT WHY THE PARSING FAILED\n let feedbackObj: SFFeedbackObj;\n\n try {\n feedbackObj = JSON.parse(event.data);\n } catch (e) {\n // Was the message generated by webpack?\n if (isWebpackPostMsg(event)) {\n if (this.sfConfig.showWarnings) logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - WEBPACK');\n return;\n }\n\n // Was the message generated by ChromeVox?\n if (isChromeVoxPostMsg(event)) {\n if (this.sfConfig.showWarnings) logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - CHROMEVOX');\n return;\n }\n\n if (this.sfConfig.showWarnings)\n logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - UNKNOWN REASON: event.data=', event.data);\n return;\n }\n\n // CHECK FOR EXPECTED PROPS\n const hasMainProps: boolean = hasOwnProperty(feedbackObj, 'action') && hasOwnProperty(feedbackObj, 'numKey');\n\n if (!hasMainProps) {\n if (this.sfConfig.showWarnings) logger.warn('WARNING SecuredField :: postMessage listener for iframe :: data mismatch!');\n return;\n }\n\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log('### SecuredField::postMessageListener:: feedbackObj.numKey=', feedbackObj.numKey);\n }\n\n if (this.numKey !== feedbackObj.numKey) {\n if (this.sfConfig.showWarnings) {\n logger.warn(\n 'WARNING SecuredField :: postMessage listener for iframe :: data mismatch! (Probably a message from an unrelated securedField)'\n );\n }\n return;\n }\n\n // VALIDATION CHECKS PASSED - DECIDE ON COURSE OF ACTION\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log(\n '### SecuredField::postMessageListener:: numkeys match PROCEED WITH POST MESSAGE PROCESSING fieldType=',\n this.sfConfig.fieldType,\n 'txVariant=',\n this.sfConfig.txVariant\n );\n }\n\n switch (feedbackObj.action) {\n case 'encryption':\n this.isValid = true;\n this.onEncryptionCallback(feedbackObj);\n break;\n\n case 'config':\n if (window._b$dl)\n console.log('### SecuredField::postMessageListenerFn:: configured - calling onConfigCallback', feedbackObj.fieldType);\n this.onConfigCallback(feedbackObj);\n break;\n\n case 'focus':\n this.onFocusCallback(feedbackObj);\n break;\n\n case 'binValue':\n this.onBinValueCallback(feedbackObj);\n break;\n\n // iOS ONLY - RE. iOS BUGS AROUND BLUR AND FOCUS EVENTS\n case 'touch':\n this.onTouchstartCallback(feedbackObj);\n break;\n\n // Only happens for Firefox & IE <= 11\n case 'shifttab':\n this.onShiftTabCallback(feedbackObj);\n break;\n\n case 'autoComplete':\n this.onAutoCompleteCallback(feedbackObj);\n break;\n\n case 'enterKeyPressed':\n this.onKeyPressedCallback(feedbackObj);\n break;\n\n /**\n * Validate, because action =\n *\n * 'brand'\n * 'delete'\n * 'luhnCheck'\n * //'incomplete field' (an error that follows from a focus (blur) event)\n * 'incorrectly filled field' (an error that follows from a focus (blur) event) // NEW\n * 'numberKeyPressed' (or date-, month-, year-, cvc-, pin-, or iban- KeyPressed)\n * - since we have no \"error\" action \"...KeyPressed\" is the action type on most error events (other than \"incomplete field\" or \"luhnCheck\")\n * and often these error events representing the clearing of an existing error\n */\n default:\n // If we're validation handling (& not encryption handling) field must be invalid\n this.isValid = false;\n this.onValidationCallback(feedbackObj);\n }\n }\n\n destroy(): void {\n off(window, 'message', this.postMessageListener, false);\n off(this.iframeRef, 'load', this.iframeOnLoadListener, false);\n this.iframeContentWindow = null;\n removeAllChildren(this.holderEl);\n }\n\n /**\n * Returns whether the securedField is hidden OR whether it is optional and not in error\n */\n isOptionalOrHidden(): boolean {\n if (\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_DATE ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_MONTH ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_YEAR\n ) {\n switch (this.expiryDatePolicy) {\n case DATE_POLICY_HIDDEN:\n return true;\n case DATE_POLICY_OPTIONAL:\n return !this.hasError;\n default:\n return false;\n }\n }\n\n if (this.sfConfig.fieldType === ENCRYPTED_SECURITY_CODE) {\n switch (this.cvcPolicy) {\n case CVC_POLICY_HIDDEN:\n return true;\n case CVC_POLICY_OPTIONAL:\n return !this.hasError;\n default:\n return false;\n }\n }\n\n // Any other type of securedField is not optional & can't be hidden\n return false;\n }\n\n // /////// ALLOCATE CALLBACKS /////////\n onIframeLoaded(callbackFn: RtnType_noParamVoidFn): SecuredField {\n this.onIframeLoadedCallback = callbackFn;\n return this;\n }\n\n onEncryption(callbackFn: RtnType_callbackFn): SecuredField {\n this.onEncryptionCallback = callbackFn;\n return this;\n }\n\n onValidation(callbackFn: RtnType_callbackFn): SecuredField {\n this.onValidationCallback = callbackFn;\n return this;\n }\n\n onConfig(callbackFn: RtnType_callbackFn): SecuredField {\n this.onConfigCallback = callbackFn;\n return this;\n }\n\n onFocus(callbackFn: RtnType_callbackFn): SecuredField {\n this.onFocusCallback = callbackFn;\n return this;\n }\n\n onBinValue(callbackFn: RtnType_callbackFn): SecuredField {\n this.onBinValueCallback = callbackFn;\n return this;\n }\n\n onTouchstart(callbackFn: RtnType_callbackFn): SecuredField {\n this.onTouchstartCallback = callbackFn;\n return this;\n }\n\n onShiftTab(callbackFn: RtnType_callbackFn): SecuredField {\n this.onShiftTabCallback = callbackFn;\n return this;\n }\n\n onAutoComplete(callbackFn: RtnType_callbackFn): SecuredField {\n this.onAutoCompleteCallback = callbackFn;\n return this;\n }\n\n onKeyPressed(callbackFn: RtnType_callbackFn): SecuredField {\n this.onKeyPressedCallback = callbackFn;\n return this;\n }\n //------------------------------------\n\n // ///////////// GETTERS/SETTERS //////////////\n\n get errorType(): string {\n return this._errorType;\n }\n set errorType(value: string) {\n this._errorType = value;\n }\n\n get hasError(): boolean {\n return this._hasError;\n }\n set hasError(value: boolean) {\n this._hasError = value;\n }\n\n get isValid(): boolean {\n if (this.sfConfig.fieldType === ENCRYPTED_SECURITY_CODE) {\n switch (this.cvcPolicy) {\n case CVC_POLICY_HIDDEN:\n // If cvc is hidden then the field is always valid\n return true;\n case CVC_POLICY_OPTIONAL:\n // If cvc is optional then the field is always valid UNLESS it has an error\n return !this.hasError;\n default:\n return this._isValid;\n }\n }\n\n if (\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_DATE ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_MONTH ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_YEAR\n ) {\n switch (this.expiryDatePolicy) {\n case DATE_POLICY_HIDDEN:\n // If date is hidden then the field is always valid\n return true;\n case DATE_POLICY_OPTIONAL:\n // If date is optional then the field is always valid UNLESS it has an error\n return !this.hasError;\n default:\n return this._isValid;\n }\n }\n\n return this._isValid;\n }\n set isValid(value: boolean) {\n this._isValid = value;\n }\n\n get cvcPolicy(): CVCPolicyType {\n return this._cvcPolicy;\n }\n\n set cvcPolicy(value: CVCPolicyType) {\n // Only set if this is a CVC field\n if (this.sfConfig.fieldType !== ENCRYPTED_SECURITY_CODE) return;\n\n // Only set if value has changed\n if (value === this.cvcPolicy) return;\n\n if (process.env.NODE_ENV === 'development' && doLog) logger.log(this.sfConfig.fieldType, '### SecuredField::cvcPolicy:: value=', value);\n\n this._cvcPolicy = value;\n\n // If the field has changed status (required <--> not required) AND it's error state was due to an isValidated call\n // NOTE: fixes issue in Components where you first validate and then start typing a maestro number\n // - w/o this and the fix in CSF the maestro PM will never register as valid\n if (this.hasError && this.errorType === 'isValidated') {\n this.hasError = false;\n }\n }\n\n get expiryDatePolicy(): DatePolicyType {\n return this._expiryDatePolicy;\n }\n\n set expiryDatePolicy(value: DatePolicyType) {\n // Only set if this is a date field type of securedField\n if (\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_DATE &&\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_MONTH &&\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_YEAR\n )\n return;\n\n // Only set if value has changed\n if (value === this.expiryDatePolicy) return;\n\n if (process.env.NODE_ENV === 'development' && doLog) logger.log(this.sfConfig.fieldType, '### SecuredField:expiryDatePolicy:: value=', value);\n\n this._expiryDatePolicy = value;\n\n // If the field has changed status (required <--> not required) AND it's error state was due to an isValidated call\n if (this.hasError && this.errorType === 'isValidated') {\n this.hasError = false;\n }\n }\n\n get iframeContentWindow(): Window {\n return this._iframeContentWindow;\n }\n set iframeContentWindow(value: Window) {\n this._iframeContentWindow = value;\n }\n\n get isEncrypted(): boolean {\n return this._isEncrypted;\n }\n set isEncrypted(value: boolean) {\n this._isEncrypted = value;\n }\n\n get numKey(): number {\n return this._numKey;\n }\n set numKey(value: number) {\n this._numKey = value;\n }\n\n // Internal use - way to create listener refs that we can add/remove\n get iframeOnLoadListener(): RtnType_noParamVoidFn {\n return this._iframeOnLoadListener;\n }\n set iframeOnLoadListener(value: RtnType_noParamVoidFn) {\n this._iframeOnLoadListener = value.bind(this);\n }\n\n get postMessageListener(): RtnType_postMessageListener {\n return this._postMessageListener;\n }\n set postMessageListener(value: RtnType_postMessageListener) {\n this._postMessageListener = value.bind(this);\n }\n}\n\nexport default SecuredField;\n"],"names":["SecuredField","AbstractSecuredField","init","i18n","iframeSrc","placeholders","showContextualElement","processedAriaConfig","processAriaConfig","this","sfConfig","txVariant","fieldType","iframeUIConfig","ariaConfig","processPlaceholders","iframeConfig","src","title","iframeTitle","policy","iframeEl","createIframe","holderEl","appendChild","iframe","selectOne","contentWindow","console","error","event","AnalyticsErrorEvent","component","componentType","code","ErrorEventCode","SECURED_FIELDS_IFRAME_CONTENT_WINDOW_NOT_FOUND","errorType","ErrorEventType","implementation","message","submitAnalytics","iframeContentWindow","iframeOnLoadListener","iframeOnLoadListenerFn","on","iframeRef","postMessageListener","postMessageListenerFn","window","configObj","numKey","_b$dl","log","postMessageToIframe","loadingContext","onIframeLoadedCallback","originCheckPassed","showWarnings","feedbackObj","JSON","parse","data","e","isWebpackPostMsg","logger","isChromeVoxPostMsg","hasOwnProperty","action","isValid","onEncryptionCallback","onConfigCallback","onFocusCallback","onBinValueCallback","onTouchstartCallback","onShiftTabCallback","onAutoCompleteCallback","onKeyPressedCallback","onValidationCallback","destroy","off","removeAllChildren","isOptionalOrHidden","ENCRYPTED_EXPIRY_DATE","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","expiryDatePolicy","DATE_POLICY_HIDDEN","DATE_POLICY_OPTIONAL","hasError","ENCRYPTED_SECURITY_CODE","cvcPolicy","CVC_POLICY_HIDDEN","CVC_POLICY_OPTIONAL","onIframeLoaded","callbackFn","onEncryption","onValidation","onConfig","onFocus","onBinValue","onTouchstart","onShiftTab","onAutoComplete","onKeyPressed","_errorType","value","_hasError","_isValid","_cvcPolicy","_expiryDatePolicy","_iframeContentWindow","isEncrypted","_isEncrypted","_numKey","_iframeOnLoadListener","bind","_postMessageListener","constructor","pSetupObj","super","configVarsFromSetUpObj","reject","from","generateRandomNumber"],"mappings":"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"}
1
+ {"version":3,"file":"SecuredField.js","sources":["../../../../../../../src/components/internal/SecuredFields/lib/securedField/SecuredField.ts"],"sourcesContent":["import * as logger from '../utilities/logger';\nimport createIframe from './utils/createIframe';\nimport { removeAllChildren, selectOne } from '../utilities/dom';\nimport { off, on } from '../../../../../utils/listenerUtils';\nimport postMessageToIframe from '../CSF/utils/iframes/postMessageToIframe';\nimport { isChromeVoxPostMsg, isWebpackPostMsg, originCheckPassed } from '../CSF/utils/iframes/postMessageValidation';\nimport {\n CVC_POLICY_HIDDEN,\n CVC_POLICY_OPTIONAL,\n DATE_POLICY_HIDDEN,\n DATE_POLICY_OPTIONAL,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_EXPIRY_MONTH,\n ENCRYPTED_EXPIRY_YEAR,\n ENCRYPTED_SECURITY_CODE\n} from '../constants';\nimport { generateRandomNumber } from '../utilities/commonUtils';\nimport { CVCPolicyType, DatePolicyType, RtnType_callbackFn, RtnType_noParamVoidFn, RtnType_postMessageListener, SFFeedbackObj } from '../types';\nimport AbstractSecuredField from './AbstractSecuredField';\nimport { AriaConfig, IframeConfigObject, SecuredFieldSetupObject, SecuredFieldCommonProps } from '../types';\nimport { reject } from '../../../../../utils/commonUtils';\nimport { processAriaConfig } from './utils/processAriaConfig';\nimport { processPlaceholders } from './utils/processPlaceholders';\nimport Language from '../../../../../language/Language';\nimport { hasOwnProperty } from '../../../../../utils/hasOwnProperty';\nimport { Placeholders } from '../../SFP/types';\nimport './SecuredField.scss';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../../../../core/Analytics/events/AnalyticsErrorEvent';\n\nconst logPostMsg = false;\nconst doLog = false;\n\nclass SecuredField extends AbstractSecuredField {\n constructor(pSetupObj: SecuredFieldSetupObject, i18n: Language) {\n super();\n\n /**\n * List of props to exclude from being set on this.sfConfig.\n * These props are only required for internal purposes. They do not get sent to the iframe\n */\n const deltaPropsArr: string[] = ['loadingContext', 'holderEl', 'iframeSrc', 'showContextualElement', 'placeholders'];\n\n /**\n * List of props from setup object that will be set on this.sfConfig\n * These props will all end up being sent to the iframe\n */\n const configVarsFromSetUpObj = reject(deltaPropsArr).from(pSetupObj);\n\n // Copy passed setup object values to this.sfConfig\n this.sfConfig = {\n // ...this.sfConfig, // Do we need to do this? Pretty sure we don't\n ...configVarsFromSetUpObj,\n // Break references on iframeUIConfig object so we can overwrite its properties in each securedField instance\n iframeUIConfig: { ...configVarsFromSetUpObj.iframeUIConfig }\n } as SecuredFieldCommonProps;\n\n /**\n * Extract values only needed for init\n */\n const { iframeSrc, placeholders, showContextualElement } = pSetupObj;\n\n /**\n * Store those passed setup object values that are needed in multiple functions\n */\n this.loadingContext = pSetupObj.loadingContext;\n this.holderEl = pSetupObj.holderEl;\n this.submitAnalytics = pSetupObj.submitAnalytics;\n this.componentType = pSetupObj.componentType;\n\n /**\n * Initiate other values on 'this' through setters\n */\n this.isValid = false;\n this.iframeContentWindow = null;\n this.numKey = generateRandomNumber();\n this.isEncrypted = false;\n this.hasError = false;\n this.errorType = '';\n this.cvcPolicy = pSetupObj.cvcPolicy;\n this.expiryDatePolicy = pSetupObj.expiryDatePolicy;\n\n if (process.env.NODE_ENV === 'development' && doLog) {\n logger.log(\n '### SecuredField::constructor:: this.sfConfig.fieldType=',\n this.sfConfig.fieldType,\n 'isValid=',\n this._isValid,\n 'numKey=',\n this.numKey\n );\n logger.log('\\n');\n }\n\n return this.init(i18n, iframeSrc, placeholders, showContextualElement);\n }\n\n init(i18n: Language, iframeSrc: string, placeholders: Placeholders, showContextualElement: boolean): SecuredField {\n /**\n * Ensure all fields have a related ariaConfig object containing, at minimum, an iframeTitle property and a (translated) errors object\n */\n const processedAriaConfig: AriaConfig = processAriaConfig(this.sfConfig.txVariant, this.sfConfig.fieldType, i18n, showContextualElement);\n // Set result back onto config object\n this.sfConfig.iframeUIConfig.ariaConfig = processedAriaConfig;\n\n // Set result back onto config object\n this.sfConfig.iframeUIConfig.placeholders = processPlaceholders(this.sfConfig.txVariant, this.sfConfig.fieldType, placeholders);\n\n /**\n * Configure, create & reference iframe and add load listener\n */\n const iframeConfig = {\n src: iframeSrc,\n title: processedAriaConfig[this.sfConfig.fieldType].iframeTitle,\n policy: 'origin'\n };\n\n const iframeEl: HTMLIFrameElement = createIframe(iframeConfig);\n\n // Place the iframe into the holder\n this.holderEl.appendChild(iframeEl);\n\n // Now examine the holder to get an actual DOM node\n const iframe: HTMLIFrameElement = selectOne(this.holderEl, '.js-iframe');\n\n if (iframe) {\n if (!iframe.contentWindow) {\n // Warn the dev\n console.error(\n 'ERROR: Trying to initialise a securedField iframe, but the iframe.contentWindow is undefined. Are you sure the element into which the Card component is being mounted already exists in the DOM *before* the Card component is mounted?'\n );\n // Log the error\n const event = new AnalyticsErrorEvent({\n component: this.componentType,\n code: ErrorEventCode.SECURED_FIELDS_IFRAME_CONTENT_WINDOW_NOT_FOUND,\n errorType: ErrorEventType.implementation,\n message: `Trying to initialise an iframe for ${this.sfConfig.fieldType}, but the iframe.contentWindow is undefined`\n });\n\n this.submitAnalytics?.(event);\n }\n\n this.iframeContentWindow = iframe.contentWindow;\n\n // Create reference to bound fn (see getters/setters for binding)\n this.iframeOnLoadListener = this.iframeOnLoadListenerFn;\n\n on(iframe, 'load', this.iframeOnLoadListener, false);\n }\n\n this.iframeRef = iframe;\n\n return this;\n }\n\n iframeOnLoadListenerFn(): void {\n // Create reference to bound fn (see getters/setters for binding)\n this.postMessageListener = this.postMessageListenerFn;\n\n // Add general listener for 'message' EVENT - the event that 'powers' postMessage\n on(window, 'message', this.postMessageListener, false);\n\n // Create and send config object to iframe\n const configObj: IframeConfigObject = {\n ...this.sfConfig,\n numKey: this.numKey\n };\n\n if (window._b$dl) console.log('### SecuredField:::: onIframeLoaded:: created configObj=', configObj);\n\n postMessageToIframe(configObj, this.iframeContentWindow, this.loadingContext);\n //--\n\n // Callback to say iframe loaded\n this.onIframeLoadedCallback();\n }\n\n postMessageListenerFn(event: MessageEvent): void {\n // Check message is from expected domain\n if (!originCheckPassed(event, this.loadingContext, this.sfConfig.showWarnings)) {\n return;\n }\n\n // TODO - for debugging purposes this would always be useful to see\n // logger.log('\\n',this.sfConfig.fieldType,'### CSF SecuredField::postMessageListener:: event.data=',event.data);\n\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log(\n '\\n###CSF SecuredField::postMessageListener:: DOMAIN & ORIGIN MATCH, NO WEBPACK WEIRDNESS fieldType=',\n this.sfConfig.fieldType,\n 'txVariant=',\n this.sfConfig.txVariant,\n 'this.numKey=',\n this.numKey\n );\n }\n\n // PARSE DATA OBJECT (thus testing if it is a JSON string) - OR TRY & WORK OUT WHY THE PARSING FAILED\n let feedbackObj: SFFeedbackObj;\n\n try {\n feedbackObj = JSON.parse(event.data);\n } catch (e) {\n // Was the message generated by webpack?\n if (isWebpackPostMsg(event)) {\n if (this.sfConfig.showWarnings) logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - WEBPACK');\n return;\n }\n\n // Was the message generated by ChromeVox?\n if (isChromeVoxPostMsg(event)) {\n if (this.sfConfig.showWarnings) logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - CHROMEVOX');\n return;\n }\n\n if (this.sfConfig.showWarnings)\n logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - UNKNOWN REASON: event.data=', event.data);\n return;\n }\n\n // CHECK FOR EXPECTED PROPS\n const hasMainProps: boolean = hasOwnProperty(feedbackObj, 'action') && hasOwnProperty(feedbackObj, 'numKey');\n\n if (!hasMainProps) {\n if (this.sfConfig.showWarnings) logger.warn('WARNING SecuredField :: postMessage listener for iframe :: data mismatch!');\n return;\n }\n\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log('### SecuredField::postMessageListener:: feedbackObj.numKey=', feedbackObj.numKey);\n }\n\n if (this.numKey !== feedbackObj.numKey) {\n if (this.sfConfig.showWarnings) {\n logger.warn(\n 'WARNING SecuredField :: postMessage listener for iframe :: data mismatch! (Probably a message from an unrelated securedField)'\n );\n }\n return;\n }\n\n // VALIDATION CHECKS PASSED - DECIDE ON COURSE OF ACTION\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log(\n '### SecuredField::postMessageListener:: numkeys match PROCEED WITH POST MESSAGE PROCESSING fieldType=',\n this.sfConfig.fieldType,\n 'txVariant=',\n this.sfConfig.txVariant\n );\n }\n\n switch (feedbackObj.action) {\n case 'encryption':\n this.isValid = true;\n this.onEncryptionCallback(feedbackObj);\n break;\n\n case 'config':\n if (window._b$dl)\n console.log('### SecuredField::postMessageListenerFn:: configured - calling onConfigCallback', feedbackObj.fieldType);\n this.onConfigCallback(feedbackObj);\n break;\n\n case 'focus':\n this.onFocusCallback(feedbackObj);\n break;\n\n case 'binValue':\n this.onBinValueCallback(feedbackObj);\n break;\n\n // iOS ONLY - RE. iOS BUGS AROUND BLUR AND FOCUS EVENTS\n case 'touch':\n this.onTouchstartCallback(feedbackObj);\n break;\n\n // Only happens for Firefox & IE <= 11\n case 'shifttab':\n this.onShiftTabCallback(feedbackObj);\n break;\n\n case 'autoComplete':\n this.onAutoCompleteCallback(feedbackObj);\n break;\n\n case 'enterKeyPressed':\n this.onKeyPressedCallback(feedbackObj);\n break;\n\n case 'encryptionError': {\n const event = new AnalyticsErrorEvent({\n component: this.componentType,\n code: feedbackObj.code,\n errorType: ErrorEventType.internal,\n message: `${feedbackObj.error}. Field= ${this.sfConfig.fieldType}`\n });\n\n this.submitAnalytics?.(event);\n break;\n }\n\n /**\n * Validate, because action =\n *\n * 'brand'\n * 'delete'\n * 'luhnCheck'\n * 'incomplete field' (an error that follows from a focus (blur) event)\n * 'incorrectly filled field' (an error that follows from a focus (blur) event)\n * 'numberKeyPressed' (or date-, month-, year-, cvc-, pin-, or iban- KeyPressed)\n * - since we have no \"error\" action \"...KeyPressed\" is the action type on most error events (other than \"incomplete field, 'incorrectly filled field' or \"luhnCheck\")\n * and often these error events representing the clearing of an existing error\n */\n default:\n // If we're validation handling (& not encryption handling) field must be invalid\n this.isValid = false;\n this.onValidationCallback(feedbackObj);\n }\n }\n\n destroy(): void {\n off(window, 'message', this.postMessageListener, false);\n off(this.iframeRef, 'load', this.iframeOnLoadListener, false);\n this.iframeContentWindow = null;\n removeAllChildren(this.holderEl);\n }\n\n /**\n * Returns whether the securedField is hidden OR whether it is optional and not in error\n */\n isOptionalOrHidden(): boolean {\n if (\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_DATE ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_MONTH ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_YEAR\n ) {\n switch (this.expiryDatePolicy) {\n case DATE_POLICY_HIDDEN:\n return true;\n case DATE_POLICY_OPTIONAL:\n return !this.hasError;\n default:\n return false;\n }\n }\n\n if (this.sfConfig.fieldType === ENCRYPTED_SECURITY_CODE) {\n switch (this.cvcPolicy) {\n case CVC_POLICY_HIDDEN:\n return true;\n case CVC_POLICY_OPTIONAL:\n return !this.hasError;\n default:\n return false;\n }\n }\n\n // Any other type of securedField is not optional & can't be hidden\n return false;\n }\n\n // /////// ALLOCATE CALLBACKS /////////\n onIframeLoaded(callbackFn: RtnType_noParamVoidFn): SecuredField {\n this.onIframeLoadedCallback = callbackFn;\n return this;\n }\n\n onEncryption(callbackFn: RtnType_callbackFn): SecuredField {\n this.onEncryptionCallback = callbackFn;\n return this;\n }\n\n onValidation(callbackFn: RtnType_callbackFn): SecuredField {\n this.onValidationCallback = callbackFn;\n return this;\n }\n\n onConfig(callbackFn: RtnType_callbackFn): SecuredField {\n this.onConfigCallback = callbackFn;\n return this;\n }\n\n onFocus(callbackFn: RtnType_callbackFn): SecuredField {\n this.onFocusCallback = callbackFn;\n return this;\n }\n\n onBinValue(callbackFn: RtnType_callbackFn): SecuredField {\n this.onBinValueCallback = callbackFn;\n return this;\n }\n\n onTouchstart(callbackFn: RtnType_callbackFn): SecuredField {\n this.onTouchstartCallback = callbackFn;\n return this;\n }\n\n onShiftTab(callbackFn: RtnType_callbackFn): SecuredField {\n this.onShiftTabCallback = callbackFn;\n return this;\n }\n\n onAutoComplete(callbackFn: RtnType_callbackFn): SecuredField {\n this.onAutoCompleteCallback = callbackFn;\n return this;\n }\n\n onKeyPressed(callbackFn: RtnType_callbackFn): SecuredField {\n this.onKeyPressedCallback = callbackFn;\n return this;\n }\n //------------------------------------\n\n // ///////////// GETTERS/SETTERS //////////////\n\n get errorType(): string {\n return this._errorType;\n }\n set errorType(value: string) {\n this._errorType = value;\n }\n\n get hasError(): boolean {\n return this._hasError;\n }\n set hasError(value: boolean) {\n this._hasError = value;\n }\n\n get isValid(): boolean {\n if (this.sfConfig.fieldType === ENCRYPTED_SECURITY_CODE) {\n switch (this.cvcPolicy) {\n case CVC_POLICY_HIDDEN:\n // If cvc is hidden then the field is always valid\n return true;\n case CVC_POLICY_OPTIONAL:\n // If cvc is optional then the field is always valid UNLESS it has an error\n return !this.hasError;\n default:\n return this._isValid;\n }\n }\n\n if (\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_DATE ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_MONTH ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_YEAR\n ) {\n switch (this.expiryDatePolicy) {\n case DATE_POLICY_HIDDEN:\n // If date is hidden then the field is always valid\n return true;\n case DATE_POLICY_OPTIONAL:\n // If date is optional then the field is always valid UNLESS it has an error\n return !this.hasError;\n default:\n return this._isValid;\n }\n }\n\n return this._isValid;\n }\n set isValid(value: boolean) {\n this._isValid = value;\n }\n\n get cvcPolicy(): CVCPolicyType {\n return this._cvcPolicy;\n }\n\n set cvcPolicy(value: CVCPolicyType) {\n // Only set if this is a CVC field\n if (this.sfConfig.fieldType !== ENCRYPTED_SECURITY_CODE) return;\n\n // Only set if value has changed\n if (value === this.cvcPolicy) return;\n\n if (process.env.NODE_ENV === 'development' && doLog) logger.log(this.sfConfig.fieldType, '### SecuredField::cvcPolicy:: value=', value);\n\n this._cvcPolicy = value;\n\n // If the field has changed status (required <--> not required) AND it's error state was due to an isValidated call\n // NOTE: fixes issue in Components where you first validate and then start typing a maestro number\n // - w/o this and the fix in CSF the maestro PM will never register as valid\n if (this.hasError && this.errorType === 'isValidated') {\n this.hasError = false;\n }\n }\n\n get expiryDatePolicy(): DatePolicyType {\n return this._expiryDatePolicy;\n }\n\n set expiryDatePolicy(value: DatePolicyType) {\n // Only set if this is a date field type of securedField\n if (\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_DATE &&\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_MONTH &&\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_YEAR\n )\n return;\n\n // Only set if value has changed\n if (value === this.expiryDatePolicy) return;\n\n if (process.env.NODE_ENV === 'development' && doLog) logger.log(this.sfConfig.fieldType, '### SecuredField:expiryDatePolicy:: value=', value);\n\n this._expiryDatePolicy = value;\n\n // If the field has changed status (required <--> not required) AND it's error state was due to an isValidated call\n if (this.hasError && this.errorType === 'isValidated') {\n this.hasError = false;\n }\n }\n\n get iframeContentWindow(): Window {\n return this._iframeContentWindow;\n }\n set iframeContentWindow(value: Window) {\n this._iframeContentWindow = value;\n }\n\n get isEncrypted(): boolean {\n return this._isEncrypted;\n }\n set isEncrypted(value: boolean) {\n this._isEncrypted = value;\n }\n\n get numKey(): number {\n return this._numKey;\n }\n set numKey(value: number) {\n this._numKey = value;\n }\n\n // Internal use - way to create listener refs that we can add/remove\n get iframeOnLoadListener(): RtnType_noParamVoidFn {\n return this._iframeOnLoadListener;\n }\n set iframeOnLoadListener(value: RtnType_noParamVoidFn) {\n this._iframeOnLoadListener = value.bind(this);\n }\n\n get postMessageListener(): RtnType_postMessageListener {\n return this._postMessageListener;\n }\n set postMessageListener(value: RtnType_postMessageListener) {\n this._postMessageListener = value.bind(this);\n }\n}\n\nexport default SecuredField;\n"],"names":["SecuredField","AbstractSecuredField","init","i18n","iframeSrc","placeholders","showContextualElement","processedAriaConfig","processAriaConfig","this","sfConfig","txVariant","fieldType","iframeUIConfig","ariaConfig","processPlaceholders","iframeConfig","src","title","iframeTitle","policy","iframeEl","createIframe","holderEl","appendChild","iframe","selectOne","contentWindow","console","error","event","AnalyticsErrorEvent","component","componentType","code","ErrorEventCode","SECURED_FIELDS_IFRAME_CONTENT_WINDOW_NOT_FOUND","errorType","ErrorEventType","implementation","message","submitAnalytics","iframeContentWindow","iframeOnLoadListener","iframeOnLoadListenerFn","on","iframeRef","postMessageListener","postMessageListenerFn","window","configObj","numKey","_b$dl","log","postMessageToIframe","loadingContext","onIframeLoadedCallback","originCheckPassed","showWarnings","feedbackObj","JSON","parse","data","e","isWebpackPostMsg","logger","isChromeVoxPostMsg","hasOwnProperty","action","isValid","onEncryptionCallback","onConfigCallback","onFocusCallback","onBinValueCallback","onTouchstartCallback","onShiftTabCallback","onAutoCompleteCallback","onKeyPressedCallback","internal","onValidationCallback","destroy","off","removeAllChildren","isOptionalOrHidden","ENCRYPTED_EXPIRY_DATE","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","expiryDatePolicy","DATE_POLICY_HIDDEN","DATE_POLICY_OPTIONAL","hasError","ENCRYPTED_SECURITY_CODE","cvcPolicy","CVC_POLICY_HIDDEN","CVC_POLICY_OPTIONAL","onIframeLoaded","callbackFn","onEncryption","onValidation","onConfig","onFocus","onBinValue","onTouchstart","onShiftTab","onAutoComplete","onKeyPressed","_errorType","value","_hasError","_isValid","_cvcPolicy","_expiryDatePolicy","_iframeContentWindow","isEncrypted","_isEncrypted","_numKey","_iframeOnLoadListener","bind","_postMessageListener","constructor","pSetupObj","super","configVarsFromSetUpObj","reject","from","generateRandomNumber"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- function t({src:t,title:e="iframe element",policy:r="origin"}){const i=document.createElement("iframe");i.setAttribute("src",t),i.classList.add("js-iframe"),""===e||0===e.trim().length||"none"===e?i.setAttribute("role","presentation"):i.setAttribute("title",e),i.setAttribute("allowtransparency","true"),i.setAttribute("referrerpolicy",r);const s=document.createTextNode("<p>Your browser does not support iframes.</p>");return i.appendChild(s),i}export{t as default};
1
+ function t({src:t,title:e="iframe element",policy:r="origin"}){const i=document.createElement("iframe");i.setAttribute("src",t),i.classList.add("js-iframe"),i.setAttribute("role","presentation"),""!==e&&e.trim().length>0&&i.setAttribute("title",e),i.setAttribute("allowtransparency","true"),i.setAttribute("referrerpolicy",r);const s=document.createTextNode("<p>Your browser does not support iframes.</p>");return i.appendChild(s),i}export{t as default};
2
2
  //# sourceMappingURL=createIframe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createIframe.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/securedField/utils/createIframe.ts"],"sourcesContent":["export default function createIframe({ src, title = 'iframe element', policy = 'origin' }) {\n const iframeEl = document.createElement('iframe');\n iframeEl.setAttribute('src', src);\n iframeEl.classList.add('js-iframe');\n // For a11y some merchants want to be able to remove the title element on the iframe - seeing the info it carries as extraneous for the screenreader\n if (title === '' || title.trim().length === 0 || title === 'none') {\n iframeEl.setAttribute('role', 'presentation');\n } else {\n iframeEl.setAttribute('title', title);\n }\n\n iframeEl.setAttribute('allowtransparency', 'true');\n iframeEl.setAttribute('referrerpolicy', policy); // Necessary for ClientKey to work\n // Commenting out stops the \"The devicemotion events are blocked by feature policy\" warning in Chrome >=66 that some merchant experienced\n // Commenting in stops the same warnings in development (??)\n if (process.env.NODE_ENV === 'development') {\n iframeEl.setAttribute('allow', 'accelerometer; gyroscope');\n }\n\n const noIframeElContent = document.createTextNode('<p>Your browser does not support iframes.</p>');\n iframeEl.appendChild(noIframeElContent);\n\n return iframeEl;\n}\n"],"names":["createIframe","src","title","policy","iframeEl","document","createElement","setAttribute","classList","add","trim","length","noIframeElContent","createTextNode","appendChild"],"mappings":"AAAe,SAASA,GAAaC,IAAEA,EAAGC,MAAEA,EAAQ,iBAAgBC,OAAEA,EAAS,WAC3E,MAAMC,EAAWC,SAASC,cAAc,UACxCF,EAASG,aAAa,MAAON,GAC7BG,EAASI,UAAUC,IAAI,aAET,KAAVP,GAAwC,IAAxBA,EAAMQ,OAAOC,QAA0B,SAAVT,EAC7CE,EAASG,aAAa,OAAQ,gBAE9BH,EAASG,aAAa,QAASL,GAGnCE,EAASG,aAAa,oBAAqB,QAC3CH,EAASG,aAAa,iBAAkBJ,GAOxC,MAAMS,EAAoBP,SAASQ,eAAe,iDAGlD,OAFAT,EAASU,YAAYF,GAEdR,CACX"}
1
+ {"version":3,"file":"createIframe.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/securedField/utils/createIframe.ts"],"sourcesContent":["export default function createIframe({ src, title = 'iframe element', policy = 'origin' }) {\n const iframeEl = document.createElement('iframe');\n iframeEl.setAttribute('src', src);\n iframeEl.classList.add('js-iframe');\n\n // Following a11y advice from LevelAccess, we always set the iframe to be role=presentation\n iframeEl.setAttribute('role', 'presentation');\n\n if (title !== '' && title.trim().length > 0) {\n iframeEl.setAttribute('title', title);\n }\n\n iframeEl.setAttribute('allowtransparency', 'true');\n iframeEl.setAttribute('referrerpolicy', policy); // Necessary for ClientKey to work\n // Commenting out stops the \"The devicemotion events are blocked by feature policy\" warning in Chrome >=66 that some merchant experienced\n // Commenting in stops the same warnings in development (??)\n if (process.env.NODE_ENV === 'development') {\n iframeEl.setAttribute('allow', 'accelerometer; gyroscope');\n }\n\n const noIframeElContent = document.createTextNode('<p>Your browser does not support iframes.</p>');\n iframeEl.appendChild(noIframeElContent);\n\n return iframeEl;\n}\n"],"names":["createIframe","src","title","policy","iframeEl","document","createElement","setAttribute","classList","add","trim","length","noIframeElContent","createTextNode","appendChild"],"mappings":"AAAe,SAASA,GAAaC,IAAEA,EAAGC,MAAEA,EAAQ,iBAAgBC,OAAEA,EAAS,WAC3E,MAAMC,EAAWC,SAASC,cAAc,UACxCF,EAASG,aAAa,MAAON,GAC7BG,EAASI,UAAUC,IAAI,aAGvBL,EAASG,aAAa,OAAQ,gBAEhB,KAAVL,GAAgBA,EAAMQ,OAAOC,OAAS,GACtCP,EAASG,aAAa,QAASL,GAGnCE,EAASG,aAAa,oBAAqB,QAC3CH,EAASG,aAAa,iBAAkBJ,GAOxC,MAAMS,EAAoBP,SAASQ,eAAe,iDAGlD,OAFAT,EAASU,YAAYF,GAEdR,CACX"}
@@ -1,2 +1,2 @@
1
- import{addErrorTranslationsToObject as t}from"../../../../../../core/Errors/utils.js";import r from"../../utilities/addContextTranslations.js";import{SF_FIELDS_MAP as e}from"../../constants.js";function i(i,a,o,l){const s=["ach","giftcard"].includes(i)?i:"creditCard",n=o.get(`${s}.${a}.aria.iframeTitle`),c=o.get(`${s}.${e[a]}.label`),m=o.locale;let f=t({iframeTitle:n,label:c},o,a);return l&&(f=r(f,o,i,a)),{...m&&{lang:m},[a]:f}}export{i as processAriaConfig};
1
+ import{addErrorTranslationsToObject as t}from"../../../../../../core/Errors/utils.js";import r from"../../utilities/addContextTranslations.js";import{SF_FIELDS_MAP as e}from"../../constants.js";function i(i,o,l,a){const n=["giftcard"].includes(i)?i:"creditCard";let s=l.get(`${n}.${o}.aria.iframeTitle`);"none"===s&&(s="");const c=l.get(`${n}.${e[o]}.label`),m=l.locale;let f=t({iframeTitle:s,label:c},l,o);return a&&(f=r(f,l,i,o)),{...m&&{lang:m},[o]:f}}export{i as processAriaConfig};
2
2
  //# sourceMappingURL=processAriaConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processAriaConfig.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.ts"],"sourcesContent":["import { addErrorTranslationsToObject } from '../../../../../../core/Errors/utils';\nimport addContextTranslationsToObject from '../../utilities/addContextTranslations';\nimport Language from '../../../../../../language/Language';\nimport { SF_FIELDS_MAP } from '../../constants';\nimport { AriaConfig, AriaConfigObject } from '../../types';\n\n/**\n * Creates an ariaConfig object with 'iframeTitle' and 'label' properties, whose values are retrieved from the translations object.\n * (These values either come from the translation file or have been overwritten by the merchant in a translations config object.)\n * We then add an error object containing the possible errors for any securedField read from the translation file and stored under error-codes\n */\nexport function processAriaConfig(txVariant: string, fieldType: string, i18n: Language, showContextuaElement): AriaConfig {\n // txVariant can be the scheme name (VISA, Mastercard...) so we put all of them under creditCard\n const type = ['ach', 'giftcard'].includes(txVariant) ? txVariant : 'creditCard';\n\n // Get translation for iframeTitle\n const iframeTitle: string = i18n.get(`${type}.${fieldType}.aria.iframeTitle`);\n\n // Get translation for aria label using *same* key that is used to label the element - important a11y consideration for (securedField) iframe\n const label: string = i18n.get(`${type}.${SF_FIELDS_MAP[fieldType]}.label`);\n\n // Get lang property\n const lang = i18n.locale;\n\n // Create a new object with the iframeTitle & label values from translation file\n const ariaFieldConfigObj: AriaConfigObject = { iframeTitle, label };\n\n // Add error translations object\n let enhancedAriaFieldConfigObj: AriaConfigObject = addErrorTranslationsToObject(ariaFieldConfigObj, i18n, fieldType);\n\n // If allowed, add the translated contextual texts\n if (showContextuaElement) {\n enhancedAriaFieldConfigObj = addContextTranslationsToObject(enhancedAriaFieldConfigObj, i18n, txVariant, fieldType);\n }\n\n // Create a new aria config object keeping the old entries and adding a new one for this field\n // N.B. need to do this deconstruction of the original aria config object to break existing refs & avoid getting an \"accumulated\" object\n return {\n ...(lang && { lang }),\n [fieldType]: enhancedAriaFieldConfigObj\n } as AriaConfig;\n}\n"],"names":["processAriaConfig","txVariant","fieldType","i18n","showContextuaElement","type","includes","iframeTitle","get","label","SF_FIELDS_MAP","lang","locale","enhancedAriaFieldConfigObj","addErrorTranslationsToObject","addContextTranslationsToObject"],"mappings":"kMAWO,SAASA,EAAkBC,EAAmBC,EAAmBC,EAAgBC,GAEpF,MAAMC,EAAO,CAAC,MAAO,YAAYC,SAASL,GAAaA,EAAY,aAG7DM,EAAsBJ,EAAKK,IAAI,GAAGH,KAAQH,sBAG1CO,EAAgBN,EAAKK,IAAI,GAAGH,KAAQK,EAAcR,YAGlDS,EAAOR,EAAKS,OAMlB,IAAIC,EAA+CC,EAHN,CAAEP,cAAaE,SAGwCN,EAAMD,GAS1G,OANIE,IACAS,EAA6BE,EAA+BF,EAA4BV,EAAMF,EAAWC,IAKtG,IACCS,GAAQ,CAAEA,QACdT,CAACA,GAAYW,EAErB"}
1
+ {"version":3,"file":"processAriaConfig.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.ts"],"sourcesContent":["import { addErrorTranslationsToObject } from '../../../../../../core/Errors/utils';\nimport addContextTranslationsToObject from '../../utilities/addContextTranslations';\nimport Language from '../../../../../../language/Language';\nimport { SF_FIELDS_MAP } from '../../constants';\nimport { AriaConfig, AriaConfigObject } from '../../types';\n\n/**\n * Creates an ariaConfig object with 'iframeTitle' and 'label' properties, whose values are retrieved from the translations object.\n * (These values either come from the translation file or have been overwritten by the merchant in a translations config object.)\n * We then add an error object containing the possible errors for any securedField read from the translation file and stored under error-codes\n */\nexport function processAriaConfig(txVariant: string, fieldType: string, i18n: Language, showContextuaElement): AriaConfig {\n // txVariant can be the scheme name (VISA, Mastercard...) so we put all of them under creditCard\n const type = ['giftcard'].includes(txVariant) ? txVariant : 'creditCard';\n\n // Get translation for iframeTitle\n let iframeTitle: string = i18n.get(`${type}.${fieldType}.aria.iframeTitle`);\n\n /**\n * Fix bug where, if iframeTitle was set to 'none', although we didn't add it to the iframe element, we still passed it through to the securedField\n * where it got set as the title of the html page\n */\n if (iframeTitle === 'none') {\n iframeTitle = '';\n }\n\n // Get translation for aria label using *same* key that is used to label the element - important a11y consideration for (securedField) iframe\n const label: string = i18n.get(`${type}.${SF_FIELDS_MAP[fieldType]}.label`);\n\n // Get lang property\n const lang = i18n.locale;\n\n // Create a new object with the iframeTitle & label values from translation file\n const ariaFieldConfigObj: AriaConfigObject = { iframeTitle, label };\n\n // Add error translations object\n let enhancedAriaFieldConfigObj: AriaConfigObject = addErrorTranslationsToObject(ariaFieldConfigObj, i18n, fieldType);\n\n // If allowed, add the translated contextual texts\n if (showContextuaElement) {\n enhancedAriaFieldConfigObj = addContextTranslationsToObject(enhancedAriaFieldConfigObj, i18n, txVariant, fieldType);\n }\n\n // Create a new aria config object keeping the old entries and adding a new one for this field\n // N.B. need to do this deconstruction of the original aria config object to break existing refs & avoid getting an \"accumulated\" object\n return {\n ...(lang && { lang }),\n [fieldType]: enhancedAriaFieldConfigObj\n } as AriaConfig;\n}\n"],"names":["processAriaConfig","txVariant","fieldType","i18n","showContextuaElement","type","includes","iframeTitle","get","label","SF_FIELDS_MAP","lang","locale","enhancedAriaFieldConfigObj","addErrorTranslationsToObject","addContextTranslationsToObject"],"mappings":"kMAWO,SAASA,EAAkBC,EAAmBC,EAAmBC,EAAgBC,GAEpF,MAAMC,EAAO,CAAC,YAAYC,SAASL,GAAaA,EAAY,aAG5D,IAAIM,EAAsBJ,EAAKK,IAAI,GAAGH,KAAQH,sBAM1B,SAAhBK,IACAA,EAAc,IAIlB,MAAME,EAAgBN,EAAKK,IAAI,GAAGH,KAAQK,EAAcR,YAGlDS,EAAOR,EAAKS,OAMlB,IAAIC,EAA+CC,EAHN,CAAEP,cAAaE,SAGwCN,EAAMD,GAS1G,OANIE,IACAS,EAA6BE,EAA+BF,EAA4BV,EAAMF,EAAWC,IAKtG,IACCS,GAAQ,CAAEA,QACdT,CAACA,GAAYW,EAErB"}
@@ -1,2 +1,2 @@
1
- import{camelCaseToSnakeCase as t}from"../../../utils/textUtils.js";import{ALL_SECURED_FIELDS as n,ENCRYPTED as r}from"./lib/constants.js";const s=(t,n)=>{const r="card"===t?"nocard":t||"nocard",s={type:r,extension:"svg"};return n.getImage(s)(r)},e=s=>{let e=t(s);return n.includes(s)&&(e=e.substring(r.length+1)),e};export{e as fieldTypeToSnakeCase,s as getCardImageUrl};
1
+ import{camelCaseToSnakeCase as t}from"../../../utils/textUtils.js";import{ENCRYPTED as n,ALL_SECURED_FIELDS as r}from"./lib/constants.js";const e=(t,n)=>{const r="card"===t?"nocard":t||"nocard",e={type:r,extension:"svg"};return n.getImage(e)(r)},s=r=>{let e=t(r);return o(r)&&(e=e.substring(n.length+1)),e};function o(t){return r.includes(t)}export{s as fieldTypeToSnakeCase,e as getCardImageUrl,o as isSecuredField};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/components/internal/SecuredFields/utils.ts"],"sourcesContent":["import { Resources } from '../../../core/Context/Resources';\nimport { camelCaseToSnakeCase } from '../../../utils/textUtils';\nimport { ALL_SECURED_FIELDS, ENCRYPTED } from './lib/constants';\n\n/**\n * Used by SecuredFieldsProviderHandlers\n */\nexport const getCardImageUrl = (brand, resources: Resources) => {\n const type = brand === 'card' ? 'nocard' : brand || 'nocard';\n\n const imageOptions = {\n type,\n extension: 'svg'\n };\n\n return resources.getImage(imageOptions)(type);\n};\n\n/**\n * Used by Card.tsx & SecuredFields.tsx\n * @param fieldType -\n */\nexport const fieldTypeToSnakeCase = (fieldType: string): string => {\n let str = camelCaseToSnakeCase(fieldType);\n // SFs need their fieldType mapped to what the endpoint expects\n if (ALL_SECURED_FIELDS.includes(fieldType)) {\n str = str.substring(ENCRYPTED.length + 1); // strip 'encrypted_' off the string\n }\n return str;\n};\n"],"names":["getCardImageUrl","brand","resources","type","imageOptions","extension","getImage","fieldTypeToSnakeCase","fieldType","str","camelCaseToSnakeCase","ALL_SECURED_FIELDS","includes","substring","ENCRYPTED","length"],"mappings":"0IAOO,MAAMA,EAAkB,CAACC,EAAOC,KACnC,MAAMC,EAAiB,SAAVF,EAAmB,SAAWA,GAAS,SAE9CG,EAAe,CACjBD,OACAE,UAAW,OAGf,OAAOH,EAAUI,SAASF,EAAnBF,CAAiCC,IAO/BI,EAAwBC,IACjC,IAAIC,EAAMC,EAAqBF,GAK/B,OAHIG,EAAmBC,SAASJ,KAC5BC,EAAMA,EAAII,UAAUC,EAAUC,OAAS,IAEpCN"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/components/internal/SecuredFields/utils.ts"],"sourcesContent":["import { Resources } from '../../../core/Context/Resources';\nimport { camelCaseToSnakeCase } from '../../../utils/textUtils';\nimport { ALL_SECURED_FIELDS, ENCRYPTED } from './lib/constants';\nimport type { SFFieldType } from './lib/types';\n\n/**\n * Used by SecuredFieldsProviderHandlers\n */\nexport const getCardImageUrl = (brand, resources: Resources) => {\n const type = brand === 'card' ? 'nocard' : brand || 'nocard';\n\n const imageOptions = {\n type,\n extension: 'svg'\n };\n\n return resources.getImage(imageOptions)(type);\n};\n\n/**\n * Used by Card.tsx & SecuredFields.tsx\n * @param fieldType -\n */\nexport const fieldTypeToSnakeCase = (fieldType: string): string => {\n let str = camelCaseToSnakeCase(fieldType);\n // SFs need their fieldType mapped to what the endpoint expects\n if (isSecuredField(fieldType)) {\n str = str.substring(ENCRYPTED.length + 1); // strip 'encrypted_' off the string\n }\n return str;\n};\n\n/**\n * Type guard function to check if a string is a valid SFFieldType.\n * This is used to narrow down the type of a string to a valid SF field type.\n * If the string is a valid SF field, the function returns `true` and the type of the string becomes `SFFieldType`.\n * If the string is not a valid SF field, the function returns `false` and the type of the string remains `string`.\n * @param value - the string to check if it is a valid SF field\n * @returns `true` if the string is a valid SF field, `false` otherwise\n */\nexport function isSecuredField(value: string): value is SFFieldType {\n return (ALL_SECURED_FIELDS as readonly string[]).includes(value);\n}\n"],"names":["getCardImageUrl","brand","resources","type","imageOptions","extension","getImage","fieldTypeToSnakeCase","fieldType","str","camelCaseToSnakeCase","isSecuredField","substring","ENCRYPTED","length","value","ALL_SECURED_FIELDS","includes"],"mappings":"0IAQO,MAAMA,EAAkB,CAACC,EAAOC,KACnC,MAAMC,EAAiB,SAAVF,EAAmB,SAAWA,GAAS,SAE9CG,EAAe,CACjBD,OACAE,UAAW,OAGf,OAAOH,EAAUI,SAASF,EAAnBF,CAAiCC,IAO/BI,EAAwBC,IACjC,IAAIC,EAAMC,EAAqBF,GAK/B,OAHIG,EAAeH,KACfC,EAAMA,EAAIG,UAAUC,EAAUC,OAAS,IAEpCL,GAWJ,SAASE,EAAeI,GAC3B,OAAQC,EAAyCC,SAASF,EAC9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.js","sources":["../../../../../src/components/internal/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport './SegmentedControl.scss';\nimport { stopPropagationForActionKeys } from '../Button/stopPropagationForActionKeys';\n\nexport interface SegmentedControlOption<T> {\n label: string;\n value: T;\n id: string;\n controls: string;\n htmlProps?: {};\n}\n\nexport type SegmentedControlOptions<T> = Array<SegmentedControlOption<T>>;\n\nexport interface SegmentedControlProps<T> {\n classNameModifiers?: string[];\n selectedValue: T;\n disabled?: boolean;\n options: SegmentedControlOptions<T>;\n onChange(value: T, event: MouseEvent): void;\n}\n\n/**\n *\n * example:\n * <SegmentedControl\n * onChange={(value) = setMode(value)}\n * selectedValue={mode}\n * disabled={status === 'loading'}\n * classNameModifiers={['css-class']}\n * options={segmentedControlOptions}\n * />\n *\n * @param classNameModifiers\n * @param selectedValue\n * @param disabled\n * @param options\n * @param onChange\n * @constructor\n */\nexport const SegmentedControl = <T,>({ classNameModifiers = [], selectedValue, disabled = false, options, onChange }: SegmentedControlProps<T>) => {\n if (!options || options.length === 0) {\n return null;\n }\n\n return (\n <div\n className={cx(\n 'adyen-checkout__segmented-control',\n { 'adyen-checkout__segmented-control--disabled': disabled },\n ...classNameModifiers.map(modifier => `adyen-checkout__segmented-control--${modifier}`)\n )}\n role=\"group\"\n >\n {options.map(({ label, value, controls, htmlProps }: SegmentedControlOption<T>) => (\n <button\n disabled={disabled}\n key={value}\n onClick={(event: MouseEvent) => onChange(value, event)}\n // Workaround: See ADR-0001-uielement-keyboard-event-propagation-workaround\n onKeyPress={stopPropagationForActionKeys}\n onKeyDown={stopPropagationForActionKeys}\n className={cx('adyen-checkout__segmented-control-segment', {\n 'adyen-checkout__segmented-control-segment--selected': selectedValue === value\n })}\n aria-controls={controls}\n aria-expanded={selectedValue === value}\n type=\"button\"\n {...htmlProps}\n >\n {label}\n </button>\n ))}\n </div>\n );\n};\n"],"names":["SegmentedControl","classNameModifiers","selectedValue","disabled","options","onChange","length","h","div","className","cx","map","modifier","role","label","value","controls","htmlProps","button","key","onClick","event","onKeyPress","stopPropagationForActionKeys","onKeyDown","aria-controls","aria-expanded","type"],"mappings":"2MAyCO,MAAMA,EAAmB,EAAOC,qBAAqB,GAAIC,gBAAeC,YAAW,EAAOC,UAASC,cACjGD,GAA8B,IAAnBA,EAAQE,OAKpBC,EAACC,MAAAA,CACGC,UAAWC,EACP,oCACA,CAAE,8CAA+CP,MAC9CF,EAAmBU,IAAIC,GAAY,sCAAsCA,MAEhFC,KAAK,SAEJT,EAAQO,IAAI,EAAGG,QAAOC,QAAOC,WAAUC,eACpCV,EAACW,SAAAA,CACGf,SAAUA,EACVgB,IAAKJ,EACLK,QAAUC,GAAsBhB,EAASU,EAAOM,GAEhDC,WAAYC,EACZC,UAAWD,EACXd,UAAWC,EAAG,4CAA6C,CACvD,sDAAuDR,IAAkBa,IAE7EU,gBAAeT,EACfU,gBAAexB,IAAkBa,EACjCY,KAAK,YACDV,GAEHH,KA5BN"}
1
+ {"version":3,"file":"SegmentedControl.js","sources":["../../../../../src/components/internal/SegmentedControl/SegmentedControl.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport './SegmentedControl.scss';\nimport { stopPropagationForActionKeys } from '../Button/stopPropagationForActionKeys';\n\nexport interface SegmentedControlOption<T> {\n readonly label: string;\n readonly value: T;\n readonly id: string;\n readonly controls: string;\n readonly htmlProps?: {};\n}\n\nexport type SegmentedControlOptions<T> = Array<SegmentedControlOption<T>>;\n\nexport interface SegmentedControlProps<T> {\n classNameModifiers?: string[];\n selectedValue: T;\n disabled?: boolean;\n options: SegmentedControlOptions<T>;\n onChange: (value: T, event: MouseEvent) => void;\n}\n\n/**\n *\n * example:\n * <SegmentedControl\n * onChange={(value) = setMode(value)}\n * selectedValue={mode}\n * disabled={status === 'loading'}\n * classNameModifiers={['css-class']}\n * options={segmentedControlOptions}\n * />\n *\n * @param classNameModifiers\n * @param selectedValue\n * @param disabled\n * @param options\n * @param onChange\n * @constructor\n */\nexport const SegmentedControl = <T,>({\n classNameModifiers = [],\n selectedValue,\n disabled = false,\n options,\n onChange\n}: Readonly<SegmentedControlProps<T>>) => {\n if (!options || options.length === 0) {\n return null;\n }\n\n return (\n <div\n className={cx(\n 'adyen-checkout__segmented-control',\n { 'adyen-checkout__segmented-control--disabled': disabled },\n ...classNameModifiers.map(modifier => `adyen-checkout__segmented-control--${modifier}`)\n )}\n role=\"group\"\n >\n {options.map(({ label, value, controls, htmlProps }: SegmentedControlOption<T>) => (\n <button\n disabled={disabled}\n key={value}\n onClick={(event: MouseEvent) => onChange(value, event)}\n // Workaround: See ADR-0001-uielement-keyboard-event-propagation-workaround\n onKeyPress={stopPropagationForActionKeys}\n onKeyDown={stopPropagationForActionKeys}\n className={cx('adyen-checkout__segmented-control-segment', {\n 'adyen-checkout__segmented-control-segment--selected': selectedValue === value\n })}\n aria-controls={controls}\n aria-expanded={selectedValue === value}\n type=\"button\"\n {...htmlProps}\n >\n {label}\n </button>\n ))}\n </div>\n );\n};\n"],"names":["SegmentedControl","classNameModifiers","selectedValue","disabled","options","onChange","length","h","div","className","cx","map","modifier","role","label","value","controls","htmlProps","button","key","onClick","event","onKeyPress","stopPropagationForActionKeys","onKeyDown","aria-controls","aria-expanded","type"],"mappings":"2MAyCO,MAAMA,EAAmB,EAC5BC,qBAAqB,GACrBC,gBACAC,YAAW,EACXC,UACAC,cAEKD,GAA8B,IAAnBA,EAAQE,OAKpBC,EAACC,MAAAA,CACGC,UAAWC,EACP,oCACA,CAAE,8CAA+CP,MAC9CF,EAAmBU,IAAIC,GAAY,sCAAsCA,MAEhFC,KAAK,SAEJT,EAAQO,IAAI,EAAGG,QAAOC,QAAOC,WAAUC,eACpCV,EAACW,SAAAA,CACGf,SAAUA,EACVgB,IAAKJ,EACLK,QAAUC,GAAsBhB,EAASU,EAAOM,GAEhDC,WAAYC,EACZC,UAAWD,EACXd,UAAWC,EAAG,4CAA6C,CACvD,sDAAuDR,IAAkBa,IAE7EU,gBAAeT,EACfU,gBAAexB,IAAkBa,EACjCY,KAAK,YACDV,GAEHH,KA5BN"}
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControlRegion.js","sources":["../../../../../src/components/internal/SegmentedControl/SegmentedControlRegion.tsx"],"sourcesContent":["import { h } from 'preact';\n\nexport interface SegmentedControlRegionProps {\n id: string;\n ariaLabelledBy: string;\n className?: string;\n children: h.JSX.Element | h.JSX.Element[];\n}\n\nexport const SegmentedControlRegion = ({ id, ariaLabelledBy, className, children }: SegmentedControlRegionProps) => {\n return (\n <div id={id} aria-labelledby={ariaLabelledBy} className={className} role=\"region\">\n {children}\n </div>\n );\n};\n"],"names":["SegmentedControlRegion","id","ariaLabelledBy","className","children","h","div","aria-labelledby","role"],"mappings":"wEASO,MAAMA,EAAyB,EAAGC,KAAIC,iBAAgBC,YAAWC,cAEhEC,EAACC,MAAAA,CAAIL,GAAIA,EAAIM,kBAAiBL,EAAgBC,UAAWA,EAAWK,KAAK,UACpEJ"}
1
+ {"version":3,"file":"SegmentedControlRegion.js","sources":["../../../../../src/components/internal/SegmentedControl/SegmentedControlRegion.tsx"],"sourcesContent":["import { h } from 'preact';\n\nexport interface SegmentedControlRegionProps {\n id: string;\n ariaLabelledBy: string;\n className?: string;\n children: h.JSX.Element | h.JSX.Element[];\n}\n\nexport const SegmentedControlRegion = ({ id, ariaLabelledBy, className, children }: Readonly<SegmentedControlRegionProps>) => {\n return (\n <div id={id} aria-labelledby={ariaLabelledBy} className={className} role=\"region\">\n {children}\n </div>\n );\n};\n"],"names":["SegmentedControlRegion","id","ariaLabelledBy","className","children","h","div","aria-labelledby","role"],"mappings":"wEASO,MAAMA,EAAyB,EAAGC,KAAIC,iBAAgBC,YAAWC,cAEhEC,EAACC,MAAAA,CAAIL,GAAIA,EAAIM,kBAAiBL,EAAgBC,UAAWA,EAAWK,KAAK,UACpEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","sources":["../../../../../src/components/internal/Spinner/Spinner.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './Spinner.scss';\n\ninterface SpinnerProps {\n /**\n * Whether the spinner should be rendered inline\n */\n inline?: boolean;\n\n /**\n * size of the spinner (small/medium/large)\n */\n size?: string;\n}\n\n/**\n * Default Loading Spinner\n * @param props -\n */\nconst Spinner = ({ inline = false, size = 'large' }: SpinnerProps) => (\n <div data-testid=\"spinner\" className={`adyen-checkout__spinner__wrapper ${inline ? 'adyen-checkout__spinner__wrapper--inline' : ''}`}>\n <div className={`adyen-checkout__spinner adyen-checkout__spinner--${size}`} />\n </div>\n);\n\nexport default Spinner;\n"],"names":["Spinner","inline","size","h","div","data-testid","className"],"mappings":"wEAmBA,MAAMA,EAAU,EAAGC,UAAS,EAAOC,OAAO,WACtCC,EAACC,MAAAA,CAAIC,cAAY,UAAUC,UAAW,qCAAoCL,EAAS,2CAA6C,KAC5HE,EAACC,MAAAA,CAAIE,UAAW,oDAAoDJ"}
1
+ {"version":3,"file":"Spinner.js","sources":["../../../../../src/components/internal/Spinner/Spinner.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './Spinner.scss';\n\ninterface SpinnerProps {\n /**\n * Whether the spinner should be rendered inline\n */\n inline?: boolean;\n\n /**\n * size of the spinner (small/medium/large)\n */\n size?: string;\n}\n\n/**\n * Default Loading Spinner\n * @param props -\n */\nconst Spinner = ({ inline = false, size = 'large' }: Readonly<SpinnerProps>) => (\n <div data-testid=\"spinner\" className={`adyen-checkout__spinner__wrapper ${inline ? 'adyen-checkout__spinner__wrapper--inline' : ''}`}>\n <div className={`adyen-checkout__spinner adyen-checkout__spinner--${size}`} />\n </div>\n);\n\nexport default Spinner;\n"],"names":["Spinner","inline","size","h","div","data-testid","className"],"mappings":"wEAmBA,MAAMA,EAAU,EAAGC,UAAS,EAAOC,OAAO,WACtCC,EAACC,MAAAA,CAAIC,cAAY,UAAUC,UAAW,qCAAoCL,EAAS,2CAA6C,KAC5HE,EAACC,MAAAA,CAAIE,UAAW,oDAAoDJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"StoreDetails.js","sources":["../../../../../src/components/internal/StoreDetails/StoreDetails.tsx"],"sourcesContent":["import { useState, useEffect } from 'preact/hooks';\nimport { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Checkbox from '../FormFields/Checkbox';\nimport cx from 'classnames';\n\nimport './StoreDetails.scss';\n\ninterface StoreDetailsProps {\n storeDetails?: boolean;\n onChange: (value: boolean) => void;\n disabled?: boolean;\n className?: string;\n}\n\n/**\n * \"Store details\" generic checkbox\n */\nfunction StoreDetails({ storeDetails = false, disabled = false, className = '', ...props }: StoreDetailsProps) {\n const { i18n } = useCoreContext();\n const [value, setValue] = useState(storeDetails);\n\n const onChange = e => {\n setValue(e.target.checked);\n };\n\n useEffect(() => {\n props.onChange(value);\n }, [value]);\n\n return (\n <div className={cx('adyen-checkout__store-details', className)}>\n <Checkbox onChange={onChange} disabled={disabled} label={i18n.get('storeDetails')} name={'storeDetails'} />\n </div>\n );\n}\n\nexport default StoreDetails;\n"],"names":["StoreDetails","storeDetails","disabled","className","props","i18n","useCoreContext","value","setValue","useState","useEffect","onChange","h","div","cx","Checkbox","e","target","checked","label","get","name"],"mappings":"kUAkBA,SAASA,GAAaC,aAAEA,GAAe,EAAKC,SAAEA,GAAW,EAAKC,UAAEA,EAAY,MAAOC,IAC/E,MAAMC,KAAEA,GAASC,KACVC,EAAOC,GAAYC,EAASR,GAUnC,OAJAS,EAAU,KACNN,EAAMO,SAASJ,IAChB,CAACA,IAGAK,EAACC,MAAAA,CAAIV,UAAWW,EAAG,gCAAiCX,IAChDS,EAACG,EAAAA,CAASJ,SAVDK,IACbR,EAASQ,EAAEC,OAAOC,UASgBhB,SAAUA,EAAUiB,MAAOd,EAAKe,IAAI,gBAAiBC,KAAM,iBAGrG"}
1
+ {"version":3,"file":"StoreDetails.js","sources":["../../../../../src/components/internal/StoreDetails/StoreDetails.tsx"],"sourcesContent":["import { useState, useEffect } from 'preact/hooks';\nimport { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Checkbox from '../FormFields/Checkbox';\nimport cx from 'classnames';\n\nimport './StoreDetails.scss';\n\ninterface StoreDetailsProps {\n storeDetails?: boolean;\n onChange: (value: boolean) => void;\n disabled?: boolean;\n className?: string;\n}\n\n/**\n * \"Store details\" generic checkbox\n */\nfunction StoreDetails({ storeDetails = false, disabled = false, className = '', ...props }: Readonly<StoreDetailsProps>) {\n const { i18n } = useCoreContext();\n const [value, setValue] = useState(storeDetails);\n\n const onChange = e => {\n setValue(e.target.checked);\n };\n\n useEffect(() => {\n props.onChange(value);\n }, [value]);\n\n return (\n <div className={cx('adyen-checkout__store-details', className)}>\n <Checkbox onChange={onChange} disabled={disabled} label={i18n.get('storeDetails')} name={'storeDetails'} />\n </div>\n );\n}\n\nexport default StoreDetails;\n"],"names":["StoreDetails","storeDetails","disabled","className","props","i18n","useCoreContext","value","setValue","useState","useEffect","onChange","h","div","cx","Checkbox","e","target","checked","label","get","name"],"mappings":"kUAkBA,SAASA,GAAaC,aAAEA,GAAe,EAAKC,SAAEA,GAAW,EAAKC,UAAEA,EAAY,MAAOC,IAC/E,MAAMC,KAAEA,GAASC,KACVC,EAAOC,GAAYC,EAASR,GAUnC,OAJAS,EAAU,KACNN,EAAMO,SAASJ,IAChB,CAACA,IAGAK,EAACC,MAAAA,CAAIV,UAAWW,EAAG,gCAAiCX,IAChDS,EAACG,EAAAA,CAASJ,SAVDK,IACbR,EAASQ,EAAEC,OAAOC,UASgBhB,SAAUA,EAAUiB,MAAOd,EAAKe,IAAI,gBAAiBC,KAAM,iBAGrG"}
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.js","sources":["../../../../../src/components/internal/Timeline/Timeline.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './Timeline.scss';\n\ninterface Timeline {\n instructions: string[];\n}\n\nconst Timeline = ({ instructions }: Timeline) => {\n if (!instructions || instructions.length === 0) {\n return null;\n }\n\n return (\n <div className=\"adyen-checkout-timeline\">\n <ol className=\"adyen-checkout-timeline__items\">\n {instructions.map((value, index) => (\n <li className=\"adyen-checkout-timeline-item\" key={index}>\n <div className=\"adyen-checkout-timeline-item__row\">\n <div aria-hidden=\"true\" className=\"adyen-checkout-timeline-item__marker\">\n <svg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\">\n <path\n fill=\"#00112C\"\n d=\"M5.5 3.25C4.25736 3.25 3.25 4.25736 3.25 5.5V10.5C3.25 11.7426 4.25736 12.75 5.5 12.75H10.5C11.7426 12.75 12.75 11.7426 12.75 10.5V5.5C12.75 4.25736 11.7426 3.25 10.5 3.25H5.5Z\"\n ></path>\n </svg>\n <div className=\"adyen-checkout-timeline-item__separator\"></div>\n </div>\n <div className=\"adyen-checkout-timeline-item__content\">\n <div className=\"adyen-checkout-timeline-item__title\">{value}</div>\n </div>\n </div>\n </li>\n ))}\n </ol>\n </div>\n );\n};\n\nexport { Timeline };\n"],"names":["Timeline","instructions","length","h","div","className","ol","map","value","index","li","key","aria-hidden","svg","role","xmlns","width","height","fill","path","d"],"mappings":"wEAOA,MAAMA,EAAW,EAAGC,kBACXA,GAAwC,IAAxBA,EAAaC,OAK9BC,EAACC,MAAAA,CAAIC,UAAU,2BACXF,EAACG,KAAAA,CAAGD,UAAU,kCACTJ,EAAaM,IAAI,CAACC,EAAOC,IACtBN,EAACO,KAAAA,CAAGL,UAAU,+BAA+BM,IAAKF,GAC9CN,EAACC,MAAAA,CAAIC,UAAU,qCACXF,EAACC,MAAAA,CAAIQ,cAAY,OAAOP,UAAU,wCAC9BF,EAACU,MAAAA,CAAIC,KAAK,MAAMC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,KAAK,QAC3Ef,EAACgB,OAAAA,CACGD,KAAK,UACLE,EAAE,sLAGVjB,EAACC,MAAAA,CAAIC,UAAU,6CAEnBF,EAACC,MAAAA,CAAIC,UAAU,yCACXF,EAACC,MAAAA,CAAIC,UAAU,uCAAuCG,SAnBvE"}
1
+ {"version":3,"file":"Timeline.js","sources":["../../../../../src/components/internal/Timeline/Timeline.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './Timeline.scss';\n\ninterface Timeline {\n instructions: string[];\n}\n\nconst Timeline = ({ instructions }: Readonly<Timeline>) => {\n if (!instructions || instructions.length === 0) {\n return null;\n }\n\n return (\n <div className=\"adyen-checkout-timeline\">\n <ol className=\"adyen-checkout-timeline__items\">\n {instructions.map((value, index) => (\n <li className=\"adyen-checkout-timeline-item\" key={index}>\n <div className=\"adyen-checkout-timeline-item__row\">\n <div aria-hidden=\"true\" className=\"adyen-checkout-timeline-item__marker\">\n <svg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\">\n <path\n fill=\"#00112C\"\n d=\"M5.5 3.25C4.25736 3.25 3.25 4.25736 3.25 5.5V10.5C3.25 11.7426 4.25736 12.75 5.5 12.75H10.5C11.7426 12.75 12.75 11.7426 12.75 10.5V5.5C12.75 4.25736 11.7426 3.25 10.5 3.25H5.5Z\"\n ></path>\n </svg>\n <div className=\"adyen-checkout-timeline-item__separator\"></div>\n </div>\n <div className=\"adyen-checkout-timeline-item__content\">\n <div className=\"adyen-checkout-timeline-item__title\">{value}</div>\n </div>\n </div>\n </li>\n ))}\n </ol>\n </div>\n );\n};\n\nexport { Timeline };\n"],"names":["Timeline","instructions","length","h","div","className","ol","map","value","index","li","key","aria-hidden","svg","role","xmlns","width","height","fill","path","d"],"mappings":"wEAOA,MAAMA,EAAW,EAAGC,kBACXA,GAAwC,IAAxBA,EAAaC,OAK9BC,EAACC,MAAAA,CAAIC,UAAU,2BACXF,EAACG,KAAAA,CAAGD,UAAU,kCACTJ,EAAaM,IAAI,CAACC,EAAOC,IACtBN,EAACO,KAAAA,CAAGL,UAAU,+BAA+BM,IAAKF,GAC9CN,EAACC,MAAAA,CAAIC,UAAU,qCACXF,EAACC,MAAAA,CAAIQ,cAAY,OAAOP,UAAU,wCAC9BF,EAACU,MAAAA,CAAIC,KAAK,MAAMC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,KAAK,QAC3Ef,EAACgB,OAAAA,CACGD,KAAK,UACLE,EAAE,sLAGVjB,EAACC,MAAAA,CAAIC,UAAU,6CAEnBF,EAACC,MAAAA,CAAIC,UAAU,yCACXF,EAACC,MAAAA,CAAIC,UAAU,uCAAuCG,SAnBvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"TimelineWrapper.js","sources":["../../../../../src/components/internal/Timeline/TimelineWrapper.tsx"],"sourcesContent":["import { ComponentChildren, h } from 'preact';\nimport './TimelineWrapper.scss';\n\ninterface TimelineWrapperProps {\n children: ComponentChildren;\n className?: string;\n}\n\nconst TimelineWrapper = ({ children, className }: TimelineWrapperProps) => {\n return <div className={`adyen-checkout-timeline-wrapper ${className}`}>{children}</div>;\n};\n\nexport { TimelineWrapper };\n"],"names":["TimelineWrapper","children","className","h","div"],"mappings":"wEAQA,MAAMA,EAAkB,EAAGC,WAAUC,eAC1BC,EAACC,MAAAA,CAAIF,UAAW,mCAAmCA,KAAcD"}
1
+ {"version":3,"file":"TimelineWrapper.js","sources":["../../../../../src/components/internal/Timeline/TimelineWrapper.tsx"],"sourcesContent":["import { ComponentChildren, h } from 'preact';\nimport './TimelineWrapper.scss';\n\ninterface TimelineWrapperProps {\n children: ComponentChildren;\n className?: string;\n}\n\nconst TimelineWrapper = ({ children, className }: Readonly<TimelineWrapperProps>) => {\n return <div className={`adyen-checkout-timeline-wrapper ${className}`}>{children}</div>;\n};\n\nexport { TimelineWrapper };\n"],"names":["TimelineWrapper","children","className","h","div"],"mappings":"wEAQA,MAAMA,EAAkB,EAAGC,WAAUC,eAC1BC,EAACC,MAAAA,CAAIF,UAAW,mCAAmCA,KAAcD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","sources":["../../../../../src/components/internal/Toggle/Toggle.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport cx from 'classnames';\nimport uuid from '../../../utils/uuid';\nimport './Toggle.scss';\n\ninterface ToggleProps {\n label?: string | h.JSX.Element;\n labelPosition?: 'before' | 'after';\n ariaLabel?: string;\n description?: string;\n checked: boolean;\n disabled?: boolean;\n readonly?: boolean;\n onChange?(checked: boolean): void;\n}\n\nconst Toggle = ({ label, labelPosition = 'after', ariaLabel, description, checked, disabled = false, readonly = false, onChange }: ToggleProps) => {\n const descriptionId = useMemo(() => (description ? `toggle-description-${uuid()}` : null), [description]);\n const computedAriaLabel = useMemo(() => {\n if (ariaLabel) return ariaLabel;\n if (typeof label === 'string') return label;\n return null;\n }, [ariaLabel, label]);\n\n const conditionalClasses = cx({\n 'adyen-checkout-toggle--label-first': labelPosition === 'before',\n 'adyen-checkout-toggle--disabled': disabled,\n 'adyen-checkout-toggle--readonly': readonly\n });\n\n const onInputChange = useCallback(\n (event: Event) => {\n onChange((event.target as HTMLInputElement).checked);\n },\n [onChange]\n );\n\n return (\n <label className={`adyen-checkout-toggle ${conditionalClasses}`}>\n <input\n disabled={disabled}\n checked={checked}\n onChange={onInputChange}\n aria-label={computedAriaLabel}\n aria-readonly={readonly}\n aria-describedby={descriptionId}\n role=\"switch\"\n type=\"checkbox\"\n className=\"adyen-checkout-toggle__input\"\n />\n\n <span aria-hidden={true} className=\"adyen-checkout-toggle__track\">\n <span className=\"adyen-checkout-toggle__handle\">\n {checked && (\n <svg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\">\n <path\n fill=\"#00112C\"\n d=\"M12.0608 6.00011L11.0001 4.93945L7.00011 8.93945L5.00011 6.93945L3.93945 8.00011L7.00011 11.0608L12.0608 6.00011Z\"\n ></path>\n </svg>\n )}\n </span>\n </span>\n\n {label && (\n <span className=\"adyen-checkout-toggle__label-container\">\n <span className=\"adyen-checkout-toggle__label-text\" data-testid=\"inner-label\">\n {label}\n </span>\n {description && (\n <span data-testid=\"description\" className=\"adyen-checkout-toggle__description\" id={descriptionId}>\n {description}\n </span>\n )}\n </span>\n )}\n </label>\n );\n};\n\nexport default Toggle;\n"],"names":["Toggle","label","labelPosition","ariaLabel","description","checked","disabled","readonly","onChange","descriptionId","useMemo","uuid","computedAriaLabel","conditionalClasses","cx","onInputChange","useCallback","event","target","h","className","input","aria-label","aria-readonly","aria-describedby","role","type","span","aria-hidden","svg","xmlns","width","height","fill","path","d","data-testid","id"],"mappings":"gPAiBA,MAAMA,EAAS,EAAGC,QAAOC,gBAAgB,QAASC,YAAWC,cAAaC,UAASC,YAAW,EAAOC,YAAW,EAAOC,eACnH,MAAMC,EAAgBC,EAAQ,IAAON,EAAc,sBAAsBO,MAAW,KAAO,CAACP,IACtFQ,EAAoBF,EAAQ,IAC1BP,IACiB,iBAAVF,EAA2BA,EAC/B,MACR,CAACE,EAAWF,IAETY,EAAqBC,EAAG,CAC1B,qCAAwD,WAAlBZ,EACtC,kCAAmCI,EACnC,kCAAmCC,IAGjCQ,EAAgBC,EACjBC,IACGT,EAASS,EAAOC,OAA4Bb,UAEhD,CAACG,IAGL,OACIW,EAAClB,QAAAA,CAAMmB,UAAW,yBAAyBP,KACvCM,EAACE,QAAAA,CACGf,SAAUA,EACVD,QAASA,EACTG,SAAUO,EACVO,aAAYV,EACZW,gBAAehB,EACfiB,mBAAkBf,EAClBgB,KAAK,SACLC,KAAK,WACLN,UAAU,iCAGdD,EAACQ,OAAAA,CAAKC,eAAa,EAAMR,UAAU,gCAC/BD,EAACQ,OAAAA,CAAKP,UAAU,iCACXf,GACGc,EAACU,MAAAA,CAAIJ,KAAK,MAAMK,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,KAAK,QAC3Ed,EAACe,OAAAA,CACGD,KAAK,UACLE,EAAE,yHAOrBlC,GACGkB,EAACQ,OAAAA,CAAKP,UAAU,0CACZD,EAACQ,OAAAA,CAAKP,UAAU,oCAAoCgB,cAAY,eAC3DnC,GAEJG,GACGe,EAACQ,OAAAA,CAAKS,cAAY,cAAchB,UAAU,qCAAqCiB,GAAI5B,GAC9EL"}
1
+ {"version":3,"file":"Toggle.js","sources":["../../../../../src/components/internal/Toggle/Toggle.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport cx from 'classnames';\nimport uuid from '../../../utils/uuid';\nimport './Toggle.scss';\n\ninterface ToggleProps {\n label?: string | h.JSX.Element;\n labelPosition?: 'before' | 'after';\n ariaLabel?: string;\n description?: string;\n checked: boolean;\n disabled?: boolean;\n readonly?: boolean;\n onChange?(checked: boolean): void;\n}\n\nconst Toggle = ({\n label,\n labelPosition = 'after',\n ariaLabel,\n description,\n checked,\n disabled = false,\n readonly = false,\n onChange\n}: Readonly<ToggleProps>) => {\n const descriptionId = useMemo(() => (description ? `toggle-description-${uuid()}` : null), [description]);\n const computedAriaLabel = useMemo(() => {\n if (ariaLabel) return ariaLabel;\n if (typeof label === 'string') return label;\n return null;\n }, [ariaLabel, label]);\n\n const conditionalClasses = cx({\n 'adyen-checkout-toggle--label-first': labelPosition === 'before',\n 'adyen-checkout-toggle--disabled': disabled,\n 'adyen-checkout-toggle--readonly': readonly\n });\n\n const onInputChange = useCallback(\n (event: Event) => {\n onChange((event.target as HTMLInputElement).checked);\n },\n [onChange]\n );\n\n return (\n <label className={`adyen-checkout-toggle ${conditionalClasses}`}>\n <input\n disabled={disabled}\n checked={checked}\n onChange={onInputChange}\n aria-label={computedAriaLabel}\n aria-readonly={readonly}\n aria-describedby={descriptionId}\n role=\"switch\"\n type=\"checkbox\"\n className=\"adyen-checkout-toggle__input\"\n />\n\n <span aria-hidden={true} className=\"adyen-checkout-toggle__track\">\n <span className=\"adyen-checkout-toggle__handle\">\n {checked && (\n <svg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\">\n <path\n fill=\"#00112C\"\n d=\"M12.0608 6.00011L11.0001 4.93945L7.00011 8.93945L5.00011 6.93945L3.93945 8.00011L7.00011 11.0608L12.0608 6.00011Z\"\n ></path>\n </svg>\n )}\n </span>\n </span>\n\n {label && (\n <span className=\"adyen-checkout-toggle__label-container\">\n <span className=\"adyen-checkout-toggle__label-text\" data-testid=\"inner-label\">\n {label}\n </span>\n {description && (\n <span data-testid=\"description\" className=\"adyen-checkout-toggle__description\" id={descriptionId}>\n {description}\n </span>\n )}\n </span>\n )}\n </label>\n );\n};\n\nexport default Toggle;\n"],"names":["Toggle","label","labelPosition","ariaLabel","description","checked","disabled","readonly","onChange","descriptionId","useMemo","uuid","computedAriaLabel","conditionalClasses","cx","onInputChange","useCallback","event","target","h","className","input","aria-label","aria-readonly","aria-describedby","role","type","span","aria-hidden","svg","xmlns","width","height","fill","path","d","data-testid","id"],"mappings":"gPAiBA,MAAMA,EAAS,EACXC,QACAC,gBAAgB,QAChBC,YACAC,cACAC,UACAC,YAAW,EACXC,YAAW,EACXC,eAEA,MAAMC,EAAgBC,EAAQ,IAAON,EAAc,sBAAsBO,MAAW,KAAO,CAACP,IACtFQ,EAAoBF,EAAQ,IAC1BP,IACiB,iBAAVF,EAA2BA,EAC/B,MACR,CAACE,EAAWF,IAETY,EAAqBC,EAAG,CAC1B,qCAAwD,WAAlBZ,EACtC,kCAAmCI,EACnC,kCAAmCC,IAGjCQ,EAAgBC,EACjBC,IACGT,EAASS,EAAOC,OAA4Bb,UAEhD,CAACG,IAGL,OACIW,EAAClB,QAAAA,CAAMmB,UAAW,yBAAyBP,KACvCM,EAACE,QAAAA,CACGf,SAAUA,EACVD,QAASA,EACTG,SAAUO,EACVO,aAAYV,EACZW,gBAAehB,EACfiB,mBAAkBf,EAClBgB,KAAK,SACLC,KAAK,WACLN,UAAU,iCAGdD,EAACQ,OAAAA,CAAKC,eAAa,EAAMR,UAAU,gCAC/BD,EAACQ,OAAAA,CAAKP,UAAU,iCACXf,GACGc,EAACU,MAAAA,CAAIJ,KAAK,MAAMK,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,KAAK,QAC3Ed,EAACe,OAAAA,CACGD,KAAK,UACLE,EAAE,yHAOrBlC,GACGkB,EAACQ,OAAAA,CAAKP,UAAU,0CACZD,EAACQ,OAAAA,CAAKP,UAAU,oCAAoCgB,cAAY,eAC3DnC,GAEJG,GACGe,EAACQ,OAAAA,CAAKS,cAAY,cAAchB,UAAU,qCAAqCiB,GAAI5B,GAC9EL"}
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonTooltipProvider.js","sources":["../../../../../src/components/internal/Tooltip/SingletonTooltipProvider.tsx"],"sourcesContent":["import { createContext, h, ComponentChildren } from 'preact';\nimport { useState, useEffect, useContext, useRef, useMemo } from 'preact/hooks';\nimport { Tooltip } from './Tooltip';\nimport { TooltipProps } from './types';\nimport { TooltipController } from './TooltipController';\n\ntype TooltipContextValue = {\n id: string;\n showTooltip: (state?: TooltipProps) => void;\n hideTooltip: () => void;\n};\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null);\n\nconst SingletonTooltipProvider = ({ children }: { children?: ComponentChildren }) => {\n const [tooltipProps, setTooltipProps] = useState<TooltipProps | null>(null);\n const tooltipId = useRef(TooltipController.tooltipId);\n /**\n * We use `useRef` instead of `useState` to avoid triggering the `useEffect` again\n * (which would happen if `isPrimary` were a state value in the `useEffect` dependency list).\n * Because we need `TooltipController.onPrimaryReset` to add an event listener ONCE, we don't want\n * to re-run `useEffect` and register it again on every state update.\n *\n * However, we do need a way to re-render, hence added `forceUpdate`.\n */\n const isPrimaryInstanceRef = useRef(false);\n const [, forceUpdate] = useState(0);\n\n useEffect(() => {\n const tryRegister = () => {\n if (TooltipController.canRegisterTooltipHandler()) {\n TooltipController.registerTooltipHandler(setTooltipProps);\n isPrimaryInstanceRef.current = true;\n forceUpdate(r => r + 1);\n } else {\n isPrimaryInstanceRef.current = false;\n forceUpdate(r => r + 1);\n }\n };\n\n tryRegister();\n\n const unsubscribe = TooltipController.onPrimaryReset(() => {\n tryRegister();\n });\n\n return () => {\n // When the primary instance is unmounted, the only tooltip component is gone.\n // So we need to notify other instances, one of the instances should\n // become the primary instance to mount the tooltip component again.\n unsubscribe();\n if (isPrimaryInstanceRef.current) {\n TooltipController.reset();\n }\n };\n }, []);\n\n const contextValue = useMemo(\n () => ({\n showTooltip: (state?: TooltipProps) => TooltipController.showTooltip(state),\n hideTooltip: (state?: TooltipProps) => TooltipController.hideTooltip(state),\n id: tooltipId.current\n }),\n []\n );\n\n return (\n <TooltipContext.Provider value={contextValue}>\n {children}\n {isPrimaryInstanceRef.current && <Tooltip id={tooltipId.current} {...tooltipProps} />}\n </TooltipContext.Provider>\n );\n};\n\nconst useTooltip = () => {\n const ctx = useContext(TooltipContext);\n if (!ctx) {\n throw new Error('useTooltip must be used within a TooltipProvider');\n }\n return ctx;\n};\n\nexport { SingletonTooltipProvider, useTooltip };\n"],"names":["TooltipContext","createContext","SingletonTooltipProvider","children","tooltipProps","setTooltipProps","useState","tooltipId","useRef","TooltipController","isPrimaryInstanceRef","forceUpdate","useEffect","tryRegister","canRegisterTooltipHandler","registerTooltipHandler","current","r","unsubscribe","onPrimaryReset","reset","contextValue","useMemo","showTooltip","state","hideTooltip","id","h","Provider","value","Tooltip","useTooltip","ctx","useContext","Error"],"mappings":"6TAYA,MAAMA,EAAiBC,EAA0C,MAE3DC,EAA2B,EAAGC,eAChC,MAAOC,EAAcC,GAAmBC,EAA8B,MAChEC,EAAYC,EAAOC,EAAkBF,WASrCG,EAAuBF,GAAO,KAC3BG,GAAeL,EAAS,GAEjCM,EAAU,KACN,MAAMC,EAAc,KACZJ,EAAkBK,6BAClBL,EAAkBM,uBAAuBV,GACzCK,EAAqBM,SAAU,EAC/BL,EAAYM,GAAKA,EAAI,KAErBP,EAAqBM,SAAU,EAC/BL,EAAYM,GAAKA,EAAI,KAI7BJ,IAEA,MAAMK,EAAcT,EAAkBU,eAAe,KACjDN,MAGJ,MAAO,KAIHK,IACIR,EAAqBM,SACrBP,EAAkBW,UAG3B,IAEH,MAAMC,EAAeC,EACjB,KAAA,CACIC,YAAcC,GAAyBf,EAAkBc,YAAYC,GACrEC,YAAcD,GAAyBf,EAAkBgB,YAAYD,GACrEE,GAAInB,EAAUS,UAElB,IAGJ,OACIW,EAAC3B,EAAe4B,SAAQ,CAACC,MAAOR,GAC3BlB,EACAO,EAAqBM,SAAWW,EAACG,EAAAA,CAAQJ,GAAInB,EAAUS,WAAaZ,MAK3E2B,EAAa,KACf,MAAMC,EAAMC,EAAWjC,GACvB,IAAKgC,EACD,MAAM,IAAIE,MAAM,oDAEpB,OAAOF"}
1
+ {"version":3,"file":"SingletonTooltipProvider.js","sources":["../../../../../src/components/internal/Tooltip/SingletonTooltipProvider.tsx"],"sourcesContent":["import { createContext, h, ComponentChildren } from 'preact';\nimport { useState, useEffect, useContext, useRef, useMemo } from 'preact/hooks';\nimport { Tooltip } from './Tooltip';\nimport { TooltipProps } from './types';\nimport { TooltipController } from './TooltipController';\n\ntype TooltipContextValue = {\n id: string;\n showTooltip: (state?: TooltipProps) => void;\n hideTooltip: () => void;\n};\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null);\n\nconst SingletonTooltipProvider = ({ children }: Readonly<{ children?: ComponentChildren }>) => {\n const [tooltipProps, setTooltipProps] = useState<TooltipProps | null>(null);\n const tooltipId = useRef(TooltipController.tooltipId);\n /**\n * We use `useRef` instead of `useState` to avoid triggering the `useEffect` again\n * (which would happen if `isPrimary` were a state value in the `useEffect` dependency list).\n * Because we need `TooltipController.onPrimaryReset` to add an event listener ONCE, we don't want\n * to re-run `useEffect` and register it again on every state update.\n *\n * However, we do need a way to re-render, hence added `forceUpdate`.\n */\n const isPrimaryInstanceRef = useRef(false);\n const [, forceUpdate] = useState(0);\n\n useEffect(() => {\n const tryRegister = () => {\n if (TooltipController.canRegisterTooltipHandler()) {\n TooltipController.registerTooltipHandler(setTooltipProps);\n isPrimaryInstanceRef.current = true;\n forceUpdate(r => r + 1);\n } else {\n isPrimaryInstanceRef.current = false;\n forceUpdate(r => r + 1);\n }\n };\n\n tryRegister();\n\n const unsubscribe = TooltipController.onPrimaryReset(() => {\n tryRegister();\n });\n\n return () => {\n // When the primary instance is unmounted, the only tooltip component is gone.\n // So we need to notify other instances, one of the instances should\n // become the primary instance to mount the tooltip component again.\n unsubscribe();\n if (isPrimaryInstanceRef.current) {\n TooltipController.reset();\n }\n };\n }, []);\n\n const contextValue = useMemo(\n () => ({\n showTooltip: (state?: TooltipProps) => TooltipController.showTooltip(state),\n hideTooltip: (state?: TooltipProps) => TooltipController.hideTooltip(state),\n id: tooltipId.current\n }),\n []\n );\n\n return (\n <TooltipContext.Provider value={contextValue}>\n {children}\n {isPrimaryInstanceRef.current && <Tooltip id={tooltipId.current} {...tooltipProps} />}\n </TooltipContext.Provider>\n );\n};\n\nconst useTooltip = () => {\n const ctx = useContext(TooltipContext);\n if (!ctx) {\n throw new Error('useTooltip must be used within a TooltipProvider');\n }\n return ctx;\n};\n\nexport { SingletonTooltipProvider, useTooltip };\n"],"names":["TooltipContext","createContext","SingletonTooltipProvider","children","tooltipProps","setTooltipProps","useState","tooltipId","useRef","TooltipController","isPrimaryInstanceRef","forceUpdate","useEffect","tryRegister","canRegisterTooltipHandler","registerTooltipHandler","current","r","unsubscribe","onPrimaryReset","reset","contextValue","useMemo","showTooltip","state","hideTooltip","id","h","Provider","value","Tooltip","useTooltip","ctx","useContext","Error"],"mappings":"6TAYA,MAAMA,EAAiBC,EAA0C,MAE3DC,EAA2B,EAAGC,eAChC,MAAOC,EAAcC,GAAmBC,EAA8B,MAChEC,EAAYC,EAAOC,EAAkBF,WASrCG,EAAuBF,GAAO,KAC3BG,GAAeL,EAAS,GAEjCM,EAAU,KACN,MAAMC,EAAc,KACZJ,EAAkBK,6BAClBL,EAAkBM,uBAAuBV,GACzCK,EAAqBM,SAAU,EAC/BL,EAAYM,GAAKA,EAAI,KAErBP,EAAqBM,SAAU,EAC/BL,EAAYM,GAAKA,EAAI,KAI7BJ,IAEA,MAAMK,EAAcT,EAAkBU,eAAe,KACjDN,MAGJ,MAAO,KAIHK,IACIR,EAAqBM,SACrBP,EAAkBW,UAG3B,IAEH,MAAMC,EAAeC,EACjB,KAAA,CACIC,YAAcC,GAAyBf,EAAkBc,YAAYC,GACrEC,YAAcD,GAAyBf,EAAkBgB,YAAYD,GACrEE,GAAInB,EAAUS,UAElB,IAGJ,OACIW,EAAC3B,EAAe4B,SAAQ,CAACC,MAAOR,GAC3BlB,EACAO,EAAqBM,SAAWW,EAACG,EAAAA,CAAQJ,GAAInB,EAAUS,WAAaZ,MAK3E2B,EAAa,KACf,MAAMC,EAAMC,EAAWjC,GACvB,IAAKgC,EACD,MAAM,IAAIE,MAAM,oDAEpB,OAAOF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../../../src/components/internal/Tooltip/Tooltip.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef, useEffect, useState, useLayoutEffect } from 'preact/hooks';\nimport { createPortal } from 'preact/compat';\nimport cx from 'classnames';\nimport './Tooltip.scss';\nimport { TooltipPosition, TooltipProps } from './types';\n\n// 8px space between the target and the tooltip\nconst OFFSET = 8;\n\nexport function Tooltip(props: TooltipProps) {\n const tooltipRef = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState<TooltipPosition>('top');\n const [isAnchorVisible, setIsAnchorVisible] = useState<boolean>(true);\n const [style, setStyle] = useState({});\n\n useLayoutEffect(() => {\n if (!props?.visible || !props?.anchorRef?.current || !tooltipRef.current) return;\n\n const updatePosition = () => {\n const anchorEl = props.anchorRef.current;\n const tooltipEl = tooltipRef.current;\n const anchorRect = anchorEl.getBoundingClientRect();\n\n const offsetTop = anchorRect.top + window.scrollY;\n const offsetLeft = anchorRect.left + window.scrollX;\n const spaceAbove = anchorRect.top;\n const spaceBelow = window.innerHeight - anchorRect.bottom;\n\n let newPosition: TooltipPosition;\n if (spaceAbove >= tooltipEl.offsetHeight + OFFSET) {\n newPosition = 'top';\n } else if (spaceBelow >= tooltipEl.offsetHeight + OFFSET) {\n newPosition = 'bottom';\n } else {\n newPosition = spaceBelow > spaceAbove ? 'bottom' : 'top';\n }\n\n const newStyle: any = {\n position: 'absolute',\n left: offsetLeft + anchorRect.width / 2,\n transform: 'translateX(-50%)',\n willChange: 'transform'\n };\n newStyle.top = newPosition === 'top' ? offsetTop - tooltipEl.offsetHeight - OFFSET : offsetTop + anchorRect.height + OFFSET;\n\n setStyle(newStyle);\n setPosition(newPosition);\n };\n\n // We need {capture: true}, if the tooltip is placed inside scrollable containers because:\n // Scroll does not bubble. So if an element inside your page scrolls (like a <div> with overflow: scroll),\n // and you attach a scroll listener on the window without capture: true, it won’t catch those inner scrolls.\n window.addEventListener('scroll', updatePosition, { capture: true });\n window.addEventListener('resize', updatePosition);\n\n updatePosition();\n\n return () => {\n window.removeEventListener('scroll', updatePosition, { capture: true });\n window.removeEventListener('resize', updatePosition);\n };\n }, [props?.visible, props?.anchorRef]);\n\n // Hide the tooltip if it's not in the viewport.\n useEffect(() => {\n const anchor = props?.anchorRef?.current;\n if (!anchor) return;\n\n if ('IntersectionObserver' in window) {\n const observer = new IntersectionObserver(\n ([entry]) => {\n setIsAnchorVisible(entry.isIntersecting);\n },\n { threshold: 0.1 }\n );\n observer.observe(anchor);\n\n return () => {\n observer.disconnect();\n };\n }\n }, [props?.anchorRef]);\n\n return createPortal(\n <div\n id={props.id}\n role=\"tooltip\"\n aria-live={'polite'}\n className={cx({\n 'adyen-checkout-tooltip': true,\n 'adyen-checkout-tooltip--hidden': !props.visible || !isAnchorVisible,\n [`adyen-checkout-tooltip--${position}`]: true\n })}\n ref={tooltipRef}\n style={style}\n >\n {props.text}\n <div className={`adyen-checkout-tooltip-arrow adyen-checkout-tooltip-arrow--${position}`} />\n </div>,\n document.body\n );\n}\n"],"names":["Tooltip","props","tooltipRef","useRef","position","setPosition","useState","isAnchorVisible","setIsAnchorVisible","style","setStyle","useLayoutEffect","visible","anchorRef","current","updatePosition","anchorEl","tooltipEl","anchorRect","getBoundingClientRect","offsetTop","top","window","scrollY","offsetLeft","left","scrollX","spaceAbove","spaceBelow","innerHeight","bottom","newPosition","offsetHeight","newStyle","width","transform","willChange","height","addEventListener","capture","removeEventListener","useEffect","anchor","observer","IntersectionObserver","entry","isIntersecting","threshold","observe","disconnect","createPortal","h","div","id","role","aria-live","className","cx","ref","text","document","body"],"mappings":"wTAUO,SAASA,EAAQC,GACpB,MAAMC,EAAaC,EAAuB,OACnCC,EAAUC,GAAeC,EAA0B,QACnDC,EAAiBC,GAAsBF,GAAkB,IACzDG,EAAOC,GAAYJ,EAAS,CAAA,GAsEnC,OApEAK,EAAgB,KACZ,IAAKV,GAAOW,UAAYX,GAAOY,WAAWC,UAAYZ,EAAWY,QAAS,OAE1E,MAAMC,EAAiB,KACnB,MAAMC,EAAWf,EAAMY,UAAUC,QAC3BG,EAAYf,EAAWY,QACvBI,EAAaF,EAASG,wBAEtBC,EAAYF,EAAWG,IAAMC,OAAOC,QACpCC,EAAaN,EAAWO,KAAOH,OAAOI,QACtCC,EAAaT,EAAWG,IACxBO,EAAaN,OAAOO,YAAcX,EAAWY,OAEnD,IAAIC,EAEAA,EADAJ,GAAcV,EAAUe,aAtBzB,EAuBe,MACPJ,GAAcX,EAAUe,aAxBhC,GA2BeJ,EAAaD,EAFb,SAEqC,MAGvD,MAAMM,EAAgB,CAClB7B,SAAU,WACVqB,KAAMD,EAAaN,EAAWgB,MAAQ,EACtCC,UAAW,mBACXC,WAAY,aAEhBH,EAASZ,IAAsB,QAAhBU,EAAwBX,EAAYH,EAAUe,aApC1D,EAoCkFZ,EAAYF,EAAWmB,OApCzG,EAsCH3B,EAASuB,GACT5B,EAAY0B,IAWhB,OALAT,OAAOgB,iBAAiB,SAAUvB,EAAgB,CAAEwB,SAAS,IAC7DjB,OAAOgB,iBAAiB,SAAUvB,GAElCA,IAEO,KACHO,OAAOkB,oBAAoB,SAAUzB,EAAgB,CAAEwB,SAAS,IAChEjB,OAAOkB,oBAAoB,SAAUzB,KAE1C,CAACd,GAAOW,QAASX,GAAOY,YAG3B4B,EAAU,KACN,MAAMC,EAASzC,GAAOY,WAAWC,QACjC,GAAK4B,GAED,yBAA0BpB,OAAQ,CAClC,MAAMqB,EAAW,IAAIC,qBACjB,EAAEC,MACErC,EAAmBqC,EAAMC,iBAE7B,CAAEC,UAAW,KAIjB,OAFAJ,EAASK,QAAQN,GAEV,KACHC,EAASM,aAEjB,GACD,CAAChD,GAAOY,YAEJqC,EACHC,EAACC,MAAAA,CACGC,GAAIpD,EAAMoD,GACVC,KAAK,UACLC,YAAW,SACXC,UAAWC,EAAG,CACV,0BAA0B,EAC1B,kCAAmCxD,EAAMW,UAAYL,EACrD,CAAC,2BAA2BH,MAAa,IAE7CsD,IAAKxD,EACLO,MAAOA,GAENR,EAAM0D,KACPR,EAACC,MAAAA,CAAII,UAAW,8DAA8DpD,OAElFwD,SAASC,KAEjB"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../../../src/components/internal/Tooltip/Tooltip.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef, useEffect, useState, useLayoutEffect } from 'preact/hooks';\nimport { createPortal } from 'preact/compat';\nimport cx from 'classnames';\nimport './Tooltip.scss';\nimport { TooltipPosition, TooltipProps } from './types';\n\n// 8px space between the target and the tooltip\nconst OFFSET = 8;\n\nexport function Tooltip(props: Readonly<TooltipProps>) {\n const tooltipRef = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState<TooltipPosition>('top');\n const [isAnchorVisible, setIsAnchorVisible] = useState<boolean>(true);\n const [style, setStyle] = useState({});\n\n useLayoutEffect(() => {\n if (!props?.visible || !props?.anchorRef?.current || !tooltipRef.current) return;\n\n const updatePosition = () => {\n const anchorEl = props.anchorRef.current;\n const tooltipEl = tooltipRef.current;\n const anchorRect = anchorEl.getBoundingClientRect();\n\n const offsetTop = anchorRect.top + window.scrollY;\n const offsetLeft = anchorRect.left + window.scrollX;\n const spaceAbove = anchorRect.top;\n const spaceBelow = window.innerHeight - anchorRect.bottom;\n\n let newPosition: TooltipPosition;\n if (spaceAbove >= tooltipEl.offsetHeight + OFFSET) {\n newPosition = 'top';\n } else if (spaceBelow >= tooltipEl.offsetHeight + OFFSET) {\n newPosition = 'bottom';\n } else {\n newPosition = spaceBelow > spaceAbove ? 'bottom' : 'top';\n }\n\n const newStyle: any = {\n position: 'absolute',\n left: offsetLeft + anchorRect.width / 2,\n transform: 'translateX(-50%)',\n willChange: 'transform'\n };\n newStyle.top = newPosition === 'top' ? offsetTop - tooltipEl.offsetHeight - OFFSET : offsetTop + anchorRect.height + OFFSET;\n\n setStyle(newStyle);\n setPosition(newPosition);\n };\n\n // We need {capture: true}, if the tooltip is placed inside scrollable containers because:\n // Scroll does not bubble. So if an element inside your page scrolls (like a <div> with overflow: scroll),\n // and you attach a scroll listener on the window without capture: true, it won’t catch those inner scrolls.\n window.addEventListener('scroll', updatePosition, { capture: true });\n window.addEventListener('resize', updatePosition);\n\n updatePosition();\n\n return () => {\n window.removeEventListener('scroll', updatePosition, { capture: true });\n window.removeEventListener('resize', updatePosition);\n };\n }, [props?.visible, props?.anchorRef]);\n\n // Hide the tooltip if it's not in the viewport.\n useEffect(() => {\n const anchor = props?.anchorRef?.current;\n if (!anchor) return;\n\n if ('IntersectionObserver' in window) {\n const observer = new IntersectionObserver(\n ([entry]) => {\n setIsAnchorVisible(entry.isIntersecting);\n },\n { threshold: 0.1 }\n );\n observer.observe(anchor);\n\n return () => {\n observer.disconnect();\n };\n }\n }, [props?.anchorRef]);\n\n return createPortal(\n <div\n id={props.id}\n role=\"tooltip\"\n aria-live={'polite'}\n className={cx({\n 'adyen-checkout-tooltip': true,\n 'adyen-checkout-tooltip--hidden': !props.visible || !isAnchorVisible,\n [`adyen-checkout-tooltip--${position}`]: true\n })}\n ref={tooltipRef}\n style={style}\n >\n {props.text}\n <div className={`adyen-checkout-tooltip-arrow adyen-checkout-tooltip-arrow--${position}`} />\n </div>,\n document.body\n );\n}\n"],"names":["Tooltip","props","tooltipRef","useRef","position","setPosition","useState","isAnchorVisible","setIsAnchorVisible","style","setStyle","useLayoutEffect","visible","anchorRef","current","updatePosition","anchorEl","tooltipEl","anchorRect","getBoundingClientRect","offsetTop","top","window","scrollY","offsetLeft","left","scrollX","spaceAbove","spaceBelow","innerHeight","bottom","newPosition","offsetHeight","newStyle","width","transform","willChange","height","addEventListener","capture","removeEventListener","useEffect","anchor","observer","IntersectionObserver","entry","isIntersecting","threshold","observe","disconnect","createPortal","h","div","id","role","aria-live","className","cx","ref","text","document","body"],"mappings":"wTAUO,SAASA,EAAQC,GACpB,MAAMC,EAAaC,EAAuB,OACnCC,EAAUC,GAAeC,EAA0B,QACnDC,EAAiBC,GAAsBF,GAAkB,IACzDG,EAAOC,GAAYJ,EAAS,CAAA,GAsEnC,OApEAK,EAAgB,KACZ,IAAKV,GAAOW,UAAYX,GAAOY,WAAWC,UAAYZ,EAAWY,QAAS,OAE1E,MAAMC,EAAiB,KACnB,MAAMC,EAAWf,EAAMY,UAAUC,QAC3BG,EAAYf,EAAWY,QACvBI,EAAaF,EAASG,wBAEtBC,EAAYF,EAAWG,IAAMC,OAAOC,QACpCC,EAAaN,EAAWO,KAAOH,OAAOI,QACtCC,EAAaT,EAAWG,IACxBO,EAAaN,OAAOO,YAAcX,EAAWY,OAEnD,IAAIC,EAEAA,EADAJ,GAAcV,EAAUe,aAtBzB,EAuBe,MACPJ,GAAcX,EAAUe,aAxBhC,GA2BeJ,EAAaD,EAFb,SAEqC,MAGvD,MAAMM,EAAgB,CAClB7B,SAAU,WACVqB,KAAMD,EAAaN,EAAWgB,MAAQ,EACtCC,UAAW,mBACXC,WAAY,aAEhBH,EAASZ,IAAsB,QAAhBU,EAAwBX,EAAYH,EAAUe,aApC1D,EAoCkFZ,EAAYF,EAAWmB,OApCzG,EAsCH3B,EAASuB,GACT5B,EAAY0B,IAWhB,OALAT,OAAOgB,iBAAiB,SAAUvB,EAAgB,CAAEwB,SAAS,IAC7DjB,OAAOgB,iBAAiB,SAAUvB,GAElCA,IAEO,KACHO,OAAOkB,oBAAoB,SAAUzB,EAAgB,CAAEwB,SAAS,IAChEjB,OAAOkB,oBAAoB,SAAUzB,KAE1C,CAACd,GAAOW,QAASX,GAAOY,YAG3B4B,EAAU,KACN,MAAMC,EAASzC,GAAOY,WAAWC,QACjC,GAAK4B,GAED,yBAA0BpB,OAAQ,CAClC,MAAMqB,EAAW,IAAIC,qBACjB,EAAEC,MACErC,EAAmBqC,EAAMC,iBAE7B,CAAEC,UAAW,KAIjB,OAFAJ,EAASK,QAAQN,GAEV,KACHC,EAASM,aAEjB,GACD,CAAChD,GAAOY,YAEJqC,EACHC,EAACC,MAAAA,CACGC,GAAIpD,EAAMoD,GACVC,KAAK,UACLC,YAAW,SACXC,UAAWC,EAAG,CACV,0BAA0B,EAC1B,kCAAmCxD,EAAMW,UAAYL,EACrD,CAAC,2BAA2BH,MAAa,IAE7CsD,IAAKxD,EACLO,MAAOA,GAENR,EAAM0D,KACPR,EAACC,MAAAA,CAAII,UAAW,8DAA8DpD,OAElFwD,SAASC,KAEjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipController.js","sources":["../../../../../src/components/internal/Tooltip/TooltipController.ts"],"sourcesContent":["import { TooltipProps } from './types';\nimport { getUniqueId } from '../../../utils/idGenerator';\n\ntype setTooltipState = (state: TooltipProps | null) => void;\n\nexport class TooltipController {\n public static readonly tooltipId = getUniqueId('adyen-checkout-tooltip');\n private static readonly DEFAULT_TIMEOUT = 100;\n private static readonly PRIMARY_TOOLTIP_RESET_EVENT = 'primary-tooltip-reset';\n private static timeoutId: ReturnType<typeof setTimeout> | null = null;\n private static registered = false;\n private static updateGlobalTooltip: setTooltipState = () => {};\n private static eventTarget = new EventTarget();\n\n public static registerTooltipHandler(fn: setTooltipState): void {\n this.updateGlobalTooltip = fn;\n this.registered = true;\n }\n\n public static canRegisterTooltipHandler(): boolean {\n return !this.registered;\n }\n\n public static showTooltip(state?: TooltipProps) {\n clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => this.updateGlobalTooltip({ ...state, visible: true }), this.DEFAULT_TIMEOUT);\n }\n\n public static hideTooltip(state?: TooltipProps) {\n clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => this.updateGlobalTooltip({ ...state, visible: false }), this.DEFAULT_TIMEOUT);\n }\n\n public static reset() {\n this.registered = false;\n this.updateGlobalTooltip = () => {};\n this.notifyPrimaryReset();\n }\n\n private static notifyPrimaryReset() {\n this.eventTarget.dispatchEvent(new Event(TooltipController.PRIMARY_TOOLTIP_RESET_EVENT));\n }\n\n public static onPrimaryReset(callback: () => void) {\n this.eventTarget.addEventListener(TooltipController.PRIMARY_TOOLTIP_RESET_EVENT, callback);\n return () => this.eventTarget.removeEventListener(TooltipController.PRIMARY_TOOLTIP_RESET_EVENT, callback);\n }\n}\n"],"names":["TooltipController","registerTooltipHandler","fn","this","updateGlobalTooltip","registered","canRegisterTooltipHandler","showTooltip","state","clearTimeout","timeoutId","setTimeout","visible","DEFAULT_TIMEOUT","hideTooltip","reset","notifyPrimaryReset","eventTarget","dispatchEvent","Event","PRIMARY_TOOLTIP_RESET_EVENT","onPrimaryReset","callback","addEventListener","removeEventListener","_define_property","tooltipId","getUniqueId","EventTarget"],"mappings":"oLAKO,MAAMA,EAST,6BAAcC,CAAuBC,GACjCC,KAAKC,oBAAsBF,EAC3BC,KAAKE,YAAa,CACtB,CAEA,gCAAcC,GACV,OAAQH,KAAKE,UACjB,CAEA,kBAAcE,CAAYC,GACtBC,aAAaN,KAAKO,WAClBP,KAAKO,UAAYC,WAAW,IAAMR,KAAKC,oBAAoB,IAAKI,EAAOI,SAAS,IAAST,KAAKU,gBAClG,CAEA,kBAAcC,CAAYN,GACtBC,aAAaN,KAAKO,WAClBP,KAAKO,UAAYC,WAAW,IAAMR,KAAKC,oBAAoB,IAAKI,EAAOI,SAAS,IAAUT,KAAKU,gBACnG,CAEA,YAAcE,GACVZ,KAAKE,YAAa,EAClBF,KAAKC,oBAAsB,OAC3BD,KAAKa,oBACT,CAEA,yBAAeA,GACXb,KAAKc,YAAYC,cAAc,IAAIC,MAAMnB,EAAkBoB,6BAC/D,CAEA,qBAAcC,CAAeC,GAEzB,OADAnB,KAAKc,YAAYM,iBAAiBvB,EAAkBoB,4BAA6BE,GAC1E,IAAMnB,KAAKc,YAAYO,oBAAoBxB,EAAkBoB,4BAA6BE,EACrG,EAxCAG,EADSzB,EACc0B,YAAYC,EAAY,2BAC/CF,EAFSzB,EAEea,kBAAkB,KAC1CY,EAHSzB,EAGeoB,8BAA8B,yBACtDK,EAJSzB,EAIMU,YAAkD,MACjEe,EALSzB,EAKMK,cAAa,GAC5BoB,EANSzB,EAMMI,sBAAuC,QACtDqB,EAPSzB,EAOMiB,cAAc,IAAIW"}
1
+ {"version":3,"file":"TooltipController.js","sources":["../../../../../src/components/internal/Tooltip/TooltipController.ts"],"sourcesContent":["import { TooltipProps } from './types';\nimport { getUniqueId } from '../../../utils/idGenerator';\n\ntype setTooltipState = (state: TooltipProps | null) => void;\n\nexport class TooltipController {\n public static readonly tooltipId = getUniqueId('adyen-checkout-tooltip');\n private static readonly DEFAULT_TIMEOUT = 100;\n private static readonly PRIMARY_TOOLTIP_RESET_EVENT = 'primary-tooltip-reset';\n private static timeoutId: ReturnType<typeof setTimeout> | null = null;\n private static registered = false;\n private static updateGlobalTooltip: setTooltipState = () => {};\n private static readonly eventTarget = new EventTarget();\n\n public static registerTooltipHandler(fn: setTooltipState): void {\n this.updateGlobalTooltip = fn;\n this.registered = true;\n }\n\n public static canRegisterTooltipHandler(): boolean {\n return !this.registered;\n }\n\n public static showTooltip(state?: TooltipProps) {\n clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => this.updateGlobalTooltip({ ...state, visible: true }), this.DEFAULT_TIMEOUT);\n }\n\n public static hideTooltip(state?: TooltipProps) {\n clearTimeout(this.timeoutId);\n this.timeoutId = setTimeout(() => this.updateGlobalTooltip({ ...state, visible: false }), this.DEFAULT_TIMEOUT);\n }\n\n public static reset() {\n this.registered = false;\n this.updateGlobalTooltip = () => {};\n this.notifyPrimaryReset();\n }\n\n private static notifyPrimaryReset() {\n this.eventTarget.dispatchEvent(new Event(TooltipController.PRIMARY_TOOLTIP_RESET_EVENT));\n }\n\n public static onPrimaryReset(callback: () => void) {\n this.eventTarget.addEventListener(TooltipController.PRIMARY_TOOLTIP_RESET_EVENT, callback);\n return () => this.eventTarget.removeEventListener(TooltipController.PRIMARY_TOOLTIP_RESET_EVENT, callback);\n }\n}\n"],"names":["TooltipController","registerTooltipHandler","fn","this","updateGlobalTooltip","registered","canRegisterTooltipHandler","showTooltip","state","clearTimeout","timeoutId","setTimeout","visible","DEFAULT_TIMEOUT","hideTooltip","reset","notifyPrimaryReset","eventTarget","dispatchEvent","Event","PRIMARY_TOOLTIP_RESET_EVENT","onPrimaryReset","callback","addEventListener","removeEventListener","_define_property","tooltipId","getUniqueId","EventTarget"],"mappings":"oLAKO,MAAMA,EAST,6BAAcC,CAAuBC,GACjCC,KAAKC,oBAAsBF,EAC3BC,KAAKE,YAAa,CACtB,CAEA,gCAAcC,GACV,OAAQH,KAAKE,UACjB,CAEA,kBAAcE,CAAYC,GACtBC,aAAaN,KAAKO,WAClBP,KAAKO,UAAYC,WAAW,IAAMR,KAAKC,oBAAoB,IAAKI,EAAOI,SAAS,IAAST,KAAKU,gBAClG,CAEA,kBAAcC,CAAYN,GACtBC,aAAaN,KAAKO,WAClBP,KAAKO,UAAYC,WAAW,IAAMR,KAAKC,oBAAoB,IAAKI,EAAOI,SAAS,IAAUT,KAAKU,gBACnG,CAEA,YAAcE,GACVZ,KAAKE,YAAa,EAClBF,KAAKC,oBAAsB,OAC3BD,KAAKa,oBACT,CAEA,yBAAeA,GACXb,KAAKc,YAAYC,cAAc,IAAIC,MAAMnB,EAAkBoB,6BAC/D,CAEA,qBAAcC,CAAeC,GAEzB,OADAnB,KAAKc,YAAYM,iBAAiBvB,EAAkBoB,4BAA6BE,GAC1E,IAAMnB,KAAKc,YAAYO,oBAAoBxB,EAAkBoB,4BAA6BE,EACrG,EAxCAG,EADSzB,EACc0B,YAAYC,EAAY,2BAC/CF,EAFSzB,EAEea,kBAAkB,KAC1CY,EAHSzB,EAGeoB,8BAA8B,yBACtDK,EAJSzB,EAIMU,YAAkD,MACjEe,EALSzB,EAKMK,cAAa,GAC5BoB,EANSzB,EAMMI,sBAAuC,QACtDqB,EAPSzB,EAOeiB,cAAc,IAAIW"}