@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 +1 @@
1
- {"version":3,"file":"PayByBankUS.js","sources":["../../../../src/components/PayByBankUS/PayByBankUS.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport RedirectElement from '../Redirect';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport './PayByBankUS.scss';\nimport getIssuerImageUrl from '../../utils/get-issuer-image';\nimport PayButton from '../internal/PayButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\nexport default class PayByBankUS extends RedirectElement {\n public static override readonly type: TxVariants = TxVariants.paybybank_AIS_DD;\n\n protected formatProps(props) {\n return {\n // paymentMethodBrands configuration\n keepBrandsVisible: true,\n showOtherInsteadOfNumber: true,\n ...props\n };\n }\n\n public formatData() {\n return {\n paymentMethod: {\n type: this.type,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId\n })\n },\n browserInfo: this.browserInfo\n };\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.name : '';\n }\n\n /*\n Hardcode US brands \n */\n get brands(): { icon: string; name: string }[] {\n const getImage = props => this.resources.getImage(props);\n // paybybank_AIS_DD / tx_variant not used here since images are kept in paybybank subfolder\n const getIssuerIcon = getIssuerImageUrl({}, 'paybybank', getImage);\n\n // hardcoding\n return [\n { icon: getIssuerIcon('US-1'), name: 'Wells Fargo' },\n { icon: getIssuerIcon('US-2'), name: 'Bank of America' },\n { icon: getIssuerIcon('US-3'), name: 'Chase' },\n { icon: getIssuerIcon('US-4'), name: 'Citi' }\n ];\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n this.props.showPayButton && (\n <PayButton\n {...this.props}\n classNameModifiers={['standalone']}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n onClick={this.submit}\n />\n )\n ) : (\n <Fragment>\n <div className=\"adyen-checkout-paybybank_AIS_DD\">\n <p className=\"adyen-checkout-paybybank_AIS_DD__description-header\">{this.props.i18n.get('payByBankAISDD.disclaimer.header')}</p>\n <p className=\"adyen-checkout-paybybank_AIS_DD__description-body\">{this.props.i18n.get('payByBankAISDD.disclaimer.body')}</p>\n </div>\n\n {this.props.showPayButton && (\n <RedirectButton\n {...this.props}\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n )}\n </Fragment>\n );\n }\n}\n"],"names":["PayByBankUS","RedirectElement","formatProps","props","keepBrandsVisible","showOtherInsteadOfNumber","formatData","paymentMethod","type","this","storedPaymentMethodId","browserInfo","displayName","label","name","additionalInfo","brands","getIssuerIcon","getIssuerImageUrl","resources","getImage","icon","componentToRender","showPayButton","h","PayButton","classNameModifiers","payAmountLabel","i18n","amount","onClick","submit","Fragment","div","className","p","get","RedirectButton","onSubmit","payButton","ref","componentRef","TxVariants","paybybank_AIS_DD"],"mappings":"sYAQe,MAAMA,UAAoBC,EAG3BC,WAAAA,CAAYC,GAClB,MAAO,CAEHC,mBAAmB,EACnBC,0BAA0B,KACvBF,EAEX,CAEOG,UAAAA,GACH,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKD,QACPC,KAAKN,MAAMO,uBAAyB,CACpCA,sBAAuBD,KAAKN,MAAMO,wBAG1CC,YAAaF,KAAKE,YAE1B,CAEA,eAAIC,GACA,OAAIH,KAAKN,MAAMO,uBAAyBD,KAAKN,MAAMU,MACxCJ,KAAKN,MAAMU,MAEfJ,KAAKN,MAAMW,IACtB,CAEA,kBAAIC,GACA,OAAON,KAAKN,MAAMO,sBAAwBD,KAAKN,MAAMW,KAAO,EAChE,CAKA,UAAIE,GACA,MAEMC,EAAgBC,EAAkB,GAAI,YAF3Bf,GAASM,KAAKU,UAAUC,SAASjB,IAKlD,MAAO,CACH,CAAEkB,KAAMJ,EAAc,QAASH,KAAM,eACrC,CAAEO,KAAMJ,EAAc,QAASH,KAAM,mBACrC,CAAEO,KAAMJ,EAAc,QAASH,KAAM,SACrC,CAAEO,KAAMJ,EAAc,QAASH,KAAM,QAE7C,CAEmBQ,iBAAAA,GACf,OAAOb,KAAKN,MAAMO,sBACdD,KAAKN,MAAMoB,eACPC,EAACC,EAAAA,IACOhB,KAAKN,MACTuB,mBAAoB,CAAC,cACrBb,MAAOc,EAAelB,KAAKN,MAAMyB,KAAMnB,KAAKN,MAAM0B,QAClDC,QAASrB,KAAKsB,SAItBP,EAACQ,OACGR,EAACS,MAAAA,CAAIC,UAAU,mCACXV,EAACW,IAAAA,CAAED,UAAU,uDAAuDzB,KAAKN,MAAMyB,KAAKQ,IAAI,qCACxFZ,EAACW,IAAAA,CAAED,UAAU,qDAAqDzB,KAAKN,MAAMyB,KAAKQ,IAAI,oCAGzF3B,KAAKN,MAAMoB,eACRC,EAACa,EAAAA,IACO5B,KAAKN,MACToB,cAAed,KAAKN,MAAMoB,cAC1BT,KAAML,KAAKG,YACX0B,SAAU7B,KAAKsB,OACfQ,UAAW9B,KAAK8B,UAChBC,IAAKA,IACD/B,KAAKgC,aAAeD,KAM5C,cAnFiBxC,IACeQ,SAAmBkC,EAAWC"}
1
+ {"version":3,"file":"PayByBankUS.js","sources":["../../../../src/components/PayByBankUS/PayByBankUS.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport RedirectElement from '../Redirect';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport getIssuerImageUrl from '../../utils/get-issuer-image';\nimport PayButton from '../internal/PayButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\nimport { PaymentMethodBrand } from '../../types/global-types';\n\nimport './PayByBankUS.scss';\nexport default class PayByBankUS extends RedirectElement {\n public static override readonly type: TxVariants = TxVariants.paybybank_AIS_DD;\n\n protected formatProps(props) {\n return {\n // paymentMethodBrands configuration\n keepBrandsVisible: true,\n showOtherInsteadOfNumber: true,\n ...props\n };\n }\n\n public formatData() {\n return {\n paymentMethod: {\n type: this.type,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId\n })\n },\n browserInfo: this.browserInfo\n };\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.name : '';\n }\n\n /*\n Hardcode US brands \n */\n get brands(): PaymentMethodBrand[] {\n const getImage = props => this.resources.getImage(props);\n // paybybank_AIS_DD / tx_variant not used here since images are kept in paybybank subfolder\n const getIssuerIcon = getIssuerImageUrl({}, 'paybybank', getImage);\n\n // hardcoding\n return [\n { icon: getIssuerIcon('US-1'), name: 'Wells Fargo' },\n { icon: getIssuerIcon('US-2'), name: 'Bank of America' },\n { icon: getIssuerIcon('US-3'), name: 'Chase' },\n { icon: getIssuerIcon('US-4'), name: 'Citi' }\n ];\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n this.props.showPayButton && (\n <PayButton\n {...this.props}\n classNameModifiers={['standalone']}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n onClick={this.submit}\n />\n )\n ) : (\n <Fragment>\n <div className=\"adyen-checkout-paybybank_AIS_DD\">\n <p className=\"adyen-checkout-paybybank_AIS_DD__description-header\">{this.props.i18n.get('payByBankAISDD.disclaimer.header')}</p>\n <p className=\"adyen-checkout-paybybank_AIS_DD__description-body\">{this.props.i18n.get('payByBankAISDD.disclaimer.body')}</p>\n </div>\n\n {this.props.showPayButton && (\n <RedirectButton\n {...this.props}\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n )}\n </Fragment>\n );\n }\n}\n"],"names":["PayByBankUS","RedirectElement","formatProps","props","keepBrandsVisible","showOtherInsteadOfNumber","formatData","paymentMethod","type","this","storedPaymentMethodId","browserInfo","displayName","label","name","additionalInfo","brands","getIssuerIcon","getIssuerImageUrl","resources","getImage","icon","componentToRender","showPayButton","h","PayButton","classNameModifiers","payAmountLabel","i18n","amount","onClick","submit","Fragment","div","className","p","get","RedirectButton","onSubmit","payButton","ref","componentRef","TxVariants","paybybank_AIS_DD"],"mappings":"sYAUe,MAAMA,UAAoBC,EAG3BC,WAAAA,CAAYC,GAClB,MAAO,CAEHC,mBAAmB,EACnBC,0BAA0B,KACvBF,EAEX,CAEOG,UAAAA,GACH,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKD,QACPC,KAAKN,MAAMO,uBAAyB,CACpCA,sBAAuBD,KAAKN,MAAMO,wBAG1CC,YAAaF,KAAKE,YAE1B,CAEA,eAAIC,GACA,OAAIH,KAAKN,MAAMO,uBAAyBD,KAAKN,MAAMU,MACxCJ,KAAKN,MAAMU,MAEfJ,KAAKN,MAAMW,IACtB,CAEA,kBAAIC,GACA,OAAON,KAAKN,MAAMO,sBAAwBD,KAAKN,MAAMW,KAAO,EAChE,CAKA,UAAIE,GACA,MAEMC,EAAgBC,EAAkB,GAAI,YAF3Bf,GAASM,KAAKU,UAAUC,SAASjB,IAKlD,MAAO,CACH,CAAEkB,KAAMJ,EAAc,QAASH,KAAM,eACrC,CAAEO,KAAMJ,EAAc,QAASH,KAAM,mBACrC,CAAEO,KAAMJ,EAAc,QAASH,KAAM,SACrC,CAAEO,KAAMJ,EAAc,QAASH,KAAM,QAE7C,CAEmBQ,iBAAAA,GACf,OAAOb,KAAKN,MAAMO,sBACdD,KAAKN,MAAMoB,eACPC,EAACC,EAAAA,IACOhB,KAAKN,MACTuB,mBAAoB,CAAC,cACrBb,MAAOc,EAAelB,KAAKN,MAAMyB,KAAMnB,KAAKN,MAAM0B,QAClDC,QAASrB,KAAKsB,SAItBP,EAACQ,OACGR,EAACS,MAAAA,CAAIC,UAAU,mCACXV,EAACW,IAAAA,CAAED,UAAU,uDAAuDzB,KAAKN,MAAMyB,KAAKQ,IAAI,qCACxFZ,EAACW,IAAAA,CAAED,UAAU,qDAAqDzB,KAAKN,MAAMyB,KAAKQ,IAAI,oCAGzF3B,KAAKN,MAAMoB,eACRC,EAACa,EAAAA,IACO5B,KAAKN,MACToB,cAAed,KAAKN,MAAMoB,cAC1BT,KAAML,KAAKG,YACX0B,SAAU7B,KAAKsB,OACfQ,UAAW9B,KAAK8B,UAChBC,IAAKA,IACD/B,KAAKgC,aAAeD,KAM5C,cAnFiBxC,IACeQ,SAAmBkC,EAAWC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"./components/PaypalComponent.js";import i from"./defaultProps.js";import s from"../../core/Errors/AdyenCheckoutError.js";import{ERRORS as r}from"./constants.js";import{TxVariants as a}from"../tx-variants.js";import{formatPaypalOrderContactToAdyenFormat as o}from"./utils/format-paypal-order-contact-to-adyen-format.js";import{AnalyticsInfoEvent as h,InfoEventType as p}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class l extends t{formatProps(e){const t=e.configuration?.merchantId,n=e.configuration?.intent,i=0===e.amount?.value?"tokenize":e.intent||n,s="tokenize"===i||e.vault,r="continue"===e.userAction;return{...e,commit:!r&&e.commit,vault:s,configuration:{intent:i,merchantId:t}}}beforeRender(e){const t=new h({type:p.rendered,component:this.type,configData:{...e,showPayButton:this.props.showPayButton},...e?.isExpress&&{isExpress:e.isExpress},...e?.expressPage&&{expressPage:e.expressPage}});this.analytics.sendAnalytics(t)}updatePaymentData(e){e||console.warn("PayPal - Updating payment data with an invalid value"),this.paymentData=e}formatData(){const{isExpress:e,userAction:t}=this.props;return{paymentMethod:{type:l.type,userAction:t,subtype:e?"express":l.subtype}}}get isValid(){return!0}handleResolve(e){if(!this.resolve)return this.handleError(new s("ERROR",r.WRONG_INSTANCE));this.resolve(e)}handleReject(e){if(!this.reject)return this.handleError(new s("ERROR",r.WRONG_INSTANCE));this.reject(new Error(e))}handleSubmit(){return super.submit(),new Promise((e,t)=>{this.resolve=e,this.reject=t})}handleOnShippingAddressChange(e,t){return this.props.onShippingAddressChange(e,t,this)}handleOnShippingOptionsChange(e,t){return this.props.onShippingOptionsChange(e,t,this)}componentToRender(){if(!this.props.showPayButton)return null;const{onShippingAddressChange:t,onShippingOptionsChange:i,...r}=this.props;return e(n,{ref:e=>{this.componentRef=e},...r,...t&&{onShippingAddressChange:this.handleOnShippingAddressChange},...i&&{onShippingOptionsChange:this.handleOnShippingOptionsChange},onCancel:()=>this.handleError(new s("CANCEL")),onChange:this.setState,onApprove:this.handleOnApprove,onError:e=>{this.handleError(new s("ERROR",e.toString(),{cause:e}))},onScriptLoadFailure:e=>this.handleError(e),onSubmit:this.handleSubmit})}constructor(e,t){super(e,t),d(this,"paymentData",null),d(this,"resolve",null),d(this,"reject",null),d(this,"submit",()=>{this.handleError(new s("IMPLEMENTATION_ERROR",r.SUBMIT_NOT_SUPPORTED))}),d(this,"handleAction",e=>this.updateWithAction(e)),d(this,"updateWithAction",e=>{if(e.paymentMethodType!==this.type)throw new Error("Invalid Action");return e.paymentData&&(this.paymentData=e.paymentData),e.sdkData&&e.sdkData.token?(this.onActionHandled({componentType:this.type,actionDescription:"sdk-loaded",originalAction:e}),this.handleResolve(e.sdkData.token)):this.handleReject(r.NO_TOKEN_PROVIDED),null}),d(this,"handleOnApprove",(e,t)=>{const{onAuthorized:n}=this.props,i={data:{details:e,paymentData:this.paymentData}};if(n)return t.order.get().then(e=>{const t=o(e?.payer),i=o(e?.purchase_units?.[0].shipping,!0);return this.setState({authorizedEvent:e,...t&&{billingAddress:t},...i&&{deliveryAddress:i}}),new Promise((s,r)=>n({authorizedEvent:e,...t&&{billingAddress:t},...i&&{deliveryAddress:i}},{resolve:s,reject:r}))}).then(()=>this.handleAdditionalDetails(i)).catch(e=>this.handleError(new s("ERROR","Something went wrong while parsing PayPal Order",{cause:e})));this.handleAdditionalDetails(i)}),this.handleSubmit=this.handleSubmit.bind(this),this.handleOnShippingAddressChange=this.handleOnShippingAddressChange.bind(this),this.handleOnShippingOptionsChange=this.handleOnShippingOptionsChange.bind(this)}}d(l,"type",a.paypal),d(l,"subtype","sdk"),d(l,"defaultProps",i);export{l as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"./components/PaypalComponent.js";import i from"./defaultProps.js";import s from"../../core/Errors/AdyenCheckoutError.js";import{ERRORS as r}from"./constants.js";import{TxVariants as a}from"../tx-variants.js";import{formatPaypalOrderContactToAdyenFormat as o}from"./utils/format-paypal-order-contact-to-adyen-format.js";import{AnalyticsInfoEvent as h,InfoEventType as p}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class l extends t{formatProps(e){const t=e.configuration?.merchantId,n=e.configuration?.intent,i=0===e.amount?.value?"tokenize":e.intent||n,s="tokenize"===i||e.vault,r="continue"===e.userAction;return{...e,commit:!r&&e.commit,vault:s,configuration:{intent:i,merchantId:t}}}beforeRender(e){const t=new h({type:p.rendered,component:this.type,configData:{...e,showPayButton:this.props.showPayButton},...e?.isExpress&&{isExpress:e.isExpress},...e?.expressPage&&{expressPage:e.expressPage}});this.analytics.sendAnalytics(t)}updatePaymentData(e){e||console.warn("PayPal - Updating payment data with an invalid value"),this.paymentData=e}formatData(){const{isExpress:e,userAction:t}=this.props;return{paymentMethod:{type:l.type,userAction:t,subtype:e?"express":l.subtype}}}get isValid(){return!0}handleResolve(e){if(!this.resolve)return this.handleError(new s("ERROR",r.WRONG_INSTANCE));this.resolve(e)}handleReject(e){if(!this.reject)return this.handleError(new s("ERROR",r.WRONG_INSTANCE));this.reject(new Error(e))}handleSubmit(){return super.submit(),new Promise((e,t)=>{this.resolve=e,this.reject=t})}handleOnShippingAddressChange(e,t){const{onShippingAddressChange:n}=this.props;return n?n(e,t,this):Promise.resolve()}handleOnShippingOptionsChange(e,t){const{onShippingOptionsChange:n}=this.props;return n?n(e,t,this):Promise.resolve()}componentToRender(){if(!this.props.showPayButton)return null;const{onShippingAddressChange:t,onShippingOptionsChange:i,...r}=this.props;return e(n,{...r,setComponentRef:this.setComponentRef,...t&&{onShippingAddressChange:this.handleOnShippingAddressChange},...i&&{onShippingOptionsChange:this.handleOnShippingOptionsChange},onCancel:()=>this.handleError(new s("CANCEL")),onChange:this.setState,onApprove:this.handleOnApprove,onError:e=>{this.handleError(new s("ERROR",String(e),{cause:e}))},onScriptLoadFailure:e=>this.handleError(e),onSubmit:this.handleSubmit})}constructor(e,t){super(e,t),d(this,"paymentData",null),d(this,"resolve",null),d(this,"reject",null),d(this,"submit",()=>{this.handleError(new s("IMPLEMENTATION_ERROR",r.SUBMIT_NOT_SUPPORTED))}),d(this,"handleAction",e=>this.updateWithAction(e)),d(this,"updateWithAction",e=>{if(e.paymentMethodType!==this.type)throw new Error("Invalid Action");return e.paymentData&&(this.paymentData=e.paymentData),e.sdkData&&e.sdkData.token?(this.onActionHandled({componentType:this.type,actionDescription:"sdk-loaded",originalAction:e}),this.handleResolve(e.sdkData.token)):this.handleReject(r.NO_TOKEN_PROVIDED),null}),d(this,"handleOnApprove",(e,t)=>{const{onAuthorized:n}=this.props,i={data:{details:e,paymentData:this.paymentData??void 0}};return n?t.order?t.order.get().then(e=>{const t=o(e?.payer),i=o(e?.purchase_units?.[0].shipping,!0);return this.setState({authorizedEvent:e,...t&&{billingAddress:t},...i&&{deliveryAddress:i}}),new Promise((s,r)=>n({authorizedEvent:e,...t&&{billingAddress:t},...i&&{deliveryAddress:i}},{resolve:s,reject:r}))}).then(()=>this.handleAdditionalDetails(i)).catch(e=>this.handleError(new s("ERROR","Something went wrong while parsing PayPal Order",{cause:e}))):(this.handleError(new s("ERROR","PayPal order actions are not available")),Promise.resolve()):(this.handleAdditionalDetails(i),Promise.resolve())}),this.handleSubmit=this.handleSubmit.bind(this),this.handleOnShippingAddressChange=this.handleOnShippingAddressChange.bind(this),this.handleOnShippingOptionsChange=this.handleOnShippingOptionsChange.bind(this)}}d(l,"type",a.paypal),d(l,"subtype","sdk"),d(l,"defaultProps",i);export{l as default};
2
2
  //# sourceMappingURL=Paypal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paypal.js","sources":["../../../../src/components/PayPal/Paypal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PaypalComponent from './components/PaypalComponent';\nimport defaultProps from './defaultProps';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { ERRORS } from './constants';\nimport { TxVariants } from '../tx-variants';\nimport { formatPaypalOrderContactToAdyenFormat } from './utils/format-paypal-order-contact-to-adyen-format';\n\nimport type { ICore } from '../../core/types';\nimport type { PaymentAction } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\n\nimport './Paypal.scss';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static readonly type = TxVariants.paypal;\n public static readonly subtype = 'sdk';\n\n public paymentData: string = null;\n\n private resolve = null;\n private reject = null;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: PayPalConfiguration) {\n super(checkout, props);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleOnShippingAddressChange = this.handleOnShippingAddressChange.bind(this);\n this.handleOnShippingOptionsChange = this.handleOnShippingOptionsChange.bind(this);\n }\n\n formatProps(props: PayPalConfiguration): PayPalConfiguration {\n const merchantId = props.configuration?.merchantId;\n const intentFromConfig = props.configuration?.intent;\n const isZeroAuth = props.amount?.value === 0;\n const intent: Intent = isZeroAuth ? 'tokenize' : props.intent || intentFromConfig;\n const vault = intent === 'tokenize' || props.vault;\n\n const displayContinueToReviewPageButton = props.userAction === 'continue';\n\n return {\n ...props,\n commit: displayContinueToReviewPageButton ? false : props.commit,\n vault,\n configuration: {\n intent,\n merchantId\n }\n };\n }\n\n protected override beforeRender(configSetByMerchant?: PayPalConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n public submit = () => {\n this.handleError(new AdyenCheckoutError('IMPLEMENTATION_ERROR', ERRORS.SUBMIT_NOT_SUPPORTED));\n };\n\n /**\n * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount\n * @param paymentData - Payment data value\n */\n public updatePaymentData(paymentData: string): void {\n if (!paymentData) console.warn('PayPal - Updating payment data with an invalid value');\n this.paymentData = paymentData;\n }\n\n /**\n * Formats the component data output\n */\n protected formatData() {\n const { isExpress, userAction } = this.props;\n\n return {\n paymentMethod: {\n type: PaypalElement.type,\n userAction,\n subtype: isExpress ? 'express' : PaypalElement.subtype\n }\n };\n }\n\n public handleAction = (action: PaymentAction) => {\n return this.updateWithAction(action);\n };\n\n public updateWithAction = (action: PaymentAction) => {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n\n if (action.paymentData) {\n this.paymentData = action.paymentData;\n }\n\n if (action.sdkData && action.sdkData.token) {\n this.onActionHandled({ componentType: this.type, actionDescription: 'sdk-loaded', originalAction: action });\n this.handleResolve(action.sdkData.token);\n } else {\n this.handleReject(ERRORS.NO_TOKEN_PROVIDED);\n }\n\n return null;\n };\n\n /**\n * Dropin Validation\n *\n * @remarks\n * Paypal does not require any specific Dropin validation\n */\n get isValid() {\n return true;\n }\n\n private handleOnApprove = (data: any, actions: any): Promise<void> | void => {\n const { onAuthorized } = this.props;\n const state = { data: { details: data, paymentData: this.paymentData } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return;\n }\n\n return actions.order\n .get()\n .then((paypalOrder: any) => {\n const billingAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.payer);\n const deliveryAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.purchase_units?.[0].shipping, true);\n\n this.setState({\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error => this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong while parsing PayPal Order', { cause: error })));\n };\n\n handleResolve(token: string) {\n if (!this.resolve) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.resolve(token);\n }\n\n handleReject(errorMessage: string) {\n if (!this.reject) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.reject(new Error(errorMessage));\n }\n\n private handleSubmit(): Promise<void> {\n super.submit();\n\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n\n /**\n * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingAddressChange(data: any, actions: any): Promise<void> {\n return this.props.onShippingAddressChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingOptionsChange(data: any, actions: any): Promise<void> {\n return this.props.onShippingOptionsChange(data, actions, this);\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <PaypalComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...rest}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onChange={this.setState}\n onApprove={this.handleOnApprove}\n onError={error => {\n this.handleError(new AdyenCheckoutError('ERROR', error.toString(), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n );\n }\n}\n\nexport default PaypalElement;\n"],"names":["PaypalElement","UIElement","formatProps","props","merchantId","configuration","intentFromConfig","intent","amount","value","vault","displayContinueToReviewPageButton","userAction","commit","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","type","InfoEventType","rendered","component","this","configData","showPayButton","isExpress","expressPage","analytics","sendAnalytics","updatePaymentData","paymentData","console","warn","formatData","paymentMethod","subtype","isValid","handleResolve","token","resolve","handleError","AdyenCheckoutError","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","reject","Error","handleSubmit","super","submit","Promise","handleOnShippingAddressChange","data","actions","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","componentToRender","rest","h","PaypalComponent","ref","componentRef","onCancel","onChange","setState","onApprove","handleOnApprove","onError","error","toString","cause","onScriptLoadFailure","onSubmit","constructor","checkout","_define_property","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","onAuthorized","state","details","order","get","then","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","authorizedEvent","handleAdditionalDetails","catch","bind","TxVariants","paypal","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Paypal.js","sources":["../../../../src/components/PayPal/Paypal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PaypalComponent from './components/PaypalComponent';\nimport defaultProps from './defaultProps';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { ERRORS } from './constants';\nimport { TxVariants } from '../tx-variants';\nimport { formatPaypalOrderContactToAdyenFormat } from './utils/format-paypal-order-contact-to-adyen-format';\n\nimport type { ICore } from '../../core/types';\nimport type { PaymentAction } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\nimport type {\n PayPalOnApproveActions,\n PayPalOnApproveData,\n PayPalOnShippingAddressChangeActions,\n PayPalOnShippingAddressChangeData,\n PayPalOnShippingOptionsChangeActions,\n PayPalOnShippingOptionsChangeData,\n PayPalOrderResponseBody\n} from './paypal-js-types';\n\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport './Paypal.scss';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static readonly type = TxVariants.paypal;\n public static readonly subtype = 'sdk';\n\n public paymentData: string | null = null;\n\n private resolve: ((value: string) => void) | null = null;\n private reject: ((error?: Error) => void) | null = null;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: PayPalConfiguration) {\n super(checkout, props);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleOnShippingAddressChange = this.handleOnShippingAddressChange.bind(this);\n this.handleOnShippingOptionsChange = this.handleOnShippingOptionsChange.bind(this);\n }\n\n formatProps(props: PayPalConfiguration): PayPalConfiguration {\n const merchantId = props.configuration?.merchantId;\n const intentFromConfig = props.configuration?.intent;\n const isZeroAuth = props.amount?.value === 0;\n const intent: Intent | undefined = isZeroAuth ? 'tokenize' : props.intent || intentFromConfig;\n const vault = intent === 'tokenize' || props.vault;\n\n const displayContinueToReviewPageButton = props.userAction === 'continue';\n\n return {\n ...props,\n commit: displayContinueToReviewPageButton ? false : props.commit,\n vault,\n configuration: {\n intent,\n merchantId\n }\n };\n }\n\n protected override beforeRender(configSetByMerchant?: PayPalConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n public submit = () => {\n this.handleError(new AdyenCheckoutError('IMPLEMENTATION_ERROR', ERRORS.SUBMIT_NOT_SUPPORTED));\n };\n\n /**\n * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount\n * @param paymentData - Payment data value\n */\n public updatePaymentData(paymentData: string): void {\n if (!paymentData) console.warn('PayPal - Updating payment data with an invalid value');\n this.paymentData = paymentData;\n }\n\n /**\n * Formats the component data output\n */\n protected formatData() {\n const { isExpress, userAction } = this.props;\n\n return {\n paymentMethod: {\n type: PaypalElement.type,\n userAction,\n subtype: isExpress ? 'express' : PaypalElement.subtype\n }\n };\n }\n\n public handleAction = (action: PaymentAction) => {\n return this.updateWithAction(action);\n };\n\n public updateWithAction = (action: PaymentAction) => {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n\n if (action.paymentData) {\n this.paymentData = action.paymentData;\n }\n\n if (action.sdkData && action.sdkData.token) {\n this.onActionHandled({ componentType: this.type, actionDescription: 'sdk-loaded', originalAction: action });\n this.handleResolve(action.sdkData.token);\n } else {\n this.handleReject(ERRORS.NO_TOKEN_PROVIDED);\n }\n\n return null;\n };\n\n /**\n * Dropin Validation\n *\n * @remarks\n * Paypal does not require any specific Dropin validation\n */\n get isValid() {\n return true;\n }\n\n private readonly handleOnApprove = (data: PayPalOnApproveData, actions: PayPalOnApproveActions): Promise<void> => {\n const { onAuthorized } = this.props;\n const state = { data: { details: data, paymentData: this.paymentData ?? undefined } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return Promise.resolve();\n }\n\n if (!actions.order) {\n this.handleError(new AdyenCheckoutError('ERROR', 'PayPal order actions are not available'));\n return Promise.resolve();\n }\n\n return actions.order\n .get()\n .then((paypalOrder: PayPalOrderResponseBody) => {\n const billingAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.payer);\n const deliveryAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.purchase_units?.[0].shipping, true);\n\n this.setState({\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error => this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong while parsing PayPal Order', { cause: error })));\n };\n\n handleResolve(token: string) {\n if (!this.resolve) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.resolve(token);\n }\n\n handleReject(errorMessage: string) {\n if (!this.reject) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.reject(new Error(errorMessage));\n }\n\n private handleSubmit(): Promise<string> {\n super.submit();\n\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n\n /**\n * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingAddressChange(data: PayPalOnShippingAddressChangeData, actions: PayPalOnShippingAddressChangeActions): Promise<void> {\n const { onShippingAddressChange } = this.props;\n\n if (!onShippingAddressChange) return Promise.resolve();\n\n return onShippingAddressChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingOptionsChange(data: PayPalOnShippingOptionsChangeData, actions: PayPalOnShippingOptionsChangeActions): Promise<void> {\n const { onShippingOptionsChange } = this.props;\n\n if (!onShippingOptionsChange) return Promise.resolve();\n\n return onShippingOptionsChange(data, actions, this);\n }\n\n protected override componentToRender(): h.JSX.Element | null {\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <PaypalComponent\n {...rest}\n setComponentRef={this.setComponentRef}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onChange={this.setState}\n onApprove={this.handleOnApprove}\n onError={error => {\n this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n );\n }\n}\n\nexport default PaypalElement;\n"],"names":["PaypalElement","UIElement","formatProps","props","merchantId","configuration","intentFromConfig","intent","amount","value","vault","displayContinueToReviewPageButton","userAction","commit","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","type","InfoEventType","rendered","component","this","configData","showPayButton","isExpress","expressPage","analytics","sendAnalytics","updatePaymentData","paymentData","console","warn","formatData","paymentMethod","subtype","isValid","handleResolve","token","resolve","handleError","AdyenCheckoutError","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","reject","Error","handleSubmit","super","submit","Promise","handleOnShippingAddressChange","data","actions","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","componentToRender","rest","h","PaypalComponent","setComponentRef","onCancel","onChange","setState","onApprove","handleOnApprove","onError","error","String","cause","onScriptLoadFailure","onSubmit","constructor","checkout","_define_property","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","onAuthorized","state","details","undefined","order","get","then","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","authorizedEvent","handleAdditionalDetails","catch","bind","TxVariants","paypal","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as n,useEffect as a}from"../../../external/preact/hooks/dist/hooks.js";import t from"../../../_virtual/index.js";import{getStyle as o}from"../utils/get-paypal-styles.js";import p from"../../internal/Spinner/Spinner.js";import{useCoreContext as c}from"../../../core/Context/CoreProvider.js";function r({onInit:r,onApprove:s,onClick:i,onCancel:l,onError:_,onShippingAddressChange:u,onShippingOptionsChange:y,onSubmit:d,isProcessingPayment:m,paypalRef:h,style:k,...g}){const{i18n:f}=c(),P="tokenize"===g.configuration?.intent,b=n(null),v=n(null),C=n(null),N=n(null),A=(e,n)=>{const a={...P&&{createBillingAgreement:d},...!P&&{createOrder:d},...!P&&"venmo"!==e&&u&&{onShippingAddressChange:u},...!P&&"venmo"!==e&&y&&{onShippingOptionsChange:y},fundingSource:e,style:o(e,k),onInit:r,onClick:i,onCancel:l,onError:_,onApprove:s},t=h.Buttons(a);t.isEligible()&&t.render(n.current)};a(()=>{const{PAYPAL:e,CREDIT:n,PAYLATER:a,VENMO:t}=h.FUNDING;g.blockPayPalButton||A(e,b),g.blockPayPalCreditButton||A(n,v),g.blockPayPalPayLaterButton||A(a,C),g.blockPayPalVenmoButton||A(t,N)},[]);const E=!0===g.commit;return e("div",{className:t("adyen-checkout__paypal__buttons",{"adyen-checkout__paypal-processing":m})},e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--paypal",ref:b}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--credit",ref:v}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--pay-later",ref:C}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--venmo",ref:N}),m&&e("div",{className:"adyen-checkout__paypal"},e("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing"},e(p,{size:"medium",inline:!0}),E&&f.get("paypal.processingPayment"))))}export{r as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as n,useEffect as t}from"../../../external/preact/hooks/dist/hooks.js";import a from"../../../_virtual/index.js";import{getStyle as o}from"../utils/get-paypal-styles.js";import c from"../../internal/Spinner/Spinner.js";import{useCoreContext as p}from"../../../core/Context/CoreProvider.js";function r({onInit:r,onApprove:s,onClick:i,onCancel:l,onError:_,onShippingAddressChange:u,onShippingOptionsChange:y,onSubmit:d,isProcessingPayment:m,paypalRef:h,style:k,...g}){const{i18n:f}=p(),P="tokenize"===g.configuration?.intent,b=n(null),v=n(null),C=n(null),N=n(null),A=(e,n)=>{const t={...P&&{createBillingAgreement:d},...!P&&{createOrder:d},...!P&&"venmo"!==e&&u&&{onShippingAddressChange:u},...!P&&"venmo"!==e&&y&&{onShippingOptionsChange:y},fundingSource:e,style:o(e,k),onInit:r,onClick:i,onCancel:l,onError:_,onApprove:s},a=h?.Buttons?.(t);a?.isEligible()&&n.current&&a.render(n.current)};t(()=>{const{PAYPAL:e,CREDIT:n,PAYLATER:t,VENMO:a}=h?.FUNDING;g.blockPayPalButton||A(e,b),g.blockPayPalCreditButton||A(n,v),g.blockPayPalPayLaterButton||A(t,C),g.blockPayPalVenmoButton||A(a,N)},[]);const E=!0===g.commit;return e("div",{className:a("adyen-checkout__paypal__buttons",{"adyen-checkout__paypal-processing":m})},e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--paypal",ref:b}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--credit",ref:v}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--pay-later",ref:C}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--venmo",ref:N}),m&&e("div",{className:"adyen-checkout__paypal"},e("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing"},e(c,{size:"medium",inline:!0}),E&&f.get("paypal.processingPayment"))))}export{r as default};
2
2
  //# sourceMappingURL=PaypalButtons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaypalButtons.js","sources":["../../../../../src/components/PayPal/components/PaypalButtons.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport classnames from 'classnames';\nimport { getStyle } from '../utils/get-paypal-styles';\nimport Spinner from '../../internal/Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\n\nimport type { PayPalButtonsProps } from './types';\nimport type { FundingSource } from '../types';\n\nexport default function PaypalButtons({\n onInit,\n onApprove,\n onClick,\n onCancel,\n onError,\n onShippingAddressChange,\n onShippingOptionsChange,\n onSubmit,\n isProcessingPayment,\n paypalRef,\n style,\n ...props\n}: Readonly<PayPalButtonsProps>) {\n const { i18n } = useCoreContext();\n const isTokenize = props.configuration?.intent === 'tokenize';\n const paypalButtonRef = useRef<HTMLDivElement>(null);\n const creditButtonRef = useRef<HTMLDivElement>(null);\n const payLaterButtonRef = useRef<HTMLDivElement>(null);\n const venmoButtonRef = useRef<HTMLDivElement>(null);\n\n const createButton = (fundingSource: FundingSource, buttonRef: RefObject<HTMLDivElement>) => {\n const configuration = {\n ...(isTokenize && { createBillingAgreement: onSubmit }),\n ...(!isTokenize && { createOrder: onSubmit }),\n ...(!isTokenize && fundingSource !== 'venmo' && onShippingAddressChange && { onShippingAddressChange }),\n ...(!isTokenize && fundingSource !== 'venmo' && onShippingOptionsChange && { onShippingOptionsChange }),\n fundingSource,\n style: getStyle(fundingSource, style),\n onInit,\n onClick,\n onCancel,\n onError,\n onApprove\n };\n\n const button = paypalRef.Buttons(configuration);\n\n if (button.isEligible()) {\n button.render(buttonRef.current);\n }\n };\n\n useEffect(() => {\n const { PAYPAL, CREDIT, PAYLATER, VENMO } = paypalRef.FUNDING;\n\n if (!props.blockPayPalButton) createButton(PAYPAL, paypalButtonRef);\n if (!props.blockPayPalCreditButton) createButton(CREDIT, creditButtonRef);\n if (!props.blockPayPalPayLaterButton) createButton(PAYLATER, payLaterButtonRef);\n if (!props.blockPayPalVenmoButton) createButton(VENMO, venmoButtonRef);\n }, []);\n\n const isProcessingPaymentWithoutReviewPage = props.commit === true;\n\n return (\n <div className={classnames('adyen-checkout__paypal__buttons', { 'adyen-checkout__paypal-processing': isProcessingPayment })}>\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--paypal\" ref={paypalButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--credit\" ref={creditButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--pay-later\" ref={payLaterButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--venmo\" ref={venmoButtonRef} />\n\n {isProcessingPayment && (\n <div className=\"adyen-checkout__paypal\">\n <div className=\"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing\">\n <Spinner size=\"medium\" inline />\n {isProcessingPaymentWithoutReviewPage && i18n.get('paypal.processingPayment')}\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":["PaypalButtons","onInit","onApprove","onClick","onCancel","onError","onShippingAddressChange","onShippingOptionsChange","onSubmit","isProcessingPayment","paypalRef","style","props","i18n","useCoreContext","isTokenize","configuration","intent","paypalButtonRef","useRef","creditButtonRef","payLaterButtonRef","venmoButtonRef","createButton","fundingSource","buttonRef","createBillingAgreement","createOrder","getStyle","button","Buttons","isEligible","render","current","useEffect","PAYPAL","CREDIT","PAYLATER","VENMO","FUNDING","blockPayPalButton","blockPayPalCreditButton","blockPayPalPayLaterButton","blockPayPalVenmoButton","isProcessingPaymentWithoutReviewPage","commit","h","div","className","classnames","ref","Spinner","size","inline","get"],"mappings":"wXAUe,SAASA,GAAcC,OAClCA,EAAMC,UACNA,EAASC,QACTA,EAAOC,SACPA,EAAQC,QACRA,EAAOC,wBACPA,EAAuBC,wBACvBA,EAAuBC,SACvBA,EAAQC,oBACRA,EAAmBC,UACnBA,EAASC,MACTA,KACGC,IAEH,MAAMC,KAAEA,GAASC,IACXC,EAA6C,aAAhCH,EAAMI,eAAeC,OAClCC,EAAkBC,EAAuB,MACzCC,EAAkBD,EAAuB,MACzCE,EAAoBF,EAAuB,MAC3CG,EAAiBH,EAAuB,MAExCI,EAAe,CAACC,EAA8BC,KAChD,MAAMT,EAAgB,IACdD,GAAc,CAAEW,uBAAwBlB,OACvCO,GAAc,CAAEY,YAAanB,OAC7BO,GAAgC,UAAlBS,GAA6BlB,GAA2B,CAAEA,+BACxES,GAAgC,UAAlBS,GAA6BjB,GAA2B,CAAEA,2BAC7EiB,gBACAb,MAAOiB,EAASJ,EAAeb,GAC/BV,SACAE,UACAC,WACAC,UACAH,aAGE2B,EAASnB,EAAUoB,QAAQd,GAE7Ba,EAAOE,cACPF,EAAOG,OAAOP,EAAUQ,UAIhCC,EAAU,KACN,MAAMC,OAAEA,EAAMC,OAAEA,EAAMC,SAAEA,EAAQC,MAAEA,GAAU5B,EAAU6B,QAEjD3B,EAAM4B,mBAAmBjB,EAAaY,EAAQjB,GAC9CN,EAAM6B,yBAAyBlB,EAAaa,EAAQhB,GACpDR,EAAM8B,2BAA2BnB,EAAac,EAAUhB,GACxDT,EAAM+B,wBAAwBpB,EAAae,EAAOhB,IACxD,IAEH,MAAMsB,GAAwD,IAAjBhC,EAAMiC,OAEnD,OACIC,EAACC,MAAAA,CAAIC,UAAWC,EAAW,kCAAmC,CAAE,oCAAqCxC,KACjGqC,EAACC,MAAAA,CAAIC,UAAU,wEAAwEE,IAAKhC,IAC5F4B,EAACC,MAAAA,CAAIC,UAAU,wEAAwEE,IAAK9B,IAC5F0B,EAACC,MAAAA,CAAIC,UAAU,2EAA2EE,IAAK7B,IAC/FyB,EAACC,MAAAA,CAAIC,UAAU,uEAAuEE,IAAK5B,IAE1Fb,GACGqC,EAACC,MAAAA,CAAIC,UAAU,0BACXF,EAACC,MAAAA,CAAIC,UAAU,6EACXF,EAACK,EAAAA,CAAQC,KAAK,SAASC,QAAAA,IACtBT,GAAwC/B,EAAKyC,IAAI,8BAM1E"}
1
+ {"version":3,"file":"PaypalButtons.js","sources":["../../../../../src/components/PayPal/components/PaypalButtons.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport classnames from 'classnames';\nimport { getStyle } from '../utils/get-paypal-styles';\nimport Spinner from '../../internal/Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\n\nimport type { PayPalButtonsProps } from './types';\nimport type { SupportedPayPalFundingSources } from '../types';\n\nexport default function PaypalButtons({\n onInit,\n onApprove,\n onClick,\n onCancel,\n onError,\n onShippingAddressChange,\n onShippingOptionsChange,\n onSubmit,\n isProcessingPayment,\n paypalRef,\n style,\n ...props\n}: Readonly<PayPalButtonsProps>) {\n const { i18n } = useCoreContext();\n const isTokenize = props.configuration?.intent === 'tokenize';\n const paypalButtonRef = useRef<HTMLDivElement>(null);\n const creditButtonRef = useRef<HTMLDivElement>(null);\n const payLaterButtonRef = useRef<HTMLDivElement>(null);\n const venmoButtonRef = useRef<HTMLDivElement>(null);\n\n const createButton = (fundingSource: SupportedPayPalFundingSources, buttonRef: RefObject<HTMLDivElement>) => {\n const configuration = {\n ...(isTokenize && { createBillingAgreement: onSubmit }),\n ...(!isTokenize && { createOrder: onSubmit }),\n ...(!isTokenize && fundingSource !== 'venmo' && onShippingAddressChange && { onShippingAddressChange }),\n ...(!isTokenize && fundingSource !== 'venmo' && onShippingOptionsChange && { onShippingOptionsChange }),\n fundingSource,\n style: getStyle(fundingSource, style),\n onInit,\n onClick,\n onCancel,\n onError,\n onApprove\n };\n\n const button = paypalRef?.Buttons?.(configuration);\n\n if (button?.isEligible() && buttonRef.current) {\n void button.render(buttonRef.current);\n }\n };\n\n useEffect(() => {\n const { PAYPAL, CREDIT, PAYLATER, VENMO } = paypalRef?.FUNDING as Record<string, SupportedPayPalFundingSources>;\n\n if (!props.blockPayPalButton) createButton(PAYPAL, paypalButtonRef);\n if (!props.blockPayPalCreditButton) createButton(CREDIT, creditButtonRef);\n if (!props.blockPayPalPayLaterButton) createButton(PAYLATER, payLaterButtonRef);\n if (!props.blockPayPalVenmoButton) createButton(VENMO, venmoButtonRef);\n }, []);\n\n const isProcessingPaymentWithoutReviewPage = props.commit === true;\n\n return (\n <div className={classnames('adyen-checkout__paypal__buttons', { 'adyen-checkout__paypal-processing': isProcessingPayment })}>\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--paypal\" ref={paypalButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--credit\" ref={creditButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--pay-later\" ref={payLaterButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--venmo\" ref={venmoButtonRef} />\n\n {isProcessingPayment && (\n <div className=\"adyen-checkout__paypal\">\n <div className=\"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing\">\n <Spinner size=\"medium\" inline />\n {isProcessingPaymentWithoutReviewPage && i18n.get('paypal.processingPayment')}\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":["PaypalButtons","onInit","onApprove","onClick","onCancel","onError","onShippingAddressChange","onShippingOptionsChange","onSubmit","isProcessingPayment","paypalRef","style","props","i18n","useCoreContext","isTokenize","configuration","intent","paypalButtonRef","useRef","creditButtonRef","payLaterButtonRef","venmoButtonRef","createButton","fundingSource","buttonRef","createBillingAgreement","createOrder","getStyle","button","Buttons","isEligible","current","render","useEffect","PAYPAL","CREDIT","PAYLATER","VENMO","FUNDING","blockPayPalButton","blockPayPalCreditButton","blockPayPalPayLaterButton","blockPayPalVenmoButton","isProcessingPaymentWithoutReviewPage","commit","h","div","className","classnames","ref","Spinner","size","inline","get"],"mappings":"wXAUe,SAASA,GAAcC,OAClCA,EAAMC,UACNA,EAASC,QACTA,EAAOC,SACPA,EAAQC,QACRA,EAAOC,wBACPA,EAAuBC,wBACvBA,EAAuBC,SACvBA,EAAQC,oBACRA,EAAmBC,UACnBA,EAASC,MACTA,KACGC,IAEH,MAAMC,KAAEA,GAASC,IACXC,EAA6C,aAAhCH,EAAMI,eAAeC,OAClCC,EAAkBC,EAAuB,MACzCC,EAAkBD,EAAuB,MACzCE,EAAoBF,EAAuB,MAC3CG,EAAiBH,EAAuB,MAExCI,EAAe,CAACC,EAA8CC,KAChE,MAAMT,EAAgB,IACdD,GAAc,CAAEW,uBAAwBlB,OACvCO,GAAc,CAAEY,YAAanB,OAC7BO,GAAgC,UAAlBS,GAA6BlB,GAA2B,CAAEA,+BACxES,GAAgC,UAAlBS,GAA6BjB,GAA2B,CAAEA,2BAC7EiB,gBACAb,MAAOiB,EAASJ,EAAeb,GAC/BV,SACAE,UACAC,WACAC,UACAH,aAGE2B,EAASnB,GAAWoB,UAAUd,GAEhCa,GAAQE,cAAgBN,EAAUO,SAC7BH,EAAOI,OAAOR,EAAUO,UAIrCE,EAAU,KACN,MAAMC,OAAEA,EAAMC,OAAEA,EAAMC,SAAEA,EAAQC,MAAEA,GAAU5B,GAAW6B,QAElD3B,EAAM4B,mBAAmBjB,EAAaY,EAAQjB,GAC9CN,EAAM6B,yBAAyBlB,EAAaa,EAAQhB,GACpDR,EAAM8B,2BAA2BnB,EAAac,EAAUhB,GACxDT,EAAM+B,wBAAwBpB,EAAae,EAAOhB,IACxD,IAEH,MAAMsB,GAAwD,IAAjBhC,EAAMiC,OAEnD,OACIC,EAACC,MAAAA,CAAIC,UAAWC,EAAW,kCAAmC,CAAE,oCAAqCxC,KACjGqC,EAACC,MAAAA,CAAIC,UAAU,wEAAwEE,IAAKhC,IAC5F4B,EAACC,MAAAA,CAAIC,UAAU,wEAAwEE,IAAK9B,IAC5F0B,EAACC,MAAAA,CAAIC,UAAU,2EAA2EE,IAAK7B,IAC/FyB,EAACC,MAAAA,CAAIC,UAAU,uEAAuEE,IAAK5B,IAE1Fb,GACGqC,EAACC,MAAAA,CAAIC,UAAU,0BACXF,EAACC,MAAAA,CAAIC,UAAU,6EACXF,EAACK,EAAAA,CAAQC,KAAK,SAASC,QAAAA,IACtBT,GAAwC/B,EAAKyC,IAAI,8BAM1E"}
@@ -1,2 +1,2 @@
1
- import{createElement as a}from"../../../external/preact/dist/preact.js";import{useState as e,useCallback as t,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import o from"./PaypalButtons.js";import s from"../../internal/Spinner/Spinner.js";import{getPaypalUrl as r}from"../utils/get-paypal-url.js";import p from"../../../utils/Script.js";import c from"../../../core/Analytics/useAnalytics.js";function i({onApprove:i,onCancel:l,onChange:u,onError:m,onSubmit:d,onScriptLoadFailure:y,...f}){const[_,h]=e("pending"),{analytics:g}=c();this.setStatus=h;const N=t((a,e)=>{h("processing"),i(a,e)},[i]),S=()=>{h("ready")},j=a=>{y(a)};return n(()=>{const a=r(f),e={...f.cspNonce&&{nonce:f.cspNonce}},t={...f.cspNonce&&{cspNonce:f.cspNonce}},n=new p({src:a,component:"paypal",attributes:e,dataAttributes:t,analytics:g});return n.load().then(S).catch(j),()=>{n.remove()}},[]),"pending"===_?a("div",{className:"adyen-checkout__paypal","aria-live":"polite","aria-busy":"true"},a("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--pending","data-testid":"paypal-loader"},a(s,null))):a("div",{className:"adyen-checkout__paypal"},a(o,{...f,onCancel:l,onChange:u,onError:m,onSubmit:d,onApprove:N,isProcessingPayment:"processing"===_,paypalRef:window.paypal}))}export{i as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as a,useRef as t,useEffect as o,useCallback as s}from"../../../external/preact/hooks/dist/hooks.js";import n from"./PaypalButtons.js";import r from"../../internal/Spinner/Spinner.js";import{getPaypalUrl as p}from"../utils/get-paypal-url.js";import c from"../../../utils/Script.js";import i from"../../../core/Analytics/useAnalytics.js";function l({onApprove:l,onCancel:u,onError:m,onSubmit:d,onScriptLoadFailure:y,setComponentRef:f,..._}){const[h,v]=a("pending"),{analytics:N}=i(),S=t({setStatus:v});o(()=>{f(S.current)},[f]);const g=s((e,a)=>(v("processing"),l(e,a),Promise.resolve()),[l]),j=()=>{v("ready")},k=e=>{y(e)};return o(()=>{const e=p(_),a={..._.cspNonce&&{nonce:_.cspNonce}},t={..._.cspNonce&&{cspNonce:_.cspNonce}},o=new c({src:e,component:"paypal",attributes:a,dataAttributes:t,analytics:N});return o.load().then(j).catch(k),()=>{o.remove()}},[]),"pending"===h?e("div",{className:"adyen-checkout__paypal","aria-live":"polite","aria-busy":"true"},e("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--pending","data-testid":"paypal-loader"},e(r,null))):e("div",{className:"adyen-checkout__paypal","data-testid":"paypal-component"},e(n,{..._,onCancel:u,onError:m,onSubmit:d,onApprove:g,isProcessingPayment:"processing"===h,paypalRef:window.paypal}))}export{l as default};
2
2
  //# sourceMappingURL=PaypalComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaypalComponent.js","sources":["../../../../../src/components/PayPal/components/PaypalComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useCallback } from 'preact/hooks';\nimport PaypalButtons from './PaypalButtons';\nimport Spinner from '../../internal/Spinner';\nimport { getPaypalUrl } from '../utils/get-paypal-url';\nimport Script from '../../../utils/Script';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport type { PayPalComponentProps } from './types';\nimport useAnalytics from '../../../core/Analytics/useAnalytics';\n\nexport default function PaypalComponent({\n onApprove,\n onCancel,\n onChange,\n onError,\n onSubmit,\n onScriptLoadFailure,\n ...props\n}: Readonly<PayPalComponentProps>) {\n const [status, setStatus] = useState('pending');\n const { analytics } = useAnalytics();\n\n this.setStatus = setStatus;\n\n const handleOnApprove = useCallback(\n (data: any, actions: any) => {\n setStatus('processing');\n onApprove(data, actions);\n },\n [onApprove]\n );\n\n const handlePaypalLoad = () => {\n setStatus('ready');\n };\n\n const handlePaypalLoadFailure = (error: AdyenCheckoutError) => {\n onScriptLoadFailure(error);\n };\n\n useEffect(() => {\n const src = getPaypalUrl(props);\n\n const attributes = { ...(props.cspNonce && { nonce: props.cspNonce }) },\n dataAttributes = { ...(props.cspNonce && { cspNonce: props.cspNonce }) };\n\n const script = new Script({\n src,\n component: 'paypal',\n attributes,\n dataAttributes,\n analytics\n });\n\n script.load().then(handlePaypalLoad).catch(handlePaypalLoadFailure);\n\n return () => {\n script.remove();\n };\n }, []);\n\n if (status === 'pending') {\n return (\n <div className=\"adyen-checkout__paypal\" aria-live=\"polite\" aria-busy=\"true\">\n <div className=\"adyen-checkout__paypal__status adyen-checkout__paypal__status--pending\" data-testid={'paypal-loader'}>\n <Spinner />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__paypal\">\n <PaypalButtons\n {...props}\n onCancel={onCancel}\n onChange={onChange}\n onError={onError}\n onSubmit={onSubmit}\n onApprove={handleOnApprove}\n isProcessingPayment={status === 'processing'}\n paypalRef={window.paypal}\n />\n </div>\n );\n}\n"],"names":["PaypalComponent","onApprove","onCancel","onChange","onError","onSubmit","onScriptLoadFailure","props","status","setStatus","useState","analytics","useAnalytics","this","handleOnApprove","useCallback","data","actions","handlePaypalLoad","handlePaypalLoadFailure","error","useEffect","src","getPaypalUrl","attributes","cspNonce","nonce","dataAttributes","script","Script","component","load","then","catch","remove","h","div","className","aria-live","aria-busy","data-testid","Spinner","PaypalButtons","isProcessingPayment","paypalRef","window","paypal"],"mappings":"4ZAUe,SAASA,GAAgBC,UACpCA,EAASC,SACTA,EAAQC,SACRA,EAAQC,QACRA,EAAOC,SACPA,EAAQC,oBACRA,KACGC,IAEH,MAAOC,EAAQC,GAAaC,EAAS,YAC/BC,UAAEA,GAAcC,IAEtBC,KAAKJ,UAAYA,EAEjB,MAAMK,EAAkBC,EACpB,CAACC,EAAWC,KACRR,EAAU,cACVR,EAAUe,EAAMC,IAEpB,CAAChB,IAGCiB,EAAmB,KACrBT,EAAU,UAGRU,EAA2BC,IAC7Bd,EAAoBc,IAwBxB,OArBAC,EAAU,KACN,MAAMC,EAAMC,EAAahB,GAEnBiB,EAAa,IAAMjB,EAAMkB,UAAY,CAAEC,MAAOnB,EAAMkB,WACtDE,EAAiB,IAAMpB,EAAMkB,UAAY,CAAEA,SAAUlB,EAAMkB,WAEzDG,EAAS,IAAIC,EAAO,CACtBP,MACAQ,UAAW,SACXN,aACAG,iBACAhB,cAKJ,OAFAiB,EAAOG,OAAOC,KAAKd,GAAkBe,MAAMd,GAEpC,KACHS,EAAOM,WAEZ,IAEY,YAAX1B,EAEI2B,EAACC,MAAAA,CAAIC,UAAU,yBAAyBC,YAAU,SAASC,YAAU,QACjEJ,EAACC,MAAAA,CAAIC,UAAU,yEAAyEG,cAAa,iBACjGL,EAACM,EAAAA,QAObN,EAACC,MAAAA,CAAIC,UAAU,0BACXF,EAACO,EAAAA,IACOnC,EACJL,SAAUA,EACVC,SAAUA,EACVC,QAASA,EACTC,SAAUA,EACVJ,UAAWa,EACX6B,oBAAgC,eAAXnC,EACrBoC,UAAWC,OAAOC,SAIlC"}
1
+ {"version":3,"file":"PaypalComponent.js","sources":["../../../../../src/components/PayPal/components/PaypalComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useCallback, useRef } from 'preact/hooks';\n\nimport PaypalButtons from './PaypalButtons';\nimport Spinner from '../../internal/Spinner';\nimport { getPaypalUrl } from '../utils/get-paypal-url';\nimport Script from '../../../utils/Script';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport type { PayPalComponentProps } from './types';\nimport useAnalytics from '../../../core/Analytics/useAnalytics';\nimport { ComponentMethodsRef } from '../../types';\nimport type { PayPalOnApproveActions, PayPalOnApproveData } from '../paypal-js-types';\n\nexport default function PaypalComponent({\n onApprove,\n onCancel,\n onError,\n onSubmit,\n onScriptLoadFailure,\n setComponentRef,\n ...props\n}: Readonly<PayPalComponentProps>) {\n const [status, setStatus] = useState('pending');\n const { analytics } = useAnalytics();\n\n const paypalComponentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus\n });\n\n useEffect(() => {\n setComponentRef(paypalComponentRef.current);\n }, [setComponentRef]);\n\n const handleOnApprove = useCallback(\n (data: PayPalOnApproveData, actions: PayPalOnApproveActions) => {\n setStatus('processing');\n // Awaiting this callback delays closing of the PayPal popup or closing the redirect page\n // after the payment has been approved\n void onApprove(data, actions);\n return Promise.resolve();\n },\n [onApprove]\n );\n\n const handlePaypalLoad = () => {\n setStatus('ready');\n };\n\n const handlePaypalLoadFailure = (error: AdyenCheckoutError) => {\n onScriptLoadFailure(error);\n };\n\n useEffect(() => {\n const src = getPaypalUrl(props);\n\n const attributes = { ...(props.cspNonce && { nonce: props.cspNonce }) },\n dataAttributes = { ...(props.cspNonce && { cspNonce: props.cspNonce }) };\n\n const script = new Script({\n src,\n component: 'paypal',\n attributes,\n dataAttributes,\n analytics\n });\n\n script.load().then(handlePaypalLoad).catch(handlePaypalLoadFailure);\n\n return () => {\n script.remove();\n };\n }, []);\n\n if (status === 'pending') {\n return (\n <div className=\"adyen-checkout__paypal\" aria-live=\"polite\" aria-busy=\"true\">\n <div className=\"adyen-checkout__paypal__status adyen-checkout__paypal__status--pending\" data-testid=\"paypal-loader\">\n <Spinner />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__paypal\" data-testid=\"paypal-component\">\n <PaypalButtons\n {...props}\n onCancel={onCancel}\n onError={onError}\n onSubmit={onSubmit}\n onApprove={handleOnApprove}\n isProcessingPayment={status === 'processing'}\n paypalRef={window.paypal}\n />\n </div>\n );\n}\n"],"names":["PaypalComponent","onApprove","onCancel","onError","onSubmit","onScriptLoadFailure","setComponentRef","props","status","setStatus","useState","analytics","useAnalytics","paypalComponentRef","useRef","useEffect","current","handleOnApprove","useCallback","data","actions","Promise","resolve","handlePaypalLoad","handlePaypalLoadFailure","error","src","getPaypalUrl","attributes","cspNonce","nonce","dataAttributes","script","Script","component","load","then","catch","remove","h","div","className","aria-live","aria-busy","data-testid","Spinner","PaypalButtons","isProcessingPayment","paypalRef","window","paypal"],"mappings":"waAae,SAASA,GAAgBC,UACpCA,EAASC,SACTA,EAAQC,QACRA,EAAOC,SACPA,EAAQC,oBACRA,EAAmBC,gBACnBA,KACGC,IAEH,MAAOC,EAAQC,GAAaC,EAAS,YAC/BC,UAAEA,GAAcC,IAEhBC,EAAqBC,EAA4B,CACnDL,UAAWA,IAGfM,EAAU,KACNT,EAAgBO,EAAmBG,UACpC,CAACV,IAEJ,MAAMW,EAAkBC,EACpB,CAACC,EAA2BC,KACxBX,EAAU,cAGLR,EAAUkB,EAAMC,GACdC,QAAQC,WAEnB,CAACrB,IAGCsB,EAAmB,KACrBd,EAAU,UAGRe,EAA2BC,IAC7BpB,EAAoBoB,IAwBxB,OArBAV,EAAU,KACN,MAAMW,EAAMC,EAAapB,GAEnBqB,EAAa,IAAMrB,EAAMsB,UAAY,CAAEC,MAAOvB,EAAMsB,WACtDE,EAAiB,IAAMxB,EAAMsB,UAAY,CAAEA,SAAUtB,EAAMsB,WAEzDG,EAAS,IAAIC,EAAO,CACtBP,MACAQ,UAAW,SACXN,aACAG,iBACApB,cAKJ,OAFAqB,EAAOG,OAAOC,KAAKb,GAAkBc,MAAMb,GAEpC,KACHQ,EAAOM,WAEZ,IAEY,YAAX9B,EAEI+B,EAACC,MAAAA,CAAIC,UAAU,yBAAyBC,YAAU,SAASC,YAAU,QACjEJ,EAACC,MAAAA,CAAIC,UAAU,yEAAyEG,cAAY,iBAChGL,EAACM,EAAAA,QAObN,EAACC,MAAAA,CAAIC,UAAU,yBAAyBG,cAAY,oBAChDL,EAACO,EAAAA,IACOvC,EACJL,SAAUA,EACVC,QAASA,EACTC,SAAUA,EACVH,UAAWgB,EACX8B,oBAAgC,eAAXvC,EACrBwC,UAAWC,OAAOC,SAIlC"}
@@ -1,2 +1,2 @@
1
- const e=(e,a)=>{if(void 0===e?.address)return null;const{address:r,name:n}=e,d=((e=null,a=null)=>e&&a?`${e}, ${a}`:e||(a||null))(r.address_line_1,r.address_line_2);return{houseNumberOrName:"ZZ",...d&&{street:d},...r.admin_area_1&&{stateOrProvince:r.admin_area_1},...r.admin_area_2&&{city:r.admin_area_2},...r.postal_code&&{postalCode:r.postal_code},...r.country_code&&{country:r.country_code},...a&&{firstName:n.full_name}}};export{e as formatPaypalOrderContactToAdyenFormat};
1
+ const e=(e,a)=>{if(void 0===e?.address)return null;const{address:r,name:d}=e,n=(o=r.address_line_1,s=r.address_line_2,o&&s?`${o}, ${s}`:o||s||null);var o,s;return{houseNumberOrName:"ZZ",...n&&{street:n},...r.admin_area_1&&{stateOrProvince:r.admin_area_1},...r.admin_area_2&&{city:r.admin_area_2},...r.postal_code&&{postalCode:r.postal_code},...r.country_code&&{country:r.country_code},...a&&{firstName:d?.full_name}}};export{e as formatPaypalOrderContactToAdyenFormat};
2
2
  //# sourceMappingURL=format-paypal-order-contact-to-adyen-format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-paypal-order-contact-to-adyen-format.js","sources":["../../../../../src/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.ts"],"sourcesContent":["import { AddressData } from '../../../types/global-types';\n\n/**\n * This function formats PayPal contact format to Adyen address format\n */\nexport const formatPaypalOrderContactToAdyenFormat = (paymentContact: any, isDeliveryAddress?: boolean): AddressData | null => {\n const getStreet = (addressPart1 = null, addressPart2 = null): string | null => {\n if (addressPart1 && addressPart2) return `${addressPart1}, ${addressPart2}`;\n if (addressPart1) return addressPart1;\n if (addressPart2) return addressPart2;\n return null;\n };\n\n if (paymentContact?.address === undefined) return null;\n\n const { address, name } = paymentContact;\n const street = getStreet(address.address_line_1, address.address_line_2);\n\n return {\n houseNumberOrName: 'ZZ',\n ...(street && { street }),\n ...(address.admin_area_1 && { stateOrProvince: address.admin_area_1 }),\n ...(address.admin_area_2 && { city: address.admin_area_2 }),\n ...(address.postal_code && { postalCode: address.postal_code }),\n ...(address.country_code && { country: address.country_code }),\n ...(isDeliveryAddress && {\n firstName: name.full_name\n })\n };\n};\n"],"names":["formatPaypalOrderContactToAdyenFormat","paymentContact","isDeliveryAddress","undefined","address","name","street","addressPart1","addressPart2","getStreet","address_line_1","address_line_2","houseNumberOrName","admin_area_1","stateOrProvince","admin_area_2","city","postal_code","postalCode","country_code","country","firstName","full_name"],"mappings":"AAKO,MAAMA,EAAwC,CAACC,EAAqBC,KAQvE,QAAgCC,IAA5BF,GAAgBG,QAAuB,OAAO,KAElD,MAAMA,QAAEA,EAAOC,KAAEA,GAASJ,EACpBK,EAVY,EAACC,EAAe,KAAMC,EAAe,OAC/CD,GAAgBC,EAAqB,GAAGD,MAAiBC,IACzDD,IACAC,GACG,MAMIC,CAAUL,EAAQM,eAAgBN,EAAQO,gBAEzD,MAAO,CACHC,kBAAmB,QACfN,GAAU,CAAEA,aACZF,EAAQS,cAAgB,CAAEC,gBAAiBV,EAAQS,iBACnDT,EAAQW,cAAgB,CAAEC,KAAMZ,EAAQW,iBACxCX,EAAQa,aAAe,CAAEC,WAAYd,EAAQa,gBAC7Cb,EAAQe,cAAgB,CAAEC,QAAShB,EAAQe,iBAC3CjB,GAAqB,CACrBmB,UAAWhB,EAAKiB"}
1
+ {"version":3,"file":"format-paypal-order-contact-to-adyen-format.js","sources":["../../../../../src/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.ts"],"sourcesContent":["import { AddressData } from '../../../types/global-types';\nimport type { PayPalOrderResponseBody } from '../paypal-js-types';\n\n/**\n * This function formats PayPal contact format to Adyen address format\n */\nexport const formatPaypalOrderContactToAdyenFormat = (\n paymentContact: PayPalOrderResponseBody['payer'],\n isDeliveryAddress?: boolean\n): AddressData | null => {\n const getStreet = (addressPart1: string | undefined, addressPart2: string | undefined): string | null => {\n if (addressPart1 && addressPart2) return `${addressPart1}, ${addressPart2}`;\n if (addressPart1) return addressPart1;\n if (addressPart2) return addressPart2;\n return null;\n };\n\n if (paymentContact?.address === undefined) return null;\n\n const { address, name } = paymentContact;\n const street = getStreet(address.address_line_1, address.address_line_2);\n\n return {\n houseNumberOrName: 'ZZ',\n ...(street && { street }),\n ...(address.admin_area_1 && { stateOrProvince: address.admin_area_1 }),\n ...(address.admin_area_2 && { city: address.admin_area_2 }),\n ...(address.postal_code && { postalCode: address.postal_code }),\n ...(address.country_code && { country: address.country_code }),\n ...(isDeliveryAddress && {\n firstName: name?.full_name\n })\n };\n};\n"],"names":["formatPaypalOrderContactToAdyenFormat","paymentContact","isDeliveryAddress","undefined","address","name","street","addressPart1","address_line_1","addressPart2","address_line_2","houseNumberOrName","admin_area_1","stateOrProvince","admin_area_2","city","postal_code","postalCode","country_code","country","firstName","full_name"],"mappings":"AAMO,MAAMA,EAAwC,CACjDC,EACAC,KASA,QAAgCC,IAA5BF,GAAgBG,QAAuB,OAAO,KAElD,MAAMA,QAAEA,EAAOC,KAAEA,GAASJ,EACpBK,GAVaC,EAUMH,EAAQI,eAVoBC,EAUJL,EAAQM,eATjDH,GAAgBE,EAAqB,GAAGF,MAAiBE,IACzDF,GACAE,GACG,MAJO,IAACF,EAAkCE,EAYrD,MAAO,CACHE,kBAAmB,QACfL,GAAU,CAAEA,aACZF,EAAQQ,cAAgB,CAAEC,gBAAiBT,EAAQQ,iBACnDR,EAAQU,cAAgB,CAAEC,KAAMX,EAAQU,iBACxCV,EAAQY,aAAe,CAAEC,WAAYb,EAAQY,gBAC7CZ,EAAQc,cAAgB,CAAEC,QAASf,EAAQc,iBAC3ChB,GAAqB,CACrBkB,UAAWf,GAAMgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-paypal-styles.js","sources":["../../../../../src/components/PayPal/utils/get-paypal-styles.ts"],"sourcesContent":["import { SUPPORTED_COLORS_FOR_CREDIT } from '../config';\nimport type { FundingSource } from '../types';\n\n/**\n * Processes and returns a new style object.\n */\nexport const getStyle = (fundingSource: FundingSource, style = {}) => {\n if (fundingSource === 'paypal') return { ...style };\n\n return Object.keys(style).reduce((acc, prop) => {\n const value = style[prop];\n if (prop !== 'color' || SUPPORTED_COLORS_FOR_CREDIT.includes(value)) {\n acc[prop] = value;\n }\n return acc;\n }, {});\n};\n"],"names":["getStyle","fundingSource","style","Object","keys","reduce","acc","prop","value","SUPPORTED_COLORS_FOR_CREDIT","includes"],"mappings":"2DAMO,MAAMA,EAAW,CAACC,EAA8BC,EAAQ,CAAA,IACrC,WAAlBD,EAAmC,IAAKC,GAErCC,OAAOC,KAAKF,GAAOG,OAAO,CAACC,EAAKC,KACnC,MAAMC,EAAQN,EAAMK,GAIpB,OAHa,UAATA,GAAoBE,EAA4BC,SAASF,MACzDF,EAAIC,GAAQC,GAETF,GACR,CAAA"}
1
+ {"version":3,"file":"get-paypal-styles.js","sources":["../../../../../src/components/PayPal/utils/get-paypal-styles.ts"],"sourcesContent":["import { SUPPORTED_COLORS_FOR_CREDIT } from '../config';\nimport type { SupportedPayPalFundingSources } from '../types';\n\n/**\n * Processes and returns a new style object.\n */\nexport const getStyle = (fundingSource: SupportedPayPalFundingSources, style = {}) => {\n if (fundingSource === 'paypal') return { ...style };\n\n return Object.keys(style).reduce((acc, prop) => {\n const value = style[prop];\n if (prop !== 'color' || SUPPORTED_COLORS_FOR_CREDIT.includes(value)) {\n acc[prop] = value;\n }\n return acc;\n }, {});\n};\n"],"names":["getStyle","fundingSource","style","Object","keys","reduce","acc","prop","value","SUPPORTED_COLORS_FOR_CREDIT","includes"],"mappings":"2DAMO,MAAMA,EAAW,CAACC,EAA8CC,EAAQ,CAAA,IACrD,WAAlBD,EAAmC,IAAKC,GAErCC,OAAOC,KAAKF,GAAOG,OAAO,CAACC,EAAKC,KACnC,MAAMC,EAAQN,EAAMK,GAIpB,OAHa,UAATA,GAAoBE,EAA4BC,SAASF,MACzDF,EAAIC,GAAQC,GAETF,GACR,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Fastlane.js","sources":["../../../../src/components/PayPalFastlane/Fastlane.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport { TxVariants } from '../tx-variants';\nimport FastlaneComponent from './components/FastlaneComponent';\nimport type { FastlaneConfiguration } from './types';\n\nclass Fastlane extends UIElement<FastlaneConfiguration> {\n public static readonly type = TxVariants.fastlane;\n\n protected static readonly defaultProps = {\n keepBrandsVisible: true\n };\n\n protected override formatData() {\n return {\n paymentMethod: {\n type: Fastlane.type,\n fastlaneData: btoa(\n JSON.stringify({\n fastlaneSessionId: this.props.fastlaneSessionId,\n tokenId: this.props.tokenId\n })\n )\n }\n };\n }\n\n /**\n *\n * Fastlane works differently than other payment methods: Merchant needs to pass to the payment method\n * configuration the values received from PayPal SDK to perform the payment (tokenId, etc). There is no\n * point in tracking these values, so we just omit them all in the analytics by calling the\n * 'beforeRender' without the props\n *\n * @protected\n */\n protected override beforeRender() {\n super.beforeRender();\n }\n\n public override async isAvailable(): Promise<void> {\n const { tokenId, lastFour, brand, email } = this.props;\n if (tokenId && lastFour && brand && email) {\n return Promise.resolve();\n }\n return Promise.reject();\n }\n\n public override get isValid(): boolean {\n return true;\n }\n\n /**\n * Used to display payment method logo within Drop-in\n */\n public override get icon(): string {\n return this.props.icon ?? this.resources.getImage()('card');\n }\n\n /**\n * Used to display the payment method supported brands within Drop-in\n */\n public get brands(): { icon: string; name: string }[] {\n const { brands } = this.props;\n return brands.map(brand => ({ icon: this.props.modules.resources.getImage()(brand), name: brand }));\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <FastlaneComponent\n lastFour={this.props.lastFour}\n brand={this.props.brand}\n payButton={this.payButton}\n setComponentRef={this.setComponentRef}\n showPayButton={this.props.showPayButton}\n />\n );\n }\n}\n\nexport default Fastlane;\n"],"names":["Fastlane","UIElement","formatData","paymentMethod","type","fastlaneData","btoa","JSON","stringify","fastlaneSessionId","this","props","tokenId","beforeRender","super","isAvailable","lastFour","brand","email","Promise","resolve","reject","isValid","icon","resources","getImage","brands","map","modules","name","componentToRender","h","FastlaneComponent","payButton","setComponentRef","showPayButton","_define_property","TxVariants","fastlane","defaultProps","keepBrandsVisible"],"mappings":"4VAMA,MAAMA,UAAiBC,EAOAC,UAAAA,GACf,MAAO,CACHC,cAAe,CACXC,KAAMJ,EAASI,KACfC,aAAcC,KACVC,KAAKC,UAAU,CACXC,kBAAmBC,KAAKC,MAAMF,kBAC9BG,QAASF,KAAKC,MAAMC,YAKxC,CAWA,YAAAC,GACIC,MAAMD,cACV,CAEA,iBAAsBE,GAClB,MAAMH,QAAEA,EAAOI,SAAEA,EAAQC,MAAEA,EAAKC,MAAEA,GAAUR,KAAKC,MACjD,OAAIC,GAAWI,GAAYC,GAASC,EACzBC,QAAQC,UAEZD,QAAQE,QACnB,CAEA,WAAoBC,GAChB,OAAO,CACX,CAKA,QAAoBC,GAChB,OAAOb,KAAKC,MAAMY,MAAQb,KAAKc,UAAUC,UAAff,CAA0B,OACxD,CAKA,UAAWgB,GACP,MAAMA,OAAEA,GAAWhB,KAAKC,MACxB,OAAOe,EAAOC,IAAIV,KAAYM,KAAMb,KAAKC,MAAMiB,QAAQJ,UAAUC,UAA7Bf,CAAwCO,GAAQY,KAAMZ,IAC9F,CAEmBa,iBAAAA,GACf,OACIC,EAACC,EAAAA,CACGhB,SAAUN,KAAKC,MAAMK,SACrBC,MAAOP,KAAKC,MAAMM,MAClBgB,UAAWvB,KAAKuB,UAChBC,gBAAiBxB,KAAKwB,gBACtBC,cAAezB,KAAKC,MAAMwB,eAGtC,EAtEAC,EADEpC,EACqBI,OAAOiC,EAAWC,UAEzCF,EAHEpC,EAGwBuC,eAAe,CACrCC,mBAAmB"}
1
+ {"version":3,"file":"Fastlane.js","sources":["../../../../src/components/PayPalFastlane/Fastlane.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport { TxVariants } from '../tx-variants';\nimport FastlaneComponent from './components/FastlaneComponent';\nimport type { FastlaneConfiguration } from './types';\nimport { PaymentMethodBrand } from '../../types/global-types';\n\nclass Fastlane extends UIElement<FastlaneConfiguration> {\n public static readonly type = TxVariants.fastlane;\n\n protected static readonly defaultProps = {\n keepBrandsVisible: true\n };\n\n protected override formatData() {\n return {\n paymentMethod: {\n type: Fastlane.type,\n fastlaneData: btoa(\n JSON.stringify({\n fastlaneSessionId: this.props.fastlaneSessionId,\n tokenId: this.props.tokenId\n })\n )\n }\n };\n }\n\n /**\n *\n * Fastlane works differently than other payment methods: Merchant needs to pass to the payment method\n * configuration the values received from PayPal SDK to perform the payment (tokenId, etc). There is no\n * point in tracking these values, so we just omit them all in the analytics by calling the\n * 'beforeRender' without the props\n *\n * @protected\n */\n protected override beforeRender() {\n super.beforeRender();\n }\n\n public override async isAvailable(): Promise<void> {\n const { tokenId, lastFour, brand, email } = this.props;\n if (tokenId && lastFour && brand && email) {\n return Promise.resolve();\n }\n return Promise.reject();\n }\n\n public override get isValid(): boolean {\n return true;\n }\n\n /**\n * Used to display payment method logo within Drop-in\n */\n public override get icon(): string {\n return this.props.icon ?? this.resources.getImage()('card');\n }\n\n /**\n * Used to display the payment method supported brands within Drop-in\n */\n public get brands(): PaymentMethodBrand[] {\n const { brands } = this.props;\n return brands.map(brand => ({ icon: this.props.modules.resources.getImage()(brand), name: brand }));\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <FastlaneComponent\n lastFour={this.props.lastFour}\n brand={this.props.brand}\n payButton={this.payButton}\n setComponentRef={this.setComponentRef}\n showPayButton={this.props.showPayButton}\n />\n );\n }\n}\n\nexport default Fastlane;\n"],"names":["Fastlane","UIElement","formatData","paymentMethod","type","fastlaneData","btoa","JSON","stringify","fastlaneSessionId","this","props","tokenId","beforeRender","super","isAvailable","lastFour","brand","email","Promise","resolve","reject","isValid","icon","resources","getImage","brands","map","modules","name","componentToRender","h","FastlaneComponent","payButton","setComponentRef","showPayButton","_define_property","TxVariants","fastlane","defaultProps","keepBrandsVisible"],"mappings":"4VAOA,MAAMA,UAAiBC,EAOAC,UAAAA,GACf,MAAO,CACHC,cAAe,CACXC,KAAMJ,EAASI,KACfC,aAAcC,KACVC,KAAKC,UAAU,CACXC,kBAAmBC,KAAKC,MAAMF,kBAC9BG,QAASF,KAAKC,MAAMC,YAKxC,CAWA,YAAAC,GACIC,MAAMD,cACV,CAEA,iBAAsBE,GAClB,MAAMH,QAAEA,EAAOI,SAAEA,EAAQC,MAAEA,EAAKC,MAAEA,GAAUR,KAAKC,MACjD,OAAIC,GAAWI,GAAYC,GAASC,EACzBC,QAAQC,UAEZD,QAAQE,QACnB,CAEA,WAAoBC,GAChB,OAAO,CACX,CAKA,QAAoBC,GAChB,OAAOb,KAAKC,MAAMY,MAAQb,KAAKc,UAAUC,UAAff,CAA0B,OACxD,CAKA,UAAWgB,GACP,MAAMA,OAAEA,GAAWhB,KAAKC,MACxB,OAAOe,EAAOC,IAAIV,KAAYM,KAAMb,KAAKC,MAAMiB,QAAQJ,UAAUC,UAA7Bf,CAAwCO,GAAQY,KAAMZ,IAC9F,CAEmBa,iBAAAA,GACf,OACIC,EAACC,EAAAA,CACGhB,SAAUN,KAAKC,MAAMK,SACrBC,MAAOP,KAAKC,MAAMM,MAClBgB,UAAWvB,KAAKuB,UAChBC,gBAAiBxB,KAAKwB,gBACtBC,cAAezB,KAAKC,MAAMwB,eAGtC,EAtEAC,EADEpC,EACqBI,OAAOiC,EAAWC,UAEzCF,EAHEpC,EAGwBuC,eAAe,CACrCC,mBAAmB"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import e from"../helpers/QRLoaderContainer/QRLoaderContainer.js";import r from"./components/PixInput/PixInput.js";import{cleanCPFCNPJ as o}from"../internal/SocialSecurityNumberBrazil/utils.js";import{TxVariants as s}from"../tx-variants.js";import{QRLoader as i}from"../internal/QRLoader/QRLoader.js";import"../../core/Context/CoreProvider.js";import"../../external/preact/hooks/dist/hooks.js";import"../../core/Errors/AdyenCheckoutError.js";import"../../core/Errors/SRPanelContext.js";import"../internal/Button/Button.js";import"../internal/QRLoader/QRLoaderDetailsProvider.js";import a from"./components/PixQRDetails.js";function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class p extends e{get isValid(){return!!this.state.isValid}formatProps(t){return{copyBtn:!0,introduction:"pix.instructions",...super.formatProps(t)}}formatData(){const{data:t={}}=this.state,{firstName:e,lastName:r,socialSecurityNumber:s=""}=t;return{paymentMethod:{type:this.props.type||this.constructor.type},...e&&r&&{shopperName:{firstName:e,lastName:r}},...s&&{socialSecurityNumber:o(s)}}}renderQRCode(){return t(i,{...this.props,type:this.type,brandLogo:this.props.brandLogo||this.icon,onComplete:this.onComplete,onActionHandled:this.onActionHandled,brandName:this.displayName,onSubmitAnalytics:this.submitAnalytics},t(a,null))}componentToRender(){return this.props.paymentData?this.renderQRCode():t(r,{ref:t=>{this.componentRef=t},...this.props,showPayButton:this.props.showPayButton,personalDetailsRequired:this.props.personalDetailsRequired,name:this.displayName,onChange:this.setState,payButton:this.payButton})}}n(p,"type",s.pix),n(p,"defaultProps",{personalDetailsRequired:!1,countdownTime:15,delay:2e3,...e.defaultProps});export{p as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import e from"../helpers/QRLoaderContainer/QRLoaderContainer.js";import r from"./components/PixInput/PixInput.js";import{cleanCPFCNPJ as o}from"../internal/SocialSecurityNumberBrazil/utils.js";import{TxVariants as s}from"../tx-variants.js";import{QRLoader as i}from"../internal/QRLoader/QRLoader.js";import"../../core/Context/CoreProvider.js";import"../../external/preact/hooks/dist/hooks.js";import"../../core/Errors/SRPanelContext.js";import"../internal/Button/Button.js";import"../internal/QRLoader/QRLoaderDetailsProvider.js";import a from"./components/PixQRDetails.js";function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class p extends e{get isValid(){return!!this.state.isValid}formatProps(t){return{copyBtn:!0,introduction:"pix.instructions",...super.formatProps(t)}}formatData(){const{data:t={}}=this.state,{firstName:e,lastName:r,socialSecurityNumber:s=""}=t;return{paymentMethod:{type:this.props.type||this.constructor.type},...e&&r&&{shopperName:{firstName:e,lastName:r}},...s&&{socialSecurityNumber:o(s)}}}renderQRCode(){return t(i,{...this.props,type:this.type,brandLogo:this.props.brandLogo||this.icon,onComplete:this.onComplete,onActionHandled:this.onActionHandled,brandName:this.displayName,onSubmitAnalytics:this.submitAnalytics},t(a,null))}componentToRender(){return this.props.paymentData?this.renderQRCode():t(r,{ref:t=>{this.componentRef=t},...this.props,showPayButton:this.props.showPayButton,personalDetailsRequired:this.props.personalDetailsRequired,name:this.displayName,onChange:this.setState,payButton:this.payButton})}}n(p,"type",s.pix),n(p,"defaultProps",{personalDetailsRequired:!1,countdownTime:15,delay:2e3,...e.defaultProps});export{p as default};
2
2
  //# sourceMappingURL=Pix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pix.js","sources":["../../../../src/components/Pix/Pix.tsx"],"sourcesContent":["import { h } from 'preact';\nimport QRLoaderContainer from '../helpers/QRLoaderContainer/QRLoaderContainer';\nimport PixInput from './components/PixInput';\nimport { cleanCPFCNPJ } from '../internal/SocialSecurityNumberBrazil/utils';\nimport { PixElementData, PixConfiguration } from './types';\nimport { TxVariants } from '../tx-variants';\nimport { QRLoader } from '../internal/QRLoader';\nimport PixQRDetails from './components/PixQRDetails';\nimport './Pix.scss';\n\nclass PixElement extends QRLoaderContainer<PixConfiguration> {\n public static readonly type = TxVariants.pix;\n\n public static readonly defaultProps = {\n personalDetailsRequired: false,\n countdownTime: 15,\n delay: 2000,\n ...QRLoaderContainer.defaultProps\n };\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n formatProps(props: PixConfiguration): PixConfiguration {\n return {\n copyBtn: true,\n introduction: 'pix.instructions',\n ...super.formatProps(props)\n };\n }\n\n formatData(): PixElementData {\n const { data = {} } = this.state;\n const { firstName, lastName, socialSecurityNumber = '' } = data;\n\n return {\n paymentMethod: {\n type: this.props.type || this.constructor['type']\n },\n ...(firstName && lastName && { shopperName: { firstName, lastName } }),\n ...(socialSecurityNumber && { socialSecurityNumber: cleanCPFCNPJ(socialSecurityNumber) })\n };\n }\n\n renderQRCode() {\n return (\n <QRLoader\n {...this.props}\n type={this.type}\n brandLogo={this.props.brandLogo || this.icon}\n onComplete={this.onComplete}\n onActionHandled={this.onActionHandled}\n brandName={this.displayName}\n onSubmitAnalytics={this.submitAnalytics}\n >\n <PixQRDetails />\n </QRLoader>\n );\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.paymentData) {\n return this.renderQRCode();\n }\n\n return (\n <PixInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n showPayButton={this.props.showPayButton}\n personalDetailsRequired={this.props.personalDetailsRequired}\n name={this.displayName}\n onChange={this.setState}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default PixElement;\n"],"names":["PixElement","QRLoaderContainer","isValid","this","state","formatProps","props","copyBtn","introduction","super","formatData","data","firstName","lastName","socialSecurityNumber","paymentMethod","type","constructor","shopperName","cleanCPFCNPJ","renderQRCode","h","QRLoader","brandLogo","icon","onComplete","onActionHandled","brandName","displayName","onSubmitAnalytics","submitAnalytics","PixQRDetails","componentToRender","paymentData","PixInput","ref","componentRef","showPayButton","personalDetailsRequired","name","onChange","setState","payButton","_define_property","TxVariants","pix","defaultProps","countdownTime","delay"],"mappings":"2yBAUA,MAAMA,UAAmBC,EAUrB,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAEAG,WAAAA,CAAYC,GACR,MAAO,CACHC,SAAS,EACTC,aAAc,sBACXC,MAAMJ,YAAYC,GAE7B,CAEAI,UAAAA,GACI,MAAMC,KAAEA,EAAO,IAAOR,KAAKC,OACrBQ,UAAEA,EAASC,SAAEA,EAAQC,qBAAEA,EAAuB,IAAOH,EAE3D,MAAO,CACHI,cAAe,CACXC,KAAMb,KAAKG,MAAMU,MAAQb,KAAKc,YAAY,SAE1CL,GAAaC,GAAY,CAAEK,YAAa,CAAEN,YAAWC,gBACrDC,GAAwB,CAAEA,qBAAsBK,EAAaL,IAEzE,CAEAM,YAAAA,GACI,OACIC,EAACC,EAAAA,IACOnB,KAAKG,MACTU,KAAMb,KAAKa,KACXO,UAAWpB,KAAKG,MAAMiB,WAAapB,KAAKqB,KACxCC,WAAYtB,KAAKsB,WACjBC,gBAAiBvB,KAAKuB,gBACtBC,UAAWxB,KAAKyB,YAChBC,kBAAmB1B,KAAK2B,iBAExBT,EAACU,EAAAA,MAGb,CAEmBC,iBAAAA,GACf,OAAI7B,KAAKG,MAAM2B,YACJ9B,KAAKiB,eAIZC,EAACa,EAAAA,CACGC,IAAKA,IACDhC,KAAKiC,aAAeD,MAEpBhC,KAAKG,MACT+B,cAAelC,KAAKG,MAAM+B,cAC1BC,wBAAyBnC,KAAKG,MAAMgC,wBACpCC,KAAMpC,KAAKyB,YACXY,SAAUrC,KAAKsC,SACfC,UAAWvC,KAAKuC,WAG5B,EApEAC,EADE3C,EACqBgB,OAAO4B,EAAWC,KAEzCF,EAHE3C,EAGqB8C,eAAe,CAClCR,yBAAyB,EACzBS,cAAe,GACfC,MAAO,OACJ/C,EAAkB6C"}
1
+ {"version":3,"file":"Pix.js","sources":["../../../../src/components/Pix/Pix.tsx"],"sourcesContent":["import { h } from 'preact';\nimport QRLoaderContainer from '../helpers/QRLoaderContainer/QRLoaderContainer';\nimport PixInput from './components/PixInput';\nimport { cleanCPFCNPJ } from '../internal/SocialSecurityNumberBrazil/utils';\nimport { PixElementData, PixConfiguration } from './types';\nimport { TxVariants } from '../tx-variants';\nimport { QRLoader } from '../internal/QRLoader';\nimport PixQRDetails from './components/PixQRDetails';\nimport './Pix.scss';\n\nclass PixElement extends QRLoaderContainer<PixConfiguration> {\n public static readonly type = TxVariants.pix;\n\n public static readonly defaultProps = {\n personalDetailsRequired: false,\n countdownTime: 15,\n delay: 2000,\n ...QRLoaderContainer.defaultProps\n };\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n formatProps(props: PixConfiguration): PixConfiguration {\n return {\n copyBtn: true,\n introduction: 'pix.instructions',\n ...super.formatProps(props)\n };\n }\n\n formatData(): PixElementData {\n const { data = {} } = this.state;\n const { firstName, lastName, socialSecurityNumber = '' } = data;\n\n return {\n paymentMethod: {\n type: this.props.type || this.constructor['type']\n },\n ...(firstName && lastName && { shopperName: { firstName, lastName } }),\n ...(socialSecurityNumber && { socialSecurityNumber: cleanCPFCNPJ(socialSecurityNumber) })\n };\n }\n\n renderQRCode() {\n return (\n <QRLoader\n {...this.props}\n type={this.type}\n brandLogo={this.props.brandLogo || this.icon}\n onComplete={this.onComplete}\n onActionHandled={this.onActionHandled}\n brandName={this.displayName}\n onSubmitAnalytics={this.submitAnalytics}\n >\n <PixQRDetails />\n </QRLoader>\n );\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.paymentData) {\n return this.renderQRCode();\n }\n\n return (\n <PixInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n showPayButton={this.props.showPayButton}\n personalDetailsRequired={this.props.personalDetailsRequired}\n name={this.displayName}\n onChange={this.setState}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default PixElement;\n"],"names":["PixElement","QRLoaderContainer","isValid","this","state","formatProps","props","copyBtn","introduction","super","formatData","data","firstName","lastName","socialSecurityNumber","paymentMethod","type","constructor","shopperName","cleanCPFCNPJ","renderQRCode","h","QRLoader","brandLogo","icon","onComplete","onActionHandled","brandName","displayName","onSubmitAnalytics","submitAnalytics","PixQRDetails","componentToRender","paymentData","PixInput","ref","componentRef","showPayButton","personalDetailsRequired","name","onChange","setState","payButton","_define_property","TxVariants","pix","defaultProps","countdownTime","delay"],"mappings":"2vBAUA,MAAMA,UAAmBC,EAUrB,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAEAG,WAAAA,CAAYC,GACR,MAAO,CACHC,SAAS,EACTC,aAAc,sBACXC,MAAMJ,YAAYC,GAE7B,CAEAI,UAAAA,GACI,MAAMC,KAAEA,EAAO,IAAOR,KAAKC,OACrBQ,UAAEA,EAASC,SAAEA,EAAQC,qBAAEA,EAAuB,IAAOH,EAE3D,MAAO,CACHI,cAAe,CACXC,KAAMb,KAAKG,MAAMU,MAAQb,KAAKc,YAAY,SAE1CL,GAAaC,GAAY,CAAEK,YAAa,CAAEN,YAAWC,gBACrDC,GAAwB,CAAEA,qBAAsBK,EAAaL,IAEzE,CAEAM,YAAAA,GACI,OACIC,EAACC,EAAAA,IACOnB,KAAKG,MACTU,KAAMb,KAAKa,KACXO,UAAWpB,KAAKG,MAAMiB,WAAapB,KAAKqB,KACxCC,WAAYtB,KAAKsB,WACjBC,gBAAiBvB,KAAKuB,gBACtBC,UAAWxB,KAAKyB,YAChBC,kBAAmB1B,KAAK2B,iBAExBT,EAACU,EAAAA,MAGb,CAEmBC,iBAAAA,GACf,OAAI7B,KAAKG,MAAM2B,YACJ9B,KAAKiB,eAIZC,EAACa,EAAAA,CACGC,IAAKA,IACDhC,KAAKiC,aAAeD,MAEpBhC,KAAKG,MACT+B,cAAelC,KAAKG,MAAM+B,cAC1BC,wBAAyBnC,KAAKG,MAAMgC,wBACpCC,KAAMpC,KAAKyB,YACXY,SAAUrC,KAAKsC,SACfC,UAAWvC,KAAKuC,WAG5B,EApEAC,EADE3C,EACqBgB,OAAO4B,EAAWC,KAEzCF,EAHE3C,EAGqB8C,eAAe,CAClCR,yBAAyB,EACzBS,cAAe,GACfC,MAAO,OACJ/C,EAAkB6C"}
@@ -1 +1 @@
1
- {"version":3,"file":"PreAuthorizedDebitCanadaComponent.js","sources":["../../../../../src/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport FormInstruction from '../../internal/FormInstruction';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { preAuthorizedDebitCanadaFormatters, preAuthorizedDebitCanadaValidationRules } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\nimport useImage from '../../../core/Context/useImage';\nimport { SettlementInfo } from './SettlementInfo';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { PreAuthorizedDebitCanadaPlaceholders } from '../types';\n\nimport './PreAuthorizedDebitCanada.scss';\n\ninterface PreAuthorizedDebitCanadaForm {\n ownerName: string;\n bankAccountNumber: string;\n bankCode: string;\n bankLocationId: string;\n}\n\ninterface PreAuthorizedDebitCanadaComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: PreAuthorizedDebitCanadaForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: any };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n showContextualElement?: boolean;\n placeholders?: PreAuthorizedDebitCanadaPlaceholders;\n}\n\nfunction PreAuthorizedDebitCanadaComponent({\n onChange,\n payButton,\n showPayButton,\n placeholders,\n setComponentRef,\n enableStoreDetails,\n showContextualElement = true\n}: Readonly<PreAuthorizedDebitCanadaComponentProps>) {\n const getImage = useImage();\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<PreAuthorizedDebitCanadaForm>({\n schema: ['ownerName', 'bankAccountNumber', 'bankCode', 'bankLocationId'],\n rules: preAuthorizedDebitCanadaValidationRules,\n formatters: preAuthorizedDebitCanadaFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n\n const isFormDisabled = status === 'loading';\n\n const componentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(componentRef.current);\n }, [setComponentRef, componentRef.current]);\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n return (\n <div className=\"adyen-checkout__eftpad-canada\">\n <FormInstruction />\n\n <Fieldset>\n <Field\n label={i18n.get('eftpad-canada.input.accountHolderName.label')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n data-testid={'owner-name'}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.accountNumber.label')}\n errorMessage={!!errors.bankAccountNumber && i18n.get(errors.bankAccountNumber.errorMessage)}\n name={'bankAccountNumber'}\n isValid={!!valid.bankAccountNumber}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.accountNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankAccountNumber'}\n placeholder={placeholders?.bankAccountNumber}\n value={data.bankAccountNumber}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n required={true}\n maxlength={12}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.institutionNumber.label')}\n classNameModifiers={['col-50']}\n errorMessage={!!errors.bankCode && i18n.get(errors.bankCode.errorMessage)}\n isValid={!!valid.bankCode}\n name={'bankCode'}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.institutionNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankCode'}\n placeholder={placeholders?.bankCode}\n value={data.bankCode}\n onInput={handleChangeFor('bankCode', 'input')}\n onBlur={handleChangeFor('bankCode', 'blur')}\n required={true}\n maxlength={3}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.transitNumber.label')}\n classNameModifiers={['col-50']}\n errorMessage={!!errors.bankLocationId && i18n.get(errors.bankLocationId.errorMessage)}\n name={'bankLocationId'}\n isValid={!!valid.bankLocationId}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.transitNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankLocationId'}\n placeholder={placeholders?.bankLocationId}\n value={data.bankLocationId}\n onInput={handleChangeFor('bankLocationId', 'input')}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n required={true}\n maxlength={5}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && (\n <StoreDetails className={'adyen-checkout_eftpad-canada-store-details'} disabled={isFormDisabled} onChange={setStorePaymentMethod} />\n )}\n\n <SettlementInfo />\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })('bento_lock') })}\n </div>\n );\n}\n\nexport default PreAuthorizedDebitCanadaComponent;\n"],"names":["PreAuthorizedDebitCanadaComponent","onChange","payButton","showPayButton","placeholders","setComponentRef","enableStoreDetails","showContextualElement","getImage","useImage","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","data","errors","valid","isValid","useForm","schema","rules","preAuthorizedDebitCanadaValidationRules","formatters","preAuthorizedDebitCanadaFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","componentRef","useRef","showValidation","useEffect","current","h","div","className","FormInstruction","Fieldset","Field","label","get","errorMessage","ownerName","name","InputText","disabled","placeholder","value","onInput","onBlur","required","data-testid","bankAccountNumber","contextualText","maxlength","classNameModifiers","bankCode","bankLocationId","StoreDetails","SettlementInfo","icon","imageFolder"],"mappings":"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"}
1
+ {"version":3,"file":"PreAuthorizedDebitCanadaComponent.js","sources":["../../../../../src/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport FormInstruction from '../../internal/FormInstruction';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { preAuthorizedDebitCanadaFormatters, preAuthorizedDebitCanadaValidationRules } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\nimport useImage from '../../../core/Context/useImage';\nimport { SettlementInfo } from './SettlementInfo';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { PreAuthorizedDebitCanadaPlaceholders } from '../types';\n\nimport './PreAuthorizedDebitCanada.scss';\nimport { ValidationRuleResult } from '../../../utils/Validator/ValidationRuleResult';\n\ninterface PreAuthorizedDebitCanadaForm {\n ownerName: string;\n bankAccountNumber: string;\n bankCode: string;\n bankLocationId: string;\n}\n\ninterface PreAuthorizedDebitCanadaComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: PreAuthorizedDebitCanadaForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: ValidationRuleResult };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n showContextualElement?: boolean;\n placeholders?: PreAuthorizedDebitCanadaPlaceholders;\n}\n\nfunction PreAuthorizedDebitCanadaComponent({\n onChange,\n payButton,\n showPayButton,\n placeholders,\n setComponentRef,\n enableStoreDetails,\n showContextualElement = true\n}: Readonly<PreAuthorizedDebitCanadaComponentProps>) {\n const getImage = useImage();\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<PreAuthorizedDebitCanadaForm>({\n schema: ['ownerName', 'bankAccountNumber', 'bankCode', 'bankLocationId'],\n rules: preAuthorizedDebitCanadaValidationRules,\n formatters: preAuthorizedDebitCanadaFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n\n const isFormDisabled = status === 'loading';\n\n const componentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(componentRef.current);\n }, [setComponentRef, componentRef.current]);\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n return (\n <div className=\"adyen-checkout__eftpad-canada\">\n <FormInstruction />\n\n <Fieldset>\n <Field\n label={i18n.get('eftpad-canada.input.accountHolderName.label')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n data-testid={'owner-name'}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.accountNumber.label')}\n errorMessage={!!errors.bankAccountNumber && i18n.get(errors.bankAccountNumber.errorMessage)}\n name={'bankAccountNumber'}\n isValid={!!valid.bankAccountNumber}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.accountNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankAccountNumber'}\n placeholder={placeholders?.bankAccountNumber}\n value={data.bankAccountNumber}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n required={true}\n maxlength={12}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.institutionNumber.label')}\n classNameModifiers={['col-50']}\n errorMessage={!!errors.bankCode && i18n.get(errors.bankCode.errorMessage)}\n isValid={!!valid.bankCode}\n name={'bankCode'}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.institutionNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankCode'}\n placeholder={placeholders?.bankCode}\n value={data.bankCode}\n onInput={handleChangeFor('bankCode', 'input')}\n onBlur={handleChangeFor('bankCode', 'blur')}\n required={true}\n maxlength={3}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.transitNumber.label')}\n classNameModifiers={['col-50']}\n errorMessage={!!errors.bankLocationId && i18n.get(errors.bankLocationId.errorMessage)}\n name={'bankLocationId'}\n isValid={!!valid.bankLocationId}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.transitNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankLocationId'}\n placeholder={placeholders?.bankLocationId}\n value={data.bankLocationId}\n onInput={handleChangeFor('bankLocationId', 'input')}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n required={true}\n maxlength={5}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && (\n <StoreDetails className={'adyen-checkout_eftpad-canada-store-details'} disabled={isFormDisabled} onChange={setStorePaymentMethod} />\n )}\n\n <SettlementInfo />\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })('bento_lock') })}\n </div>\n );\n}\n\nexport default PreAuthorizedDebitCanadaComponent;\n"],"names":["PreAuthorizedDebitCanadaComponent","onChange","payButton","showPayButton","placeholders","setComponentRef","enableStoreDetails","showContextualElement","getImage","useImage","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","data","errors","valid","isValid","useForm","schema","rules","preAuthorizedDebitCanadaValidationRules","formatters","preAuthorizedDebitCanadaFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","componentRef","useRef","showValidation","useEffect","current","h","div","className","FormInstruction","Fieldset","Field","label","get","errorMessage","ownerName","name","InputText","disabled","placeholder","value","onInput","onBlur","required","data-testid","bankAccountNumber","contextualText","maxlength","classNameModifiers","bankCode","bankLocationId","StoreDetails","SettlementInfo","icon","imageFolder"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectShopper.js","sources":["../../../../../../src/components/Redirect/components/RedirectShopper/RedirectShopper.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport detectInIframeInSameOrigin from '../../../../utils/detectInIframeInSameOrigin';\nimport { ActionHandledReturnObject } from '../../../../types/global-types';\n\ninterface RedirectShopperProps {\n beforeRedirect: (resolve, reject, url) => Promise<void>;\n url: string;\n method: 'GET' | 'POST';\n data?: any;\n redirectFromTopWhenInIframe?: boolean;\n paymentMethodType?: string;\n onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;\n onRedirectError?: () => void;\n}\n\nclass RedirectShopper extends Component<Readonly<RedirectShopperProps>> {\n private postForm;\n public static readonly defaultProps = {\n beforeRedirect: resolve => resolve(),\n onRedirectError: () => {},\n method: 'GET'\n };\n\n componentDidMount() {\n const doRedirect = () => {\n // call callback\n this.props.onActionHandled?.({\n componentType: this.props.paymentMethodType,\n actionDescription: 'performing-redirect'\n });\n\n // perform redirect\n if (this.postForm) {\n this.postForm.submit();\n } else {\n if (this.props.redirectFromTopWhenInIframe && detectInIframeInSameOrigin()) {\n // if in an iframe and the config prop allows it - try to redirect from the top level window\n window.top.location.assign?.(this.props.url);\n } else {\n window.location.assign(this.props.url);\n }\n }\n };\n\n const dispatchEvent = new Promise(\n (resolve, reject) =>\n void this.props.beforeRedirect(resolve, reject, {\n url: this.props.url,\n method: this.props.method,\n ...(this.props.data ? { data: this.props.data } : {})\n })\n );\n\n dispatchEvent.then(doRedirect).catch(() => {\n this.props.onRedirectError();\n });\n }\n\n render({ url, method, data = {} }) {\n if (method === 'POST') {\n return (\n <form\n method=\"post\"\n data-testid=\"redirect-shopper-form\"\n action={url}\n style={{ display: 'none' }}\n ref={ref => {\n this.postForm = ref;\n }}\n {...(this.props.redirectFromTopWhenInIframe && detectInIframeInSameOrigin() && { target: '_top' })}\n >\n {Object.keys(data).map(key => (\n <input type=\"hidden\" name={key} key={key} value={data[key]} />\n ))}\n </form>\n );\n }\n\n return null;\n }\n}\n\nexport default RedirectShopper;\n"],"names":["RedirectShopper","Component","componentDidMount","Promise","resolve","reject","this","props","beforeRedirect","url","method","data","then","onActionHandled","componentType","paymentMethodType","actionDescription","postForm","submit","redirectFromTopWhenInIframe","detectInIframeInSameOrigin","window","top","location","assign","catch","onRedirectError","render","h","form","data-testid","action","style","display","ref","target","Object","keys","map","key","input","type","name","value","super","args","_define_property","defaultProps"],"mappings":"iRAeA,MAAMA,UAAwBC,EAQ1BC,iBAAAA,GAqB0B,IAAIC,QACtB,CAACC,EAASC,KACDC,KAAKC,MAAMC,eAAeJ,EAASC,EAAQ,CAC5CI,IAAKH,KAAKC,MAAME,IAChBC,OAAQJ,KAAKC,MAAMG,UACfJ,KAAKC,MAAMI,KAAO,CAAEA,KAAML,KAAKC,MAAMI,MAAS,CAAA,MAIhDC,KA7BK,KAEfN,KAAKC,MAAMM,kBAAkB,CACzBC,cAAeR,KAAKC,MAAMQ,kBAC1BC,kBAAmB,wBAInBV,KAAKW,SACLX,KAAKW,SAASC,SAEVZ,KAAKC,MAAMY,6BAA+BC,IAE1CC,OAAOC,IAAIC,SAASC,SAASlB,KAAKC,MAAME,KAExCY,OAAOE,SAASC,OAAOlB,KAAKC,MAAME,OAcfgB,MAAM,KACjCnB,KAAKC,MAAMmB,mBAEnB,CAEAC,MAAAA,EAAOlB,IAAEA,EAAGC,OAAEA,EAAMC,KAAEA,EAAO,CAAA,IACzB,MAAe,SAAXD,EAEIkB,EAACC,OAAAA,CACGnB,OAAO,OACPoB,cAAY,wBACZC,OAAQtB,EACRuB,MAAO,CAAEC,QAAS,QAClBC,IAAKA,IACD5B,KAAKW,SAAWiB,MAEf5B,KAAKC,MAAMY,6BAA+BC,KAAgC,CAAEe,OAAQ,SAExFC,OAAOC,KAAK1B,GAAM2B,IAAIC,GACnBX,EAACY,QAAAA,CAAMC,KAAK,SAASC,KAAMH,EAAKA,IAAKA,EAAKI,MAAOhC,EAAK4B,OAM/D,IACX,mBAhEJK,SAAAC,GACIC,EAAAxC,KAAQW,oBACR6B,EAFE9C,EAEqB+C,eAAe,CAClCvC,eAAgBJ,GAAWA,IAC3BsB,gBAAiB,OACjBhB,OAAQ"}
1
+ {"version":3,"file":"RedirectShopper.js","sources":["../../../../../../src/components/Redirect/components/RedirectShopper/RedirectShopper.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport detectInIframeInSameOrigin from '../../../../utils/detectInIframeInSameOrigin';\nimport { ActionHandledReturnObject } from '../../../../types/global-types';\n\ninterface RedirectShopperProps {\n beforeRedirect: (resolve, reject, url) => Promise<void>;\n url: string;\n method: 'GET' | 'POST';\n data?: { [key: string]: unknown };\n redirectFromTopWhenInIframe?: boolean;\n paymentMethodType?: string;\n onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;\n onRedirectError?: () => void;\n}\n\nclass RedirectShopper extends Component<Readonly<RedirectShopperProps>> {\n private postForm;\n public static readonly defaultProps = {\n beforeRedirect: resolve => resolve(),\n onRedirectError: () => {},\n method: 'GET'\n };\n\n componentDidMount() {\n const doRedirect = () => {\n // call callback\n this.props.onActionHandled?.({\n componentType: this.props.paymentMethodType,\n actionDescription: 'performing-redirect'\n });\n\n // perform redirect\n if (this.postForm) {\n this.postForm.submit();\n } else {\n if (this.props.redirectFromTopWhenInIframe && detectInIframeInSameOrigin()) {\n // if in an iframe and the config prop allows it - try to redirect from the top level window\n window.top.location.assign?.(this.props.url);\n } else {\n window.location.assign(this.props.url);\n }\n }\n };\n\n const dispatchEvent = new Promise(\n (resolve, reject) =>\n void this.props.beforeRedirect(resolve, reject, {\n url: this.props.url,\n method: this.props.method,\n ...(this.props.data ? { data: this.props.data } : {})\n })\n );\n\n dispatchEvent.then(doRedirect).catch(() => {\n this.props.onRedirectError();\n });\n }\n\n render({ url, method, data = {} }) {\n if (method === 'POST') {\n return (\n <form\n method=\"post\"\n data-testid=\"redirect-shopper-form\"\n action={url}\n style={{ display: 'none' }}\n ref={ref => {\n this.postForm = ref;\n }}\n {...(this.props.redirectFromTopWhenInIframe && detectInIframeInSameOrigin() && { target: '_top' })}\n >\n {Object.keys(data).map(key => (\n <input type=\"hidden\" name={key} key={key} value={data[key]} />\n ))}\n </form>\n );\n }\n\n return null;\n }\n}\n\nexport default RedirectShopper;\n"],"names":["RedirectShopper","Component","componentDidMount","Promise","resolve","reject","this","props","beforeRedirect","url","method","data","then","onActionHandled","componentType","paymentMethodType","actionDescription","postForm","submit","redirectFromTopWhenInIframe","detectInIframeInSameOrigin","window","top","location","assign","catch","onRedirectError","render","h","form","data-testid","action","style","display","ref","target","Object","keys","map","key","input","type","name","value","super","args","_define_property","defaultProps"],"mappings":"iRAeA,MAAMA,UAAwBC,EAQ1BC,iBAAAA,GAqB0B,IAAIC,QACtB,CAACC,EAASC,KACDC,KAAKC,MAAMC,eAAeJ,EAASC,EAAQ,CAC5CI,IAAKH,KAAKC,MAAME,IAChBC,OAAQJ,KAAKC,MAAMG,UACfJ,KAAKC,MAAMI,KAAO,CAAEA,KAAML,KAAKC,MAAMI,MAAS,CAAA,MAIhDC,KA7BK,KAEfN,KAAKC,MAAMM,kBAAkB,CACzBC,cAAeR,KAAKC,MAAMQ,kBAC1BC,kBAAmB,wBAInBV,KAAKW,SACLX,KAAKW,SAASC,SAEVZ,KAAKC,MAAMY,6BAA+BC,IAE1CC,OAAOC,IAAIC,SAASC,SAASlB,KAAKC,MAAME,KAExCY,OAAOE,SAASC,OAAOlB,KAAKC,MAAME,OAcfgB,MAAM,KACjCnB,KAAKC,MAAMmB,mBAEnB,CAEAC,MAAAA,EAAOlB,IAAEA,EAAGC,OAAEA,EAAMC,KAAEA,EAAO,CAAA,IACzB,MAAe,SAAXD,EAEIkB,EAACC,OAAAA,CACGnB,OAAO,OACPoB,cAAY,wBACZC,OAAQtB,EACRuB,MAAO,CAAEC,QAAS,QAClBC,IAAKA,IACD5B,KAAKW,SAAWiB,MAEf5B,KAAKC,MAAMY,6BAA+BC,KAAgC,CAAEe,OAAQ,SAExFC,OAAOC,KAAK1B,GAAM2B,IAAIC,GACnBX,EAACY,QAAAA,CAAMC,KAAK,SAASC,KAAMH,EAAKA,IAAKA,EAAKI,MAAOhC,EAAK4B,OAM/D,IACX,mBAhEJK,SAAAC,GACIC,EAAAxC,KAAQW,oBACR6B,EAFE9C,EAEqB+C,eAAe,CAClCvC,eAAgBJ,GAAWA,IAC3BsB,gBAAiB,OACjBhB,OAAQ"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import e from"./components/UPIComponent/UPIComponent.js";import{Await as r}from"../internal/Await/Await.js";import{QRLoader as n}from"../internal/QRLoader/QRLoader.js";import"../../core/Context/CoreProvider.js";import"../../external/preact/hooks/dist/hooks.js";import"../../core/Errors/AdyenCheckoutError.js";import"../../core/Errors/SRPanelContext.js";import"../internal/Button/Button.js";import"../internal/QRLoader/QRLoaderDetailsProvider.js";import{TxVariants as i}from"../tx-variants.js";import s from"../../utils/isMobile.js";import{UPI_MODE as p}from"./constants.js";function a(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}class m extends o{formatProps(t){const{apps:o=[]}=t,e=o.length>0;return s()&&e?{...super.formatProps(t),apps:o}:(this.mode=p.QR_CODE,{...super.formatProps(t),apps:[]})}get isValid(){return this.state.isValid}formatData(){const{app:t}=this.state.data||{};return{paymentMethod:{type:this.paymentType,...this.paymentType===i.upi_intent&&t?.id&&{appId:t.id}}}}get paymentType(){return this.mode===p.QR_CODE?i.upi_qr:i.upi_intent}componentToRender(){const{type:o,url:s,paymentMethodType:p}=this.props,a=!!this.props.mandate;switch(o){case"qrCode":return t(n,{...this.props,qrCodeData:this.props.qrCodeData?encodeURIComponent(this.props.qrCodeData):null,type:i.upi_qr,brandLogo:this.props.brandLogo||this.icon,onComplete:this.onComplete,introduction:this.props.i18n.get("upi.qrCodeWaitingMessage"),countdownTime:this.props.countdownTime??5,onActionHandled:this.onActionHandled,showAmount:!a});case"await":return t(r,{url:s,type:p,showCountdownTimer:!0,shouldRedirectAutomatically:!0,showAmount:!a,countdownTime:this.props.countdownTime??5,clientKey:this.props.clientKey,paymentData:this.props.paymentData,onActionHandled:this.onActionHandled,onError:this.props.onError,messageText:this.props.i18n.get("upi.vpaWaitingMessage"),awaitText:this.props.i18n.get("await.waitForConfirmation"),onComplete:this.onComplete,brandLogo:this.icon});default:return t(e,{ref:t=>{this.componentRef=t},payButton:this.payButton,onChange:this.setState,apps:this.props.apps,mode:this.mode,showPayButton:this.props.showPayButton,mandate:this.props.mandate})}}constructor(t,o){super(t,o),a(this,"mode",void 0);const{defaultMode:e}=o;e&&console.warn('[Adyen Checkout] UPI configuration property "defaultMode" is deprecated and will be removed in a future version.'),this.mode=s()?p.INTENT:p.QR_CODE}}a(m,"type",i.upi),a(m,"txVariants",[i.upi,i.upi_qr,i.upi_intent]);export{m as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/UPIComponent/UPIComponent.js";import{Await as n}from"../internal/Await/Await.js";import{QRLoader as s}from"../internal/QRLoader/QRLoader.js";import"../../core/Context/CoreProvider.js";import"../../external/preact/hooks/dist/hooks.js";import"../../core/Errors/SRPanelContext.js";import"../internal/Button/Button.js";import"../internal/QRLoader/QRLoaderDetailsProvider.js";import{TxVariants as i}from"../tx-variants.js";import r from"../../utils/isMobile.js";import{UPI_MODE as a,UPI_COUNTDOWN_TIME as p}from"./constants.js";function m(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class d extends e{formatProps(t){return{showOtherInsteadOfNumber:!r(),...t}}get isValid(){return this.state.isValid}formatData(){const{app:t}=this.state.data||{};return{paymentMethod:{type:this.paymentType,...this.paymentType===i.upi_intent&&t?.id&&{appId:t.id}}}}get brands(){const{showPaymentMethodItemImages:t}=this.props;return t?this.appsList.map(t=>({icon:t.icon,name:t.name})):[]}get paymentType(){return this.mode===a.QR_CODE?i.upi_qr:i.upi_intent}componentToRender(){const{type:e,url:r,paymentMethodType:a}=this.props,p=!!this.props.mandate;switch(e){case"qrCode":return t(s,{...this.props,qrCodeData:this.props.qrCodeData?encodeURIComponent(this.props.qrCodeData):null,type:i.upi_qr,brandLogo:this.props.brandLogo||this.icon,onComplete:this.onComplete,introduction:this.props.i18n.get("upi.qrCodeWaitingMessage"),countdownTime:this.props.countdownTime,onActionHandled:this.onActionHandled,showAmount:!p});case"await":return t(n,{url:r,type:a,showCountdownTimer:!0,shouldRedirectAutomatically:!0,showAmount:!p,countdownTime:this.props.countdownTime,clientKey:this.props.clientKey,paymentData:this.props.paymentData,onActionHandled:this.onActionHandled,onError:this.props.onError,messageText:this.props.i18n.get("upi.vpaWaitingMessage"),awaitText:this.props.i18n.get("await.waitForConfirmation"),onComplete:this.onComplete,brandLogo:this.icon});default:return t(o,{setComponentRef:this.setComponentRef,payButton:this.payButton,onChange:this.setState,appsList:this.appsList,mode:this.mode,showPayButton:this.props.showPayButton,mandate:this.props.mandate})}}constructor(t,e){super(t,e),m(this,"mode",void 0),m(this,"appsList",void 0);const{apps:o=[]}=this.props,n=o.length>0;this.mode=r()&&n?a.INTENT:a.QR_CODE,this.appsList=o.map(t=>{const e=`upi/${t.id.toLowerCase()}`,o=this.core.modules.resources?.getImage()(e);return{id:t.id,name:t.name,icon:o}})}}m(d,"type",i.upi),m(d,"txVariants",[i.upi,i.upi_qr,i.upi_intent]),m(d,"defaultProps",{showPaymentMethodItemImages:!0,countdownTime:p});export{d as default};
2
2
  //# sourceMappingURL=UPI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UPI.js","sources":["../../../../src/components/UPI/UPI.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport UPIComponent from './components/UPIComponent';\nimport { Await } from '../internal/Await';\nimport { QRLoader } from '../internal/QRLoader';\nimport { UPIConfiguration, UpiMode, UpiPaymentData, UpiType } from './types';\nimport { TxVariants } from '../tx-variants';\nimport isMobile from '../../utils/isMobile';\nimport { UPI_MODE } from './constants';\nimport { ICore } from '../../types';\n\n/**\n * For mobile:\n * We should show upi_intent depending on if `apps` are returned in /paymentMethods response.\n *\n * For non-mobile:\n * We should never show the upi_intent (ignore `apps` in /paymentMethods response)\n * Show upi_qr as default\n */\n\nclass UPI extends UIElement<UPIConfiguration> {\n public static readonly type = TxVariants.upi;\n public static readonly txVariants = [TxVariants.upi, TxVariants.upi_qr, TxVariants.upi_intent];\n private mode: UpiMode;\n constructor(checkout: ICore, props: UPIConfiguration) {\n super(checkout, props);\n // @ts-ignore: Accessing deprecated prop to provide migration warning\n const { defaultMode: deprecatedDefaultMode } = props;\n if (deprecatedDefaultMode) {\n console.warn('[Adyen Checkout] UPI configuration property \"defaultMode\" is deprecated and will be removed in a future version.');\n }\n this.mode = isMobile() ? UPI_MODE.INTENT : UPI_MODE.QR_CODE;\n }\n\n formatProps(props: UPIConfiguration): UPIConfiguration {\n const { apps = [] } = props;\n const hasIntentApps = apps.length > 0;\n if (isMobile() && hasIntentApps) {\n // Mobile with UPI apps\n return {\n ...super.formatProps(props),\n apps\n };\n }\n\n this.mode = UPI_MODE.QR_CODE;\n return {\n ...super.formatProps(props),\n apps: []\n };\n }\n\n public get isValid(): boolean {\n return this.state.isValid;\n }\n\n public formatData(): UpiPaymentData {\n const { app } = this.state.data || {};\n\n return {\n paymentMethod: {\n type: this.paymentType,\n ...(this.paymentType === TxVariants.upi_intent && app?.id && { appId: app.id })\n }\n };\n }\n\n get paymentType(): UpiType {\n if (this.mode === UPI_MODE.QR_CODE) {\n return TxVariants.upi_qr;\n }\n return TxVariants.upi_intent;\n }\n\n protected override componentToRender(): h.JSX.Element {\n const { type, url, paymentMethodType } = this.props;\n\n const isAutoPay = !!this.props.mandate;\n\n switch (type) {\n case 'qrCode':\n return (\n <QRLoader\n {...this.props}\n qrCodeData={this.props.qrCodeData ? encodeURIComponent(this.props.qrCodeData) : null}\n type={TxVariants.upi_qr}\n brandLogo={this.props.brandLogo || this.icon}\n onComplete={this.onComplete}\n introduction={this.props.i18n.get('upi.qrCodeWaitingMessage')}\n countdownTime={this.props.countdownTime ?? 5}\n onActionHandled={this.onActionHandled}\n showAmount={!isAutoPay}\n />\n );\n case 'await':\n return (\n <Await\n url={url}\n type={paymentMethodType}\n showCountdownTimer\n shouldRedirectAutomatically\n showAmount={!isAutoPay}\n countdownTime={this.props.countdownTime ?? 5}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onActionHandled={this.onActionHandled}\n onError={this.props.onError}\n messageText={this.props.i18n.get('upi.vpaWaitingMessage')}\n awaitText={this.props.i18n.get('await.waitForConfirmation')}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n />\n );\n default:\n return (\n <UPIComponent\n ref={(ref: RefObject<typeof UPIComponent>) => {\n this.componentRef = ref;\n }}\n payButton={this.payButton}\n onChange={this.setState}\n apps={this.props.apps}\n mode={this.mode}\n showPayButton={this.props.showPayButton}\n mandate={this.props.mandate}\n />\n );\n }\n }\n}\n\nexport default UPI;\n"],"names":["UPI","UIElement","formatProps","props","apps","hasIntentApps","length","isMobile","super","this","mode","UPI_MODE","QR_CODE","isValid","state","formatData","app","data","paymentMethod","type","paymentType","TxVariants","upi_intent","id","appId","upi_qr","componentToRender","url","paymentMethodType","isAutoPay","mandate","h","QRLoader","qrCodeData","encodeURIComponent","brandLogo","icon","onComplete","introduction","i18n","get","countdownTime","onActionHandled","showAmount","Await","showCountdownTimer","shouldRedirectAutomatically","clientKey","paymentData","onError","messageText","awaitText","UPIComponent","ref","componentRef","payButton","onChange","setState","showPayButton","constructor","checkout","_define_property","defaultMode","deprecatedDefaultMode","console","warn","INTENT","upi","txVariants"],"mappings":"0zBAoBA,MAAMA,UAAYC,EAcdC,WAAAA,CAAYC,GACR,MAAMC,KAAEA,EAAO,IAAOD,EAChBE,EAAgBD,EAAKE,OAAS,EACpC,OAAIC,KAAcF,EAEP,IACAG,MAAMN,YAAYC,GACrBC,SAIRK,KAAKC,KAAOC,EAASC,QACd,IACAJ,MAAMN,YAAYC,GACrBC,KAAM,IAEd,CAEA,WAAWS,GACP,OAAOJ,KAAKK,MAAMD,OACtB,CAEOE,UAAAA,GACH,MAAMC,IAAEA,GAAQP,KAAKK,MAAMG,MAAQ,CAAA,EAEnC,MAAO,CACHC,cAAe,CACXC,KAAMV,KAAKW,eACPX,KAAKW,cAAgBC,EAAWC,YAAcN,GAAKO,IAAM,CAAEC,MAAOR,EAAIO,KAGtF,CAEA,eAAIH,GACA,OAAIX,KAAKC,OAASC,EAASC,QAChBS,EAAWI,OAEfJ,EAAWC,UACtB,CAEmBI,iBAAAA,GACf,MAAMP,KAAEA,EAAIQ,IAAEA,EAAGC,kBAAEA,GAAsBnB,KAAKN,MAExC0B,IAAcpB,KAAKN,MAAM2B,QAE/B,OAAQX,GACJ,IAAK,SACD,OACIY,EAACC,EAAAA,IACOvB,KAAKN,MACT8B,WAAYxB,KAAKN,MAAM8B,WAAaC,mBAAmBzB,KAAKN,MAAM8B,YAAc,KAChFd,KAAME,EAAWI,OACjBU,UAAW1B,KAAKN,MAAMgC,WAAa1B,KAAK2B,KACxCC,WAAY5B,KAAK4B,WACjBC,aAAc7B,KAAKN,MAAMoC,KAAKC,IAAI,4BAClCC,cAAehC,KAAKN,MAAMsC,eAAiB,EAC3CC,gBAAiBjC,KAAKiC,gBACtBC,YAAad,IAGzB,IAAK,QACD,OACIE,EAACa,EAAAA,CACGjB,IAAKA,EACLR,KAAMS,EACNiB,oBAAAA,EACAC,6BAAAA,EACAH,YAAad,EACbY,cAAehC,KAAKN,MAAMsC,eAAiB,EAC3CM,UAAWtC,KAAKN,MAAM4C,UACtBC,YAAavC,KAAKN,MAAM6C,YACxBN,gBAAiBjC,KAAKiC,gBACtBO,QAASxC,KAAKN,MAAM8C,QACpBC,YAAazC,KAAKN,MAAMoC,KAAKC,IAAI,yBACjCW,UAAW1C,KAAKN,MAAMoC,KAAKC,IAAI,6BAC/BH,WAAY5B,KAAK4B,WACjBF,UAAW1B,KAAK2B,OAG5B,QACI,OACIL,EAACqB,EAAAA,CACGC,IAAMA,IACF5C,KAAK6C,aAAeD,GAExBE,UAAW9C,KAAK8C,UAChBC,SAAU/C,KAAKgD,SACfrD,KAAMK,KAAKN,MAAMC,KACjBM,KAAMD,KAAKC,KACXgD,cAAejD,KAAKN,MAAMuD,cAC1B5B,QAASrB,KAAKN,MAAM2B,UAIxC,CAxGA,WAAA6B,CAAYC,EAAiBzD,GACzBK,MAAMoD,EAAUzD,GAFpB0D,EAAApD,KAAQC,eAIJ,MAAQoD,YAAaC,GAA0B5D,EAC3C4D,GACAC,QAAQC,KAAK,oHAEjBxD,KAAKC,KAAOH,IAAaI,EAASuD,OAASvD,EAASC,OACxD,EAXAiD,EADE7D,EACqBmB,OAAOE,EAAW8C,KACzCN,EAFE7D,EAEqBoE,aAAa,CAAC/C,EAAW8C,IAAK9C,EAAWI,OAAQJ,EAAWC"}
1
+ {"version":3,"file":"UPI.js","sources":["../../../../src/components/UPI/UPI.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport UPIComponent from './components/UPIComponent';\nimport { Await } from '../internal/Await';\nimport { QRLoader } from '../internal/QRLoader';\nimport { UPIAppList, UPIConfiguration, UpiMode, UpiPaymentData, UpiType } from './types';\nimport { TxVariants } from '../tx-variants';\nimport isMobile from '../../utils/isMobile';\nimport { UPI_COUNTDOWN_TIME, UPI_MODE } from './constants';\nimport { PaymentMethodBrand } from '../../types/global-types';\nimport { ICore } from '../../types';\n\n/**\n * For mobile:\n * We should show upi_intent depending on if `apps` are returned in /paymentMethods response.\n *\n * For non-mobile:\n * We should never show the upi_intent (ignore `apps` in /paymentMethods response)\n * Show upi_qr as default\n */\n\nclass UPI extends UIElement<UPIConfiguration> {\n public static readonly type = TxVariants.upi;\n public static readonly txVariants = [TxVariants.upi, TxVariants.upi_qr, TxVariants.upi_intent];\n private readonly mode: UpiMode;\n private readonly appsList: UPIAppList;\n\n protected static readonly defaultProps = {\n showPaymentMethodItemImages: true,\n countdownTime: UPI_COUNTDOWN_TIME\n };\n\n constructor(checkout: ICore, props: UPIConfiguration) {\n super(checkout, props);\n const { apps = [] } = this.props;\n const hasIntentApps = apps.length > 0;\n\n this.mode = isMobile() && hasIntentApps ? UPI_MODE.INTENT : UPI_MODE.QR_CODE;\n\n this.appsList = apps.map(app => {\n const imageName = `upi/${app.id.toLowerCase()}`;\n const brandIcon = this.core.modules.resources?.getImage()(imageName);\n return { id: app.id, name: app.name, icon: brandIcon };\n });\n }\n\n protected formatProps(props: UPIConfiguration): UPIConfiguration {\n return {\n showOtherInsteadOfNumber: !isMobile(),\n ...props\n };\n }\n\n public get isValid(): boolean {\n return this.state.isValid;\n }\n\n public formatData(): UpiPaymentData {\n const { app } = this.state.data || {};\n\n return {\n paymentMethod: {\n type: this.paymentType,\n ...(this.paymentType === TxVariants.upi_intent && app?.id && { appId: app.id })\n }\n };\n }\n\n get brands(): PaymentMethodBrand[] {\n const { showPaymentMethodItemImages } = this.props;\n\n if (!showPaymentMethodItemImages) {\n return [];\n }\n\n return this.appsList.map(app => ({ icon: app.icon, name: app.name }));\n }\n\n get paymentType(): UpiType {\n if (this.mode === UPI_MODE.QR_CODE) {\n return TxVariants.upi_qr;\n }\n return TxVariants.upi_intent;\n }\n\n protected override componentToRender(): h.JSX.Element {\n const { type, url, paymentMethodType } = this.props;\n\n const isAutoPay = !!this.props.mandate;\n\n switch (type) {\n case 'qrCode':\n return (\n <QRLoader\n {...this.props}\n qrCodeData={this.props.qrCodeData ? encodeURIComponent(this.props.qrCodeData) : null}\n type={TxVariants.upi_qr}\n brandLogo={this.props.brandLogo || this.icon}\n onComplete={this.onComplete}\n introduction={this.props.i18n.get('upi.qrCodeWaitingMessage')}\n countdownTime={this.props.countdownTime}\n onActionHandled={this.onActionHandled}\n showAmount={!isAutoPay}\n />\n );\n case 'await':\n return (\n <Await\n url={url}\n type={paymentMethodType}\n showCountdownTimer\n shouldRedirectAutomatically\n showAmount={!isAutoPay}\n countdownTime={this.props.countdownTime}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onActionHandled={this.onActionHandled}\n onError={this.props.onError}\n messageText={this.props.i18n.get('upi.vpaWaitingMessage')}\n awaitText={this.props.i18n.get('await.waitForConfirmation')}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n />\n );\n default:\n return (\n <UPIComponent\n setComponentRef={this.setComponentRef}\n payButton={this.payButton}\n onChange={this.setState}\n appsList={this.appsList}\n mode={this.mode}\n showPayButton={this.props.showPayButton}\n mandate={this.props.mandate}\n />\n );\n }\n }\n}\n\nexport default UPI;\n"],"names":["UPI","UIElement","formatProps","props","showOtherInsteadOfNumber","isMobile","isValid","this","state","formatData","app","data","paymentMethod","type","paymentType","TxVariants","upi_intent","id","appId","brands","showPaymentMethodItemImages","appsList","map","icon","name","mode","UPI_MODE","QR_CODE","upi_qr","componentToRender","url","paymentMethodType","isAutoPay","mandate","h","QRLoader","qrCodeData","encodeURIComponent","brandLogo","onComplete","introduction","i18n","get","countdownTime","onActionHandled","showAmount","Await","showCountdownTimer","shouldRedirectAutomatically","clientKey","paymentData","onError","messageText","awaitText","UPIComponent","setComponentRef","payButton","onChange","setState","showPayButton","constructor","checkout","super","_define_property","apps","hasIntentApps","length","INTENT","imageName","toLowerCase","brandIcon","core","modules","resources","getImage","upi","txVariants","defaultProps","UPI_COUNTDOWN_TIME"],"mappings":"kyBAqBA,MAAMA,UAAYC,EAyBJC,WAAAA,CAAYC,GAClB,MAAO,CACHC,0BAA2BC,OACxBF,EAEX,CAEA,WAAWG,GACP,OAAOC,KAAKC,MAAMF,OACtB,CAEOG,UAAAA,GACH,MAAMC,IAAEA,GAAQH,KAAKC,MAAMG,MAAQ,CAAA,EAEnC,MAAO,CACHC,cAAe,CACXC,KAAMN,KAAKO,eACPP,KAAKO,cAAgBC,EAAWC,YAAcN,GAAKO,IAAM,CAAEC,MAAOR,EAAIO,KAGtF,CAEA,UAAIE,GACA,MAAMC,4BAAEA,GAAgCb,KAAKJ,MAE7C,OAAKiB,EAIEb,KAAKc,SAASC,IAAIZ,KAAUa,KAAMb,EAAIa,KAAMC,KAAMd,EAAIc,QAHlD,EAIf,CAEA,eAAIV,GACA,OAAIP,KAAKkB,OAASC,EAASC,QAChBZ,EAAWa,OAEfb,EAAWC,UACtB,CAEmBa,iBAAAA,GACf,MAAMhB,KAAEA,EAAIiB,IAAEA,EAAGC,kBAAEA,GAAsBxB,KAAKJ,MAExC6B,IAAczB,KAAKJ,MAAM8B,QAE/B,OAAQpB,GACJ,IAAK,SACD,OACIqB,EAACC,EAAAA,IACO5B,KAAKJ,MACTiC,WAAY7B,KAAKJ,MAAMiC,WAAaC,mBAAmB9B,KAAKJ,MAAMiC,YAAc,KAChFvB,KAAME,EAAWa,OACjBU,UAAW/B,KAAKJ,MAAMmC,WAAa/B,KAAKgB,KACxCgB,WAAYhC,KAAKgC,WACjBC,aAAcjC,KAAKJ,MAAMsC,KAAKC,IAAI,4BAClCC,cAAepC,KAAKJ,MAAMwC,cAC1BC,gBAAiBrC,KAAKqC,gBACtBC,YAAab,IAGzB,IAAK,QACD,OACIE,EAACY,EAAAA,CACGhB,IAAKA,EACLjB,KAAMkB,EACNgB,oBAAAA,EACAC,6BAAAA,EACAH,YAAab,EACbW,cAAepC,KAAKJ,MAAMwC,cAC1BM,UAAW1C,KAAKJ,MAAM8C,UACtBC,YAAa3C,KAAKJ,MAAM+C,YACxBN,gBAAiBrC,KAAKqC,gBACtBO,QAAS5C,KAAKJ,MAAMgD,QACpBC,YAAa7C,KAAKJ,MAAMsC,KAAKC,IAAI,yBACjCW,UAAW9C,KAAKJ,MAAMsC,KAAKC,IAAI,6BAC/BH,WAAYhC,KAAKgC,WACjBD,UAAW/B,KAAKgB,OAG5B,QACI,OACIW,EAACoB,EAAAA,CACGC,gBAAiBhD,KAAKgD,gBACtBC,UAAWjD,KAAKiD,UAChBC,SAAUlD,KAAKmD,SACfrC,SAAUd,KAAKc,SACfI,KAAMlB,KAAKkB,KACXkC,cAAepD,KAAKJ,MAAMwD,cAC1B1B,QAAS1B,KAAKJ,MAAM8B,UAIxC,CAzGA,WAAA2B,CAAYC,EAAiB1D,GACzB2D,MAAMD,EAAU1D,GATpB4D,EAAAxD,KAAiBkB,YAAjB,GACAsC,EAAAxD,KAAiBc,gBAAjB,GASI,MAAM2C,KAAEA,EAAO,IAAOzD,KAAKJ,MACrB8D,EAAgBD,EAAKE,OAAS,EAEpC3D,KAAKkB,KAAOpB,KAAc4D,EAAgBvC,EAASyC,OAASzC,EAASC,QAErEpB,KAAKc,SAAW2C,EAAK1C,IAAIZ,IACrB,MAAM0D,EAAY,OAAO1D,EAAIO,GAAGoD,gBAC1BC,EAAY/D,KAAKgE,KAAKC,QAAQC,WAAWC,UAA7BnE,CAAwC6D,GAC1D,MAAO,CAAEnD,GAAIP,EAAIO,GAAIO,KAAMd,EAAIc,KAAMD,KAAM+C,IAEnD,EAtBAP,EADE/D,EACqBa,OAAOE,EAAW4D,KACzCZ,EAFE/D,EAEqB4E,aAAa,CAAC7D,EAAW4D,IAAK5D,EAAWa,OAAQb,EAAWC,aAInF+C,EANE/D,EAMwB6E,eAAe,CACrCzD,6BAA6B,EAC7BuB,cAAemC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as t}from"../../../../external/preact/dist/preact.js";import{useState as a,useCallback as o,useEffect as r}from"../../../../external/preact/hooks/dist/hooks.js";import n from"../../../../core/Context/useImage.js";import{UPI_MODE as s,A11Y as i}from"../../constants.js";import"../../../../_virtual/index.js";import{SegmentedControlRegion as d}from"../../../internal/SegmentedControl/SegmentedControlRegion.js";import l from"../UPIIntentAppList/UPIIntentAppList.js";import{useCoreContext as p}from"../../../../core/Context/CoreProvider.js";import c from"../../../internal/Alert/Alert.js";import m from"../UPIMandate/UPIMandate.js";import{useAmount as u}from"../../../../core/Context/AmountProvider.js";function I({mode:I,onChange:f,payButton:g,showPayButton:C,mandate:N,apps:h=[]}){const{i18n:j}=p(),y=n(),[A,E]=a("ready"),[b,T]=a(null),{amount:k}=u(),[x,P]=a(I===s.QR_CODE),R=N&&e(m,{mandate:N,amount:k});this.setStatus=e=>{E(e)},this.showValidation=()=>{I===s.INTENT&&Q()};const B=o(e=>{e?.id!==b?.id&&(T(e),P(!0),E("ready"))},[b]),Q=o(()=>{b?(E("ready"),P(!0)):(E("error"),P(!1))},[b]);return r(()=>{I!==s.QR_CODE?f({data:{...b&&{app:b}},isValid:x}):f({data:{},valid:{},errors:{},isValid:!0})},[b,x,I,f]),e(t,null,I===s.INTENT&&e(d,{id:i.AreaId.INTENT,ariaLabelledBy:i.ButtonId.INTENT,className:"adyen-checkout-upi-area-intent"},e("span",{className:"adyen-checkout-upi-instruction-label"},j.get("upi.intent.instruction")),"error"===A&&e(c,{icon:"cross"},j.get("upi.error.noAppSelected")),e(l,{disabled:"loading"===A,apps:h,selectedAppId:b?.id,onAppSelect:B}),R,C&&g({label:j.get("continue"),status:A})),I===s.QR_CODE&&e(d,{id:i.AreaId.QR,ariaLabelledBy:i.ButtonId.QR,className:"adyen-checkout-upi-area-qr-code"},e("span",{className:"adyen-checkout-upi-instruction-label"},j.get("upi.qrCode.instruction")),R,C&&g({label:j.get("generateQRCode"),icon:y({imageFolder:"components/"})("qr"),status:A})))}export{I as default};
1
+ import{createElement as e,Fragment as t}from"../../../../external/preact/dist/preact.js";import{useState as a,useRef as o,useEffect as n,useCallback as r,useMemo as s}from"../../../../external/preact/hooks/dist/hooks.js";import i from"../../../../core/Context/useImage.js";import{UPI_MODE as d,A11Y as c}from"../../constants.js";import"../../../../_virtual/index.js";import{SegmentedControlRegion as l}from"../../../internal/SegmentedControl/SegmentedControlRegion.js";import m from"../UPIIntentAppList/UPIIntentAppList.js";import{useCoreContext as p}from"../../../../core/Context/CoreProvider.js";import u from"../../../internal/Alert/Alert.js";import I from"../UPIMandate/UPIMandate.js";import{useAmount as f}from"../../../../core/Context/AmountProvider.js";import{BrandIcons as g}from"../../../internal/BrandIcons/BrandIcons.js";function C({mode:C,onChange:h,payButton:y,setComponentRef:N,showPayButton:j,mandate:b,appsList:A}){const{i18n:B}=p(),E=i(),[R,k]=a("ready"),[T,x]=a(null),{amount:L}=f(),[P,Q]=a(C===d.QR_CODE),S=b&&e(I,{mandate:b,amount:L}),v=o({setStatus:k,showValidation:()=>{C===d.INTENT&&O()}});n(()=>{N(v.current)},[N]);const M=r(e=>{e?.id!==T?.id&&(x(e),Q(!0),k("ready"))},[T]),O=r(()=>{T?(k("ready"),Q(!0)):(k("error"),Q(!1))},[T]),U=s(()=>A.map(e=>({src:e.icon,alt:e.name})),[A]);return n(()=>{C!==d.QR_CODE?h({data:{...T&&{app:T}},isValid:P}):h({data:{},valid:{},errors:{},isValid:!0})},[T,P,C,h]),e(t,null,C===d.INTENT&&e(l,{id:c.AreaId.INTENT,ariaLabelledBy:c.ButtonId.INTENT,className:"adyen-checkout-upi-area-intent"},e("span",{className:"adyen-checkout-upi-instruction-label"},B.get("upi.intent.instruction")),"error"===R&&e(u,{icon:"cross"},B.get("upi.error.noAppSelected")),e(m,{disabled:"loading"===R,appsList:A,selectedAppId:T?.id,onAppSelect:M}),S,j&&y({label:B.get("continue"),status:R})),C===d.QR_CODE&&e(l,{id:c.AreaId.QR,ariaLabelledBy:c.ButtonId.QR,className:"adyen-checkout-upi-area-qr-code"},e("span",{className:"adyen-checkout-upi-instruction-label"},B.get("upi.qrCode.instruction")),e(g,{className:"adyen-checkout-upi-brands",brandIcons:U,showIconOnError:!0,smallIcons:!0,remainingBrandsLabel:`+ ${B.get("paymentMethodBrand.other")}`}),S,j&&y({label:B.get("generateQRCode"),icon:E({imageFolder:"components/"})("qr"),status:R})))}export{C as default};
2
2
  //# sourceMappingURL=UPIComponent.js.map