@adyen/adyen-web 6.32.1 → 6.34.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 (360) hide show
  1. package/dist/cjs/adyen.css +5 -4
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +197 -102
  6. package/dist/es/adyen.css +5 -4
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/Ach/Ach.js.map +1 -1
  9. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  10. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  11. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  12. package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
  13. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  14. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  15. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  16. package/dist/es/components/AmazonPay/components/ChangePaymentDetailsButton.js +1 -1
  17. package/dist/es/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  18. package/dist/es/components/AmazonPay/components/SignOutButton.js +1 -1
  19. package/dist/es/components/AmazonPay/components/SignOutButton.js.map +1 -1
  20. package/dist/es/components/AmazonPay/defaultProps.js +1 -1
  21. package/dist/es/components/AmazonPay/defaultProps.js.map +1 -1
  22. package/dist/es/components/AmazonPay/services.js.map +1 -1
  23. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  24. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  25. package/dist/es/components/ApplePay/services/ApplePayService.js +1 -1
  26. package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
  27. package/dist/es/components/ApplePay/utils/payment-request.js +1 -1
  28. package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -1
  29. package/dist/es/components/Boleto/Boleto.js +1 -1
  30. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  31. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  32. package/dist/es/components/Card/Card.js +1 -1
  33. package/dist/es/components/Card/Card.js.map +1 -1
  34. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  35. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  36. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js +1 -1
  37. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  38. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  39. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  40. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  41. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  42. package/dist/es/components/Card/components/CardInput/defaultProps.js +1 -1
  43. package/dist/es/components/Card/components/CardInput/defaultProps.js.map +1 -1
  44. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  45. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  46. package/dist/es/components/Card/components/CardInput/validate.js +1 -1
  47. package/dist/es/components/Card/components/CardInput/validate.js.map +1 -1
  48. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  49. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  50. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  51. package/dist/es/components/CashAppPay/components/CashAppComponent.js +1 -1
  52. package/dist/es/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  53. package/dist/es/components/CashAppPay/services/types.js.map +1 -1
  54. package/dist/es/components/Doku/Doku.js +1 -1
  55. package/dist/es/components/Doku/Doku.js.map +1 -1
  56. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  57. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  58. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js +1 -1
  59. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
  60. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/utils.js +2 -0
  61. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/utils.js.map +1 -0
  62. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js +1 -1
  63. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  64. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  65. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  66. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodName.js +1 -1
  67. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodName.js.map +1 -1
  68. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  69. package/dist/es/components/Iris/Iris.js +1 -1
  70. package/dist/es/components/Iris/Iris.js.map +1 -1
  71. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  72. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  73. package/dist/es/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  74. package/dist/es/components/Oxxo/Oxxo.js +1 -1
  75. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  76. package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  77. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  78. package/dist/es/components/PayPal/Paypal.js +1 -1
  79. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  80. package/dist/es/components/PayPal/components/PaypalButtons.js +1 -1
  81. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  82. package/dist/es/components/PayPal/components/PaypalComponent.js +1 -1
  83. package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
  84. package/dist/es/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.js +1 -1
  85. package/dist/es/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.js.map +1 -1
  86. package/dist/es/components/PayPal/utils/get-paypal-styles.js.map +1 -1
  87. package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -1
  88. package/dist/es/components/Pix/Pix.js +1 -1
  89. package/dist/es/components/Pix/Pix.js.map +1 -1
  90. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  91. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  92. package/dist/es/components/UPI/UPI.js +1 -1
  93. package/dist/es/components/UPI/UPI.js.map +1 -1
  94. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  95. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  96. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  97. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  98. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  99. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  100. package/dist/es/components/UPI/constants.js +1 -1
  101. package/dist/es/components/UPI/constants.js.map +1 -1
  102. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  103. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  104. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  105. package/dist/es/components/internal/BrandIcons/BrandIcons.js +2 -0
  106. package/dist/es/components/internal/BrandIcons/BrandIcons.js.map +1 -0
  107. package/dist/es/components/internal/BrandIcons/BrandIcons.module.scss.js +2 -0
  108. package/dist/es/components/internal/BrandIcons/BrandIcons.module.scss.js.map +1 -0
  109. package/dist/es/components/internal/{Brand/Brand.js → BrandImage/BrandImage.js} +2 -2
  110. package/dist/es/components/internal/BrandImage/BrandImage.js.map +1 -0
  111. package/dist/es/components/internal/Button/Button.js +1 -1
  112. package/dist/es/components/internal/Button/Button.js.map +1 -1
  113. package/dist/es/components/internal/ExpandButton/ExpandButton.js +1 -1
  114. package/dist/es/components/internal/ExpandButton/ExpandButton.js.map +1 -1
  115. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  116. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  117. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  118. package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js +1 -1
  119. package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  120. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/configureCallbacks.js.map +1 -1
  121. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  122. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js +1 -1
  123. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
  124. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
  125. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  126. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  127. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  128. package/dist/es/components/internal/Tooltip/Tooltip.js.map +1 -1
  129. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  130. package/dist/es/core/Analytics/Analytics.js +1 -1
  131. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  132. package/dist/es/core/Analytics/AnalyticsEventQueue.js +1 -1
  133. package/dist/es/core/Analytics/AnalyticsEventQueue.js.map +1 -1
  134. package/dist/es/core/Environment/constants.js +1 -1
  135. package/dist/es/core/Environment/constants.js.map +1 -1
  136. package/dist/es/core/config.js +1 -1
  137. package/dist/es/core/config.js.map +1 -1
  138. package/dist/es/core/core.js +1 -1
  139. package/dist/es/core/core.js.map +1 -1
  140. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  141. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  142. package/dist/es/external/preact/dist/preact.js +1 -1
  143. package/dist/es/external/preact/dist/preact.js.map +1 -1
  144. package/dist/es/external/preact/hooks/dist/hooks.js +1 -1
  145. package/dist/es/external/preact/hooks/dist/hooks.js.map +1 -1
  146. package/dist/es/index.d.ts +197 -102
  147. package/dist/es/language/Language.js +1 -1
  148. package/dist/es/language/Language.js.map +1 -1
  149. package/dist/es/language/LanguageService.js +2 -0
  150. package/dist/es/language/LanguageService.js.map +1 -0
  151. package/dist/es/language/constants.js +1 -1
  152. package/dist/es/language/constants.js.map +1 -1
  153. package/dist/es/language/utils.js +1 -1
  154. package/dist/es/language/utils.js.map +1 -1
  155. package/dist/es/packages/server/translations/en-US.json.js +2 -0
  156. package/dist/es/packages/server/translations/en-US.json.js.map +1 -0
  157. package/dist/es-legacy/adyen.css +5 -4
  158. package/dist/es-legacy/adyen.css.map +1 -1
  159. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  160. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  161. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  162. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  163. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
  164. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  165. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  166. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  167. package/dist/es-legacy/components/AmazonPay/components/ChangePaymentDetailsButton.js +1 -1
  168. package/dist/es-legacy/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  169. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js +1 -1
  170. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js.map +1 -1
  171. package/dist/es-legacy/components/AmazonPay/defaultProps.js +1 -1
  172. package/dist/es-legacy/components/AmazonPay/defaultProps.js.map +1 -1
  173. package/dist/es-legacy/components/AmazonPay/services.js.map +1 -1
  174. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  175. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  176. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js +1 -1
  177. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
  178. package/dist/es-legacy/components/ApplePay/utils/payment-request.js +1 -1
  179. package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
  180. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js +1 -1
  181. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js.map +1 -1
  182. package/dist/es-legacy/components/Boleto/Boleto.js +1 -1
  183. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  184. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  185. package/dist/es-legacy/components/Card/Card.js +1 -1
  186. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  187. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  188. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  189. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js +1 -1
  190. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  191. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  192. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  193. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  194. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  195. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js +1 -1
  196. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js.map +1 -1
  197. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  198. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js +1 -1
  199. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  200. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  201. package/dist/es-legacy/components/Card/components/CardInput/validate.js +1 -1
  202. package/dist/es-legacy/components/Card/components/CardInput/validate.js.map +1 -1
  203. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js +1 -1
  204. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  205. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  206. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  207. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  208. package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js +1 -1
  209. package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  210. package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
  211. package/dist/es-legacy/components/Doku/Doku.js +1 -1
  212. package/dist/es-legacy/components/Doku/Doku.js.map +1 -1
  213. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  214. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  215. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js +1 -1
  216. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
  217. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/utils.js +2 -0
  218. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/utils.js.map +1 -0
  219. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js +1 -1
  220. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  221. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  222. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  223. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  224. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  225. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodName.js +1 -1
  226. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodName.js.map +1 -1
  227. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  228. package/dist/es-legacy/components/GooglePay/requests.js +1 -1
  229. package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
  230. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  231. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  232. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +1 -1
  233. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  234. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  235. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  236. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  237. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  238. package/dist/es-legacy/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  239. package/dist/es-legacy/components/Oxxo/Oxxo.js +1 -1
  240. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  241. package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  242. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  243. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  244. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  245. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  246. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  247. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
  248. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  249. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js +1 -1
  250. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
  251. package/dist/es-legacy/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.js +1 -1
  252. package/dist/es-legacy/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.js.map +1 -1
  253. package/dist/es-legacy/components/PayPal/utils/get-paypal-styles.js.map +1 -1
  254. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -1
  255. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  256. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  257. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  258. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  259. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  260. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  261. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  262. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  263. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  264. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  265. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  266. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  267. package/dist/es-legacy/components/UPI/constants.js +1 -1
  268. package/dist/es-legacy/components/UPI/constants.js.map +1 -1
  269. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  270. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  271. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  272. package/dist/es-legacy/components/internal/BrandIcons/BrandIcons.js +2 -0
  273. package/dist/es-legacy/components/internal/BrandIcons/BrandIcons.js.map +1 -0
  274. package/dist/es-legacy/components/internal/BrandIcons/BrandIcons.module.scss.js +2 -0
  275. package/dist/es-legacy/components/internal/BrandIcons/BrandIcons.module.scss.js.map +1 -0
  276. package/dist/es-legacy/components/internal/{Brand/Brand.js → BrandImage/BrandImage.js} +2 -2
  277. package/dist/es-legacy/components/internal/BrandImage/BrandImage.js.map +1 -0
  278. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  279. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  280. package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js +1 -1
  281. package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js.map +1 -1
  282. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
  283. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  284. package/dist/es-legacy/components/internal/FormFields/ConsentCheckbox/ConsentCheckbox.js +1 -1
  285. package/dist/es-legacy/components/internal/FormFields/ConsentCheckbox/ConsentCheckbox.js.map +1 -1
  286. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  287. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  288. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  289. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  290. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js +1 -1
  291. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  292. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js +1 -1
  293. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  294. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
  295. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  296. package/dist/es-legacy/components/internal/Modal/Modal.js +1 -1
  297. package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
  298. package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
  299. package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js.map +1 -1
  300. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  301. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  302. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js +1 -1
  303. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  304. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js +1 -1
  305. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  306. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  307. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  308. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  309. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  310. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/CSF.js +1 -1
  311. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  312. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/configureCallbacks.js.map +1 -1
  313. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  314. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  315. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js +1 -1
  316. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
  317. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
  318. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  319. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  320. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  321. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js +1 -1
  322. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  323. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
  324. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  325. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  326. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  327. package/dist/es-legacy/core/Analytics/AnalyticsEventQueue.js +1 -1
  328. package/dist/es-legacy/core/Analytics/AnalyticsEventQueue.js.map +1 -1
  329. package/dist/es-legacy/core/Context/Resources.js +1 -1
  330. package/dist/es-legacy/core/Context/Resources.js.map +1 -1
  331. package/dist/es-legacy/core/Environment/constants.js +1 -1
  332. package/dist/es-legacy/core/Environment/constants.js.map +1 -1
  333. package/dist/es-legacy/core/config.js +1 -1
  334. package/dist/es-legacy/core/config.js.map +1 -1
  335. package/dist/es-legacy/core/core.js +1 -1
  336. package/dist/es-legacy/core/core.js.map +1 -1
  337. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  338. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  339. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  340. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  341. package/dist/es-legacy/external/preact/hooks/dist/hooks.js +1 -1
  342. package/dist/es-legacy/external/preact/hooks/dist/hooks.js.map +1 -1
  343. package/dist/es-legacy/language/Language.js +1 -1
  344. package/dist/es-legacy/language/Language.js.map +1 -1
  345. package/dist/es-legacy/language/LanguageService.js +2 -0
  346. package/dist/es-legacy/language/LanguageService.js.map +1 -0
  347. package/dist/es-legacy/language/constants.js +1 -1
  348. package/dist/es-legacy/language/constants.js.map +1 -1
  349. package/dist/es-legacy/language/utils.js +1 -1
  350. package/dist/es-legacy/language/utils.js.map +1 -1
  351. package/dist/es-legacy/packages/server/translations/en-US.json.js +2 -0
  352. package/dist/es-legacy/packages/server/translations/en-US.json.js.map +1 -0
  353. package/package.json +8 -7
  354. package/styles/adyen.css +5 -4
  355. package/dist/es/components/internal/Brand/Brand.js.map +0 -1
  356. package/dist/es/core/Services/get-translations.js +0 -2
  357. package/dist/es/core/Services/get-translations.js.map +0 -1
  358. package/dist/es-legacy/components/internal/Brand/Brand.js.map +0 -1
  359. package/dist/es-legacy/core/Services/get-translations.js +0 -2
  360. package/dist/es-legacy/core/Services/get-translations.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{useState as e,useEffect as t}from"../../../external/preact/hooks/dist/hooks.js";import{createElement as r}from"../../../external/preact/dist/preact.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";import s from"../FormFields/Checkbox/Checkbox.js";import n from"../../../_virtual/index.js";function a(e,t){if(null==e)return{};var r,o,s,n={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(e),s=0;s<r.length;s++)o=r[s],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o]);return n}if(n=function(e,t){if(null==e)return{};var r,o,s={},n=Object.getOwnPropertyNames(e);for(o=0;o<n.length;o++)r=n[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r]);return s}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),s=0;s<r.length;s++)o=r[s],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o]);return n}function l(l){let{storeDetails:i=!1,disabled:c=!1,className:f=""}=l,p=a(l,["storeDetails","disabled","className"]);const{i18n:m}=o(),[d,u]=e(i);return t(()=>{p.onChange(d)},[d]),r("div",{className:n("adyen-checkout__store-details",f)},r(s,{onChange:e=>{u(e.target.checked)},disabled:c,label:m.get("storeDetails"),name:"storeDetails"}))}export{l as default};
1
+ import{useState as e,useEffect as t}from"../../../external/preact/hooks/dist/hooks.js";import{createElement as r}from"../../../external/preact/dist/preact.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";import s from"../FormFields/Checkbox/Checkbox.js";import n from"../../../_virtual/index.js";function a(e,t){if(null==e)return{};var r,o,s,n={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(Object(e)),s=0;s<r.length;s++)o=r[s],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o]);return n}if(n=function(e,t){if(null==e)return{};var r,o,s={},n=Object.getOwnPropertyNames(e);for(o=0;o<n.length;o++)r=n[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r]);return s}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),s=0;s<r.length;s++)o=r[s],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o]);return n}function l(l){let{storeDetails:c=!1,disabled:i=!1,className:f=""}=l,p=a(l,["storeDetails","disabled","className"]);const{i18n:m}=o(),[d,u]=e(c);return t(()=>{p.onChange(d)},[d]),r("div",{className:n("adyen-checkout__store-details",f)},r(s,{onChange:e=>{u(e.target.checked)},disabled:i,label:m.get("storeDetails"),name:"storeDetails"}))}export{l as default};
2
2
  //# sourceMappingURL=StoreDetails.js.map
@@ -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 }: 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","_0","storeDetails","disabled","className","props","i18n","useCoreContext","value","setValue","useState","useEffect","onChange","h","div","cx","Checkbox","e","target","checked","label","get","name"],"mappings":"m7BAkBA,SAASA,EAAaC,OAAAC,aAAEA,GAAe,EAAKC,SAAEA,GAAW,EAAKC,UAAEA,EAAY,IAA2CH,EAApCI,EAAAA,EAAAA,EAAAA,yCAC/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","_0","storeDetails","disabled","className","props","i18n","useCoreContext","value","setValue","useState","useEffect","onChange","h","div","cx","Checkbox","e","target","checked","label","get","name"],"mappings":"27BAkBA,SAASA,EAAaC,OAAAC,aAAEA,GAAe,EAAKC,SAAEA,GAAW,EAAKC,UAAEA,EAAY,IAA2CH,EAApCI,EAAAA,EAAAA,EAAAA,yCAC/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":"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,KACYV,IAAAA,EAAxB,KAAKA,aAAAA,EAAAA,EAAOW,YAAYX,SAAgB,QAAhBA,EAAAA,EAAOY,qBAAPZ,SAAAA,EAAkBa,WAAYZ,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,aAAAA,EAAAA,EAAOW,QAASX,aAAAA,EAAAA,EAAOY,YAG3B4B,EAAU,KACSxC,IAAAA,EAAf,MAAMyC,EAASzC,SAAgB,QAAhBA,EAAAA,EAAOY,iBAAPZ,IAAAA,OAAAA,EAAAA,EAAkBa,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,aAAAA,EAAAA,EAAOY,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: h.JSX.CSSProperties = {\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,KACYV,IAAAA,EAAxB,KAAKA,aAAAA,EAAAA,EAAOW,YAAYX,SAAgB,QAAhBA,EAAAA,EAAOY,qBAAPZ,SAAAA,EAAkBa,WAAYZ,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,EAAgC,CAClC7B,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,aAAAA,EAAAA,EAAOW,QAASX,aAAAA,EAAAA,EAAOY,YAG3B4B,EAAU,KACSxC,IAAAA,EAAf,MAAMyC,EAASzC,SAAgB,QAAhBA,EAAAA,EAAOY,iBAAPZ,IAAAA,OAAAA,EAAAA,EAAkBa,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,aAAAA,EAAAA,EAAOY,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":"UIElement.js","sources":["../../../../../src/components/internal/UIElement/UIElement.tsx"],"sourcesContent":["import { createRef, h, RefObject } from 'preact';\nimport { Resources } from '../../../core/Context/Resources';\nimport AdyenCheckoutError, { NETWORK_ERROR } from '../../../core/Errors/AdyenCheckoutError';\nimport { hasOwnProperty } from '../../../utils/hasOwnProperty';\nimport BaseElement from '../BaseElement/BaseElement';\nimport PayButton from '../PayButton';\nimport { assertIsDropin, cleanupFinalResult, getRegulatoryDefaults, sanitizeResponse, verifyPaymentDidNotFail } from './utils';\n\nimport { AbstractAnalyticsEvent } from '../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { AnalyticsErrorEvent, ErrorEventType } from '../../../core/Analytics/events/AnalyticsErrorEvent';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../../core/Analytics/events/AnalyticsInfoEvent';\nimport { AnalyticsLogEvent, LogEventType } from '../../../core/Analytics/events/AnalyticsLogEvent';\nimport type { CheckoutSessionDetailsResponse, CheckoutSessionPaymentResponse } from '../../../core/CheckoutSession/types';\nimport type { NewableComponent } from '../../../core/core.registry';\nimport CancelError from '../../../core/Errors/CancelError';\nimport type { AdditionalDetailsData, CoreConfiguration, ICore } from '../../../core/types';\nimport type {\n ActionHandledReturnObject,\n CheckoutAdvancedFlowResponse,\n Order,\n PaymentAction,\n PaymentAmount,\n PaymentData,\n PaymentMethodsResponse,\n PaymentResponseData,\n RawPaymentMethod\n} from '../../../types/global-types';\nimport type { IDropin } from '../../Dropin/types';\nimport type { ComponentMethodsRef, UIElementProps, UIElementStatus } from './types';\nimport type { IAnalytics } from '../../../core/Analytics/Analytics';\n\nimport { CoreProvider } from '../../../core/Context/CoreProvider';\nimport { SRPanel } from '../../../core/Errors/SRPanel';\nimport './UIElement.scss';\nimport SRPanelProvider from '../../../core/Errors/SRPanelProvider';\nimport { AmountProvider, AmountProviderRef } from '../../../core/Context/AmountProvider';\nimport { PayButtonProps } from '../PayButton/PayButton';\n\nexport abstract class UIElement<P extends UIElementProps = UIElementProps> extends BaseElement<P> {\n protected componentRef: any;\n\n protected resources: Resources;\n\n public elementRef: UIElement;\n\n public static readonly type = undefined;\n\n /**\n * Reference to the methods exposed by the AmountProvider context\n */\n protected amountProviderRef: RefObject<AmountProviderRef> = createRef();\n\n /**\n * Defines all txVariants that the Component supports (in case it support multiple ones besides the 'type' one)\n */\n public static readonly txVariants: string[] = [];\n\n constructor(checkout: ICore, props?: P) {\n super(checkout, props);\n\n this.core.register(this.constructor as NewableComponent);\n\n this.submit = this.submit.bind(this);\n this.setState = this.setState.bind(this);\n this.onComplete = this.onComplete.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleOrder = this.handleOrder.bind(this);\n this.handleAdditionalDetails = this.handleAdditionalDetails.bind(this);\n this.handleResponse = this.handleResponse.bind(this);\n this.setElementStatus = this.setElementStatus.bind(this);\n this.submitAnalytics = this.submitAnalytics.bind(this);\n this.makePaymentsCall = this.makePaymentsCall.bind(this);\n this.makeAdditionalDetailsCall = this.makeAdditionalDetailsCall.bind(this);\n this.submitUsingSessionsFlow = this.submitUsingSessionsFlow.bind(this);\n this.updateAmount = this.updateAmount.bind(this);\n\n this.elementRef = (props && props.elementRef) || this;\n this.resources = this.props.modules ? this.props.modules.resources : undefined;\n\n this.storeElementRefOnCore(this.props);\n\n this.onEnterKeyPressed = this.onEnterKeyPressed.bind(this);\n this.onActionHandled = this.onActionHandled.bind(this);\n\n this.createBeforeRenderHook(props);\n this.reportIntegrationFlavor();\n }\n\n /**\n * Creates a hook tied to render() method. This hook is called every time render() is invoked.\n * Currently useful for Analytics\n *\n * @param configSetByMerchant\n * @private\n */\n private createBeforeRenderHook(configSetByMerchant: P): void {\n const originalRender = this.render;\n\n this.render = (...args: any[]) => {\n this.beforeRender(configSetByMerchant);\n return originalRender.apply(this, args);\n };\n }\n\n protected beforeRender(configSetByMerchant?: P): void {\n // We don't send 'rendered' events when rendering actions\n if (configSetByMerchant?.originalAction) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.oneClick && { isStoredPaymentMethod: true })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n protected reportIntegrationFlavor(): void {\n void this.analytics.sendFlavor('components');\n }\n\n get analytics(): IAnalytics {\n return this.core.modules.analytics;\n }\n\n get srPanel(): SRPanel {\n return this.core.modules.srPanel;\n }\n\n protected getPaymentMethodConfigFromResponse(componentProps: P) {\n if (componentProps?.storedPaymentMethodId) return this.getStoredPaymentMethodDetails(componentProps.storedPaymentMethodId);\n return this.getPaymentMethodFromPaymentMethodsResponse(componentProps?.type, componentProps?.paymentMethodId);\n }\n\n protected override buildElementProps(componentProps?: P) {\n const globalCoreProps = this.core.getCorePropsForComponent();\n\n const paymentMethodFromResponse = this.getPaymentMethodConfigFromResponse(componentProps);\n\n const finalProps = {\n showPayButton: true,\n ...globalCoreProps,\n ...paymentMethodFromResponse,\n ...componentProps\n };\n\n const isDropinInstance = assertIsDropin(this as unknown as IDropin);\n\n this.props = this.formatProps({\n ...this.constructor['defaultProps'], // component defaults\n ...getRegulatoryDefaults(this.core.options.countryCode, isDropinInstance), // regulatory defaults\n ...finalProps // the rest (inc. merchant defined config)\n });\n }\n\n protected getStoredPaymentMethodDetails(storedPaymentMethodId: string) {\n return this.core.paymentMethodsResponse.findStoredPaymentMethod(storedPaymentMethodId);\n }\n\n /**\n * Get the payment method from the paymentMethodsResponse\n *\n * @param type - The type of the payment method to get. (This prop is passed by Drop-in OR Standalone components containing the property 'type' as part of their configuration)\n * @param paymentMethodId - Unique internal payment method ID\n */\n protected getPaymentMethodFromPaymentMethodsResponse(type?: string, paymentMethodId?: string): RawPaymentMethod {\n if (paymentMethodId) return this.core.paymentMethodsResponse.findById(paymentMethodId);\n return this.core.paymentMethodsResponse?.find(type || this.constructor['type']);\n }\n\n protected storeElementRefOnCore(props?: P) {\n if (!props?.isDropin) {\n this.core.storeElementReference(this);\n }\n }\n\n public isAvailable(): Promise<void> {\n return Promise.resolve();\n }\n\n public setState(newState: object): void {\n this.state = { ...this.state, ...newState };\n this.onChange();\n }\n\n public showValidation(): this {\n if (this.componentRef && this.componentRef.showValidation) this.componentRef.showValidation();\n return this;\n }\n\n /**\n * Updates the amount in the props and propagates it to the AmountProvider.\n * This allows children components to access the updated amount via context.\n *\n * @param amount - Primary payment amount object\n * @param secondaryAmount - Optional secondary amount for display purposes (e.g., converted currency)\n * @internal\n */\n public updateAmount(amount: PaymentAmount, secondaryAmount?: PaymentAmount): void {\n this.props = {\n ...this.props,\n ...(amount && { amount }),\n ...(secondaryAmount && { secondaryAmount })\n };\n this.amountProviderRef.current?.update(amount, secondaryAmount);\n }\n\n /**\n * elementRef is a ref to the subclass that extends UIElement e.g. Card.tsx\n */\n public setElementStatus(status: UIElementStatus, props?: any): this {\n this.elementRef?.setStatus(status, props);\n return this;\n }\n\n /**\n * componentRef is a ref to the primary component inside that subclass e.g. CardInput.tsx\n */\n public setStatus(status: UIElementStatus, props?): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n }\n return this;\n }\n\n protected onChange(): void {\n this.props.onChange?.(\n {\n data: this.data,\n isValid: this.isValid,\n errors: this.state.errors,\n valid: this.state.valid\n },\n this.elementRef\n );\n }\n\n protected override submitAnalytics(event: AbstractAnalyticsEvent) {\n this.analytics.sendAnalytics(event);\n }\n\n public submit(): void {\n if (!this.isValid) {\n this.showValidation();\n return;\n }\n\n this.makePaymentsCall()\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch((e: PaymentResponseData | Error) => {\n if (e instanceof CancelError) {\n this.setElementStatus('ready');\n return;\n }\n this.handleFailedResult(e as PaymentResponseData);\n });\n }\n\n protected makePaymentsCall(): Promise<CheckoutAdvancedFlowResponse | CheckoutSessionPaymentResponse> {\n this.setElementStatus('loading');\n\n if (this.props.onSubmit) {\n return this.submitUsingAdvancedFlow();\n }\n\n if (this.core.session) {\n const beforeSubmitEvent: Promise<PaymentData> = this.props.beforeSubmit\n ? new Promise((resolve, reject) => {\n void this.props.beforeSubmit(this.data, this.elementRef, {\n resolve,\n reject: () => reject(new CancelError('beforeSubmitRejected'))\n });\n })\n : Promise.resolve(this.data);\n\n return beforeSubmitEvent.then(this.submitUsingSessionsFlow);\n }\n\n this.handleError(\n new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'It can not perform /payments call. Callback \"onSubmit\" is missing or Checkout session is not available'\n )\n );\n }\n\n private async submitUsingAdvancedFlow(): Promise<CheckoutAdvancedFlowResponse> {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.submit,\n message: 'Shopper clicked pay'\n });\n this.submitAnalytics(event);\n\n return new Promise<CheckoutAdvancedFlowResponse>((resolve, reject) => {\n this.props.onSubmit(\n {\n data: this.data,\n isValid: this.isValid\n },\n this.elementRef,\n { resolve, reject }\n );\n });\n }\n\n private async submitUsingSessionsFlow(data: PaymentData): Promise<CheckoutSessionPaymentResponse> {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.submit,\n message: 'Shopper clicked pay'\n });\n this.submitAnalytics(event);\n\n try {\n return await this.core.session.submitPayment(data);\n } catch (error: unknown) {\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', 'Error when making /payments call', { cause: error }));\n }\n\n return Promise.reject(error);\n }\n\n // // Uncomment to simulate failed\n // return {\n // resultCode: 'Refused',\n // sessionData:\n // 'Ab02b4c0!BQABAgBKGgqfEz8uQlU4yCIOWjA8bkEwmbJ7Qt4r+x5IPXREu1rMjwNk5MDoHFNlv+MWvinS6nXIDniXgRzXCdSC4ksw9CNDBAjOa+B88wRoj/rLTieuWh/0leR88qkV24vtIkjsIsbJTDB78Pd8wX8MEDsXhaAdEIyX9E8eqxuQ3bwPbvLs1Dlgo1ZrfkQRzaNiuVM8ejRG0IWE1bGThJzY+sJvZZHvlDMXIlxhZcDoQvsMj/WwE6+nFJxBiC3oRzmvVn3AbkLQGtvwq16UUSfYbPzG9dXypJMtcrZAQYq2g/2+BSibCcmee9AXq/wij11BERrYmjbDt5NkkdUnDVgAB7pdqbnWX0A2sxBKeYtLSP2kxp+5LoU/Wty3fmcVA3VKVkHfgmIihkeL8lY++5hvHjnkzOE4tyx/sheiKS4zqoWE43TD6n8mpFskAzwMHq4G2o6vkXqvaKFEq7y/R2fVrCypenmRhkPASizpM265rKLU+L4E/C+LMHfN0LYKRMCrLr0gI2GAp+1PZLHgh0tCtiJC/zcJJtJs6sHNQxLUN+kxJuELUHOcuL3ivjG+mWteUnBENZu7KqOSZYetiWYRiyLOXDiBHqbxuQwTuO54L15VLkS/mYB20etibM1nn+fRmbo+1IJkCSalhwi5D7fSrpjbQTmAsOpJT1N8lC1MSNmAvAwG1kWL4JxYwXDKYyYASnsia2V5IjoiQUYwQUFBMTAzQ0E1MzdFQUVEODdDMjRERDUzOTA5QjgwQTc4QTkyM0UzODIzRDY4REFDQzk0QjlGRjgzMDVEQyJ98uZI4thGveOByYbomCeeP2Gy2rzs99FOBoDYVeWIUjyM+gfnW89DdJZAhxe74Tv0TnL5DRQYPCTRQPOoLbQ21NaeSho70FNE+n8XYKlVK5Ore6BoB6IVCaal5MkM27VmZPMmGflgcPx+pakx+EmRsYGdvYNImYxJYrRk3CI+l3T3ZiVpPPqebaVSLaSkEfu0iOFPjjLUhWN6QW6c18heE5vq/pcoeBf7p0Jgr9I5aBFY0avYG57BDGHzU1ZiQ9LLMTis2BA7Ap9pdNq8FVXL4fnoVHNZiiANOf3uvSknPKBID8sdOXUStA0crmO322FYjDqh1n6FG+D7+OJSayNsXIz6Zoy0eFn4HbT8nt8L2X2tdzkMayCYHXRwKh13Xyleqxt4WoEZmhwTmB3p9d1F0SylWnjcC6o/DnshJ9mMW/8D3oWS30Z7BwRODqKGVahRD0YGRzwMbVnEe5JFRfNvJZdLGl35L9632DVmuFQ0lr/8WNL/NrAJNtI6PXrZMNiza0/omPwPfe5ZYuD1Jgq59TX4h9d+3fdkArcJYL7AdoMZON1YEiWY5EzazQwtHd9yzdty9ZHPxAfuOfCh4OhbhFNp+v5YQ+PzKZ+UpM1VxV863+9XgWEURPNvX7qq1cpUSRzrSGq01QBBM3MKzRh5mAgqIdXgtl7L0EXAep0MECc7QY0/o3tW3VR8eEJGsSzrNxpFItqj0SEaIWo25dRfkl5zuw47GQrN9Qzxl2WV3A38MQPUqFtIr/71Rjkphgg49ZGWEYCwgFmm8jJc2/5qTabSGk4bzwiETCTzeydq30bUGqCwglj8CrFViAuQeTJm7dp+PYKMkUNvQRpnSXMj6Kz7rvAMzhzJgK62ltN2idqKxLC7WtivCUgejuQUvNreCYBQCaKwTwP02lZsJpGF9yw8gbyuoB+2aB7IZmgIB8GP4qVQ/ht5B9z/FLohK/8cSPV/4i32SNNdcwhV',\n // sessionResult:\n // 'X3XtfGC7!H4sIAAAAAAAA/6tWykxRslJyDjaxNDMyM3E2MXIyNDUys3RU0lHKTS1KzkjMK3FMTs4vzSsBKgtJLS7xhYo6Z6QmZ+eXlgAVFpcklpQWA+WLUtNKi1NTlGoBMEEbz1cAAAA=iMsCaEJ5LcnsqIUtmNxjm8HtfQ8gZW8JewEU3wHz4qg='\n // };\n }\n\n protected onComplete(state): void {\n this.handleAdditionalDetails(state);\n }\n\n protected handleError = (error: AdyenCheckoutError): void => {\n /**\n * Set status using elementRef, which:\n * - If Drop-in, will set status for Dropin component, and then it will propagate the new status for the active payment method component\n * - If Component, it will set its own status\n */\n this.setElementStatus('ready');\n\n if (error.name === NETWORK_ERROR && error.options.code) {\n const event = new AnalyticsErrorEvent({\n component: this.type,\n errorType: ErrorEventType.apiError,\n code: error.options.code\n });\n\n this.submitAnalytics(event);\n }\n\n if (this.props.onError) {\n this.props.onError(error, this.elementRef);\n }\n };\n\n protected handleAdditionalDetails(state: AdditionalDetailsData): void {\n this.makeAdditionalDetailsCall(state)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch(this.handleFailedResult);\n }\n\n private makeAdditionalDetailsCall(state: AdditionalDetailsData): Promise<CheckoutSessionDetailsResponse | CheckoutAdvancedFlowResponse> {\n if (this.props.onAdditionalDetails) {\n return new Promise<CheckoutAdvancedFlowResponse>((resolve, reject) => {\n this.props.onAdditionalDetails(state, this.elementRef, { resolve, reject });\n });\n }\n\n if (this.core.session) {\n return this.submitAdditionalDetailsUsingSessionsFlow(state.data);\n }\n\n this.handleError(\n new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'It can not perform /payments/details call. Callback \"onAdditionalDetails\" is missing or Checkout session is not available'\n )\n );\n }\n\n private async submitAdditionalDetailsUsingSessionsFlow(data: any): Promise<CheckoutSessionDetailsResponse> {\n try {\n return await this.core.session.submitDetails(data);\n } catch (error: unknown) {\n if (error instanceof AdyenCheckoutError) this.handleError(error);\n else this.handleError(new AdyenCheckoutError('ERROR', 'Error when making /details call', { cause: error }));\n\n return Promise.reject(error);\n }\n }\n\n public handleAction(action: PaymentAction, props = {}): UIElement | null {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'handleAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('handleAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n const paymentAction = this.core.createFromAction(action, {\n ...this.elementRef.props,\n ...props\n });\n\n if (paymentAction) {\n this.unmount();\n return paymentAction.mount(this._node);\n }\n\n return null;\n }\n\n protected onActionHandled(actionHandledObj: ActionHandledReturnObject) {\n this.props?.onActionHandled?.({ originalAction: this.props.originalAction, ...actionHandledObj });\n }\n\n protected handleOrder = (response: PaymentResponseData): void => {\n const { order } = response;\n\n const updateCorePromise = this.core.session\n ? this.core.update({\n order\n })\n : this.handleAdvanceFlowPaymentMethodsUpdate(order);\n\n void updateCorePromise.then(() => {\n this.props.onOrderUpdated?.({ order });\n });\n };\n\n /**\n * Handles when the payment fails. The payment fails when:\n * - adv flow: the merchant rejects the payment due to a critical error\n * - adv flow: the merchant resolves the payment with a failed resultCode\n * - sessions: a network error occurs when making the payment\n * - sessions: the payment fails with a failed resultCode\n *\n * @param result\n */\n protected handleFailedResult = (result?: PaymentResponseData): void => {\n if (assertIsDropin(this.elementRef)) {\n this.elementRef.displayFinalAnimation('error');\n }\n\n cleanupFinalResult(result);\n this.props.onPaymentFailed?.(result, this.elementRef);\n };\n\n protected handleSuccessResult = (result: PaymentResponseData): void => {\n if (assertIsDropin(this.elementRef)) {\n this.elementRef.displayFinalAnimation('success');\n }\n\n cleanupFinalResult(result);\n this.props.onPaymentCompleted?.(result, this.elementRef);\n };\n\n /**\n * Handles a /payments or /payments/details response.\n * The component will handle automatically actions, orders, and final results.\n *\n * Expected to be called after sanitizeResponse has been run on the raw payment response\n *\n * @param response -\n */\n protected handleResponse(response: PaymentResponseData): void {\n if (response.action) {\n this.elementRef.handleAction(response.action);\n return;\n }\n\n if (response.order?.remainingAmount?.value > 0) {\n // we don't want to call elementRef here, use the component handler\n // we do this way so the logic on handlingOrder is associated with payment method\n this.handleOrder(response);\n return;\n }\n\n this.handleSuccessResult(response);\n }\n\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement> | KeyboardEvent) {\n if (e.key === 'Enter' || e.code === 'Enter') {\n e.preventDefault(); // Prevent <form> submission if Component is placed inside a form\n\n this.onEnterKeyPressed(document?.activeElement, this);\n }\n }\n\n /**\n * Handle Enter key pressed from a UIElement (called via handleKeyPress)\n * @param obj\n */\n protected onEnterKeyPressed(activeElement: Element, component: UIElement) {\n if (this.props.onEnterKeyPressed) {\n this.props.onEnterKeyPressed(activeElement, component);\n } else {\n (activeElement as HTMLElement).blur();\n this.submit();\n }\n }\n\n /**\n * Call update on parent instance\n * This function exist to make safe access to the protected _parentInstance\n * @param options - CoreOptions\n */\n public updateParent(options: CoreConfiguration = {}): Promise<ICore> {\n return this.elementRef.core.update(options);\n }\n\n public setComponentRef = (ref: ComponentMethodsRef) => {\n this.componentRef = ref;\n };\n\n /**\n * Get the current validation status of the element\n */\n public get isValid(): boolean {\n return false;\n }\n\n /**\n * Get the element icon URL for the current environment\n */\n public get icon(): string {\n const type = this.props.paymentMethodType || this.type;\n return this.props.icon ?? this.resources.getImage()(type);\n }\n\n /**\n * Get the element's displayable name\n */\n public get displayName(): string {\n const paymentMethodFromResponse = this.core.paymentMethodsResponse?.paymentMethods?.find(pm => pm.type === this.type);\n return this.props.name || paymentMethodFromResponse?.name || this.type;\n }\n\n /**\n * Get the element accessible name, used in the aria-label of the button that controls selected payment method\n */\n public get accessibleName(): string {\n return this.displayName;\n }\n\n /**\n * Used to display the second line of a payment method item\n */\n get additionalInfo(): string {\n return null;\n }\n\n /**\n * Return the type of an element\n */\n public get type(): string {\n return this.props.type || this.constructor['type'];\n }\n\n /**\n * Get the payButton component for the current element\n */\n protected payButton = (props: PayButtonProps) => {\n return <PayButton {...props} onClick={this.submit} />;\n };\n\n /**\n * Used in the Partial Orders flow.\n * When the Order is updated, the merchant can request new payment methods based on the new remaining amount\n *\n * @private\n */\n protected async handleAdvanceFlowPaymentMethodsUpdate(order: Order | null, amount?: PaymentAmount) {\n return new Promise<void | PaymentMethodsResponse>((resolve, reject) => {\n if (!this.props.onPaymentMethodsRequest) {\n return resolve();\n }\n\n this.props.onPaymentMethodsRequest(\n {\n ...(order && {\n order: {\n orderData: order.orderData,\n pspReference: order.pspReference\n }\n }),\n locale: this.core.options.locale\n },\n { resolve, reject }\n );\n })\n .catch(error => {\n this.handleError(\n new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'Something failed during payment methods update or onPaymentMethodsRequest was not implemented',\n {\n cause: error\n }\n )\n );\n })\n .then(paymentMethodsResponse => {\n // in the case of the session flow we get order, amount, countryCode and shopperLocale from initialize()\n // apply the same logic here for order and amount\n // in the future it might be worth moving this logic to be performed by the core on update()\n // it would make this more consistent\n return this.core.update({\n ...(paymentMethodsResponse && { paymentMethodsResponse }),\n order,\n amount: order ? order.remainingAmount : amount\n });\n });\n }\n\n protected abstract componentToRender(): h.JSX.Element;\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources} analytics={this.analytics}>\n <SRPanelProvider srPanel={this.srPanel}>\n <AmountProvider amount={this.props.amount} secondaryAmount={this.props.secondaryAmount} providerRef={this.amountProviderRef}>\n {this.componentToRender()}\n </AmountProvider>\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default UIElement;\n"],"names":["UIElement","BaseElement","createBeforeRenderHook","configSetByMerchant","originalRender","this","render","args","beforeRender","apply","originalAction","event","AnalyticsInfoEvent","_object_spread","type","InfoEventType","rendered","component","configData","_object_spread_props","showPayButton","props","oneClick","isStoredPaymentMethod","analytics","sendAnalytics","reportIntegrationFlavor","sendFlavor","core","modules","srPanel","getPaymentMethodConfigFromResponse","componentProps","storedPaymentMethodId","getStoredPaymentMethodDetails","getPaymentMethodFromPaymentMethodsResponse","paymentMethodId","buildElementProps","finalProps","getCorePropsForComponent","isDropinInstance","assertIsDropin","formatProps","constructor","getRegulatoryDefaults","options","countryCode","paymentMethodsResponse","findStoredPaymentMethod","_this_core_paymentMethodsResponse","findById","find","storeElementRefOnCore","isDropin","storeElementReference","isAvailable","Promise","resolve","setState","newState","state","onChange","showValidation","componentRef","updateAmount","amount","secondaryAmount","_this_amountProviderRef_current","amountProviderRef","current","update","setElementStatus","status","_this_elementRef","elementRef","setStatus","_this_componentRef","_this_props_onChange","_this_props","call","data","isValid","errors","valid","submitAnalytics","submit","makePaymentsCall","then","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","catch","e","CancelError","handleFailedResult","onSubmit","submitUsingAdvancedFlow","session","beforeSubmit","reject","submitUsingSessionsFlow","handleError","AdyenCheckoutError","AnalyticsLogEvent","LogEventType","message","submitPayment","error","cause","onComplete","handleAdditionalDetails","makeAdditionalDetailsCall","onAdditionalDetails","submitAdditionalDetailsUsingSessionsFlow","submitDetails","handleAction","action","hasOwnProperty","Error","paymentAction","createFromAction","unmount","mount","_node","onActionHandled","actionHandledObj","_this_props_onActionHandled","response","order","remainingAmount","value","handleOrder","handleSuccessResult","handleKeyPress","document","key","code","preventDefault","onEnterKeyPressed","activeElement","blur","updateParent","icon","_this_props_icon","paymentMethodType","resources","getImage","displayName","_this_core_paymentMethodsResponse_paymentMethods","paymentMethodFromResponse","paymentMethods","pm","name","accessibleName","additionalInfo","handleAdvanceFlowPaymentMethodsUpdate","onPaymentMethodsRequest","orderData","pspReference","locale","h","CoreProvider","i18n","loadingContext","SRPanelProvider","AmountProvider","providerRef","componentToRender","checkout","super","_define_property","createRef","NETWORK_ERROR","AnalyticsErrorEvent","errorType","ErrorEventType","apiError","onError","_this_props_onOrderUpdated","onOrderUpdated","result","_this_props_onPaymentFailed","displayFinalAnimation","cleanupFinalResult","onPaymentFailed","_this_props_onPaymentCompleted","onPaymentCompleted","setComponentRef","ref","payButton","PayButton","onClick","register","bind","undefined","txVariants"],"mappings":"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"}
1
+ {"version":3,"file":"UIElement.js","sources":["../../../../../src/components/internal/UIElement/UIElement.tsx"],"sourcesContent":["import { createRef, h, RefObject } from 'preact';\nimport { Resources } from '../../../core/Context/Resources';\nimport AdyenCheckoutError, { NETWORK_ERROR } from '../../../core/Errors/AdyenCheckoutError';\nimport { hasOwnProperty } from '../../../utils/hasOwnProperty';\nimport BaseElement from '../BaseElement/BaseElement';\nimport PayButton from '../PayButton';\nimport { assertIsDropin, cleanupFinalResult, getRegulatoryDefaults, sanitizeResponse, verifyPaymentDidNotFail } from './utils';\n\nimport { AbstractAnalyticsEvent } from '../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { AnalyticsErrorEvent, ErrorEventType } from '../../../core/Analytics/events/AnalyticsErrorEvent';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../../core/Analytics/events/AnalyticsInfoEvent';\nimport { AnalyticsLogEvent, LogEventType } from '../../../core/Analytics/events/AnalyticsLogEvent';\nimport type { CheckoutSessionDetailsResponse, CheckoutSessionPaymentResponse } from '../../../core/CheckoutSession/types';\nimport type { NewableComponent } from '../../../core/core.registry';\nimport CancelError from '../../../core/Errors/CancelError';\nimport type { AdditionalDetailsData, CoreConfiguration, ICore } from '../../../core/types';\nimport type {\n ActionHandledReturnObject,\n CheckoutAdvancedFlowResponse,\n Order,\n PaymentAction,\n PaymentAmount,\n PaymentData,\n PaymentMethodsResponse,\n PaymentResponseData,\n RawPaymentMethod\n} from '../../../types/global-types';\nimport type { IDropin } from '../../Dropin/types';\nimport type { ComponentMethodsRef, UIElementProps, UIElementStatus } from './types';\nimport type { IAnalytics } from '../../../core/Analytics/Analytics';\n\nimport { CoreProvider } from '../../../core/Context/CoreProvider';\nimport { SRPanel } from '../../../core/Errors/SRPanel';\nimport SRPanelProvider from '../../../core/Errors/SRPanelProvider';\nimport { AmountProvider, AmountProviderRef } from '../../../core/Context/AmountProvider';\nimport { PayButtonProps } from '../PayButton/PayButton';\nimport './UIElement.scss';\n\nexport abstract class UIElement<P extends UIElementProps = UIElementProps> extends BaseElement<P> {\n protected componentRef: any;\n\n protected resources: Resources;\n\n public elementRef: UIElement;\n\n public static readonly type: string | undefined = undefined;\n\n /**\n * Reference to the methods exposed by the AmountProvider context\n */\n protected amountProviderRef: RefObject<AmountProviderRef> = createRef();\n\n /**\n * Defines all txVariants that the Component supports (in case it support multiple ones besides the 'type' one)\n */\n public static readonly txVariants: string[] = [];\n\n constructor(checkout: ICore, props?: P) {\n super(checkout, props);\n\n this.core.register(this.constructor as NewableComponent);\n\n this.submit = this.submit.bind(this);\n this.setState = this.setState.bind(this);\n this.onComplete = this.onComplete.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleOrder = this.handleOrder.bind(this);\n this.handleAdditionalDetails = this.handleAdditionalDetails.bind(this);\n this.handleResponse = this.handleResponse.bind(this);\n this.setElementStatus = this.setElementStatus.bind(this);\n this.submitAnalytics = this.submitAnalytics.bind(this);\n this.makePaymentsCall = this.makePaymentsCall.bind(this);\n this.makeAdditionalDetailsCall = this.makeAdditionalDetailsCall.bind(this);\n this.submitUsingSessionsFlow = this.submitUsingSessionsFlow.bind(this);\n this.updateAmount = this.updateAmount.bind(this);\n\n this.elementRef = (props && props.elementRef) || this;\n this.resources = this.props.modules ? this.props.modules.resources : undefined;\n\n this.storeElementRefOnCore(this.props);\n\n this.onEnterKeyPressed = this.onEnterKeyPressed.bind(this);\n this.onActionHandled = this.onActionHandled.bind(this);\n\n this.createBeforeRenderHook(props);\n this.reportIntegrationFlavor();\n }\n\n /**\n * Creates a hook tied to render() method. This hook is called every time render() is invoked.\n * Currently useful for Analytics\n *\n * @param configSetByMerchant\n * @private\n */\n private createBeforeRenderHook(configSetByMerchant: P): void {\n const originalRender = this.render;\n\n this.render = (...args: any[]) => {\n this.beforeRender(configSetByMerchant);\n return originalRender.apply(this, args);\n };\n }\n\n protected beforeRender(configSetByMerchant?: P): void {\n // We don't send 'rendered' events when rendering actions\n if (configSetByMerchant?.originalAction) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.oneClick && { isStoredPaymentMethod: true })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n protected reportIntegrationFlavor(): void {\n void this.analytics.sendFlavor('components');\n }\n\n get analytics(): IAnalytics {\n return this.core.modules.analytics;\n }\n\n get srPanel(): SRPanel {\n return this.core.modules.srPanel;\n }\n\n protected getPaymentMethodConfigFromResponse(componentProps: P) {\n if (componentProps?.storedPaymentMethodId) return this.getStoredPaymentMethodDetails(componentProps.storedPaymentMethodId);\n return this.getPaymentMethodFromPaymentMethodsResponse(componentProps?.type, componentProps?.paymentMethodId);\n }\n\n protected override buildElementProps(componentProps?: P) {\n const globalCoreProps = this.core.getCorePropsForComponent();\n\n const paymentMethodFromResponse = this.getPaymentMethodConfigFromResponse(componentProps);\n\n const finalProps = {\n showPayButton: true,\n ...globalCoreProps,\n ...paymentMethodFromResponse,\n ...componentProps\n };\n\n const isDropinInstance = assertIsDropin(this as unknown as IDropin);\n\n this.props = this.formatProps({\n ...this.constructor['defaultProps'], // component defaults\n ...getRegulatoryDefaults(this.core.options.countryCode, isDropinInstance), // regulatory defaults\n ...finalProps // the rest (inc. merchant defined config)\n });\n }\n\n protected getStoredPaymentMethodDetails(storedPaymentMethodId: string) {\n return this.core.paymentMethodsResponse.findStoredPaymentMethod(storedPaymentMethodId);\n }\n\n /**\n * Get the payment method from the paymentMethodsResponse\n *\n * @param type - The type of the payment method to get. (This prop is passed by Drop-in OR Standalone components containing the property 'type' as part of their configuration)\n * @param paymentMethodId - Unique internal payment method ID\n */\n protected getPaymentMethodFromPaymentMethodsResponse(type?: string, paymentMethodId?: string): RawPaymentMethod {\n if (paymentMethodId) return this.core.paymentMethodsResponse.findById(paymentMethodId);\n return this.core.paymentMethodsResponse?.find(type || this.constructor['type']);\n }\n\n protected storeElementRefOnCore(props?: P) {\n if (!props?.isDropin) {\n this.core.storeElementReference(this);\n }\n }\n\n public isAvailable(): Promise<void> {\n return Promise.resolve();\n }\n\n public setState(newState: object): void {\n this.state = { ...this.state, ...newState };\n this.onChange();\n }\n\n public showValidation(): this {\n if (this.componentRef && this.componentRef.showValidation) this.componentRef.showValidation();\n return this;\n }\n\n /**\n * Updates the amount in the props and propagates it to the AmountProvider.\n * This allows children components to access the updated amount via context.\n *\n * @param amount - Primary payment amount object\n * @param secondaryAmount - Optional secondary amount for display purposes (e.g., converted currency)\n * @internal\n */\n public updateAmount(amount: PaymentAmount, secondaryAmount?: PaymentAmount): void {\n this.props = {\n ...this.props,\n ...(amount && { amount }),\n ...(secondaryAmount && { secondaryAmount })\n };\n this.amountProviderRef.current?.update(amount, secondaryAmount);\n }\n\n /**\n * elementRef is a ref to the subclass that extends UIElement e.g. Card.tsx\n */\n public setElementStatus(status: UIElementStatus, props?: any): this {\n this.elementRef?.setStatus(status, props);\n return this;\n }\n\n /**\n * componentRef is a ref to the primary component inside that subclass e.g. CardInput.tsx\n */\n public setStatus(status: UIElementStatus, props?): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n }\n return this;\n }\n\n protected onChange(): void {\n this.props.onChange?.(\n {\n data: this.data,\n isValid: this.isValid,\n errors: this.state.errors,\n valid: this.state.valid\n },\n this.elementRef\n );\n }\n\n protected override submitAnalytics(event: AbstractAnalyticsEvent) {\n this.analytics.sendAnalytics(event);\n }\n\n public submit(): void {\n if (!this.isValid) {\n this.showValidation();\n return;\n }\n\n this.makePaymentsCall()\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch((e: PaymentResponseData | Error) => {\n if (e instanceof CancelError) {\n this.setElementStatus('ready');\n return;\n }\n this.handleFailedResult(e as PaymentResponseData);\n });\n }\n\n protected makePaymentsCall(): Promise<CheckoutAdvancedFlowResponse | CheckoutSessionPaymentResponse> {\n this.setElementStatus('loading');\n\n if (this.props.onSubmit) {\n return this.submitUsingAdvancedFlow();\n }\n\n if (this.core.session) {\n const beforeSubmitEvent: Promise<PaymentData> = this.props.beforeSubmit\n ? new Promise((resolve, reject) => {\n void this.props.beforeSubmit(this.data, this.elementRef, {\n resolve,\n reject: () => reject(new CancelError('beforeSubmitRejected'))\n });\n })\n : Promise.resolve(this.data);\n\n return beforeSubmitEvent.then(this.submitUsingSessionsFlow);\n }\n\n this.handleError(\n new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'It can not perform /payments call. Callback \"onSubmit\" is missing or Checkout session is not available'\n )\n );\n }\n\n private async submitUsingAdvancedFlow(): Promise<CheckoutAdvancedFlowResponse> {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.submit,\n message: 'Shopper clicked pay'\n });\n this.submitAnalytics(event);\n\n return new Promise<CheckoutAdvancedFlowResponse>((resolve, reject) => {\n this.props.onSubmit(\n {\n data: this.data,\n isValid: this.isValid\n },\n this.elementRef,\n { resolve, reject }\n );\n });\n }\n\n private async submitUsingSessionsFlow(data: PaymentData): Promise<CheckoutSessionPaymentResponse> {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.submit,\n message: 'Shopper clicked pay'\n });\n this.submitAnalytics(event);\n\n try {\n return await this.core.session.submitPayment(data);\n } catch (error: unknown) {\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', 'Error when making /payments call', { cause: error }));\n }\n\n return Promise.reject(error);\n }\n\n // // Uncomment to simulate failed\n // return {\n // resultCode: 'Refused',\n // sessionData:\n // 'Ab02b4c0!BQABAgBKGgqfEz8uQlU4yCIOWjA8bkEwmbJ7Qt4r+x5IPXREu1rMjwNk5MDoHFNlv+MWvinS6nXIDniXgRzXCdSC4ksw9CNDBAjOa+B88wRoj/rLTieuWh/0leR88qkV24vtIkjsIsbJTDB78Pd8wX8MEDsXhaAdEIyX9E8eqxuQ3bwPbvLs1Dlgo1ZrfkQRzaNiuVM8ejRG0IWE1bGThJzY+sJvZZHvlDMXIlxhZcDoQvsMj/WwE6+nFJxBiC3oRzmvVn3AbkLQGtvwq16UUSfYbPzG9dXypJMtcrZAQYq2g/2+BSibCcmee9AXq/wij11BERrYmjbDt5NkkdUnDVgAB7pdqbnWX0A2sxBKeYtLSP2kxp+5LoU/Wty3fmcVA3VKVkHfgmIihkeL8lY++5hvHjnkzOE4tyx/sheiKS4zqoWE43TD6n8mpFskAzwMHq4G2o6vkXqvaKFEq7y/R2fVrCypenmRhkPASizpM265rKLU+L4E/C+LMHfN0LYKRMCrLr0gI2GAp+1PZLHgh0tCtiJC/zcJJtJs6sHNQxLUN+kxJuELUHOcuL3ivjG+mWteUnBENZu7KqOSZYetiWYRiyLOXDiBHqbxuQwTuO54L15VLkS/mYB20etibM1nn+fRmbo+1IJkCSalhwi5D7fSrpjbQTmAsOpJT1N8lC1MSNmAvAwG1kWL4JxYwXDKYyYASnsia2V5IjoiQUYwQUFBMTAzQ0E1MzdFQUVEODdDMjRERDUzOTA5QjgwQTc4QTkyM0UzODIzRDY4REFDQzk0QjlGRjgzMDVEQyJ98uZI4thGveOByYbomCeeP2Gy2rzs99FOBoDYVeWIUjyM+gfnW89DdJZAhxe74Tv0TnL5DRQYPCTRQPOoLbQ21NaeSho70FNE+n8XYKlVK5Ore6BoB6IVCaal5MkM27VmZPMmGflgcPx+pakx+EmRsYGdvYNImYxJYrRk3CI+l3T3ZiVpPPqebaVSLaSkEfu0iOFPjjLUhWN6QW6c18heE5vq/pcoeBf7p0Jgr9I5aBFY0avYG57BDGHzU1ZiQ9LLMTis2BA7Ap9pdNq8FVXL4fnoVHNZiiANOf3uvSknPKBID8sdOXUStA0crmO322FYjDqh1n6FG+D7+OJSayNsXIz6Zoy0eFn4HbT8nt8L2X2tdzkMayCYHXRwKh13Xyleqxt4WoEZmhwTmB3p9d1F0SylWnjcC6o/DnshJ9mMW/8D3oWS30Z7BwRODqKGVahRD0YGRzwMbVnEe5JFRfNvJZdLGl35L9632DVmuFQ0lr/8WNL/NrAJNtI6PXrZMNiza0/omPwPfe5ZYuD1Jgq59TX4h9d+3fdkArcJYL7AdoMZON1YEiWY5EzazQwtHd9yzdty9ZHPxAfuOfCh4OhbhFNp+v5YQ+PzKZ+UpM1VxV863+9XgWEURPNvX7qq1cpUSRzrSGq01QBBM3MKzRh5mAgqIdXgtl7L0EXAep0MECc7QY0/o3tW3VR8eEJGsSzrNxpFItqj0SEaIWo25dRfkl5zuw47GQrN9Qzxl2WV3A38MQPUqFtIr/71Rjkphgg49ZGWEYCwgFmm8jJc2/5qTabSGk4bzwiETCTzeydq30bUGqCwglj8CrFViAuQeTJm7dp+PYKMkUNvQRpnSXMj6Kz7rvAMzhzJgK62ltN2idqKxLC7WtivCUgejuQUvNreCYBQCaKwTwP02lZsJpGF9yw8gbyuoB+2aB7IZmgIB8GP4qVQ/ht5B9z/FLohK/8cSPV/4i32SNNdcwhV',\n // sessionResult:\n // 'X3XtfGC7!H4sIAAAAAAAA/6tWykxRslJyDjaxNDMyM3E2MXIyNDUys3RU0lHKTS1KzkjMK3FMTs4vzSsBKgtJLS7xhYo6Z6QmZ+eXlgAVFpcklpQWA+WLUtNKi1NTlGoBMEEbz1cAAAA=iMsCaEJ5LcnsqIUtmNxjm8HtfQ8gZW8JewEU3wHz4qg='\n // };\n }\n\n protected onComplete(state): void {\n this.handleAdditionalDetails(state);\n }\n\n protected handleError = (error: AdyenCheckoutError): void => {\n /**\n * Set status using elementRef, which:\n * - If Drop-in, will set status for Dropin component, and then it will propagate the new status for the active payment method component\n * - If Component, it will set its own status\n */\n this.setElementStatus('ready');\n\n if (error.name === NETWORK_ERROR && error.options.code) {\n const event = new AnalyticsErrorEvent({\n component: this.type,\n errorType: ErrorEventType.apiError,\n code: error.options.code\n });\n\n this.submitAnalytics(event);\n }\n\n if (this.props.onError) {\n this.props.onError(error, this.elementRef);\n }\n };\n\n protected handleAdditionalDetails(state: AdditionalDetailsData): void {\n this.makeAdditionalDetailsCall(state)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch(this.handleFailedResult);\n }\n\n private makeAdditionalDetailsCall(state: AdditionalDetailsData): Promise<CheckoutSessionDetailsResponse | CheckoutAdvancedFlowResponse> {\n if (this.props.onAdditionalDetails) {\n return new Promise<CheckoutAdvancedFlowResponse>((resolve, reject) => {\n this.props.onAdditionalDetails(state, this.elementRef, { resolve, reject });\n });\n }\n\n if (this.core.session) {\n return this.submitAdditionalDetailsUsingSessionsFlow(state.data);\n }\n\n this.handleError(\n new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'It can not perform /payments/details call. Callback \"onAdditionalDetails\" is missing or Checkout session is not available'\n )\n );\n }\n\n private async submitAdditionalDetailsUsingSessionsFlow(data: any): Promise<CheckoutSessionDetailsResponse> {\n try {\n return await this.core.session.submitDetails(data);\n } catch (error: unknown) {\n if (error instanceof AdyenCheckoutError) this.handleError(error);\n else this.handleError(new AdyenCheckoutError('ERROR', 'Error when making /details call', { cause: error }));\n\n return Promise.reject(error);\n }\n }\n\n public handleAction(action: PaymentAction, props = {}): UIElement | null {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'handleAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('handleAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n const paymentAction = this.core.createFromAction(action, {\n ...this.elementRef.props,\n ...props\n });\n\n if (paymentAction) {\n this.unmount();\n return paymentAction.mount(this._node);\n }\n\n return null;\n }\n\n protected onActionHandled(actionHandledObj: ActionHandledReturnObject) {\n this.props?.onActionHandled?.({ originalAction: this.props.originalAction, ...actionHandledObj });\n }\n\n protected handleOrder = (response: PaymentResponseData): void => {\n const { order } = response;\n\n const updateCorePromise = this.core.session\n ? this.core.update({\n order\n })\n : this.handleAdvanceFlowPaymentMethodsUpdate(order);\n\n void updateCorePromise.then(() => {\n this.props.onOrderUpdated?.({ order });\n });\n };\n\n /**\n * Handles when the payment fails. The payment fails when:\n * - adv flow: the merchant rejects the payment due to a critical error\n * - adv flow: the merchant resolves the payment with a failed resultCode\n * - sessions: a network error occurs when making the payment\n * - sessions: the payment fails with a failed resultCode\n *\n * @param result\n */\n protected handleFailedResult = (result?: PaymentResponseData): void => {\n if (assertIsDropin(this.elementRef)) {\n this.elementRef.displayFinalAnimation('error');\n }\n\n cleanupFinalResult(result);\n this.props.onPaymentFailed?.(result, this.elementRef);\n };\n\n protected handleSuccessResult = (result: PaymentResponseData): void => {\n if (assertIsDropin(this.elementRef)) {\n this.elementRef.displayFinalAnimation('success');\n }\n\n cleanupFinalResult(result);\n this.props.onPaymentCompleted?.(result, this.elementRef);\n };\n\n /**\n * Handles a /payments or /payments/details response.\n * The component will handle automatically actions, orders, and final results.\n *\n * Expected to be called after sanitizeResponse has been run on the raw payment response\n *\n * @param response -\n */\n protected handleResponse(response: PaymentResponseData): void {\n if (response.action) {\n this.elementRef.handleAction(response.action);\n return;\n }\n\n if (response.order?.remainingAmount?.value > 0) {\n // we don't want to call elementRef here, use the component handler\n // we do this way so the logic on handlingOrder is associated with payment method\n this.handleOrder(response);\n return;\n }\n\n this.handleSuccessResult(response);\n }\n\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement> | KeyboardEvent) {\n if (e.key === 'Enter' || e.code === 'Enter') {\n e.preventDefault(); // Prevent <form> submission if Component is placed inside a form\n\n this.onEnterKeyPressed(document?.activeElement, this);\n }\n }\n\n /**\n * Handle Enter key pressed from a UIElement (called via handleKeyPress)\n * @param obj\n */\n protected onEnterKeyPressed(activeElement: Element, component: UIElement) {\n if (this.props.onEnterKeyPressed) {\n this.props.onEnterKeyPressed(activeElement, component);\n } else {\n (activeElement as HTMLElement).blur();\n this.submit();\n }\n }\n\n /**\n * Call update on parent instance\n * This function exist to make safe access to the protected _parentInstance\n * @param options - CoreOptions\n */\n public updateParent(options: CoreConfiguration = {}): Promise<ICore> {\n return this.elementRef.core.update(options);\n }\n\n public setComponentRef = (ref: ComponentMethodsRef) => {\n this.componentRef = ref;\n };\n\n /**\n * Get the current validation status of the element\n */\n public get isValid(): boolean {\n return false;\n }\n\n /**\n * Get the element icon URL for the current environment\n */\n public get icon(): string {\n const type = this.props.paymentMethodType || this.type;\n return this.props.icon ?? this.resources.getImage()(type);\n }\n\n /**\n * Get the element's displayable name\n */\n public get displayName(): string {\n const paymentMethodFromResponse = this.core.paymentMethodsResponse?.paymentMethods?.find(pm => pm.type === this.type);\n return this.props.name || paymentMethodFromResponse?.name || this.type;\n }\n\n /**\n * Get the element accessible name, used in the aria-label of the button that controls selected payment method\n */\n public get accessibleName(): string {\n return this.displayName;\n }\n\n /**\n * Used to display the second line of a payment method item\n */\n get additionalInfo(): string {\n return null;\n }\n\n /**\n * Return the type of an element\n */\n public get type(): string {\n return this.props.type || this.constructor['type'];\n }\n\n /**\n * Get the payButton component for the current element\n */\n protected payButton = (props: PayButtonProps) => {\n return <PayButton {...props} onClick={this.submit} />;\n };\n\n /**\n * Used in the Partial Orders flow.\n * When the Order is updated, the merchant can request new payment methods based on the new remaining amount\n *\n * @private\n */\n protected async handleAdvanceFlowPaymentMethodsUpdate(order: Order | null, amount?: PaymentAmount) {\n return new Promise<void | PaymentMethodsResponse>((resolve, reject) => {\n if (!this.props.onPaymentMethodsRequest) {\n return resolve();\n }\n\n this.props.onPaymentMethodsRequest(\n {\n ...(order && {\n order: {\n orderData: order.orderData,\n pspReference: order.pspReference\n }\n }),\n locale: this.core.options.locale\n },\n { resolve, reject }\n );\n })\n .catch(error => {\n this.handleError(\n new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'Something failed during payment methods update or onPaymentMethodsRequest was not implemented',\n {\n cause: error\n }\n )\n );\n })\n .then(paymentMethodsResponse => {\n // in the case of the session flow we get order, amount, countryCode and shopperLocale from initialize()\n // apply the same logic here for order and amount\n // in the future it might be worth moving this logic to be performed by the core on update()\n // it would make this more consistent\n return this.core.update({\n ...(paymentMethodsResponse && { paymentMethodsResponse }),\n order,\n amount: order ? order.remainingAmount : amount\n });\n });\n }\n\n protected abstract componentToRender(): h.JSX.Element | null;\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources} analytics={this.analytics}>\n <SRPanelProvider srPanel={this.srPanel}>\n <AmountProvider amount={this.props.amount} secondaryAmount={this.props.secondaryAmount} providerRef={this.amountProviderRef}>\n {this.componentToRender()}\n </AmountProvider>\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default UIElement;\n"],"names":["UIElement","BaseElement","createBeforeRenderHook","configSetByMerchant","originalRender","this","render","args","beforeRender","apply","originalAction","event","AnalyticsInfoEvent","_object_spread","type","InfoEventType","rendered","component","configData","_object_spread_props","showPayButton","props","oneClick","isStoredPaymentMethod","analytics","sendAnalytics","reportIntegrationFlavor","sendFlavor","core","modules","srPanel","getPaymentMethodConfigFromResponse","componentProps","storedPaymentMethodId","getStoredPaymentMethodDetails","getPaymentMethodFromPaymentMethodsResponse","paymentMethodId","buildElementProps","finalProps","getCorePropsForComponent","isDropinInstance","assertIsDropin","formatProps","constructor","getRegulatoryDefaults","options","countryCode","paymentMethodsResponse","findStoredPaymentMethod","_this_core_paymentMethodsResponse","findById","find","storeElementRefOnCore","isDropin","storeElementReference","isAvailable","Promise","resolve","setState","newState","state","onChange","showValidation","componentRef","updateAmount","amount","secondaryAmount","_this_amountProviderRef_current","amountProviderRef","current","update","setElementStatus","status","_this_elementRef","elementRef","setStatus","_this_componentRef","_this_props_onChange","_this_props","call","data","isValid","errors","valid","submitAnalytics","submit","makePaymentsCall","then","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","catch","e","CancelError","handleFailedResult","onSubmit","submitUsingAdvancedFlow","session","beforeSubmit","reject","submitUsingSessionsFlow","handleError","AdyenCheckoutError","AnalyticsLogEvent","LogEventType","message","submitPayment","error","cause","onComplete","handleAdditionalDetails","makeAdditionalDetailsCall","onAdditionalDetails","submitAdditionalDetailsUsingSessionsFlow","submitDetails","handleAction","action","hasOwnProperty","Error","paymentAction","createFromAction","unmount","mount","_node","onActionHandled","actionHandledObj","_this_props_onActionHandled","response","order","remainingAmount","value","handleOrder","handleSuccessResult","handleKeyPress","document","key","code","preventDefault","onEnterKeyPressed","activeElement","blur","updateParent","icon","_this_props_icon","paymentMethodType","resources","getImage","displayName","_this_core_paymentMethodsResponse_paymentMethods","paymentMethodFromResponse","paymentMethods","pm","name","accessibleName","additionalInfo","handleAdvanceFlowPaymentMethodsUpdate","onPaymentMethodsRequest","orderData","pspReference","locale","h","CoreProvider","i18n","loadingContext","SRPanelProvider","AmountProvider","providerRef","componentToRender","checkout","super","_define_property","createRef","NETWORK_ERROR","AnalyticsErrorEvent","errorType","ErrorEventType","apiError","onError","_this_props_onOrderUpdated","onOrderUpdated","result","_this_props_onPaymentFailed","displayFinalAnimation","cleanupFinalResult","onPaymentFailed","_this_props_onPaymentCompleted","onPaymentCompleted","setComponentRef","ref","payButton","PayButton","onClick","register","bind","undefined","txVariants"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{debounce as t,DEFAULT_DEBOUNCE_TIME_MS as e}from"../../utils/debounce.js";import{processAnalyticsData as s}from"./utils.js";import{AnalyticsEventCategory as n}from"./events/AbstractAnalyticsEvent.js";import i from"../../utils/Storage.js";import{LIBRARY_BUNDLE_TYPE as o,LIBRARY_VERSION as r}from"../config.js";function a(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}const c=e;class d{get checkoutAttemptId(){return this.capturedCheckoutAttemptId}async setUp({sessionId:t,checkoutStage:e,locale:n}={}){try{const i=this.storage.get(),c=function(t){if(!(null==t?void 0:t.timestamp))return!1;const e=Date.now()-9e5;return t.timestamp>e}(i),{applicationInfo:d,checkoutAttemptId:u}=s(this.analyticsData),h=c?i.id:u,l=function(t){for(var e=1;e<arguments.length;e++){var s=null!=arguments[e]?arguments[e]:{},n=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(s).filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable}))),n.forEach(function(e){a(t,e,s[e])})}return t}({version:r,buildType:o,channel:"Web",platform:"Web",locale:n,referrer:window.location.href,screenWidth:window.screen.width,checkoutStage:e||"checkout",level:this.enabled?"all":"initial"},d&&{applicationInfo:d},t&&{sessionId:t},h&&{checkoutAttemptId:h});this.capturedCheckoutAttemptId=await this.service.requestCheckoutAttemptId(l),this.storage.set({id:this.capturedCheckoutAttemptId,timestamp:c?i.timestamp:Date.now()})}catch(t){this.enabled=!1,console.warn("Analytics: Error setting up",t)}}sendAnalytics(t){if(this.enabled)try{this.addEventToQueue(t)}catch(t){console.warn("Analytics: Error adding event to queue",t)}}async sendFlavor(t){if(this.capturedCheckoutAttemptId&&!this.isFlavorReported){this.isFlavorReported=!0;try{await this.service.reportIntegrationFlavor(t,this.capturedCheckoutAttemptId)}catch(t){console.warn("Analytics: Error reporting flavor",t)}}}flush(){this.sendEvents()}addEventToQueue(t){this.eventsQueue.add(t),t.getEventCategory()===n.info?this.debouncedSendInfoEvents():this.debouncedSendEvents()}async sendEvents(){if(!this.capturedCheckoutAttemptId||!this.enabled)return;const t={channel:"Web",platform:"Web",info:this.eventsQueue.infoEvents,errors:this.eventsQueue.errorEvents,logs:this.eventsQueue.logEvents};this.eventsQueue.clear();try{await this.service.sendEvents(t,this.capturedCheckoutAttemptId)}catch(t){console.warn("Analytics: Error sending events",t)}}constructor({service:e,eventQueue:s,enabled:n,analyticsData:o}){a(this,"analyticsData",void 0),a(this,"service",void 0),a(this,"eventsQueue",void 0),a(this,"storage",new i("checkout-attempt-id","sessionStorage")),a(this,"debouncedSendInfoEvents",void 0),a(this,"debouncedSendEvents",void 0),a(this,"enabled",!0),a(this,"capturedCheckoutAttemptId",void 0),a(this,"isFlavorReported",!1),this.service=e,this.eventsQueue=s,this.debouncedSendInfoEvents=t(this.sendEvents.bind(this),1e4),this.debouncedSendEvents=t(this.sendEvents.bind(this),c),void 0!==n&&(this.enabled=n),o&&(this.analyticsData=o)}}export{d as default};
1
+ import{debounce as t,DEFAULT_DEBOUNCE_TIME_MS as e}from"../../utils/debounce.js";import{processAnalyticsData as s}from"./utils.js";import{AnalyticsEventCategory as n}from"./events/AbstractAnalyticsEvent.js";import i from"../../utils/Storage.js";import{LIBRARY_BUNDLE_TYPE as o,LIBRARY_VERSION as r}from"../config.js";function a(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}const c=e;class d{get checkoutAttemptId(){return this._checkoutAttemptId}set checkoutAttemptId(t){this._checkoutAttemptId=t}async setUp({sessionId:t,checkoutStage:e,locale:n}={}){try{var i;const c=this.storage.get(),d=function(t){if(!(null==t?void 0:t.timestamp))return!1;const e=Date.now()-9e5;return t.timestamp>e}(c),{applicationInfo:h,checkoutAttemptId:l}=null!==(i=s(this.analyticsData))&&void 0!==i?i:{},u=d?null==c?void 0:c.id:l,v=function(t){for(var e=1;e<arguments.length;e++){var s=null!=arguments[e]?arguments[e]:{},n=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(s).filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable}))),n.forEach(function(e){a(t,e,s[e])})}return t}({version:r,buildType:o,channel:"Web",platform:"Web",locale:n,referrer:window.location.href,screenWidth:window.screen.width,checkoutStage:e||"checkout",level:this.enabled?"all":"initial"},h&&{applicationInfo:h},t&&{sessionId:t},u&&{checkoutAttemptId:u});this.checkoutAttemptId=await this.service.requestCheckoutAttemptId(v),this.dispatchPendingAnalytics(),this.storage.set({id:this.checkoutAttemptId,timestamp:d?c.timestamp:Date.now()})}catch(t){this.enabled=!1,console.warn("Analytics: Error setting up",t)}}sendAnalytics(t){if(this.enabled)try{this.addEventToQueue(t)}catch(t){console.warn("Analytics: Error adding event to queue",t)}}async sendFlavor(t){this.isFlavorReported||(this.checkoutAttemptId?await this.dispatchFlavor(t):this.pendingFlavor||(this.pendingFlavor=t))}async dispatchFlavor(t){if(!this.isFlavorReported&&this.checkoutAttemptId){this.isFlavorReported=!0;try{await this.service.reportIntegrationFlavor(t,this.checkoutAttemptId)}catch(t){console.warn("Analytics: Error reporting flavor",t)}}}flush(){this.sendEvents()}addEventToQueue(t){this.eventsQueue.add(t),t.getEventCategory()===n.info?this.debouncedSendInfoEvents():this.debouncedSendEvents()}async sendEvents(){if(!this.checkoutAttemptId||!this.enabled)return;if(!this.eventsQueue.hasEvents)return;const t={channel:"Web",platform:"Web",info:this.eventsQueue.infoEvents,errors:this.eventsQueue.errorEvents,logs:this.eventsQueue.logEvents};this.eventsQueue.clear();try{await this.service.sendEvents(t,this.checkoutAttemptId)}catch(t){console.warn("Analytics: Error sending events",t)}}dispatchPendingAnalytics(){if(!this.isFlavorReported&&this.pendingFlavor){const t=this.pendingFlavor;this.pendingFlavor=void 0,this.dispatchFlavor(t)}this.sendEvents()}constructor({service:e,eventQueue:s,enabled:n,analyticsData:o}){a(this,"analyticsData",void 0),a(this,"service",void 0),a(this,"eventsQueue",void 0),a(this,"storage",new i("checkout-attempt-id","sessionStorage")),a(this,"debouncedSendInfoEvents",void 0),a(this,"debouncedSendEvents",void 0),a(this,"_checkoutAttemptId",void 0),a(this,"enabled",!0),a(this,"isFlavorReported",!1),a(this,"pendingFlavor",void 0),this.service=e,this.eventsQueue=s,this.debouncedSendInfoEvents=t(this.sendEvents.bind(this),1e4),this.debouncedSendEvents=t(this.sendEvents.bind(this),c),void 0!==n&&(this.enabled=n),o&&(this.analyticsData=o)}}export{d as default};
2
2
  //# sourceMappingURL=Analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Analytics.js","sources":["../../../../src/core/Analytics/Analytics.ts"],"sourcesContent":["import { debounce, DEFAULT_DEBOUNCE_TIME_MS } from '../../utils/debounce';\nimport { processAnalyticsData } from './utils';\nimport { AbstractAnalyticsEvent, AnalyticsEventCategory } from './events/AbstractAnalyticsEvent';\nimport Storage from '../../utils/Storage';\nimport { LIBRARY_BUNDLE_TYPE, LIBRARY_VERSION } from '../config';\nimport { AnalyticsEventQueue } from './AnalyticsEventQueue';\nimport type { AnalyticsOptions } from './types';\nimport type { AnalyticsEventPayload, IAnalyticsService, RequestAttemptIdPayload } from './AnalyticsService';\n\nexport interface AnalyticsProps {\n service: IAnalyticsService;\n eventQueue: AnalyticsEventQueue;\n enabled?: boolean;\n analyticsData?: AnalyticsOptions['analyticsData'];\n}\n\nexport interface IAnalytics {\n checkoutAttemptId?: string;\n setUp({ sessionId, checkoutStage, locale }: { sessionId?: string; checkoutStage?: 'precheckout' | 'checkout'; locale?: string }): Promise<void>;\n sendFlavor(flavor: 'dropin' | 'components'): Promise<void>;\n sendAnalytics(event: AbstractAnalyticsEvent): void;\n flush(): void;\n}\n\nexport interface CheckoutAttemptIdSessionStorage {\n id: string;\n timestamp: number;\n}\n\n/**\n * If the checkout attempt ID was stored more than fifteen minutes ago, then we should request a new ID.\n * More here: COWEB-1099\n */\nfunction isSessionCreatedUnderFifteenMinutes(session: CheckoutAttemptIdSessionStorage | null): boolean {\n const FIFTEEN_MINUTES_IN_MS = 15 * 60 * 1000;\n if (!session?.timestamp) return false;\n const fifteenMinutesAgo = Date.now() - FIFTEEN_MINUTES_IN_MS;\n return session.timestamp > fifteenMinutesAgo;\n}\n\nconst ANALYTICS_INFO_DEBOUNCE_DELAY = process.env.NODE_ENV === 'development' ? 5_000 : 10_000;\nconst ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY = DEFAULT_DEBOUNCE_TIME_MS;\n\nclass Analytics implements IAnalytics {\n private readonly analyticsData?: AnalyticsOptions['analyticsData'];\n private readonly service: IAnalyticsService;\n private readonly eventsQueue: AnalyticsEventQueue;\n private readonly storage = new Storage<CheckoutAttemptIdSessionStorage>('checkout-attempt-id', 'sessionStorage');\n private readonly debouncedSendInfoEvents: () => void;\n private readonly debouncedSendEvents: () => void;\n\n private enabled: boolean = true;\n private capturedCheckoutAttemptId?: string;\n private isFlavorReported = false;\n\n constructor({ service, eventQueue, enabled, analyticsData }: AnalyticsProps) {\n this.service = service;\n this.eventsQueue = eventQueue;\n\n this.debouncedSendInfoEvents = debounce(this.sendEvents.bind(this), ANALYTICS_INFO_DEBOUNCE_DELAY);\n this.debouncedSendEvents = debounce(this.sendEvents.bind(this), ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY);\n\n if (enabled !== undefined) this.enabled = enabled;\n if (analyticsData) this.analyticsData = analyticsData;\n }\n\n public get checkoutAttemptId(): string {\n return this.capturedCheckoutAttemptId;\n }\n\n public async setUp({\n sessionId,\n checkoutStage,\n locale\n }: { sessionId?: string; locale?: string; checkoutStage?: 'precheckout' | 'checkout' } = {}): Promise<void> {\n try {\n const checkoutAttemptIdSession = this.storage.get();\n const isSessionReusable = isSessionCreatedUnderFifteenMinutes(checkoutAttemptIdSession);\n\n const { applicationInfo, checkoutAttemptId: checkoutAttemptIdFromPayByLink } = processAnalyticsData(this.analyticsData);\n\n const availableCheckoutAttemptId: string | undefined = isSessionReusable ? checkoutAttemptIdSession.id : checkoutAttemptIdFromPayByLink;\n\n const payload: RequestAttemptIdPayload = {\n version: LIBRARY_VERSION,\n buildType: LIBRARY_BUNDLE_TYPE,\n channel: 'Web',\n platform: 'Web',\n locale,\n referrer: window.location.href,\n screenWidth: window.screen.width,\n checkoutStage: checkoutStage || 'checkout',\n level: this.enabled ? 'all' : 'initial',\n ...(applicationInfo && { applicationInfo }),\n ...(sessionId && { sessionId }),\n ...(availableCheckoutAttemptId && { checkoutAttemptId: availableCheckoutAttemptId })\n };\n\n this.capturedCheckoutAttemptId = await this.service.requestCheckoutAttemptId(payload);\n\n this.storage.set({\n id: this.capturedCheckoutAttemptId,\n timestamp: isSessionReusable ? checkoutAttemptIdSession.timestamp : Date.now()\n });\n } catch (error: unknown) {\n this.enabled = false;\n console.warn('Analytics: Error setting up', error);\n }\n }\n\n public sendAnalytics(event: AbstractAnalyticsEvent): void {\n if (!this.enabled) {\n return;\n }\n\n try {\n this.addEventToQueue(event);\n } catch (error: unknown) {\n console.warn('Analytics: Error adding event to queue', error);\n }\n }\n\n public async sendFlavor(flavor: 'dropin' | 'components'): Promise<void> {\n if (!this.capturedCheckoutAttemptId) return;\n if (this.isFlavorReported) return;\n\n this.isFlavorReported = true;\n\n try {\n await this.service.reportIntegrationFlavor(flavor, this.capturedCheckoutAttemptId);\n } catch (error) {\n console.warn('Analytics: Error reporting flavor', error);\n }\n }\n\n public flush(): void {\n void this.sendEvents();\n }\n\n /**\n * Info events don't have high priority, therefore we add a delay in order to dispatch a batch of events\n * Log/Error events are sent almost immediately. There is a debounce mechanism in place but the delay is very minimal\n *\n * @param event\n * @private\n */\n private addEventToQueue(event: AbstractAnalyticsEvent): void {\n this.eventsQueue.add(event);\n\n if (event.getEventCategory() === AnalyticsEventCategory.info) {\n this.debouncedSendInfoEvents();\n } else {\n this.debouncedSendEvents();\n }\n }\n\n private async sendEvents(): Promise<void> {\n if (!this.capturedCheckoutAttemptId || !this.enabled) {\n return;\n }\n\n const payload: AnalyticsEventPayload = {\n channel: 'Web',\n platform: 'Web',\n info: this.eventsQueue.infoEvents,\n errors: this.eventsQueue.errorEvents,\n logs: this.eventsQueue.logEvents\n };\n\n this.eventsQueue.clear();\n\n try {\n await this.service.sendEvents(payload, this.capturedCheckoutAttemptId);\n } catch (error) {\n console.warn('Analytics: Error sending events', error);\n }\n }\n}\n\nexport default Analytics;\n"],"names":["ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY","DEFAULT_DEBOUNCE_TIME_MS","Analytics","checkoutAttemptId","this","capturedCheckoutAttemptId","setUp","sessionId","checkoutStage","locale","checkoutAttemptIdSession","storage","get","isSessionReusable","session","timestamp","fifteenMinutesAgo","Date","now","isSessionCreatedUnderFifteenMinutes","applicationInfo","checkoutAttemptIdFromPayByLink","processAnalyticsData","analyticsData","availableCheckoutAttemptId","id","payload","_object_spread","version","LIBRARY_VERSION","buildType","LIBRARY_BUNDLE_TYPE","channel","platform","referrer","window","location","href","screenWidth","screen","width","level","enabled","service","requestCheckoutAttemptId","set","error","console","warn","sendAnalytics","event","addEventToQueue","sendFlavor","flavor","isFlavorReported","reportIntegrationFlavor","flush","sendEvents","eventsQueue","add","getEventCategory","AnalyticsEventCategory","info","debouncedSendInfoEvents","debouncedSendEvents","infoEvents","errors","errorEvents","logs","logEvents","clear","constructor","eventQueue","_define_property","Storage","debounce","bind","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"Analytics.js","sources":["../../../../src/core/Analytics/Analytics.ts"],"sourcesContent":["import { debounce, DEFAULT_DEBOUNCE_TIME_MS } from '../../utils/debounce';\nimport { processAnalyticsData } from './utils';\nimport { AbstractAnalyticsEvent, AnalyticsEventCategory } from './events/AbstractAnalyticsEvent';\nimport Storage from '../../utils/Storage';\nimport { LIBRARY_BUNDLE_TYPE, LIBRARY_VERSION } from '../config';\nimport { AnalyticsEventQueue } from './AnalyticsEventQueue';\nimport type { AnalyticsOptions } from './types';\nimport type { AnalyticsEventPayload, IAnalyticsService, RequestAttemptIdPayload } from './AnalyticsService';\n\nexport interface AnalyticsProps {\n service: IAnalyticsService;\n eventQueue: AnalyticsEventQueue;\n enabled?: boolean;\n analyticsData?: AnalyticsOptions['analyticsData'];\n}\n\nexport interface IAnalytics {\n checkoutAttemptId?: string;\n setUp({ sessionId, checkoutStage, locale }: { sessionId?: string; checkoutStage?: 'precheckout' | 'checkout'; locale?: string }): Promise<void>;\n sendFlavor(flavor: 'dropin' | 'components'): Promise<void>;\n sendAnalytics(event: AbstractAnalyticsEvent): void;\n flush(): void;\n}\n\nexport interface CheckoutAttemptIdSessionStorage {\n id: string;\n timestamp: number;\n}\n\n/**\n * If the checkout attempt ID was stored more than fifteen minutes ago, then we should request a new ID.\n * More here: COWEB-1099\n */\nfunction isSessionCreatedUnderFifteenMinutes(session: CheckoutAttemptIdSessionStorage | null): boolean {\n const FIFTEEN_MINUTES_IN_MS = 15 * 60 * 1000;\n if (!session?.timestamp) return false;\n const fifteenMinutesAgo = Date.now() - FIFTEEN_MINUTES_IN_MS;\n return session.timestamp > fifteenMinutesAgo;\n}\n\nconst ANALYTICS_INFO_DEBOUNCE_DELAY = process.env.NODE_ENV === 'development' ? 5_000 : 10_000;\nconst ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY = DEFAULT_DEBOUNCE_TIME_MS;\n\nclass Analytics implements IAnalytics {\n private readonly analyticsData?: AnalyticsOptions['analyticsData'];\n private readonly service: IAnalyticsService;\n private readonly eventsQueue: AnalyticsEventQueue;\n private readonly storage = new Storage<CheckoutAttemptIdSessionStorage>('checkout-attempt-id', 'sessionStorage');\n private readonly debouncedSendInfoEvents: () => void;\n private readonly debouncedSendEvents: () => void;\n\n private _checkoutAttemptId?: string;\n private enabled: boolean = true;\n private isFlavorReported = false;\n private pendingFlavor?: 'dropin' | 'components';\n\n constructor({ service, eventQueue, enabled, analyticsData }: AnalyticsProps) {\n this.service = service;\n this.eventsQueue = eventQueue;\n\n this.debouncedSendInfoEvents = debounce(this.sendEvents.bind(this), ANALYTICS_INFO_DEBOUNCE_DELAY);\n this.debouncedSendEvents = debounce(this.sendEvents.bind(this), ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY);\n\n if (enabled !== undefined) this.enabled = enabled;\n if (analyticsData) this.analyticsData = analyticsData;\n }\n\n public get checkoutAttemptId(): string | undefined {\n return this._checkoutAttemptId;\n }\n\n private set checkoutAttemptId(checkoutAttemptId: string) {\n this._checkoutAttemptId = checkoutAttemptId;\n }\n\n public async setUp({\n sessionId,\n checkoutStage,\n locale\n }: { sessionId?: string; locale?: string; checkoutStage?: 'precheckout' | 'checkout' } = {}): Promise<void> {\n try {\n const checkoutAttemptIdSession = this.storage.get();\n const isSessionReusable = isSessionCreatedUnderFifteenMinutes(checkoutAttemptIdSession);\n\n const { applicationInfo, checkoutAttemptId: checkoutAttemptIdFromPayByLink } = processAnalyticsData(this.analyticsData) ?? {};\n\n const availableCheckoutAttemptId: string | undefined = isSessionReusable ? checkoutAttemptIdSession?.id : checkoutAttemptIdFromPayByLink;\n\n const payload: RequestAttemptIdPayload = {\n version: LIBRARY_VERSION,\n buildType: LIBRARY_BUNDLE_TYPE,\n channel: 'Web',\n platform: 'Web',\n locale,\n referrer: window.location.href,\n screenWidth: window.screen.width,\n checkoutStage: checkoutStage || 'checkout',\n level: this.enabled ? 'all' : 'initial',\n ...(applicationInfo && { applicationInfo }),\n ...(sessionId && { sessionId }),\n ...(availableCheckoutAttemptId && { checkoutAttemptId: availableCheckoutAttemptId })\n };\n\n this.checkoutAttemptId = await this.service.requestCheckoutAttemptId(payload);\n\n this.dispatchPendingAnalytics();\n\n this.storage.set({\n id: this.checkoutAttemptId,\n timestamp: isSessionReusable ? checkoutAttemptIdSession.timestamp : Date.now()\n });\n } catch (error: unknown) {\n this.enabled = false;\n console.warn('Analytics: Error setting up', error);\n }\n }\n\n public sendAnalytics(event: AbstractAnalyticsEvent): void {\n if (!this.enabled) {\n return;\n }\n\n try {\n this.addEventToQueue(event);\n } catch (error: unknown) {\n console.warn('Analytics: Error adding event to queue', error);\n }\n }\n\n /**\n * Sends the integration flavor to the analytics service.\n * If the checkout attempt ID is not available, it will be stored and sent when it becomes available.\n *\n * @param flavor The integration flavor to send.\n * @returns A promise that resolves when the flavor is sent.\n */\n public async sendFlavor(flavor: 'dropin' | 'components'): Promise<void> {\n if (this.isFlavorReported) return;\n\n if (!this.checkoutAttemptId) {\n if (!this.pendingFlavor) this.pendingFlavor = flavor;\n return;\n }\n\n await this.dispatchFlavor(flavor);\n }\n\n private async dispatchFlavor(flavor: 'dropin' | 'components'): Promise<void> {\n if (this.isFlavorReported) return;\n if (!this.checkoutAttemptId) return;\n\n this.isFlavorReported = true;\n\n try {\n await this.service.reportIntegrationFlavor(flavor, this.checkoutAttemptId);\n } catch (error) {\n console.warn('Analytics: Error reporting flavor', error);\n }\n }\n\n public flush(): void {\n void this.sendEvents();\n }\n\n /**\n * Info events don't have high priority, therefore we add a delay in order to dispatch a batch of events\n * Log/Error events are sent almost immediately. There is a debounce mechanism in place but the delay is very minimal\n *\n * @param event\n * @private\n */\n private addEventToQueue(event: AbstractAnalyticsEvent): void {\n this.eventsQueue.add(event);\n\n if (event.getEventCategory() === AnalyticsEventCategory.info) {\n this.debouncedSendInfoEvents();\n } else {\n this.debouncedSendEvents();\n }\n }\n\n private async sendEvents(): Promise<void> {\n if (!this.checkoutAttemptId || !this.enabled) {\n return;\n }\n\n if (!this.eventsQueue.hasEvents) {\n return;\n }\n\n const payload: AnalyticsEventPayload = {\n channel: 'Web',\n platform: 'Web',\n info: this.eventsQueue.infoEvents,\n errors: this.eventsQueue.errorEvents,\n logs: this.eventsQueue.logEvents\n };\n\n this.eventsQueue.clear();\n\n try {\n await this.service.sendEvents(payload, this.checkoutAttemptId);\n } catch (error) {\n console.warn('Analytics: Error sending events', error);\n }\n }\n\n /**\n * Report the integration flavor and send queued analyic events once the attempt ID is available\n */\n private dispatchPendingAnalytics(): void {\n if (!this.isFlavorReported && this.pendingFlavor) {\n const flavor = this.pendingFlavor;\n this.pendingFlavor = undefined;\n void this.dispatchFlavor(flavor);\n }\n\n void this.sendEvents();\n }\n}\n\nexport default Analytics;\n"],"names":["ANALYTICS_ERROR_AND_LOGS_DEBOUNCE_DELAY","DEFAULT_DEBOUNCE_TIME_MS","Analytics","checkoutAttemptId","this","_checkoutAttemptId","setUp","sessionId","checkoutStage","locale","processAnalyticsData","checkoutAttemptIdSession","storage","get","isSessionReusable","session","timestamp","fifteenMinutesAgo","Date","now","isSessionCreatedUnderFifteenMinutes","applicationInfo","checkoutAttemptIdFromPayByLink","analyticsData","availableCheckoutAttemptId","id","payload","_object_spread","version","LIBRARY_VERSION","buildType","LIBRARY_BUNDLE_TYPE","channel","platform","referrer","window","location","href","screenWidth","screen","width","level","enabled","service","requestCheckoutAttemptId","dispatchPendingAnalytics","set","error","console","warn","sendAnalytics","event","addEventToQueue","sendFlavor","flavor","isFlavorReported","dispatchFlavor","pendingFlavor","reportIntegrationFlavor","flush","sendEvents","eventsQueue","add","getEventCategory","AnalyticsEventCategory","info","debouncedSendInfoEvents","debouncedSendEvents","hasEvents","infoEvents","errors","errorEvents","logs","logEvents","clear","undefined","constructor","eventQueue","_define_property","Storage","debounce","bind"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{AnalyticsEventCategory as r}from"./events/AbstractAnalyticsEvent.js";function t(r,t,e){return t in r?Object.defineProperty(r,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[t]=e,r}class e{add(t){const e=t.getEventCategory();e===r.info&&this.info.push(t),e===r.error&&this.errors.push(t),e===r.log&&this.logs.push(t)}get infoEvents(){return this.info}get errorEvents(){return this.errors}get logEvents(){return this.logs}clear(){this.info=[],this.errors=[],this.logs=[]}constructor(){t(this,"info",[]),t(this,"errors",[]),t(this,"logs",[])}}export{e as AnalyticsEventQueue};
1
+ import{AnalyticsEventCategory as t}from"./events/AbstractAnalyticsEvent.js";function r(t,r,e){return r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}class e{add(r){const e=r.getEventCategory();e===t.info&&this.info.push(r),e===t.error&&this.errors.push(r),e===t.log&&this.logs.push(r)}get infoEvents(){return this.info}get errorEvents(){return this.errors}get logEvents(){return this.logs}get hasEvents(){return this.info.length>0||this.errors.length>0||this.logs.length>0}clear(){this.info=[],this.errors=[],this.logs=[]}constructor(){r(this,"info",[]),r(this,"errors",[]),r(this,"logs",[])}}export{e as AnalyticsEventQueue};
2
2
  //# sourceMappingURL=AnalyticsEventQueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsEventQueue.js","sources":["../../../../src/core/Analytics/AnalyticsEventQueue.ts"],"sourcesContent":["import { AbstractAnalyticsEvent, AnalyticsEventCategory } from './events/AbstractAnalyticsEvent';\n\nclass AnalyticsEventQueue {\n private info: AbstractAnalyticsEvent[] = [];\n private errors: AbstractAnalyticsEvent[] = [];\n private logs: AbstractAnalyticsEvent[] = [];\n\n public add(event: AbstractAnalyticsEvent) {\n const category = event.getEventCategory();\n\n if (category === AnalyticsEventCategory.info) this.info.push(event);\n if (category === AnalyticsEventCategory.error) this.errors.push(event);\n if (category === AnalyticsEventCategory.log) this.logs.push(event);\n }\n\n public get infoEvents(): AbstractAnalyticsEvent[] {\n return this.info;\n }\n\n public get errorEvents(): AbstractAnalyticsEvent[] {\n return this.errors;\n }\n\n public get logEvents(): AbstractAnalyticsEvent[] {\n return this.logs;\n }\n\n public clear(): void {\n this.info = [];\n this.errors = [];\n this.logs = [];\n }\n}\n\nexport { AnalyticsEventQueue };\n"],"names":["AnalyticsEventQueue","add","event","category","getEventCategory","AnalyticsEventCategory","info","this","push","error","errors","log","logs","infoEvents","errorEvents","logEvents","clear","_define_property"],"mappings":"oMAEA,MAAMA,EAKKC,GAAAA,CAAIC,GACP,MAAMC,EAAWD,EAAME,mBAEnBD,IAAaE,EAAuBC,MAAMC,KAAKD,KAAKE,KAAKN,GACzDC,IAAaE,EAAuBI,OAAOF,KAAKG,OAAOF,KAAKN,GAC5DC,IAAaE,EAAuBM,KAAKJ,KAAKK,KAAKJ,KAAKN,EAChE,CAEA,cAAWW,GACP,OAAON,KAAKD,IAChB,CAEA,eAAWQ,GACP,OAAOP,KAAKG,MAChB,CAEA,aAAWK,GACP,OAAOR,KAAKK,IAChB,CAEOI,KAAAA,GACHT,KAAKD,KAAO,GACZC,KAAKG,OAAS,GACdH,KAAKK,KAAO,EAChB,eA5BAK,EAAAV,KAAQD,OAAiC,IACzCW,EAAAV,KAAQG,SAAmC,IAC3CO,EAAAV,KAAQK,OAAiC"}
1
+ {"version":3,"file":"AnalyticsEventQueue.js","sources":["../../../../src/core/Analytics/AnalyticsEventQueue.ts"],"sourcesContent":["import { AbstractAnalyticsEvent, AnalyticsEventCategory } from './events/AbstractAnalyticsEvent';\n\nclass AnalyticsEventQueue {\n private info: AbstractAnalyticsEvent[] = [];\n private errors: AbstractAnalyticsEvent[] = [];\n private logs: AbstractAnalyticsEvent[] = [];\n\n public add(event: AbstractAnalyticsEvent) {\n const category = event.getEventCategory();\n\n if (category === AnalyticsEventCategory.info) this.info.push(event);\n if (category === AnalyticsEventCategory.error) this.errors.push(event);\n if (category === AnalyticsEventCategory.log) this.logs.push(event);\n }\n\n public get infoEvents(): AbstractAnalyticsEvent[] {\n return this.info;\n }\n\n public get errorEvents(): AbstractAnalyticsEvent[] {\n return this.errors;\n }\n\n public get logEvents(): AbstractAnalyticsEvent[] {\n return this.logs;\n }\n\n public get hasEvents(): boolean {\n return this.info.length > 0 || this.errors.length > 0 || this.logs.length > 0;\n }\n\n public clear(): void {\n this.info = [];\n this.errors = [];\n this.logs = [];\n }\n}\n\nexport { AnalyticsEventQueue };\n"],"names":["AnalyticsEventQueue","add","event","category","getEventCategory","AnalyticsEventCategory","info","this","push","error","errors","log","logs","infoEvents","errorEvents","logEvents","hasEvents","length","clear","_define_property"],"mappings":"oMAEA,MAAMA,EAKKC,GAAAA,CAAIC,GACP,MAAMC,EAAWD,EAAME,mBAEnBD,IAAaE,EAAuBC,MAAMC,KAAKD,KAAKE,KAAKN,GACzDC,IAAaE,EAAuBI,OAAOF,KAAKG,OAAOF,KAAKN,GAC5DC,IAAaE,EAAuBM,KAAKJ,KAAKK,KAAKJ,KAAKN,EAChE,CAEA,cAAWW,GACP,OAAON,KAAKD,IAChB,CAEA,eAAWQ,GACP,OAAOP,KAAKG,MAChB,CAEA,aAAWK,GACP,OAAOR,KAAKK,IAChB,CAEA,aAAWI,GACP,OAAOT,KAAKD,KAAKW,OAAS,GAAKV,KAAKG,OAAOO,OAAS,GAAKV,KAAKK,KAAKK,OAAS,CAChF,CAEOC,KAAAA,GACHX,KAAKD,KAAO,GACZC,KAAKG,OAAS,GACdH,KAAKK,KAAO,EAChB,eAhCAO,EAAAZ,KAAQD,OAAiC,IACzCa,EAAAZ,KAAQG,SAAmC,IAC3CS,EAAAZ,KAAQK,OAAiC"}
@@ -1,2 +1,2 @@
1
- import e from"../Errors/AdyenCheckoutError.js";function t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function r(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(r){t(e,r,n[r])})}return e}function n(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function o(e,t){if(null==e)return{};var r,n,o,c={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(e),o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(c[n]=e[n]);return c}if(c=function(e,t){if(null==e)return{};var r,n,o={},c=Object.getOwnPropertyNames(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(c[n]=e[n]);return c}class c{getImage(e={}){return this.getImageUrl(n(r({},e),{resourceContext:this.resourceContext}))}constructor(n){if(t(this,"resourceContext",void 0),t(this,"returnImage",({name:e,resourceContext:t,imageFolder:r="",parentFolder:n="",extension:o,size:c="",subFolder:s=""})=>`${t}images/${r}${s}${n}${e}${c}.${o}`),t(this,"getImageUrl",e=>{let{resourceContext:t,extension:n="svg"}=e,c=o(e,["resourceContext","extension"]);return e=>{const o=r({extension:n,resourceContext:t,imageFolder:"logos/",parentFolder:"",name:e},c);return this.returnImage(o)}}),!n)throw new e("IMPLEMENTATION_ERROR",'Resources module: "environmentsUrls.cdn" is not a valid URL');this.resourceContext=n}}export{c as Resources};
1
+ import e from"../Errors/AdyenCheckoutError.js";function t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function r(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(r){t(e,r,n[r])})}return e}function n(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function o(e,t){if(null==e)return{};var r,n,o,c={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(Object(e)),o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(c[n]=e[n]);return c}if(c=function(e,t){if(null==e)return{};var r,n,o={},c=Object.getOwnPropertyNames(e);for(n=0;n<c.length;n++)r=c[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(c[n]=e[n]);return c}class c{getImage(e={}){return this.getImageUrl(n(r({},e),{resourceContext:this.resourceContext}))}constructor(n){if(t(this,"resourceContext",void 0),t(this,"returnImage",({name:e,resourceContext:t,imageFolder:r="",parentFolder:n="",extension:o,size:c="",subFolder:s=""})=>`${t}images/${r}${s}${n}${e}${c}.${o}`),t(this,"getImageUrl",e=>{let{resourceContext:t,extension:n="svg"}=e,c=o(e,["resourceContext","extension"]);return e=>{const o=r({extension:n,resourceContext:t,imageFolder:"logos/",parentFolder:"",name:e},c);return this.returnImage(o)}}),!n)throw new e("IMPLEMENTATION_ERROR",'Resources module: "environmentsUrls.cdn" is not a valid URL');this.resourceContext=n}}export{c as Resources};
2
2
  //# sourceMappingURL=Resources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Resources.js","sources":["../../../../src/core/Context/Resources.ts"],"sourcesContent":["import AdyenCheckoutError from '../Errors/AdyenCheckoutError';\n\nexport interface ImageOptions {\n extension?: string;\n imageFolder?: string;\n resourceContext?: string;\n name?: string;\n parentFolder?: string;\n size?: string;\n subFolder?: string;\n svgOptions?: string;\n type?: string;\n}\n\nexport type GetImageFnType = (name) => string;\n\nexport class Resources {\n private readonly resourceContext: string;\n\n constructor(cdnContext: string) {\n if (!cdnContext) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Resources module: \"environmentsUrls.cdn\" is not a valid URL');\n }\n this.resourceContext = cdnContext;\n }\n\n private returnImage = ({\n name,\n resourceContext,\n imageFolder = '',\n parentFolder = '',\n extension,\n size = '',\n subFolder = ''\n }: ImageOptions): string => `${resourceContext}images/${imageFolder}${subFolder}${parentFolder}${name}${size}.${extension}`;\n\n private getImageUrl =\n ({ resourceContext, extension = 'svg', ...options }: ImageOptions): GetImageFnType =>\n (name: string): string => {\n const imageOptions: ImageOptions = {\n extension,\n resourceContext,\n imageFolder: 'logos/',\n parentFolder: '',\n name,\n ...options\n };\n\n return this.returnImage(imageOptions);\n };\n\n public getImage(props = {} as ImageOptions) {\n return this.getImageUrl({ ...props, resourceContext: this.resourceContext });\n }\n}\n"],"names":["Resources","getImage","props","this","getImageUrl","_object_spread_props","_object_spread","resourceContext","constructor","cdnContext","_define_property","returnImage","name","imageFolder","parentFolder","extension","size","subFolder","_0","options","imageOptions","AdyenCheckoutError"],"mappings":"y8CAgBO,MAAMA,EAmCFC,QAAAA,CAASC,EAAQ,IACpB,OAAOC,KAAKC,YAAYC,EAAAC,EAAA,CAAA,EAAKJ,GAAAA,CAAOK,gBAAiBJ,KAAKI,kBAC9D,CAlCA,WAAAC,CAAYC,GACR,GAHJC,EAAAP,KAAiBI,0BASjBG,EAAAP,KAAQQ,cAAc,EAClBC,OACAL,kBACAM,cAAc,GACdC,eAAe,GACfC,YACAC,OAAO,GACPC,YAAY,MACY,GAAGV,WAAyBM,IAAcI,IAAYH,IAAeF,IAAOI,KAAQD,KAEhHL,EAAAP,KAAQC,cACJc,IAAC,IAAAX,gBAAEA,EAAeQ,UAAEA,EAAY,OAAiCG,EAAvBC,EAAAA,EAAAA,EAAAA,wCACzCP,IACG,MAAMQ,EAA6Bd,EAAA,CAC/BS,YACAR,kBACAM,YAAa,SACbC,aAAc,GACdF,QACGO,GAGP,OAAOhB,KAAKQ,YAAYS,OA5BvBX,EACD,MAAM,IAAIY,EAAmB,uBAAwB,+DAEzDlB,KAAKI,gBAAkBE,CAC3B"}
1
+ {"version":3,"file":"Resources.js","sources":["../../../../src/core/Context/Resources.ts"],"sourcesContent":["import AdyenCheckoutError from '../Errors/AdyenCheckoutError';\n\nexport interface ImageOptions {\n extension?: string;\n imageFolder?: string;\n resourceContext?: string;\n name?: string;\n parentFolder?: string;\n size?: string;\n subFolder?: string;\n svgOptions?: string;\n type?: string;\n}\n\nexport type GetImageFnType = (name) => string;\n\nexport class Resources {\n private readonly resourceContext: string;\n\n constructor(cdnContext: string) {\n if (!cdnContext) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Resources module: \"environmentsUrls.cdn\" is not a valid URL');\n }\n this.resourceContext = cdnContext;\n }\n\n private returnImage = ({\n name,\n resourceContext,\n imageFolder = '',\n parentFolder = '',\n extension,\n size = '',\n subFolder = ''\n }: ImageOptions): string => `${resourceContext}images/${imageFolder}${subFolder}${parentFolder}${name}${size}.${extension}`;\n\n private getImageUrl =\n ({ resourceContext, extension = 'svg', ...options }: ImageOptions): GetImageFnType =>\n (name: string): string => {\n const imageOptions: ImageOptions = {\n extension,\n resourceContext,\n imageFolder: 'logos/',\n parentFolder: '',\n name,\n ...options\n };\n\n return this.returnImage(imageOptions);\n };\n\n public getImage(props = {} as ImageOptions) {\n return this.getImageUrl({ ...props, resourceContext: this.resourceContext });\n }\n}\n"],"names":["Resources","getImage","props","this","getImageUrl","_object_spread_props","_object_spread","resourceContext","constructor","cdnContext","_define_property","returnImage","name","imageFolder","parentFolder","extension","size","subFolder","_0","options","imageOptions","AdyenCheckoutError"],"mappings":"i9CAgBO,MAAMA,EAmCFC,QAAAA,CAASC,EAAQ,IACpB,OAAOC,KAAKC,YAAYC,EAAAC,EAAA,CAAA,EAAKJ,GAAAA,CAAOK,gBAAiBJ,KAAKI,kBAC9D,CAlCA,WAAAC,CAAYC,GACR,GAHJC,EAAAP,KAAiBI,0BASjBG,EAAAP,KAAQQ,cAAc,EAClBC,OACAL,kBACAM,cAAc,GACdC,eAAe,GACfC,YACAC,OAAO,GACPC,YAAY,MACY,GAAGV,WAAyBM,IAAcI,IAAYH,IAAeF,IAAOI,KAAQD,KAEhHL,EAAAP,KAAQC,cACJc,IAAC,IAAAX,gBAAEA,EAAeQ,UAAEA,EAAY,OAAiCG,EAAvBC,EAAAA,EAAAA,EAAAA,wCACzCP,IACG,MAAMQ,EAA6Bd,EAAA,CAC/BS,YACAR,kBACAM,YAAa,SACbC,aAAc,GACdF,QACGO,GAGP,OAAOhB,KAAKQ,YAAYS,OA5BvBX,EACD,MAAM,IAAIY,EAAmB,uBAAwB,+DAEzDlB,KAAKI,gBAAkBE,CAC3B"}
@@ -1,2 +1,2 @@
1
- const e={test:"https://checkoutshopper-test.adyen.com/checkoutshopper/",live:"https://checkoutshopper-live.adyen.com/checkoutshopper/","live-us":"https://checkoutshopper-live-us.adyen.com/checkoutshopper/","live-au":"https://checkoutshopper-live-au.adyen.com/checkoutshopper/","live-apse":"https://checkoutshopper-live-apse.adyen.com/checkoutshopper/","live-in":"https://checkoutshopper-live-in.adyen.com/checkoutshopper/",fallback:"https://checkoutshopper-live.adyen.com/checkoutshopper/"},c={test:"https://checkoutshopper-test.cdn.adyen.com/checkoutshopper/",live:"https://checkoutshopper-live.cdn.adyen.com/checkoutshopper/","live-us":"https://checkoutshopper-live-us.cdn.adyen.com/checkoutshopper/","live-au":"https://checkoutshopper-live-au.cdn.adyen.com/checkoutshopper/","live-apse":"https://checkoutshopper-live-apse.cdn.adyen.com/checkoutshopper/","live-in":"https://checkoutshopper-live-in.cdn.adyen.com/checkoutshopper/",fallback:"https://checkoutshopper-live.cdn.adyen.com/checkoutshopper/"},t={test:"https://checkoutanalytics-test.adyen.com/checkoutanalytics/",live:"https://checkoutanalytics-live.adyen.com/checkoutanalytics/","live-us":"https://checkoutanalytics-live-us.adyen.com/checkoutanalytics/","live-au":"https://checkoutanalytics-live-au.adyen.com/checkoutanalytics/","live-apse":"https://checkoutanalytics-live-apse.adyen.com/checkoutanalytics/","live-in":"https://checkoutanalytics-live-in.adyen.com/checkoutanalytics/",fallback:"https://checkoutanalytics-live.adyen.com/checkoutanalytics/"};export{t as ANALYTICS_ENVIRONMENTS,e as API_ENVIRONMENTS,c as CDN_ENVIRONMENTS};
1
+ const e={test:"https://checkoutshopper-test.adyen.com/checkoutshopper/",live:"https://checkoutshopper-live.adyen.com/checkoutshopper/","live-us":"https://checkoutshopper-live-us.adyen.com/checkoutshopper/","live-au":"https://checkoutshopper-live-au.adyen.com/checkoutshopper/","live-apse":"https://checkoutshopper-live-apse.adyen.com/checkoutshopper/","live-in":"https://checkoutshopper-live-in.adyen.com/checkoutshopper/","live-nea":"https://checkoutshopper-live-nea.adyen.com/checkoutshopper/",fallback:"https://checkoutshopper-live.adyen.com/checkoutshopper/"},c={test:"https://checkoutshopper-test.cdn.adyen.com/checkoutshopper/",live:"https://checkoutshopper-live.cdn.adyen.com/checkoutshopper/","live-us":"https://checkoutshopper-live-us.cdn.adyen.com/checkoutshopper/","live-au":"https://checkoutshopper-live-au.cdn.adyen.com/checkoutshopper/","live-apse":"https://checkoutshopper-live-apse.cdn.adyen.com/checkoutshopper/","live-in":"https://checkoutshopper-live-in.cdn.adyen.com/checkoutshopper/","live-nea":"https://checkoutshopper-live-nea.cdn.adyen.com/checkoutshopper/",fallback:"https://checkoutshopper-live.cdn.adyen.com/checkoutshopper/"},t={test:"https://checkoutanalytics-test.adyen.com/checkoutanalytics/",live:"https://checkoutanalytics-live.adyen.com/checkoutanalytics/","live-us":"https://checkoutanalytics-live-us.adyen.com/checkoutanalytics/","live-au":"https://checkoutanalytics-live-au.adyen.com/checkoutanalytics/","live-apse":"https://checkoutanalytics-live-apse.adyen.com/checkoutanalytics/","live-in":"https://checkoutanalytics-live-in.adyen.com/checkoutanalytics/","live-nea":"https://checkoutanalytics-live-nea.adyen.com/checkoutanalytics/",fallback:"https://checkoutanalytics-live.adyen.com/checkoutanalytics/"};export{t as ANALYTICS_ENVIRONMENTS,e as API_ENVIRONMENTS,c as CDN_ENVIRONMENTS};
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/core/Environment/constants.ts"],"sourcesContent":["const API_ENVIRONMENTS = {\n test: 'https://checkoutshopper-test.adyen.com/checkoutshopper/',\n live: 'https://checkoutshopper-live.adyen.com/checkoutshopper/',\n 'live-us': 'https://checkoutshopper-live-us.adyen.com/checkoutshopper/',\n 'live-au': 'https://checkoutshopper-live-au.adyen.com/checkoutshopper/',\n 'live-apse': 'https://checkoutshopper-live-apse.adyen.com/checkoutshopper/',\n 'live-in': 'https://checkoutshopper-live-in.adyen.com/checkoutshopper/',\n fallback: 'https://checkoutshopper-live.adyen.com/checkoutshopper/'\n};\n\nconst CDN_ENVIRONMENTS = {\n test: 'https://checkoutshopper-test.cdn.adyen.com/checkoutshopper/',\n live: 'https://checkoutshopper-live.cdn.adyen.com/checkoutshopper/',\n 'live-us': 'https://checkoutshopper-live-us.cdn.adyen.com/checkoutshopper/',\n 'live-au': 'https://checkoutshopper-live-au.cdn.adyen.com/checkoutshopper/',\n 'live-apse': 'https://checkoutshopper-live-apse.cdn.adyen.com/checkoutshopper/',\n 'live-in': 'https://checkoutshopper-live-in.cdn.adyen.com/checkoutshopper/',\n fallback: 'https://checkoutshopper-live.cdn.adyen.com/checkoutshopper/'\n};\n\nconst ANALYTICS_ENVIRONMENTS = {\n test: 'https://checkoutanalytics-test.adyen.com/checkoutanalytics/',\n live: 'https://checkoutanalytics-live.adyen.com/checkoutanalytics/',\n 'live-us': 'https://checkoutanalytics-live-us.adyen.com/checkoutanalytics/',\n 'live-au': 'https://checkoutanalytics-live-au.adyen.com/checkoutanalytics/',\n 'live-apse': 'https://checkoutanalytics-live-apse.adyen.com/checkoutanalytics/',\n 'live-in': 'https://checkoutanalytics-live-in.adyen.com/checkoutanalytics/',\n fallback: 'https://checkoutanalytics-live.adyen.com/checkoutanalytics/'\n};\n\nexport { API_ENVIRONMENTS, CDN_ENVIRONMENTS, ANALYTICS_ENVIRONMENTS };\n"],"names":["API_ENVIRONMENTS","test","live","fallback","CDN_ENVIRONMENTS","ANALYTICS_ENVIRONMENTS"],"mappings":"AAAA,MAAMA,EAAmB,CACrBC,KAAM,0DACNC,KAAM,0DACN,UAAW,6DACX,UAAW,6DACX,YAAa,+DACb,UAAW,6DACXC,SAAU,2DAGRC,EAAmB,CACrBH,KAAM,8DACNC,KAAM,8DACN,UAAW,iEACX,UAAW,iEACX,YAAa,mEACb,UAAW,iEACXC,SAAU,+DAGRE,EAAyB,CAC3BJ,KAAM,8DACNC,KAAM,8DACN,UAAW,iEACX,UAAW,iEACX,YAAa,mEACb,UAAW,iEACXC,SAAU"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/core/Environment/constants.ts"],"sourcesContent":["const API_ENVIRONMENTS = {\n test: 'https://checkoutshopper-test.adyen.com/checkoutshopper/',\n live: 'https://checkoutshopper-live.adyen.com/checkoutshopper/',\n 'live-us': 'https://checkoutshopper-live-us.adyen.com/checkoutshopper/',\n 'live-au': 'https://checkoutshopper-live-au.adyen.com/checkoutshopper/',\n 'live-apse': 'https://checkoutshopper-live-apse.adyen.com/checkoutshopper/',\n 'live-in': 'https://checkoutshopper-live-in.adyen.com/checkoutshopper/',\n 'live-nea': 'https://checkoutshopper-live-nea.adyen.com/checkoutshopper/',\n fallback: 'https://checkoutshopper-live.adyen.com/checkoutshopper/'\n};\n\nconst CDN_ENVIRONMENTS = {\n test: 'https://checkoutshopper-test.cdn.adyen.com/checkoutshopper/',\n live: 'https://checkoutshopper-live.cdn.adyen.com/checkoutshopper/',\n 'live-us': 'https://checkoutshopper-live-us.cdn.adyen.com/checkoutshopper/',\n 'live-au': 'https://checkoutshopper-live-au.cdn.adyen.com/checkoutshopper/',\n 'live-apse': 'https://checkoutshopper-live-apse.cdn.adyen.com/checkoutshopper/',\n 'live-in': 'https://checkoutshopper-live-in.cdn.adyen.com/checkoutshopper/',\n 'live-nea': 'https://checkoutshopper-live-nea.cdn.adyen.com/checkoutshopper/',\n fallback: 'https://checkoutshopper-live.cdn.adyen.com/checkoutshopper/'\n};\n\nconst ANALYTICS_ENVIRONMENTS = {\n test: 'https://checkoutanalytics-test.adyen.com/checkoutanalytics/',\n live: 'https://checkoutanalytics-live.adyen.com/checkoutanalytics/',\n 'live-us': 'https://checkoutanalytics-live-us.adyen.com/checkoutanalytics/',\n 'live-au': 'https://checkoutanalytics-live-au.adyen.com/checkoutanalytics/',\n 'live-apse': 'https://checkoutanalytics-live-apse.adyen.com/checkoutanalytics/',\n 'live-in': 'https://checkoutanalytics-live-in.adyen.com/checkoutanalytics/',\n 'live-nea': 'https://checkoutanalytics-live-nea.adyen.com/checkoutanalytics/',\n fallback: 'https://checkoutanalytics-live.adyen.com/checkoutanalytics/'\n};\n\nexport { API_ENVIRONMENTS, CDN_ENVIRONMENTS, ANALYTICS_ENVIRONMENTS };\n"],"names":["API_ENVIRONMENTS","test","live","fallback","CDN_ENVIRONMENTS","ANALYTICS_ENVIRONMENTS"],"mappings":"AAAA,MAAMA,EAAmB,CACrBC,KAAM,0DACNC,KAAM,0DACN,UAAW,6DACX,UAAW,6DACX,YAAa,+DACb,UAAW,6DACX,WAAY,8DACZC,SAAU,2DAGRC,EAAmB,CACrBH,KAAM,8DACNC,KAAM,8DACN,UAAW,iEACX,UAAW,iEACX,YAAa,mEACb,UAAW,iEACX,WAAY,kEACZC,SAAU,+DAGRE,EAAyB,CAC3BJ,KAAM,8DACNC,KAAM,8DACN,UAAW,iEACX,UAAW,iEACX,YAAa,mEACb,UAAW,iEACX,WAAY,kEACZC,SAAU"}
@@ -1,2 +1,2 @@
1
- const e="https://checkoutshopper-live.adyen.com/checkoutshopper/",n="6.32.1",o="eslegacy",t=["amount","secondaryAmount","countryCode","environment","_environmentUrls","loadingContext","i18n","modules","order","session","clientKey","showPayButton","redirectFromTopWhenInIframe","onPaymentCompleted","onPaymentFailed","beforeRedirect","beforeSubmit","onSubmit","onActionHandled","onAdditionalDetails","onChange","onEnterKeyPressed","onError","onBalanceCheck","onOrderCancel","onOrderRequest","onOrderUpdated","onPaymentMethodsRequest"],r=6e4;export{r as DEFAULT_HTTP_TIMEOUT,e as FALLBACK_CONTEXT,t as GENERIC_OPTIONS,o as LIBRARY_BUNDLE_TYPE,n as LIBRARY_VERSION};
1
+ function e(e,n){if(null==e)throw new Error(n);return e}const n="https://checkoutshopper-live.adyen.com/checkoutshopper/",o=e("6.34.0","LIBRARY_VERSION is not defined"),t=e("eslegacy","BUNDLE_TYPE is not defined"),r=["amount","secondaryAmount","countryCode","environment","_environmentUrls","loadingContext","i18n","modules","order","session","clientKey","showPayButton","redirectFromTopWhenInIframe","onPaymentCompleted","onPaymentFailed","beforeRedirect","beforeSubmit","onSubmit","onActionHandled","onAdditionalDetails","onChange","onEnterKeyPressed","onError","onBalanceCheck","onOrderCancel","onOrderRequest","onOrderUpdated","onPaymentMethodsRequest"],d=6e4;export{d as DEFAULT_HTTP_TIMEOUT,n as FALLBACK_CONTEXT,r as GENERIC_OPTIONS,t as LIBRARY_BUNDLE_TYPE,o as LIBRARY_VERSION};
2
2
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../src/core/config.ts"],"sourcesContent":["/**\n * FALLBACK_CONTEXT\n */\nexport const FALLBACK_CONTEXT = 'https://checkoutshopper-live.adyen.com/checkoutshopper/';\n\nexport const LIBRARY_VERSION = process.env.VERSION;\nexport const LIBRARY_BUNDLE_TYPE = process.env.BUNDLE_TYPE;\n\nexport const GENERIC_OPTIONS = [\n 'amount',\n 'secondaryAmount',\n 'countryCode',\n 'environment',\n '_environmentUrls',\n 'loadingContext',\n 'i18n',\n 'modules',\n 'order',\n 'session',\n 'clientKey',\n 'showPayButton',\n 'redirectFromTopWhenInIframe',\n\n // Events\n 'onPaymentCompleted',\n 'onPaymentFailed',\n 'beforeRedirect',\n 'beforeSubmit',\n 'onSubmit',\n 'onActionHandled',\n 'onAdditionalDetails',\n 'onChange',\n 'onEnterKeyPressed',\n 'onError',\n 'onBalanceCheck',\n 'onOrderCancel',\n 'onOrderRequest',\n 'onOrderUpdated',\n 'onPaymentMethodsRequest'\n];\n\nexport const DEFAULT_HTTP_TIMEOUT = 60000;\n\nexport default {\n FALLBACK_CONTEXT,\n GENERIC_OPTIONS,\n DEFAULT_HTTP_TIMEOUT\n};\n"],"names":["FALLBACK_CONTEXT","LIBRARY_VERSION","LIBRARY_BUNDLE_TYPE","GENERIC_OPTIONS","DEFAULT_HTTP_TIMEOUT"],"mappings":"AAGO,MAAMA,EAAmB,0DAEnBC,EAAkB,SAClBC,EAAsB,WAEtBC,EAAkB,CAC3B,SACA,kBACA,cACA,cACA,mBACA,iBACA,OACA,UACA,QACA,UACA,YACA,gBACA,8BAGA,qBACA,kBACA,iBACA,eACA,WACA,kBACA,sBACA,WACA,oBACA,UACA,iBACA,gBACA,iBACA,iBACA,2BAGSC,EAAuB"}
1
+ {"version":3,"file":"config.js","sources":["../../../src/core/config.ts"],"sourcesContent":["/**\n * Asserts that a value is defined and throws an error if it is not.\n *\n * @param value The value to check.\n * @param message The error message to throw if the value is undefined.\n * @returns The value if it is defined.\n */\nfunction assertDefined<T>(value: T | undefined, message: string): T {\n if (value === undefined || value === null) {\n throw new Error(message);\n }\n return value;\n}\n\n/**\n * FALLBACK_CONTEXT\n */\nexport const FALLBACK_CONTEXT = 'https://checkoutshopper-live.adyen.com/checkoutshopper/';\n\n/**\n * Library version injected at build time.\n * Always defined - the build process ensures this value is set.\n */\nexport const LIBRARY_VERSION = assertDefined(process.env.VERSION, 'LIBRARY_VERSION is not defined');\n\n/**\n * Bundle type injected at build time.\n * Always defined - the build process ensures this value is set.\n */\nexport const LIBRARY_BUNDLE_TYPE = assertDefined(process.env.BUNDLE_TYPE, 'BUNDLE_TYPE is not defined');\n\nexport const GENERIC_OPTIONS = [\n 'amount',\n 'secondaryAmount',\n 'countryCode',\n 'environment',\n '_environmentUrls',\n 'loadingContext',\n 'i18n',\n 'modules',\n 'order',\n 'session',\n 'clientKey',\n 'showPayButton',\n 'redirectFromTopWhenInIframe',\n\n // Events\n 'onPaymentCompleted',\n 'onPaymentFailed',\n 'beforeRedirect',\n 'beforeSubmit',\n 'onSubmit',\n 'onActionHandled',\n 'onAdditionalDetails',\n 'onChange',\n 'onEnterKeyPressed',\n 'onError',\n 'onBalanceCheck',\n 'onOrderCancel',\n 'onOrderRequest',\n 'onOrderUpdated',\n 'onPaymentMethodsRequest'\n];\n\nexport const DEFAULT_HTTP_TIMEOUT = 60000;\n\nexport default {\n FALLBACK_CONTEXT,\n GENERIC_OPTIONS,\n DEFAULT_HTTP_TIMEOUT\n};\n"],"names":["assertDefined","value","message","Error","FALLBACK_CONTEXT","LIBRARY_VERSION","LIBRARY_BUNDLE_TYPE","GENERIC_OPTIONS","DEFAULT_HTTP_TIMEOUT"],"mappings":"AAOA,SAASA,EAAiBC,EAAsBC,GAC5C,GAAID,QACA,MAAM,IAAIE,MAAMD,GAEpB,OAAOD,CACX,CAKO,MAAMG,EAAmB,0DAMnBC,EAAkBL,EAAc,SAAqB,kCAMrDM,EAAsBN,EAAc,WAAyB,8BAE7DO,EAAkB,CAC3B,SACA,kBACA,cACA,cACA,mBACA,iBACA,OACA,UACA,QACA,UACA,YACA,gBACA,8BAGA,qBACA,kBACA,iBACA,eACA,WACA,kBACA,sBACA,WACA,oBACA,UACA,iBACA,gBACA,iBACA,iBACA,2BAGSC,EAAuB"}
@@ -1,2 +1,2 @@
1
- import{Language as t}from"../language/Language.js";import e from"./RiskModule/RiskModule.js";import o from"./ProcessResponse/PaymentMethods/PaymentMethods.js";import n from"./ProcessResponse/PaymentAction/PaymentAction.js";import i from"./Analytics/Analytics.js";import{processGlobalOptions as s,assertConfigurationPropertiesAreValid as r}from"./utils.js";import a from"./CheckoutSession/CheckoutSession.js";import{hasOwnProperty as l}from"../utils/hasOwnProperty.js";import{Resources as c}from"./Context/Resources.js";import{SRPanel as p}from"./Errors/SRPanel.js";import h from"./core.registry.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as m,cleanupFinalResult as u}from"../components/internal/UIElement/utils.js";import y,{IMPLEMENTATION_ERROR as f}from"./Errors/AdyenCheckoutError.js";import{THREEDS2_FULL as v}from"../components/ThreeDS2/constants.js";import{DEFAULT_LOCALE as g}from"../language/constants.js";import b from"./Services/get-translations.js";import{defaultProps as w}from"./core.defaultProps.js";import{formatLocale as j,formatCustomTranslations as C}from"../language/utils.js";import{resolveEnvironments as A}from"./Environment/Environment.js";import{LIBRARY_BUNDLE_TYPE as O,LIBRARY_VERSION as P}from"./config.js";import{AnalyticsLogEvent as E,LogEventType as M}from"./Analytics/events/AnalyticsLogEvent.js";import R from"./Errors/CancelError.js";import{AnalyticsService as I}from"./Analytics/AnalyticsService.js";import{AnalyticsEventQueue as T}from"./Analytics/AnalyticsEventQueue.js";import{isAmountValid as x}from"../utils/amount-util.js";function k(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function D(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),n.forEach(function(e){k(t,e,o[e])})}return t}function U(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}function S(t,e){if(null==t)return{};var o,n,i,s={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(o=Reflect.ownKeys(t),i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n]);return s}if(s=function(t,e){if(null==t)return{};var o,n,i={},s=Object.getOwnPropertyNames(t);for(n=0;n<s.length;n++)o=s[n],e.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(i[o]=t[o]);return i}(t,e),Object.getOwnPropertySymbols)for(o=Object.getOwnPropertySymbols(t),i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n]);return s}class F{static setBundleType(t){F.metadata.bundleType=t}static register(...t){h.add(...t)}register(...t){h.add(...t)}getComponent(t){return h.getComponent(t)}async initialize(){return await this.initializeCore(),this.validateCoreConfiguration(),await this.createCoreModules(),await this.requestAnalyticsAttemptId(),this}async initializeCore(){return this.session?this.session.setupSession(this.options).then(t=>{const{amount:e,shopperLocale:o,countryCode:n,paymentMethods:i}=t,s=S(t,["amount","shopperLocale","countryCode","paymentMethods"]);return this.setOptions(U(D({},s),{amount:this.options.order?this.options.order.remainingAmount:e,locale:this.options.locale||o,countryCode:this.options.countryCode||n})),this.createPaymentMethodsList(i),this}).catch(t=>(this.options.onError&&this.options.onError(t),Promise.reject(t))):(this.createPaymentMethodsList(),Promise.resolve(this))}async fetchLocaleTranslations(){try{return await b(this.cdnTranslationsUrl,F.metadata.version,this.options.locale)}catch(i){var t,e,o,n;i instanceof y?null===(t=(e=this.options).onError)||void 0===t||t.call(e,i):null===(o=(n=this.options).onError)||void 0===o||o.call(n,new y("ERROR","Failed to fetch translation",{cause:i}))}}validateCoreConfiguration(){if(this.options.paymentMethodsConfiguration&&console.warn('WARNING: "paymentMethodsConfiguration" is supported only by Drop-in.'),!this.options.countryCode)throw new y(f,"You must specify a countryCode when initializing checkout.");this.options.locale||this.setOptions({locale:g}),this.options.locale=j(this.options.locale),this.options.translations=C(this.options.translations)}submitDetails(t){let e=null;var o,n;(this.options.onAdditionalDetails&&(e=new Promise((e,o)=>{this.options.onAdditionalDetails({data:t},void 0,{resolve:e,reject:o})})),this.session&&(e=this.session.submitDetails(t).catch(t=>{var e,o;return null===(e=(o=this.options).onError)||void 0===e||e.call(o,t),Promise.reject(t)})),e)?e.then(d).then(m).then(this.afterAdditionalDetails).then(t=>{var e,o;u(t),null===(e=(o=this.options).onPaymentCompleted)||void 0===e||e.call(o,t)}).catch(t=>{var e,o;t instanceof R||(u(t),null===(e=(o=this.options).onPaymentFailed)||void 0===e||e.call(o,t))}):null===(o=(n=this.options).onError)||void 0===o||o.call(n,new y("IMPLEMENTATION_ERROR",'It can not submit the details. The callback "onAdditionalDetails" or the Session is not setup correctly.'))}createFromAction(t,e={}){if(!t||!t.type){if(l(t,"action")&&l(t,"resultCode"))throw new Error('createFromAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('createFromAction::Invalid Action - the passed action object does not have a "type" property')}if(t.type){const o=t.type===v?`${t.type}${t.subtype}`:t.paymentMethodType,i=new E({type:M.action,subType:E.getSubtypeFromActionType(t.type),message:`${o} action was handled by the SDK`,component:o});this.modules.analytics.sendAnalytics(i);const s=D({},this.getCorePropsForComponent(),e);return n(this,h,t,s)}return this.handleCreateError()}update(t={},{shouldReinitializeCheckout:e=!0}={}){if(e)return this.setOptions(t),this.initialize().then(()=>(this.components.forEach(e=>{var o;const n=D({},(null===(o=t.order)||void 0===o?void 0:o.remainingAmount)?{amount:t.order.remainingAmount}:{amount:this.options.amount},this.session&&{session:this.session},t);e.update(n)}),this));const{amount:o,secondaryAmount:n}=t;return(o||n)&&this.triggerAmountUpdate(o,n),Promise.resolve(this)}triggerAmountUpdate(t,e){x(t)?!e||x(e)?(this.setOptions(D({amount:t},e&&{secondaryAmount:e})),this.components.forEach(o=>{o.updateAmount(t,e)})):console.warn("Core update(): Update canceled. Invalid secondary amount object"):console.warn("Core update(): Update canceled. Invalid amount object")}getCorePropsForComponent(){return U(D({},s(this.options)),{core:this,i18n:this.modules.i18n,modules:this.modules,session:this.session,loadingContext:this.loadingContext,cdnContext:this.cdnImagesUrl,createFromAction:this.createFromAction})}storeElementReference(t){t&&this.components.push(t)}handleCreateError(t){var e;const o=null!==(e=null==t?void 0:t.name)&&void 0!==e?e:"The passed payment method",n=t?`${o} is not a valid Checkout Component. What was passed as a txVariant was: ${JSON.stringify(t)}. Check if this payment method is configured in the Backoffice or if the txVariant is a valid one`:"No Payment Method component was passed";throw new Error(n)}createPaymentMethodsList(t){this.paymentMethodsResponse=new o(this.options.paymentMethodsResponse||t,this.options)}async createCoreModules(){var o,n;if(this.modules)return;const s=await this.fetchLocaleTranslations();this.modules=Object.freeze({risk:new e(this,U(D({},this.options),{loadingContext:this.loadingContext})),analytics:new i({eventQueue:new T,service:new I({analyticsContext:this.analyticsContext,clientKey:this.options.clientKey}),enabled:null===(o=this.options.analytics)||void 0===o?void 0:o.enabled,analyticsData:null===(n=this.options.analytics)||void 0===n?void 0:n.analyticsData}),resources:new c(this.cdnImagesUrl),i18n:new t({locale:this.options.locale,translations:s,customTranslations:this.options.translations}),srPanel:new p(this,D({},this.options.srConfig))})}async requestAnalyticsAttemptId(){var t;await this.modules.analytics.setUp(D({locale:this.options.locale},(null===(t=this.session)||void 0===t?void 0:t.id)&&{sessionId:this.session.id}))}constructor(t){var e;k(this,"session",void 0),k(this,"paymentMethodsResponse",void 0),k(this,"modules",void 0),k(this,"options",void 0),k(this,"analyticsContext",void 0),k(this,"loadingContext",void 0),k(this,"cdnImagesUrl",void 0),k(this,"cdnTranslationsUrl",void 0),k(this,"components",[]),k(this,"afterAdditionalDetails",t=>{if(this.options.afterAdditionalDetails&&(null==t?void 0:t.action)){const e=this.createFromAction(t.action);return this.options.afterAdditionalDetails(e),Promise.reject(new R("Handled by afterAdditionalDetails"))}return Promise.resolve(t)}),k(this,"remove",t=>(this.components=this.components.filter(e=>e._id!==t._id),t.unmount(),this)),k(this,"setOptions",t=>{var e,o;this.options=U(D({},this.options,t),{locale:(null==t?void 0:t.locale)||(null===(e=this.options)||void 0===e?void 0:e.locale),environment:String.prototype.toLowerCase.apply((null==t?void 0:t.environment)||(null===(o=this.options)||void 0===o?void 0:o.environment))})}),r(t),this.createFromAction=this.createFromAction.bind(this),this.update=this.update.bind(this),this.setOptions(D({},w,t));const{apiUrl:o,analyticsUrl:n,cdnImagesUrl:i,cdnTranslationsUrl:s}=A(this.options.environment,this.options._environmentUrls);this.loadingContext=o,this.analyticsContext=n,this.cdnImagesUrl=i,this.cdnTranslationsUrl=s,this.session=this.options.session&&new a(this.options.session,this.options.clientKey,this.loadingContext);const l=null===(e=this.options.clientKey)||void 0===e?void 0:e.substring(0,4);var c,p;if(("test"===l||"live"===l)&&!this.loadingContext.includes(l))throw new y("IMPLEMENTATION_ERROR",`Error: you are using a ${l} clientKey against the ${(null===(c=this.options._environmentUrls)||void 0===c?void 0:c.api)||this.options.environment} environment`);"pub."===l&&console.debug(`The value you are passing as your "clientKey" looks like an originKey (${null===(p=this.options.clientKey)||void 0===p?void 0:p.substring(0,12)}..). Although this is supported it is not the recommended way to integrate. To generate a clientKey, see the documentation (https://docs.adyen.com/development-resources/client-side-authentication/migrate-from-origin-key-to-client-key/) for more details.`);this.options.exposeLibraryMetadata&&(window.AdyenWebMetadata=F.metadata)}}k(F,"metadata",{version:P,bundleType:O}),k(F,"registry",h);export{F as default};
1
+ import{Language as t}from"../language/Language.js";import e from"./RiskModule/RiskModule.js";import o from"./ProcessResponse/PaymentMethods/PaymentMethods.js";import n from"./ProcessResponse/PaymentAction/PaymentAction.js";import i from"./Analytics/Analytics.js";import{processGlobalOptions as s,assertConfigurationPropertiesAreValid as r}from"./utils.js";import a from"./CheckoutSession/CheckoutSession.js";import{hasOwnProperty as l}from"../utils/hasOwnProperty.js";import{Resources as c}from"./Context/Resources.js";import{SRPanel as h}from"./Errors/SRPanel.js";import d from"./core.registry.js";import{sanitizeResponse as p,verifyPaymentDidNotFail as m,cleanupFinalResult as u}from"../components/internal/UIElement/utils.js";import y,{IMPLEMENTATION_ERROR as f}from"./Errors/AdyenCheckoutError.js";import{THREEDS2_FULL as v}from"../components/ThreeDS2/constants.js";import{defaultProps as g}from"./core.defaultProps.js";import{resolveEnvironments as b}from"./Environment/Environment.js";import{LIBRARY_BUNDLE_TYPE as w,LIBRARY_VERSION as C}from"./config.js";import{AnalyticsLogEvent as j,LogEventType as A}from"./Analytics/events/AnalyticsLogEvent.js";import O from"./Errors/CancelError.js";import{AnalyticsService as P}from"./Analytics/AnalyticsService.js";import{AnalyticsEventQueue as E}from"./Analytics/AnalyticsEventQueue.js";import{isAmountValid as T}from"../utils/amount-util.js";import{LanguageService as M}from"../language/LanguageService.js";function I(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function x(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),n.forEach(function(e){I(t,e,o[e])})}return t}function R(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}function k(t,e){if(null==t)return{};var o,n,i,s={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(o=Reflect.ownKeys(Object(t)),i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n]);return s}if(s=function(t,e){if(null==t)return{};var o,n,i={},s=Object.getOwnPropertyNames(t);for(n=0;n<s.length;n++)o=s[n],e.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(t,o)&&(i[o]=t[o]);return i}(t,e),Object.getOwnPropertySymbols)for(o=Object.getOwnPropertySymbols(t),i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n]);return s}class U{static setBundleType(t){U.metadata.bundleType=t}static register(...t){d.add(...t)}register(...t){d.add(...t)}getComponent(t){return d.getComponent(t)}async initialize(){return this.validateCoreConfiguration(),await this.initializeCore(),this.createCoreModules(),this.assignLocaleToCore(),this.requestAnalyticsAttemptId(),await this.requestTranslations(),this}async initializeCore(){return this.session?this.session.setupSession(this.options).then(t=>{const{amount:e,shopperLocale:o,countryCode:n,paymentMethods:i}=t,s=k(t,["amount","shopperLocale","countryCode","paymentMethods"]);return this.setOptions(R(x({},s),{amount:this.options.order?this.options.order.remainingAmount:e,locale:this.options.locale||o,countryCode:this.options.countryCode||n})),this.createPaymentMethodsList(i),this}).catch(t=>(this.options.onError&&this.options.onError(t),Promise.reject(t))):(this.createPaymentMethodsList(),Promise.resolve(this))}validateCoreConfiguration(){if(this.options.paymentMethodsConfiguration&&console.warn('WARNING: "paymentMethodsConfiguration" is supported only by Drop-in.'),!this.options.countryCode)throw new y(f,"You must specify a countryCode when initializing checkout.")}submitDetails(t){let e=null;var o,n;(this.options.onAdditionalDetails&&(e=new Promise((e,o)=>{this.options.onAdditionalDetails({data:t},void 0,{resolve:e,reject:o})})),this.session&&(e=this.session.submitDetails(t).catch(t=>{var e,o;return null===(e=(o=this.options).onError)||void 0===e||e.call(o,t),Promise.reject(t)})),e)?e.then(p).then(m).then(this.afterAdditionalDetails).then(t=>{var e,o;u(t),null===(e=(o=this.options).onPaymentCompleted)||void 0===e||e.call(o,t)}).catch(t=>{var e,o;t instanceof O||(u(t),null===(e=(o=this.options).onPaymentFailed)||void 0===e||e.call(o,t))}):null===(o=(n=this.options).onError)||void 0===o||o.call(n,new y("IMPLEMENTATION_ERROR",'It can not submit the details. The callback "onAdditionalDetails" or the Session is not setup correctly.'))}createFromAction(t,e={}){if(!t||!t.type){if(l(t,"action")&&l(t,"resultCode"))throw new Error('createFromAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('createFromAction::Invalid Action - the passed action object does not have a "type" property')}if(t.type){const o=t.type===v?`${t.type}${t.subtype}`:t.paymentMethodType,i=new j({type:A.action,subType:j.getSubtypeFromActionType(t.type),message:`${o} action was handled by the SDK`,component:o});this.modules.analytics.sendAnalytics(i);const s=x({},this.getCorePropsForComponent(),e);return n(this,d,t,s)}return this.handleCreateError()}update(t={},{shouldReinitializeCheckout:e=!0}={}){if(e)return this.setOptions(t),this.initialize().then(()=>(this.components.forEach(e=>{var o;const n=x({},(null===(o=t.order)||void 0===o?void 0:o.remainingAmount)?{amount:t.order.remainingAmount}:{amount:this.options.amount},this.session&&{session:this.session},t);e.update(n)}),this));const{amount:o,secondaryAmount:n}=t;return(o||n)&&this.triggerAmountUpdate(o,n),Promise.resolve(this)}triggerAmountUpdate(t,e){T(t)?!e||T(e)?(this.setOptions(x({amount:t},e&&{secondaryAmount:e})),this.components.forEach(o=>{o.updateAmount(t,e)})):console.warn("Core update(): Update canceled. Invalid secondary amount object"):console.warn("Core update(): Update canceled. Invalid amount object")}getCorePropsForComponent(){return R(x({},s(this.options)),{core:this,i18n:this.modules.i18n,modules:this.modules,session:this.session,loadingContext:this.loadingContext,cdnContext:this.cdnImagesUrl,createFromAction:this.createFromAction})}storeElementReference(t){t&&this.components.push(t)}handleCreateError(t){var e;const o=null!==(e=null==t?void 0:t.name)&&void 0!==e?e:"The passed payment method",n=t?`${o} is not a valid Checkout Component. What was passed as a txVariant was: ${JSON.stringify(t)}. Check if this payment method is configured in the Backoffice or if the txVariant is a valid one`:"No Payment Method component was passed";throw new Error(n)}createPaymentMethodsList(t){this.paymentMethodsResponse=new o(this.options.paymentMethodsResponse||t,this.options)}createCoreModules(){var o,n,s;this.modules||(this.modules=Object.freeze({risk:new e(this,R(x({},this.options),{loadingContext:this.loadingContext})),analytics:new i({eventQueue:new E,service:new P({analyticsContext:this.analyticsContext,clientKey:this.options.clientKey}),enabled:null===(o=this.options.analytics)||void 0===o?void 0:o.enabled,analyticsData:null===(n=this.options.analytics)||void 0===n?void 0:n.analyticsData}),resources:new c(this.cdnImagesUrl),i18n:new t({locale:this.options.locale,customTranslations:this.options.translations,service:new M({cdnUrl:this.cdnTranslationsUrl,sdkVersion:U.metadata.version}),onError:null===(s=this.options)||void 0===s?void 0:s.onError}),srPanel:new h(this,x({},this.options.srConfig))}))}assignLocaleToCore(){this.options.locale=this.modules.i18n.locale}async requestTranslations(){try{await this.modules.i18n.requestTranslations()}catch(t){console.warn("Core - requestTranslations(): Something went wrong.",t)}}async requestAnalyticsAttemptId(){var t;await this.modules.analytics.setUp(x({locale:this.options.locale},(null===(t=this.session)||void 0===t?void 0:t.id)&&{sessionId:this.session.id}))}constructor(t){var e;I(this,"session",void 0),I(this,"paymentMethodsResponse",void 0),I(this,"modules",void 0),I(this,"options",void 0),I(this,"analyticsContext",void 0),I(this,"loadingContext",void 0),I(this,"cdnImagesUrl",void 0),I(this,"cdnTranslationsUrl",void 0),I(this,"components",[]),I(this,"afterAdditionalDetails",t=>{if(this.options.afterAdditionalDetails&&(null==t?void 0:t.action)){const e=this.createFromAction(t.action);return this.options.afterAdditionalDetails(e),Promise.reject(new O("Handled by afterAdditionalDetails"))}return Promise.resolve(t)}),I(this,"remove",t=>(this.components=this.components.filter(e=>e._id!==t._id),t.unmount(),this)),I(this,"setOptions",t=>{var e,o;this.options=R(x({},this.options,t),{locale:(null==t?void 0:t.locale)||(null===(e=this.options)||void 0===e?void 0:e.locale),environment:String.prototype.toLowerCase.apply((null==t?void 0:t.environment)||(null===(o=this.options)||void 0===o?void 0:o.environment))})}),r(t),this.createFromAction=this.createFromAction.bind(this),this.update=this.update.bind(this),this.setOptions(x({},g,t));const{apiUrl:o,analyticsUrl:n,cdnImagesUrl:i,cdnTranslationsUrl:s}=b(this.options.environment,this.options._environmentUrls);this.loadingContext=o,this.analyticsContext=n,this.cdnImagesUrl=i,this.cdnTranslationsUrl=s,this.session=this.options.session&&new a(this.options.session,this.options.clientKey,this.loadingContext);const l=null===(e=this.options.clientKey)||void 0===e?void 0:e.substring(0,4);var c,h;if(("test"===l||"live"===l)&&!this.loadingContext.includes(l))throw new y("IMPLEMENTATION_ERROR",`Error: you are using a ${l} clientKey against the ${(null===(c=this.options._environmentUrls)||void 0===c?void 0:c.api)||this.options.environment} environment`);"pub."===l&&console.debug(`The value you are passing as your "clientKey" looks like an originKey (${null===(h=this.options.clientKey)||void 0===h?void 0:h.substring(0,12)}..). Although this is supported it is not the recommended way to integrate. To generate a clientKey, see the documentation (https://docs.adyen.com/development-resources/client-side-authentication/migrate-from-origin-key-to-client-key/) for more details.`);this.options.exposeLibraryMetadata&&(window.AdyenWebMetadata=U.metadata)}}I(U,"metadata",{version:C,bundleType:w}),I(U,"registry",d);export{U as default};
2
2
  //# sourceMappingURL=core.js.map