@adyen/adyen-web 6.22.0 → 6.24.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 (387) hide show
  1. package/README.md +9 -8
  2. package/dist/cjs/adyen.css +8 -5
  3. package/dist/cjs/adyen.css.map +1 -1
  4. package/dist/cjs/index.cjs +2 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.cts +315 -121
  7. package/dist/es/adyen.css +8 -5
  8. package/dist/es/adyen.css.map +1 -1
  9. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  10. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  11. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  12. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  13. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  14. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  15. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js +1 -1
  16. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  17. package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
  18. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  19. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  20. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  21. package/dist/es/components/Card/Card.js +1 -1
  22. package/dist/es/components/Card/Card.js.map +1 -1
  23. package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
  24. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  25. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  26. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  27. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  28. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  29. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js +1 -1
  30. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  31. package/dist/es/components/Card/components/CardInput/defaultProps.js +1 -1
  32. package/dist/es/components/Card/components/CardInput/defaultProps.js.map +1 -1
  33. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  34. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  35. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
  36. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  37. package/dist/es/components/Card/constants.js +2 -0
  38. package/dist/es/components/Card/constants.js.map +1 -0
  39. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  40. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  41. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js +1 -1
  42. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  43. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  44. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  45. package/dist/es/components/Donation/components/FixedAmounts.js.map +1 -1
  46. package/dist/es/components/Dropin/Dropin.js +1 -1
  47. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  48. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  49. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  50. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js +1 -1
  51. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  52. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  53. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  54. package/dist/es/components/GooglePay/GooglePayService.js +1 -1
  55. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  56. package/dist/es/components/GooglePay/defaultProps.js +1 -1
  57. package/dist/es/components/GooglePay/defaultProps.js.map +1 -1
  58. package/dist/es/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js +2 -0
  59. package/dist/es/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js.map +1 -0
  60. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  61. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  62. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  63. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  64. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  65. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  66. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  67. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  68. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js +1 -1
  69. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  70. package/dist/es/components/PayByBankPix/services/PasskeyService.js +1 -1
  71. package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  72. package/dist/es/components/PayPal/Paypal.js +1 -1
  73. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  74. package/dist/es/components/PayPal/components/PaypalButtons.js +1 -1
  75. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  76. package/dist/es/components/PayPal/components/PaypalComponent.js +1 -1
  77. package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
  78. package/dist/es/components/PayPal/defaultProps.js +1 -1
  79. package/dist/es/components/PayPal/defaultProps.js.map +1 -1
  80. package/dist/es/components/PayPalFastlane/FastlaneSDK.js +1 -1
  81. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  82. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  83. package/dist/es/components/PayTo/components/PayIDInput.js +1 -1
  84. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -1
  85. package/dist/es/components/PayTo/components/PayToPhone.js +1 -1
  86. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  87. package/dist/es/components/PayTo/components/validate.js +1 -1
  88. package/dist/es/components/PayTo/components/validate.js.map +1 -1
  89. package/dist/es/components/Pix/Pix.js +1 -1
  90. package/dist/es/components/Pix/Pix.js.map +1 -1
  91. package/dist/es/components/Pix/components/PixInput/PixInput.js +2 -0
  92. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -0
  93. package/dist/es/components/Pix/components/PixInput/utils.js +2 -0
  94. package/dist/es/components/Pix/components/PixInput/utils.js.map +1 -0
  95. package/dist/es/components/Pix/components/PixInput/validate.js +2 -0
  96. package/dist/es/components/Pix/components/PixInput/validate.js.map +1 -0
  97. package/dist/es/components/Pix/components/PixQRDetails.js +2 -0
  98. package/dist/es/components/Pix/components/PixQRDetails.js.map +1 -0
  99. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  100. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  101. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  102. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  103. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  104. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  105. package/dist/es/components/ThreeDS2/components/utils.js +1 -1
  106. package/dist/es/components/ThreeDS2/components/utils.js.map +1 -1
  107. package/dist/es/components/UPI/UPI.js +1 -1
  108. package/dist/es/components/UPI/UPI.js.map +1 -1
  109. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  110. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  111. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  112. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  113. package/dist/es/components/internal/Address/Address.js +1 -1
  114. package/dist/es/components/internal/Address/Address.js.map +1 -1
  115. package/dist/es/components/internal/Button/Button.js +1 -1
  116. package/dist/es/components/internal/Button/Button.js.map +1 -1
  117. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  118. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  119. package/dist/es/components/internal/ClickToPay/services/create-clicktopay-service.js +1 -1
  120. package/dist/es/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  121. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js +1 -1
  122. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  123. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js +1 -1
  124. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  125. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js +1 -1
  126. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  127. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js +1 -1
  128. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  129. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js +1 -1
  130. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  131. package/dist/es/components/internal/Countdown/index.js +1 -1
  132. package/dist/es/components/internal/Countdown/index.js.map +1 -1
  133. package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
  134. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  135. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  136. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  137. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  138. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  139. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  140. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  141. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js +2 -0
  142. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -0
  143. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js +2 -0
  144. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -0
  145. package/dist/es/components/internal/QRLoader/components/QRCountdown.js +2 -0
  146. package/dist/es/components/internal/QRLoader/components/QRCountdown.js.map +1 -0
  147. package/dist/es/components/internal/QRLoader/components/QRDetails.js +2 -0
  148. package/dist/es/components/internal/QRLoader/components/QRDetails.js.map +1 -0
  149. package/dist/es/components/internal/QRLoader/components/QRImage.js +2 -0
  150. package/dist/es/components/internal/QRLoader/components/QRImage.js.map +1 -0
  151. package/dist/es/components/internal/QRLoader/components/QRIntructions.js +2 -0
  152. package/dist/es/components/internal/QRLoader/components/QRIntructions.js.map +1 -0
  153. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js +2 -0
  154. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js.map +1 -0
  155. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  156. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  157. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  158. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  159. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  160. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  161. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  162. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  163. package/dist/es/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js +1 -1
  164. package/dist/es/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js.map +1 -1
  165. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  166. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  167. package/dist/es/components/tx-variants.js +1 -1
  168. package/dist/es/components/tx-variants.js.map +1 -1
  169. package/dist/es/core/Analytics/Analytics.js +1 -1
  170. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  171. package/dist/es/core/Analytics/AnalyticsInfoEvent.js +1 -1
  172. package/dist/es/core/Analytics/AnalyticsInfoEvent.js.map +1 -1
  173. package/dist/es/core/Analytics/constants.js +1 -1
  174. package/dist/es/core/Analytics/constants.js.map +1 -1
  175. package/dist/es/core/Analytics/useAnalytics.js +2 -0
  176. package/dist/es/core/Analytics/useAnalytics.js.map +1 -0
  177. package/dist/es/core/Context/CoreProvider.js +1 -1
  178. package/dist/es/core/Context/CoreProvider.js.map +1 -1
  179. package/dist/es/core/Environment/Environment.js.map +1 -1
  180. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  181. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  182. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  183. package/dist/es/core/Services/analytics/collect-id.js.map +1 -1
  184. package/dist/es/core/config.js +1 -1
  185. package/dist/es/core/config.js.map +1 -1
  186. package/dist/es/core/core.js +1 -1
  187. package/dist/es/core/core.js.map +1 -1
  188. package/dist/es/index.d.ts +315 -121
  189. package/dist/es/utils/Script.js +1 -1
  190. package/dist/es/utils/Script.js.map +1 -1
  191. package/dist/es-legacy/adyen.css +8 -5
  192. package/dist/es-legacy/adyen.css.map +1 -1
  193. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  194. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  195. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  196. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  197. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  198. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  199. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js +1 -1
  200. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  201. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  202. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  203. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  204. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  205. package/dist/es-legacy/components/Card/Card.js +1 -1
  206. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  207. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
  208. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  209. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  210. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  211. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  212. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  213. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js +1 -1
  214. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  215. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js +1 -1
  216. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js.map +1 -1
  217. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  218. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  219. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
  220. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  221. package/dist/es-legacy/components/Card/constants.js +2 -0
  222. package/dist/es-legacy/components/Card/constants.js.map +1 -0
  223. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  224. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  225. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js +1 -1
  226. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  227. package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
  228. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  229. package/dist/es-legacy/components/Donation/components/FixedAmounts.js.map +1 -1
  230. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  231. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  232. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  233. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  234. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js +1 -1
  235. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  236. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  237. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  238. package/dist/es-legacy/components/GooglePay/GooglePayService.js +1 -1
  239. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  240. package/dist/es-legacy/components/GooglePay/defaultProps.js +1 -1
  241. package/dist/es-legacy/components/GooglePay/defaultProps.js.map +1 -1
  242. package/dist/es-legacy/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js +2 -0
  243. package/dist/es-legacy/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js.map +1 -0
  244. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  245. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  246. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  247. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  248. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  249. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  250. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  251. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  252. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js +1 -1
  253. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  254. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js +1 -1
  255. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  256. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  257. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  258. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
  259. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  260. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js +1 -1
  261. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
  262. package/dist/es-legacy/components/PayPal/defaultProps.js +1 -1
  263. package/dist/es-legacy/components/PayPal/defaultProps.js.map +1 -1
  264. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js +1 -1
  265. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  266. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  267. package/dist/es-legacy/components/PayTo/components/PayIDInput.js +1 -1
  268. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -1
  269. package/dist/es-legacy/components/PayTo/components/PayToPhone.js +1 -1
  270. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  271. package/dist/es-legacy/components/PayTo/components/validate.js +1 -1
  272. package/dist/es-legacy/components/PayTo/components/validate.js.map +1 -1
  273. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  274. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  275. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js +2 -0
  276. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -0
  277. package/dist/es-legacy/components/Pix/components/PixInput/utils.js +2 -0
  278. package/dist/es-legacy/components/Pix/components/PixInput/utils.js.map +1 -0
  279. package/dist/es-legacy/components/Pix/components/PixInput/validate.js +2 -0
  280. package/dist/es-legacy/components/Pix/components/PixInput/validate.js.map +1 -0
  281. package/dist/es-legacy/components/Pix/components/PixQRDetails.js +2 -0
  282. package/dist/es-legacy/components/Pix/components/PixQRDetails.js.map +1 -0
  283. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  284. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  285. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  286. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  287. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  288. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  289. package/dist/es-legacy/components/ThreeDS2/components/utils.js +1 -1
  290. package/dist/es-legacy/components/ThreeDS2/components/utils.js.map +1 -1
  291. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  292. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  293. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  294. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  295. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  296. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  297. package/dist/es-legacy/components/internal/Address/Address.js +1 -1
  298. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  299. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  300. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  301. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  302. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  303. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js +1 -1
  304. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  305. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js +1 -1
  306. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  307. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/MastercardSdk.js +1 -1
  308. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  309. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js +1 -1
  310. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  311. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/VisaSdk.js +1 -1
  312. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  313. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js +1 -1
  314. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  315. package/dist/es-legacy/components/internal/Countdown/index.js +1 -1
  316. package/dist/es-legacy/components/internal/Countdown/index.js.map +1 -1
  317. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  318. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  319. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  320. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  321. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  322. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  323. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  324. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  325. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js +2 -0
  326. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -0
  327. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js +2 -0
  328. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -0
  329. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js +2 -0
  330. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js.map +1 -0
  331. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js +2 -0
  332. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js.map +1 -0
  333. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js +2 -0
  334. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js.map +1 -0
  335. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js +2 -0
  336. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js.map +1 -0
  337. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js +2 -0
  338. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js.map +1 -0
  339. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  340. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  341. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  342. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  343. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  344. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  345. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  346. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  347. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js +1 -1
  348. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js.map +1 -1
  349. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  350. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  351. package/dist/es-legacy/components/tx-variants.js +1 -1
  352. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  353. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  354. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  355. package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js +1 -1
  356. package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js.map +1 -1
  357. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  358. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  359. package/dist/es-legacy/core/Analytics/useAnalytics.js +2 -0
  360. package/dist/es-legacy/core/Analytics/useAnalytics.js.map +1 -0
  361. package/dist/es-legacy/core/Context/CoreProvider.js +1 -1
  362. package/dist/es-legacy/core/Context/CoreProvider.js.map +1 -1
  363. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  364. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  365. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  366. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  367. package/dist/es-legacy/core/Services/analytics/collect-id.js.map +1 -1
  368. package/dist/es-legacy/core/config.js +1 -1
  369. package/dist/es-legacy/core/config.js.map +1 -1
  370. package/dist/es-legacy/core/core.js +1 -1
  371. package/dist/es-legacy/core/core.js.map +1 -1
  372. package/dist/es-legacy/utils/Script.js +1 -1
  373. package/dist/es-legacy/utils/Script.js.map +1 -1
  374. package/package.json +149 -157
  375. package/styles/adyen.css +8 -5
  376. package/dist/es/components/Pix/PixInput/PixInput.js +0 -2
  377. package/dist/es/components/Pix/PixInput/PixInput.js.map +0 -1
  378. package/dist/es/components/Pix/PixInput/utils.js +0 -2
  379. package/dist/es/components/Pix/PixInput/utils.js.map +0 -1
  380. package/dist/es/components/Pix/PixInput/validate.js +0 -2
  381. package/dist/es/components/Pix/PixInput/validate.js.map +0 -1
  382. package/dist/es-legacy/components/Pix/PixInput/PixInput.js +0 -2
  383. package/dist/es-legacy/components/Pix/PixInput/PixInput.js.map +0 -1
  384. package/dist/es-legacy/components/Pix/PixInput/utils.js +0 -2
  385. package/dist/es-legacy/components/Pix/PixInput/utils.js.map +0 -1
  386. package/dist/es-legacy/components/Pix/PixInput/validate.js +0 -2
  387. package/dist/es-legacy/components/Pix/PixInput/validate.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, Fragment, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport './DropinComponent.scss';\nimport { sanitizeOrder } from '../../internal/UIElement/utils';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { ANALYTICS_RENDERED_STR, InfoEventTypes } from '../../../core/Analytics/constants';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Button from '../../internal/Button';\nimport type { DropinComponentProps, DropinComponentState, DropinStatus, DropinStatusProps, onOrderCancelData } from '../types';\nimport UIElement from '../../internal/UIElement';\nimport { AnalyticsInfoEvent } from '../../../core/Analytics/AnalyticsInfoEvent';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n fastlanePaymentElement: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {},\n showDefaultPaymentMethodList: true\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise, orderStatusPromise]).then(\n ([storedPaymentElements, elements, instantPaymentElements, fastlanePaymentElement, orderStatus]) => {\n this.setState({\n orderStatus,\n elements,\n instantPaymentElements,\n storedPaymentElements,\n fastlanePaymentElement,\n showDefaultPaymentMethodList: fastlanePaymentElement.length === 0\n });\n\n this.setStatus('ready');\n\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_RENDERED_STR,\n component: 'dropin',\n configData: this.analyticConfigData\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n }\n );\n\n this.onOrderCancel = this.getOnOrderCancel();\n };\n\n get analyticConfigData() {\n return {\n openFirstStoredPaymentMethod: this.props.openFirstStoredPaymentMethod,\n showStoredPaymentMethods: this.props.showStoredPaymentMethods\n };\n }\n\n public setStatus = (status: DropinStatus['type'], props: DropinStatusProps = {}) => {\n this.setState({ status: { type: status, props } });\n };\n\n private setActivePaymentMethod = (paymentMethod: UIElement): void => {\n if (paymentMethod === this.state.activePaymentMethod) {\n return;\n }\n\n this.setState(prevState => ({\n activePaymentMethod: paymentMethod,\n cachedPaymentMethods: { ...prevState.cachedPaymentMethods, [paymentMethod._id]: true }\n }));\n\n if (this.state.cachedPaymentMethods[paymentMethod._id]) {\n paymentMethod.activate();\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status.type !== this.state.status.type && this.state.activePaymentMethod) {\n // @ts-ignore TODO: Drop-in has its own 'status' values ('custom' for ex) which differs from regular UIElementStatus. Need to investigate best way to define/use this status variable\n this.state.activePaymentMethod.setStatus(this.state.status.type);\n }\n\n if (this.state.status.type === 'ready' && prevState.status.type !== 'ready' && this.props.onReady) {\n this.props.onReady();\n }\n }\n\n private handleOnSelectPaymentMethod = paymentMethod => {\n const { activePaymentMethod } = this.state;\n\n this.setActivePaymentMethod(paymentMethod);\n\n // onSelect event\n if ((activePaymentMethod && activePaymentMethod._id !== paymentMethod._id) || !activePaymentMethod) {\n this.props.onSelect?.(paymentMethod);\n\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_RENDERED_STR\n });\n\n paymentMethod.submitAnalytics(event);\n }\n };\n\n private handleDisableStoredPaymentMethod = storedPaymentMethod => {\n this.setState({ isDisabling: true });\n\n new Promise((resolve, reject) => this.props.onDisableStoredPaymentMethod(storedPaymentMethod.props.storedPaymentMethodId, resolve, reject))\n .then(() => {\n this.setState(prevState => ({\n storedPaymentElements: prevState.storedPaymentElements.filter(pm => pm._id !== storedPaymentMethod._id)\n }));\n this.setState({ isDisabling: false });\n })\n .catch(() => {\n this.setState({ isDisabling: false });\n });\n };\n\n private readonly onShowDefaultPaymentMethodListClick = () => {\n this.setState({\n showDefaultPaymentMethodList: true\n });\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventTypes.clicked,\n target: 'otherpaymentmethod_button',\n component: 'dropin'\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n };\n\n closeActivePaymentMethod() {\n this.setState({ activePaymentMethod: null });\n }\n\n /**\n * getOnOrderCancel decides which onOrderCancel logic should be used, manual or sessions\n */\n private getOnOrderCancel = () => {\n if (this.props.onOrderCancel) {\n return (data: onOrderCancelData) => {\n const order = sanitizeOrder(data.order);\n new Promise<{ amount: PaymentAmount }>((resolve, reject) => {\n this.props.onOrderCancel({ order }, { resolve, reject });\n })\n .then(({ amount }) => this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null, amount))\n .catch(error => {\n throw new AdyenCheckoutError('NETWORK_ERROR', error);\n });\n };\n }\n if (this.props.session) {\n return (data: onOrderCancelData) =>\n this.props.session\n .cancelOrder(data)\n .then(() => this.props.core.update({ order: null }))\n .catch(error => {\n console.error(error);\n this.setStatus(error?.message || 'error');\n });\n }\n return null;\n };\n\n private onOrderCancel: (data: onOrderCancelData) => void;\n\n render() {\n const {\n elements,\n fastlanePaymentElement,\n instantPaymentElements,\n storedPaymentElements,\n status,\n activePaymentMethod,\n cachedPaymentMethods,\n showDefaultPaymentMethodList\n } = this.state;\n\n const isLoading = status.type === 'loading';\n const isRedirecting = status.type === 'redirect';\n const hasPaymentMethodsToBeDisplayed = !!(elements?.length || instantPaymentElements?.length || storedPaymentElements?.length);\n\n switch (status.type) {\n case 'success':\n return <Status.Success message={this.props?.amount?.value === 0 ? 'resultMessages.preauthorized' : status.props?.message} />;\n\n case 'error':\n return <Status.Error message={status.props?.message} />;\n\n case 'custom':\n return status.props?.component?.render();\n\n default:\n return (\n <div className={`adyen-checkout__dropin adyen-checkout__dropin--${status.type}`}>\n {isRedirecting && status.props.component && status.props.component.render()}\n {isLoading && status.props && status.props.component && status.props.component.render()}\n\n {!showDefaultPaymentMethodList && (\n <Fragment>\n <PaymentMethodList\n isLoading={isLoading}\n paymentMethods={fastlanePaymentElement}\n activePaymentMethod={activePaymentMethod}\n cachedPaymentMethods={cachedPaymentMethods}\n onSelect={this.handleOnSelectPaymentMethod}\n openFirstPaymentMethod\n showRadioButton={this.props.showRadioButton}\n />\n\n {hasPaymentMethodsToBeDisplayed && (\n <Button\n classNameModifiers={['dropin-show-paymentmethods']}\n variant=\"link\"\n inline\n label=\"Other payment methods\"\n onClick={this.onShowDefaultPaymentMethodListClick}\n />\n )}\n </Fragment>\n )}\n\n {hasPaymentMethodsToBeDisplayed && showDefaultPaymentMethodList && (\n <PaymentMethodList\n isLoading={isLoading || isRedirecting}\n isDisablingPaymentMethod={this.state.isDisabling}\n paymentMethods={elements}\n instantPaymentMethods={instantPaymentElements}\n storedPaymentMethods={storedPaymentElements}\n activePaymentMethod={activePaymentMethod}\n cachedPaymentMethods={cachedPaymentMethods}\n order={this.props.order}\n orderStatus={this.state.orderStatus}\n onOrderCancel={this.onOrderCancel}\n onSelect={this.handleOnSelectPaymentMethod}\n openPaymentMethod={this.props.openPaymentMethod}\n openFirstPaymentMethod={this.props.openFirstPaymentMethod}\n openFirstStoredPaymentMethod={this.props.openFirstStoredPaymentMethod}\n onDisableStoredPaymentMethod={this.handleDisableStoredPaymentMethod}\n showRemovePaymentMethodButton={this.props.showRemovePaymentMethodButton}\n showRadioButton={this.props.showRadioButton}\n />\n )}\n </div>\n );\n }\n }\n}\n\nexport default DropinComponent;\n"],"names":["DropinComponent","Component","componentDidMount","this","prepareDropinData","analyticConfigData","openFirstStoredPaymentMethod","props","showStoredPaymentMethods","componentDidUpdate","prevProps","prevState","status","type","state","activePaymentMethod","setStatus","onReady","closeActivePaymentMethod","setState","render","elements","fastlanePaymentElement","instantPaymentElements","storedPaymentElements","cachedPaymentMethods","showDefaultPaymentMethodList","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","_this_props_amount","_this_props","h","Status","Success","message","amount","value","Error","component","div","className","Fragment","PaymentMethodList","paymentMethods","onSelect","handleOnSelectPaymentMethod","openFirstPaymentMethod","showRadioButton","Button","classNameModifiers","variant","inline","label","onClick","onShowDefaultPaymentMethodListClick","isDisablingPaymentMethod","isDisabling","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","openPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","super","args","_define_property","undefined","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","fastlanePaymentElementPromise","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","_this_props_modules","event","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","configData","modules","analytics","sendAnalytics","getOnOrderCancel","setActivePaymentMethod","paymentMethod","_object_spread_props","_object_spread","_id","activate","_this_props_onSelect","call","submitAnalytics","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","catch","InfoEventTypes","clicked","target","data","sanitizeOrder","elementRef","handleAdvanceFlowPaymentMethodsUpdate","error","AdyenCheckoutError","session","cancelOrder","core","update","console"],"mappings":"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"}
1
+ {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, Fragment, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport './DropinComponent.scss';\nimport { sanitizeOrder } from '../../internal/UIElement/utils';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { ANALYTICS_RENDERED_STR } from '../../../core/Analytics/constants';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Button from '../../internal/Button';\nimport type { DropinComponentProps, DropinComponentState, DropinStatus, DropinStatusProps, onOrderCancelData } from '../types';\nimport UIElement from '../../internal/UIElement';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../../core/Analytics/AnalyticsInfoEvent';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n fastlanePaymentElement: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {},\n showDefaultPaymentMethodList: true\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise, orderStatusPromise]).then(\n ([storedPaymentElements, elements, instantPaymentElements, fastlanePaymentElement, orderStatus]) => {\n this.setState({\n orderStatus,\n elements,\n instantPaymentElements,\n storedPaymentElements,\n fastlanePaymentElement,\n showDefaultPaymentMethodList: fastlanePaymentElement.length === 0\n });\n\n this.setStatus('ready');\n\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_RENDERED_STR,\n component: 'dropin',\n configData: this.analyticConfigData\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n }\n );\n\n this.onOrderCancel = this.getOnOrderCancel();\n };\n\n get analyticConfigData() {\n return {\n openFirstStoredPaymentMethod: this.props.openFirstStoredPaymentMethod,\n showStoredPaymentMethods: this.props.showStoredPaymentMethods\n };\n }\n\n public setStatus = (status: DropinStatus['type'], props: DropinStatusProps = {}) => {\n this.setState({ status: { type: status, props } });\n };\n\n private setActivePaymentMethod = (paymentMethod: UIElement): void => {\n if (paymentMethod === this.state.activePaymentMethod) {\n return;\n }\n\n this.setState(prevState => ({\n activePaymentMethod: paymentMethod,\n cachedPaymentMethods: { ...prevState.cachedPaymentMethods, [paymentMethod._id]: true }\n }));\n\n if (this.state.cachedPaymentMethods[paymentMethod._id]) {\n paymentMethod.activate();\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status.type !== this.state.status.type && this.state.activePaymentMethod) {\n // @ts-ignore TODO: Drop-in has its own 'status' values ('custom' for ex) which differs from regular UIElementStatus. Need to investigate best way to define/use this status variable\n this.state.activePaymentMethod.setStatus(this.state.status.type);\n }\n\n if (this.state.status.type === 'ready' && prevState.status.type !== 'ready' && this.props.onReady) {\n this.props.onReady();\n }\n }\n\n private handleOnSelectPaymentMethod = paymentMethod => {\n const { activePaymentMethod } = this.state;\n\n this.setActivePaymentMethod(paymentMethod);\n\n // onSelect event\n if ((activePaymentMethod && activePaymentMethod._id !== paymentMethod._id) || !activePaymentMethod) {\n this.props.onSelect?.(paymentMethod);\n\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_RENDERED_STR\n });\n\n paymentMethod.submitAnalytics(event);\n }\n };\n\n private handleDisableStoredPaymentMethod = storedPaymentMethod => {\n this.setState({ isDisabling: true });\n\n new Promise((resolve, reject) => this.props.onDisableStoredPaymentMethod(storedPaymentMethod.props.storedPaymentMethodId, resolve, reject))\n .then(() => {\n this.setState(prevState => ({\n storedPaymentElements: prevState.storedPaymentElements.filter(pm => pm._id !== storedPaymentMethod._id)\n }));\n this.setState({ isDisabling: false });\n })\n .catch(() => {\n this.setState({ isDisabling: false });\n });\n };\n\n private readonly onShowDefaultPaymentMethodListClick = () => {\n this.setState({\n showDefaultPaymentMethodList: true\n });\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.clicked,\n target: 'otherpaymentmethod_button',\n component: 'dropin'\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n };\n\n closeActivePaymentMethod() {\n this.setState({ activePaymentMethod: null });\n }\n\n /**\n * getOnOrderCancel decides which onOrderCancel logic should be used, manual or sessions\n */\n private getOnOrderCancel = () => {\n if (this.props.onOrderCancel) {\n return (data: onOrderCancelData) => {\n const order = sanitizeOrder(data.order);\n new Promise<{ amount: PaymentAmount }>((resolve, reject) => {\n this.props.onOrderCancel({ order }, { resolve, reject });\n })\n .then(({ amount }) => this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null, amount))\n .catch(error => {\n throw new AdyenCheckoutError('NETWORK_ERROR', error);\n });\n };\n }\n if (this.props.session) {\n return (data: onOrderCancelData) =>\n this.props.session\n .cancelOrder(data)\n .then(() => this.props.core.update({ order: null }))\n .catch(error => {\n console.error(error);\n this.setStatus(error?.message || 'error');\n });\n }\n return null;\n };\n\n private onOrderCancel: (data: onOrderCancelData) => void;\n\n render() {\n const {\n elements,\n fastlanePaymentElement,\n instantPaymentElements,\n storedPaymentElements,\n status,\n activePaymentMethod,\n cachedPaymentMethods,\n showDefaultPaymentMethodList\n } = this.state;\n\n const isLoading = status.type === 'loading';\n const isRedirecting = status.type === 'redirect';\n const hasPaymentMethodsToBeDisplayed = !!(elements?.length || instantPaymentElements?.length || storedPaymentElements?.length);\n\n switch (status.type) {\n case 'success':\n return <Status.Success message={this.props?.amount?.value === 0 ? 'resultMessages.preauthorized' : status.props?.message} />;\n\n case 'error':\n return <Status.Error message={status.props?.message} />;\n\n case 'custom':\n return status.props?.component?.render();\n\n default:\n return (\n <div className={`adyen-checkout__dropin adyen-checkout__dropin--${status.type}`}>\n {isRedirecting && status.props.component && status.props.component.render()}\n {isLoading && status.props && status.props.component && status.props.component.render()}\n\n {!showDefaultPaymentMethodList && (\n <Fragment>\n <PaymentMethodList\n isLoading={isLoading}\n paymentMethods={fastlanePaymentElement}\n activePaymentMethod={activePaymentMethod}\n cachedPaymentMethods={cachedPaymentMethods}\n onSelect={this.handleOnSelectPaymentMethod}\n openFirstPaymentMethod\n showRadioButton={this.props.showRadioButton}\n />\n\n {hasPaymentMethodsToBeDisplayed && (\n <Button\n classNameModifiers={['dropin-show-paymentmethods']}\n variant=\"link\"\n inline\n label=\"Other payment methods\"\n onClick={this.onShowDefaultPaymentMethodListClick}\n />\n )}\n </Fragment>\n )}\n\n {hasPaymentMethodsToBeDisplayed && showDefaultPaymentMethodList && (\n <PaymentMethodList\n isLoading={isLoading || isRedirecting}\n isDisablingPaymentMethod={this.state.isDisabling}\n paymentMethods={elements}\n instantPaymentMethods={instantPaymentElements}\n storedPaymentMethods={storedPaymentElements}\n activePaymentMethod={activePaymentMethod}\n cachedPaymentMethods={cachedPaymentMethods}\n order={this.props.order}\n orderStatus={this.state.orderStatus}\n onOrderCancel={this.onOrderCancel}\n onSelect={this.handleOnSelectPaymentMethod}\n openPaymentMethod={this.props.openPaymentMethod}\n openFirstPaymentMethod={this.props.openFirstPaymentMethod}\n openFirstStoredPaymentMethod={this.props.openFirstStoredPaymentMethod}\n onDisableStoredPaymentMethod={this.handleDisableStoredPaymentMethod}\n showRemovePaymentMethodButton={this.props.showRemovePaymentMethodButton}\n showRadioButton={this.props.showRadioButton}\n />\n )}\n </div>\n );\n }\n }\n}\n\nexport default DropinComponent;\n"],"names":["DropinComponent","Component","componentDidMount","this","prepareDropinData","analyticConfigData","openFirstStoredPaymentMethod","props","showStoredPaymentMethods","componentDidUpdate","prevProps","prevState","status","type","state","activePaymentMethod","setStatus","onReady","closeActivePaymentMethod","setState","render","elements","fastlanePaymentElement","instantPaymentElements","storedPaymentElements","cachedPaymentMethods","showDefaultPaymentMethodList","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","_this_props_amount","_this_props","h","Status","Success","message","amount","value","Error","component","div","className","Fragment","PaymentMethodList","paymentMethods","onSelect","handleOnSelectPaymentMethod","openFirstPaymentMethod","showRadioButton","Button","classNameModifiers","variant","inline","label","onClick","onShowDefaultPaymentMethodListClick","isDisablingPaymentMethod","isDisabling","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","openPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","super","args","_define_property","undefined","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","fastlanePaymentElementPromise","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","_this_props_modules","event","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","configData","modules","analytics","sendAnalytics","getOnOrderCancel","setActivePaymentMethod","paymentMethod","_object_spread_props","_object_spread","_id","activate","_this_props_onSelect","call","submitAnalytics","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","catch","InfoEventType","clicked","target","data","sanitizeOrder","elementRef","handleAdvanceFlowPaymentMethodsUpdate","error","AdyenCheckoutError","session","cancelOrder","core","update","console"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";function t({paymentMethods:t,onSelect:a}){return e("ul",{className:"adyen-checkout__instant-payment-methods-list"},t.map(t=>e("li",{key:t._id,"data-testid":t.type,onClick:()=>a(t)},t.render())))}export{t as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";function t({paymentMethods:t,onSelect:a}){return e("ul",{className:"adyen-checkout__instant-payment-methods-list"},t.map(t=>e("li",{key:t._id,"data-testid":t.type,onClickCapture:()=>a(t)},t.render())))}export{t as default};
2
2
  //# sourceMappingURL=InstantPaymentMethods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstantPaymentMethods.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/InstantPaymentMethods.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../../../internal/UIElement/UIElement';\nimport './InstantPaymentMethods.scss';\n\ninterface InstantPaymentMethodsProps {\n paymentMethods: UIElement[];\n onSelect: (paymentMethod: UIElement) => void;\n}\n\nfunction InstantPaymentMethods({ paymentMethods, onSelect }: InstantPaymentMethodsProps) {\n return (\n <ul className=\"adyen-checkout__instant-payment-methods-list\">\n {paymentMethods.map(pm => (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n <li key={pm._id} data-testid={pm.type} onClick={() => onSelect(pm)}>\n {pm.render()}\n </li>\n ))}\n </ul>\n );\n}\n\nexport default InstantPaymentMethods;\n"],"names":["InstantPaymentMethods","paymentMethods","onSelect","h","ul","className","map","pm","li","key","_id","data-testid","type","onClick","render"],"mappings":"2EASA,SAASA,GAAsBC,eAAEA,EAAcC,SAAEA,IAC7C,OACIC,EAACC,KAAAA,CAAGC,UAAU,gDACTJ,EAAeK,IAAIC,GAEhBJ,EAACK,KAAAA,CAAGC,IAAKF,EAAGG,IAAKC,cAAaJ,EAAGK,KAAMC,QAAS,IAAMX,EAASK,IAC1DA,EAAGO,WAKxB"}
1
+ {"version":3,"file":"InstantPaymentMethods.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/InstantPaymentMethods.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../../../internal/UIElement/UIElement';\nimport './InstantPaymentMethods.scss';\n\ninterface InstantPaymentMethodsProps {\n paymentMethods: UIElement[];\n onSelect: (paymentMethod: UIElement) => void;\n}\n\nfunction InstantPaymentMethods({ paymentMethods, onSelect }: InstantPaymentMethodsProps) {\n return (\n <ul className=\"adyen-checkout__instant-payment-methods-list\">\n {paymentMethods.map(pm => (\n /**\n * Apple Pay button click event does not bubble up, therefore we need to use 'onClickCapture' here\n * to capture the button interaction\n */\n <li key={pm._id} data-testid={pm.type} onClickCapture={() => onSelect(pm)}>\n {pm.render()}\n </li>\n ))}\n </ul>\n );\n}\n\nexport default InstantPaymentMethods;\n"],"names":["InstantPaymentMethods","paymentMethods","onSelect","h","ul","className","map","pm","li","key","_id","data-testid","type","onClickCapture","render"],"mappings":"2EASA,SAASA,GAAsBC,eAAEA,EAAcC,SAAEA,IAC7C,OACIC,EAACC,KAAAA,CAAGC,UAAU,gDACTJ,EAAeK,IAAIC,GAKhBJ,EAACK,KAAAA,CAAGC,IAAKF,EAAGG,IAAKC,cAAaJ,EAAGK,KAAMC,eAAgB,IAAMX,EAASK,IACjEA,EAAGO,WAKxB"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./GooglePayService.js";import r from"./components/GooglePayButton.js";import n from"./defaultProps.js";import{getGooglePayLocale as s,formatGooglePayContactToAdyenAddressFormat as i}from"./utils.js";import a from"../../utils/browserInfo.js";import l from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as h}from"../tx-variants.js";import{sanitizeResponse as p,verifyPaymentDidNotFail as c}from"../internal/UIElement/utils.js";import{ANALYTICS_RENDERED_STR as y,ANALYTICS_INSTANT_PAYMENT_BUTTON as d,ANALYTICS_SELECTED_STR as u,ANALYTICS_EXPRESS_PAGES_ARRAY as g}from"../../core/Analytics/constants.js";import{AnalyticsInfoEvent as m}from"../../core/Analytics/AnalyticsInfoEvent.js";function P(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function b(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){P(t,e,o[e])})}return t}function f(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}class E extends e{getPaymentMethodFromPaymentMethodsResponse(t){return this.core.paymentMethodsResponse.find(t||this.constructor.type)||this.core.paymentMethodsResponse.find(h.paywithgoogle)}formatProps(t){var e,o;const r=null!==(o=t.buttonSizeMode)&&void 0!==o?o:t.isDropin?"fill":"static";var n;const i=s(null!==(n=t.buttonLocale)&&void 0!==n?n:null===(e=t.i18n)||void 0===e?void 0:e.locale),a=[...t.callbackIntents,"PAYMENT_AUTHORIZATION"];return f(b({},t),{configuration:t.configuration,buttonSizeMode:r,buttonLocale:i,callbackIntents:a})}formatData(){const{googlePayCardNetwork:t,googlePayToken:e,billingAddress:o,deliveryAddress:r}=this.state,{isExpress:n}=this.props;return b({paymentMethod:b({type:this.type,googlePayCardNetwork:t,googlePayToken:e},n&&{subtype:"express"}),browserInfo:this.browserInfo,origin:!!window&&window.location.origin},o&&{billingAddress:o},r&&{deliveryAddress:r})}submitAnalytics(t){if(t instanceof m&&t.type===y){const{isExpress:e,expressPage:o}=this.props,r=o&&g.includes(o);"boolean"==typeof e&&(t.isExpress=e),!0===e&&r&&(t.expressPage=o)}super.submitAnalytics(t)}showGooglePayPaymentSheet(){this.googlePay.initiatePayment(this.props,this.core.options.countryCode).catch(t=>{this.handleError(new l("CANCELED"===t.statusCode?"CANCEL":"ERROR",t.toString(),{cause:t}))})}async handleAuthorization(){return new Promise((t,e)=>{this.props.onAuthorized||t();const{authorizedEvent:o,billingAddress:r,deliveryAddress:n}=this.state;this.props.onAuthorized(b({authorizedEvent:o},r&&{billingAddress:r},n&&{deliveryAddress:n}),{resolve:t,reject:e})}).catch(t=>{const e={error:{googlePayError:t}};return Promise.reject(e)})}get isValid(){return!0}async isAvailable(){return this.isReadyToPay().then(t=>{if(!t.result)throw new l("ERROR","GooglePay is not available");if(!1===t.paymentMethodPresent)throw new l("ERROR","GooglePay - No paymentMethodPresent");return Promise.resolve()}).catch(t=>Promise.reject(t))}get browserInfo(){return a()}get icon(){var t;return null!==(t=this.props.icon)&&void 0!==t?t:this.resources.getImage()("googlepay")}render(){return this.props.showPayButton?t(r,{buttonColor:this.props.buttonColor,buttonType:this.props.buttonType,buttonSizeMode:this.props.buttonSizeMode,buttonLocale:this.props.buttonLocale,buttonRootNode:this.props.buttonRootNode,buttonRadius:this.props.buttonRadius,paymentsClient:this.googlePay.paymentsClient,onClick:this.submit}):null}constructor(t,e){super(t,e),P(this,"googlePay",void 0),P(this,"submit",()=>{if(this.props.isInstantPayment){const t=new m({type:u,target:d});this.submitAnalytics(t)}new Promise((t,e)=>this.props.onClick(t,e)).then(this.showGooglePayPaymentSheet).catch(()=>{})}),P(this,"onPaymentAuthorized",async t=>{const e=i(t.paymentMethodData.info.billingAddress),o=i(t.shippingAddress,!0);return this.setState(b({authorizedEvent:t,googlePayToken:t.paymentMethodData.tokenizationData.token,googlePayCardNetwork:t.paymentMethodData.info.cardNetwork},e&&{billingAddress:e},o&&{deliveryAddress:o})),new Promise(t=>{this.handleAuthorization().then(this.makePaymentsCall).then(p).then(c).then(e=>(t({transactionState:"SUCCESS"}),e)).then(t=>{this.handleResponse(t)}).catch(e=>{var o;this.setElementStatus("ready");const r=null==e||null===(o=e.error)||void 0===o?void 0:o.googlePayError,n=this.props.i18n.get("error.subtitle.payment"),s="string"==typeof r?{intent:"PAYMENT_AUTHORIZATION",reason:"OTHER_ERROR",message:r||n}:{intent:(null==r?void 0:r.intent)||"PAYMENT_AUTHORIZATION",reason:(null==r?void 0:r.reason)||"OTHER_ERROR",message:(null==r?void 0:r.message)||n};t({transactionState:"ERROR",error:s});const i=f(b({},e),{error:{googlePayError:s}});this.handleFailedResult(i)})})}),P(this,"isReadyToPay",()=>this.googlePay.isReadyToPay(this.props)),P(this,"prefetch",()=>this.googlePay.prefetchPaymentData(this.props,this.core.options.countryCode)),this.handleAuthorization=this.handleAuthorization.bind(this),this.showGooglePayPaymentSheet=this.showGooglePayPaymentSheet.bind(this);const{isExpress:r,paymentDataCallbacks:n}=this.props;if(!1===r&&(null==n?void 0:n.onPaymentDataChanged))throw new l("IMPLEMENTATION_ERROR",'GooglePay - You must set "isExpress" flag to "true" in order to use "onPaymentDataChanged" callback');if(!this.props.configuration.merchantId)throw new l("IMPLEMENTATION_ERROR","GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.");this.googlePay=new o(this.props.environment,f(b({},r&&(null==n?void 0:n.onPaymentDataChanged)&&{onPaymentDataChanged:n.onPaymentDataChanged}),{onPaymentAuthorized:this.onPaymentAuthorized}))}}P(E,"type",h.googlepay),P(E,"txVariants",[h.googlepay,h.paywithgoogle]),P(E,"defaultProps",n);export{E 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"./GooglePayService.js";import r from"./components/GooglePayButton.js";import s from"./defaultProps.js";import{getGooglePayLocale as n,formatGooglePayContactToAdyenAddressFormat as i}from"./utils.js";import a from"../../utils/browserInfo.js";import l from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as h}from"../tx-variants.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as p}from"../internal/UIElement/utils.js";import{ANALYTICS_RENDERED_STR as c,ANALYTICS_INSTANT_PAYMENT_BUTTON as u,ANALYTICS_SELECTED_STR as y,ANALYTICS_EXPRESS_PAGES_ARRAY as g}from"../../core/Analytics/constants.js";import{AnalyticsInfoEvent as m}from"../../core/Analytics/AnalyticsInfoEvent.js";import{mapGooglePayBrands as P}from"./utils/map-adyen-brands-to-googlepay-brands.js";function b(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function f(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){b(t,e,o[e])})}return t}function w(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}const A=["AMEX","DISCOVER","JCB","MASTERCARD","VISA"];class E extends e{getPaymentMethodFromPaymentMethodsResponse(t){return this.core.paymentMethodsResponse.find(t||this.constructor.type)||this.core.paymentMethodsResponse.find(h.paywithgoogle)}formatProps(t){var e,o;const r=null!==(o=t.buttonSizeMode)&&void 0!==o?o:t.isDropin?"fill":"static";var s;const i=n(null!==(s=t.buttonLocale)&&void 0!==s?s:null===(e=t.i18n)||void 0===e?void 0:e.locale),a=[...t.callbackIntents,"PAYMENT_AUTHORIZATION"],l=this.createAllowedCardNetworksValues({allowedCardNetworks:t.allowedCardNetworks,brands:t.brands});return w(f({},t),{allowedCardNetworks:l,configuration:t.configuration,buttonSizeMode:r,buttonLocale:i,callbackIntents:a})}formatData(){const{googlePayCardNetwork:t,googlePayToken:e,billingAddress:o,deliveryAddress:r}=this.state,{isExpress:s}=this.props;return f({paymentMethod:f({type:this.type,googlePayCardNetwork:t,googlePayToken:e},s&&{subtype:"express"}),browserInfo:this.browserInfo,origin:!!window&&window.location.origin},o&&{billingAddress:o},r&&{deliveryAddress:r})}createAllowedCardNetworksValues({allowedCardNetworks:t,brands:e}){return(null==t?void 0:t.length)>0?t:(null==e?void 0:e.length)>0?P(e):A}submitAnalytics(t){if(t instanceof m&&t.type===c){const{isExpress:e,expressPage:o}=this.props,r=o&&g.includes(o);"boolean"==typeof e&&(t.isExpress=e),!0===e&&r&&(t.expressPage=o)}super.submitAnalytics(t)}showGooglePayPaymentSheet(){this.googlePay.initiatePayment(this.props,this.core.options.countryCode).catch(t=>{this.handleError(new l("CANCELED"===t.statusCode?"CANCEL":"ERROR",t.toString(),{cause:t}))})}async handleAuthorization(){return new Promise((t,e)=>{this.props.onAuthorized||t();const{authorizedEvent:o,billingAddress:r,deliveryAddress:s}=this.state;this.props.onAuthorized(f({authorizedEvent:o},r&&{billingAddress:r},s&&{deliveryAddress:s}),{resolve:t,reject:e})}).catch(t=>{const e={error:{googlePayError:t}};return Promise.reject(e)})}get isValid(){return!0}async isAvailable(){return this.isReadyToPay().then(t=>{if(!t.result)throw new l("ERROR","GooglePay is not available");if(!1===t.paymentMethodPresent)throw new l("ERROR","GooglePay - No paymentMethodPresent");return Promise.resolve()}).catch(t=>Promise.reject(t))}get browserInfo(){return a()}get icon(){var t;return null!==(t=this.props.icon)&&void 0!==t?t:this.resources.getImage()("googlepay")}render(){return this.props.showPayButton?t(r,{buttonColor:this.props.buttonColor,buttonType:this.props.buttonType,buttonSizeMode:this.props.buttonSizeMode,buttonLocale:this.props.buttonLocale,buttonRootNode:this.props.buttonRootNode,buttonRadius:this.props.buttonRadius,paymentsClient:this.googlePay.paymentsClient,onClick:this.submit}):null}constructor(t,e){super(t,e),b(this,"googlePay",void 0),b(this,"submit",()=>{if(this.props.isInstantPayment){const t=new m({type:y,target:u});this.submitAnalytics(t)}new Promise((t,e)=>this.props.onClick(t,e)).then(this.showGooglePayPaymentSheet).catch(()=>{})}),b(this,"onPaymentAuthorized",async t=>{const e=i(t.paymentMethodData.info.billingAddress),o=i(t.shippingAddress,!0);return this.setState(f({authorizedEvent:t,googlePayToken:t.paymentMethodData.tokenizationData.token,googlePayCardNetwork:t.paymentMethodData.info.cardNetwork},e&&{billingAddress:e},o&&{deliveryAddress:o})),new Promise(t=>{this.handleAuthorization().then(this.makePaymentsCall).then(d).then(p).then(e=>(t({transactionState:"SUCCESS"}),e)).then(t=>{this.handleResponse(t)}).catch(e=>{var o;this.setElementStatus("ready");const r=null==e||null===(o=e.error)||void 0===o?void 0:o.googlePayError,s=this.props.i18n.get("error.subtitle.payment"),n="string"==typeof r?{intent:"PAYMENT_AUTHORIZATION",reason:"OTHER_ERROR",message:r||s}:{intent:(null==r?void 0:r.intent)||"PAYMENT_AUTHORIZATION",reason:(null==r?void 0:r.reason)||"OTHER_ERROR",message:(null==r?void 0:r.message)||s};t({transactionState:"ERROR",error:n});const i=w(f({},e),{error:{googlePayError:n}});this.handleFailedResult(i)})})}),b(this,"isReadyToPay",()=>this.googlePay.isReadyToPay(this.props)),b(this,"prefetch",()=>this.googlePay.prefetchPaymentData(this.props,this.core.options.countryCode)),this.handleAuthorization=this.handleAuthorization.bind(this),this.showGooglePayPaymentSheet=this.showGooglePayPaymentSheet.bind(this);const{isExpress:r,paymentDataCallbacks:s}=this.props;if(!1===r&&(null==s?void 0:s.onPaymentDataChanged))throw new l("IMPLEMENTATION_ERROR",'GooglePay - You must set "isExpress" flag to "true" in order to use "onPaymentDataChanged" callback');if(!this.props.configuration.merchantId)throw new l("IMPLEMENTATION_ERROR","GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.");this.googlePay=new o(this.props.environment,this.analytics,w(f({},r&&(null==s?void 0:s.onPaymentDataChanged)&&{onPaymentDataChanged:s.onPaymentDataChanged}),{onPaymentAuthorized:this.onPaymentAuthorized}))}}b(E,"type",h.googlepay),b(E,"txVariants",[h.googlepay,h.paywithgoogle]),b(E,"defaultProps",s);export{E as default};
2
2
  //# sourceMappingURL=GooglePay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GooglePay.js","sources":["../../../../src/components/GooglePay/GooglePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GooglePayService from './GooglePayService';\nimport GooglePayButton from './components/GooglePayButton';\nimport defaultProps from './defaultProps';\nimport { formatGooglePayContactToAdyenAddressFormat, getGooglePayLocale } from './utils';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport {\n ANALYTICS_EXPRESS_PAGES_ARRAY,\n ANALYTICS_INSTANT_PAYMENT_BUTTON,\n ANALYTICS_RENDERED_STR,\n ANALYTICS_SELECTED_STR\n} from '../../core/Analytics/constants';\n\nimport type { AddressData, BrowserInfo, PaymentMethod, PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport type { GooglePayConfiguration } from './types';\nimport type { ICore } from '../../core/types';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\n\nclass GooglePay extends UIElement<GooglePayConfiguration> {\n public static type = TxVariants.googlepay;\n public static txVariants = [TxVariants.googlepay, TxVariants.paywithgoogle];\n public static defaultProps = defaultProps;\n\n protected readonly googlePay;\n\n constructor(checkout: ICore, props?: GooglePayConfiguration) {\n super(checkout, props);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.showGooglePayPaymentSheet = this.showGooglePayPaymentSheet.bind(this);\n\n const { isExpress, paymentDataCallbacks } = this.props;\n\n if (isExpress === false && paymentDataCallbacks?.onPaymentDataChanged) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - You must set \"isExpress\" flag to \"true\" in order to use \"onPaymentDataChanged\" callback'\n );\n }\n\n if (!this.props.configuration.merchantId) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.'\n );\n }\n\n this.googlePay = new GooglePayService(this.props.environment, {\n ...(isExpress && paymentDataCallbacks?.onPaymentDataChanged && { onPaymentDataChanged: paymentDataCallbacks.onPaymentDataChanged }),\n onPaymentAuthorized: this.onPaymentAuthorized\n });\n }\n\n /**\n * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.\n * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants\n *\n * @param type\n * @returns\n */\n protected override getPaymentMethodFromPaymentMethodsResponse(type?: string): PaymentMethod {\n return (\n this.core.paymentMethodsResponse.find(type || this.constructor['type']) || this.core.paymentMethodsResponse.find(TxVariants.paywithgoogle)\n );\n }\n\n protected override formatProps(props): GooglePayConfiguration {\n const buttonSizeMode = props.buttonSizeMode ?? (props.isDropin ? 'fill' : 'static');\n const buttonLocale = getGooglePayLocale(props.buttonLocale ?? props.i18n?.locale);\n\n const callbackIntents: google.payments.api.CallbackIntent[] = [...props.callbackIntents, 'PAYMENT_AUTHORIZATION'];\n\n return {\n ...props,\n configuration: props.configuration,\n buttonSizeMode,\n buttonLocale,\n callbackIntents\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData() {\n const { googlePayCardNetwork, googlePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n googlePayCardNetwork,\n googlePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: AnalyticsEvent) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n if (analyticsObj instanceof AnalyticsInfoEvent && analyticsObj.type === ANALYTICS_RENDERED_STR) {\n const { isExpress, expressPage } = this.props;\n const hasExpressPage = expressPage && ANALYTICS_EXPRESS_PAGES_ARRAY.includes(expressPage);\n\n if (typeof isExpress === 'boolean') {\n analyticsObj.isExpress = isExpress;\n }\n\n if (isExpress === true && hasExpressPage) {\n analyticsObj.expressPage = expressPage; // We only care about the expressPage value if isExpress is true\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n /**\n * Displays the Google Pay payment sheet overlay\n */\n private showGooglePayPaymentSheet() {\n this.googlePay.initiatePayment(this.props, this.core.options.countryCode).catch((error: google.payments.api.PaymentsError) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this.handleError(new AdyenCheckoutError(error.statusCode === 'CANCELED' ? 'CANCEL' : 'ERROR', error.toString(), { cause: error }));\n });\n }\n\n public override submit = () => {\n if (this.props.isInstantPayment) {\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_SELECTED_STR,\n target: ANALYTICS_INSTANT_PAYMENT_BUTTON\n });\n\n this.submitAnalytics(event);\n }\n\n new Promise<void>((resolve, reject) => this.props.onClick(resolve, reject)).then(this.showGooglePayPaymentSheet).catch(() => {\n // Swallow exception triggered by onClick reject\n });\n };\n\n /**\n * Method called when the payment is authorized in the payment sheet\n *\n * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized\n **/\n private onPaymentAuthorized = async (paymentData: google.payments.api.PaymentData): Promise<google.payments.api.PaymentAuthorizationResult> => {\n const billingAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.paymentMethodData.info.billingAddress);\n const deliveryAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.shippingAddress, true);\n\n this.setState({\n authorizedEvent: paymentData,\n googlePayToken: paymentData.paymentMethodData.tokenizationData.token,\n googlePayCardNetwork: paymentData.paymentMethodData.info.cardNetwork,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<google.payments.api.PaymentAuthorizationResult>(resolve => {\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then((paymentResponse: PaymentResponseData) => {\n resolve({ transactionState: 'SUCCESS' });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n this.setElementStatus('ready');\n\n const googlePayError = paymentResponse?.error?.googlePayError;\n const fallbackMessage = this.props.i18n.get('error.subtitle.payment');\n\n const error: google.payments.api.PaymentDataError =\n typeof googlePayError === 'string' || undefined\n ? {\n intent: 'PAYMENT_AUTHORIZATION',\n reason: 'OTHER_ERROR',\n message: (googlePayError as string) || fallbackMessage\n }\n : {\n intent: googlePayError?.intent || 'PAYMENT_AUTHORIZATION',\n reason: googlePayError?.reason || 'OTHER_ERROR',\n message: googlePayError?.message || fallbackMessage\n };\n\n resolve({\n transactionState: 'ERROR',\n error\n });\n\n const responseWithError = {\n ...paymentResponse,\n error: {\n googlePayError: error\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n });\n };\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: google.payments.api.PaymentDataError | string) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { googlePayError: error } };\n return Promise.reject(data);\n });\n }\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public override async isAvailable(): Promise<void> {\n return this.isReadyToPay()\n .then(response => {\n if (!response.result) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay is not available');\n }\n\n if (response.paymentMethodPresent === false) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay - No paymentMethodPresent');\n }\n\n return Promise.resolve();\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public isReadyToPay = (): Promise<google.payments.api.IsReadyToPayResponse> => {\n return this.googlePay.isReadyToPay(this.props);\n };\n\n /**\n * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.\n */\n public prefetch = (): void => {\n return this.googlePay.prefetchPaymentData(this.props, this.core.options.countryCode);\n };\n\n get browserInfo(): BrowserInfo {\n return collectBrowserInfo();\n }\n\n get icon(): string {\n return this.props.icon ?? this.resources.getImage()('googlepay');\n }\n\n render() {\n if (this.props.showPayButton) {\n return (\n <GooglePayButton\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonSizeMode={this.props.buttonSizeMode}\n buttonLocale={this.props.buttonLocale}\n buttonRootNode={this.props.buttonRootNode}\n buttonRadius={this.props.buttonRadius}\n paymentsClient={this.googlePay.paymentsClient}\n onClick={this.submit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default GooglePay;\n"],"names":["GooglePay","UIElement","getPaymentMethodFromPaymentMethodsResponse","type","this","core","paymentMethodsResponse","find","constructor","TxVariants","paywithgoogle","formatProps","props","buttonSizeMode","isDropin","buttonLocale","getGooglePayLocale","i18n","locale","callbackIntents","_object_spread_props","_object_spread","configuration","formatData","googlePayCardNetwork","googlePayToken","billingAddress","deliveryAddress","state","isExpress","paymentMethod","subtype","browserInfo","origin","window","location","submitAnalytics","analyticsObj","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","expressPage","hasExpressPage","ANALYTICS_EXPRESS_PAGES_ARRAY","includes","super","showGooglePayPaymentSheet","googlePay","initiatePayment","options","countryCode","catch","error","handleError","AdyenCheckoutError","statusCode","toString","cause","handleAuthorization","Promise","resolve","reject","onAuthorized","authorizedEvent","data","googlePayError","isValid","isAvailable","isReadyToPay","then","response","result","paymentMethodPresent","collectBrowserInfo","icon","_this_props_icon","resources","getImage","render","showPayButton","h","GooglePayButton","buttonColor","buttonType","buttonRootNode","buttonRadius","paymentsClient","onClick","submit","checkout","_define_property","isInstantPayment","event","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onPaymentAuthorized","async","paymentData","formatGooglePayContactToAdyenAddressFormat","paymentMethodData","info","shippingAddress","setState","tokenizationData","token","cardNetwork","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","transactionState","handleResponse","setElementStatus","fallbackMessage","get","intent","reason","message","responseWithError","handleFailedResult","prefetch","prefetchPaymentData","bind","paymentDataCallbacks","onPaymentDataChanged","merchantId","GooglePayService","environment","googlepay","txVariants","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"GooglePay.js","sources":["../../../../src/components/GooglePay/GooglePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GooglePayService from './GooglePayService';\nimport GooglePayButton from './components/GooglePayButton';\nimport defaultProps from './defaultProps';\nimport { formatGooglePayContactToAdyenAddressFormat, getGooglePayLocale } from './utils';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport {\n ANALYTICS_EXPRESS_PAGES_ARRAY,\n ANALYTICS_INSTANT_PAYMENT_BUTTON,\n ANALYTICS_RENDERED_STR,\n ANALYTICS_SELECTED_STR\n} from '../../core/Analytics/constants';\n\nimport type { AddressData, BrowserInfo, PaymentMethod, PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport type { GooglePayConfiguration } from './types';\nimport type { ICore } from '../../core/types';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\nimport { mapGooglePayBrands } from './utils/map-adyen-brands-to-googlepay-brands';\n\nconst DEFAULT_ALLOWED_CARD_NETWORKS: google.payments.api.CardNetwork[] = ['AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA'];\n\nclass GooglePay extends UIElement<GooglePayConfiguration> {\n public static type = TxVariants.googlepay;\n public static txVariants = [TxVariants.googlepay, TxVariants.paywithgoogle];\n public static defaultProps = defaultProps;\n\n protected readonly googlePay;\n\n constructor(checkout: ICore, props?: GooglePayConfiguration) {\n super(checkout, props);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.showGooglePayPaymentSheet = this.showGooglePayPaymentSheet.bind(this);\n\n const { isExpress, paymentDataCallbacks } = this.props;\n\n if (isExpress === false && paymentDataCallbacks?.onPaymentDataChanged) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - You must set \"isExpress\" flag to \"true\" in order to use \"onPaymentDataChanged\" callback'\n );\n }\n\n if (!this.props.configuration.merchantId) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.'\n );\n }\n\n this.googlePay = new GooglePayService(this.props.environment, this.analytics, {\n ...(isExpress && paymentDataCallbacks?.onPaymentDataChanged && { onPaymentDataChanged: paymentDataCallbacks.onPaymentDataChanged }),\n onPaymentAuthorized: this.onPaymentAuthorized\n });\n }\n\n /**\n * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.\n * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants\n *\n * @param type\n * @returns\n */\n protected override getPaymentMethodFromPaymentMethodsResponse(type?: string): PaymentMethod {\n return (\n this.core.paymentMethodsResponse.find(type || this.constructor['type']) || this.core.paymentMethodsResponse.find(TxVariants.paywithgoogle)\n );\n }\n\n protected override formatProps(props: GooglePayConfiguration): GooglePayConfiguration {\n const buttonSizeMode = props.buttonSizeMode ?? (props.isDropin ? 'fill' : 'static');\n const buttonLocale = getGooglePayLocale(props.buttonLocale ?? props.i18n?.locale);\n\n const callbackIntents: google.payments.api.CallbackIntent[] = [...props.callbackIntents, 'PAYMENT_AUTHORIZATION'];\n\n const allowedCardNetworks = this.createAllowedCardNetworksValues({\n allowedCardNetworks: props.allowedCardNetworks,\n brands: props.brands\n });\n\n return {\n ...props,\n allowedCardNetworks,\n configuration: props.configuration,\n buttonSizeMode,\n buttonLocale,\n callbackIntents\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData() {\n const { googlePayCardNetwork, googlePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n googlePayCardNetwork,\n googlePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n /**\n * Generate the 'allowedCardNetworks' value used by Google Pay\n *\n * If the 'allowedCardNetworks' is defined in the Component configuration, it will be used. Otherwise we fallback\n * to use the 'brands' returned by the backoffice. It can be that 'brands' is not returned, which in this case we\n * set default values\n *\n * @param {object} brandsConfig\n * @param brandsConfig.allowedCardNetworks - Brands set in the component config\n * @param brandsConfig.brands - Brands returned by backend\n * @private\n */\n private createAllowedCardNetworksValues({\n allowedCardNetworks,\n brands\n }: {\n allowedCardNetworks?: google.payments.api.CardNetwork[];\n brands?: string[];\n }): google.payments.api.CardNetwork[] {\n if (allowedCardNetworks?.length > 0) return allowedCardNetworks;\n if (brands?.length > 0) return mapGooglePayBrands(brands);\n\n return DEFAULT_ALLOWED_CARD_NETWORKS;\n }\n\n protected submitAnalytics(analyticsObj: AnalyticsEvent) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n if (analyticsObj instanceof AnalyticsInfoEvent && analyticsObj.type === ANALYTICS_RENDERED_STR) {\n const { isExpress, expressPage } = this.props;\n const hasExpressPage = expressPage && ANALYTICS_EXPRESS_PAGES_ARRAY.includes(expressPage);\n\n if (typeof isExpress === 'boolean') {\n analyticsObj.isExpress = isExpress;\n }\n\n if (isExpress === true && hasExpressPage) {\n analyticsObj.expressPage = expressPage; // We only care about the expressPage value if isExpress is true\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n /**\n * Displays the Google Pay payment sheet overlay\n */\n private showGooglePayPaymentSheet() {\n this.googlePay.initiatePayment(this.props, this.core.options.countryCode).catch((error: google.payments.api.PaymentsError) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this.handleError(new AdyenCheckoutError(error.statusCode === 'CANCELED' ? 'CANCEL' : 'ERROR', error.toString(), { cause: error }));\n });\n }\n\n public override submit = () => {\n if (this.props.isInstantPayment) {\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_SELECTED_STR,\n target: ANALYTICS_INSTANT_PAYMENT_BUTTON\n });\n\n this.submitAnalytics(event);\n }\n\n new Promise<void>((resolve, reject) => this.props.onClick(resolve, reject)).then(this.showGooglePayPaymentSheet).catch(() => {\n // Swallow exception triggered by onClick reject\n });\n };\n\n /**\n * Method called when the payment is authorized in the payment sheet\n *\n * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized\n **/\n private onPaymentAuthorized = async (paymentData: google.payments.api.PaymentData): Promise<google.payments.api.PaymentAuthorizationResult> => {\n const billingAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.paymentMethodData.info.billingAddress);\n const deliveryAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.shippingAddress, true);\n\n this.setState({\n authorizedEvent: paymentData,\n googlePayToken: paymentData.paymentMethodData.tokenizationData.token,\n googlePayCardNetwork: paymentData.paymentMethodData.info.cardNetwork,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<google.payments.api.PaymentAuthorizationResult>(resolve => {\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then((paymentResponse: PaymentResponseData) => {\n resolve({ transactionState: 'SUCCESS' });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n this.setElementStatus('ready');\n\n const googlePayError = paymentResponse?.error?.googlePayError;\n const fallbackMessage = this.props.i18n.get('error.subtitle.payment');\n\n const error: google.payments.api.PaymentDataError =\n typeof googlePayError === 'string' || undefined\n ? {\n intent: 'PAYMENT_AUTHORIZATION',\n reason: 'OTHER_ERROR',\n message: (googlePayError as string) || fallbackMessage\n }\n : {\n intent: googlePayError?.intent || 'PAYMENT_AUTHORIZATION',\n reason: googlePayError?.reason || 'OTHER_ERROR',\n message: googlePayError?.message || fallbackMessage\n };\n\n resolve({\n transactionState: 'ERROR',\n error\n });\n\n const responseWithError = {\n ...paymentResponse,\n error: {\n googlePayError: error\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n });\n };\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: google.payments.api.PaymentDataError | string) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { googlePayError: error } };\n return Promise.reject(data);\n });\n }\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public override async isAvailable(): Promise<void> {\n return this.isReadyToPay()\n .then(response => {\n if (!response.result) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay is not available');\n }\n\n if (response.paymentMethodPresent === false) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay - No paymentMethodPresent');\n }\n\n return Promise.resolve();\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public isReadyToPay = (): Promise<google.payments.api.IsReadyToPayResponse> => {\n return this.googlePay.isReadyToPay(this.props);\n };\n\n /**\n * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.\n */\n public prefetch = (): void => {\n return this.googlePay.prefetchPaymentData(this.props, this.core.options.countryCode);\n };\n\n get browserInfo(): BrowserInfo {\n return collectBrowserInfo();\n }\n\n get icon(): string {\n return this.props.icon ?? this.resources.getImage()('googlepay');\n }\n\n render() {\n if (this.props.showPayButton) {\n return (\n <GooglePayButton\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonSizeMode={this.props.buttonSizeMode}\n buttonLocale={this.props.buttonLocale}\n buttonRootNode={this.props.buttonRootNode}\n buttonRadius={this.props.buttonRadius}\n paymentsClient={this.googlePay.paymentsClient}\n onClick={this.submit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default GooglePay;\n"],"names":["DEFAULT_ALLOWED_CARD_NETWORKS","GooglePay","UIElement","getPaymentMethodFromPaymentMethodsResponse","type","this","core","paymentMethodsResponse","find","constructor","TxVariants","paywithgoogle","formatProps","props","buttonSizeMode","isDropin","buttonLocale","getGooglePayLocale","i18n","locale","callbackIntents","allowedCardNetworks","createAllowedCardNetworksValues","brands","_object_spread_props","_object_spread","configuration","formatData","googlePayCardNetwork","googlePayToken","billingAddress","deliveryAddress","state","isExpress","paymentMethod","subtype","browserInfo","origin","window","location","length","mapGooglePayBrands","submitAnalytics","analyticsObj","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","expressPage","hasExpressPage","ANALYTICS_EXPRESS_PAGES_ARRAY","includes","super","showGooglePayPaymentSheet","googlePay","initiatePayment","options","countryCode","catch","error","handleError","AdyenCheckoutError","statusCode","toString","cause","handleAuthorization","Promise","resolve","reject","onAuthorized","authorizedEvent","data","googlePayError","isValid","isAvailable","isReadyToPay","then","response","result","paymentMethodPresent","collectBrowserInfo","icon","_this_props_icon","resources","getImage","render","showPayButton","h","GooglePayButton","buttonColor","buttonType","buttonRootNode","buttonRadius","paymentsClient","onClick","submit","checkout","_define_property","isInstantPayment","event","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onPaymentAuthorized","async","paymentData","formatGooglePayContactToAdyenAddressFormat","paymentMethodData","info","shippingAddress","setState","tokenizationData","token","cardNetwork","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","transactionState","handleResponse","setElementStatus","fallbackMessage","get","intent","reason","message","responseWithError","handleFailedResult","prefetch","prefetchPaymentData","bind","paymentDataCallbacks","onPaymentDataChanged","merchantId","GooglePayService","environment","analytics","googlepay","txVariants","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{isReadyToPayRequest as t,initiatePaymentRequest as e}from"./requests.js";import{resolveEnvironment as a}from"./utils.js";import n from"../../utils/Script.js";import i from"./config.js";class o{async getGooglePaymentsClient(t){var e;if(!(null===(e=window.google)||void 0===e?void 0:e.payments)){const t=new n(i.URL);await t.load()}return new google.payments.api.PaymentsClient(t)}isReadyToPay(e){return this.paymentsClient?this.paymentsClient.then(a=>a.isReadyToPay(t(e))):Promise.reject(new Error("Google Pay is not available"))}prefetchPaymentData(t,a){if(!this.paymentsClient)throw new Error("Google Pay is not available");const n=e(t,a);this.paymentsClient.then(t=>t.prefetchPaymentData(n))}initiatePayment(t,a){if(!this.paymentsClient)throw new Error("Google Pay is not available");const n=e(t,a);return this.paymentsClient.then(t=>t.loadPaymentData(n))}constructor(t,e){var n,i,o;o=void 0,(i="paymentsClient")in(n=this)?Object.defineProperty(n,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[i]=o;const s=a(t);this.paymentsClient=this.getGooglePaymentsClient({environment:s,paymentDataCallbacks:e})}}export{o as default};
1
+ import{isReadyToPayRequest as t,initiatePaymentRequest as e}from"./requests.js";import{resolveEnvironment as n}from"./utils.js";import a from"../../utils/Script.js";import i from"./config.js";function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}class s{async getGooglePaymentsClient(t){var e;if(!(null===(e=window.google)||void 0===e?void 0:e.payments)){const t=new a({src:i.URL,component:"googlepay",analytics:this.analytics});await t.load()}return new google.payments.api.PaymentsClient(t)}isReadyToPay(e){return this.paymentsClient?this.paymentsClient.then(n=>n.isReadyToPay(t(e))):Promise.reject(new Error("Google Pay is not available"))}prefetchPaymentData(t,n){if(!this.paymentsClient)throw new Error("Google Pay is not available");const a=e(t,n);this.paymentsClient.then(t=>t.prefetchPaymentData(a))}initiatePayment(t,n){if(!this.paymentsClient)throw new Error("Google Pay is not available");const a=e(t,n);return this.paymentsClient.then(t=>t.loadPaymentData(a))}constructor(t,e,a){o(this,"analytics",void 0),o(this,"paymentsClient",void 0);const i=n(t);this.analytics=e,this.paymentsClient=this.getGooglePaymentsClient({environment:i,paymentDataCallbacks:a})}}export{s as default};
2
2
  //# sourceMappingURL=GooglePayService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GooglePayService.js","sources":["../../../../src/components/GooglePay/GooglePayService.ts"],"sourcesContent":["import { isReadyToPayRequest, initiatePaymentRequest } from './requests';\nimport { resolveEnvironment } from './utils';\nimport Script from '../../utils/Script';\nimport config from './config';\nimport type { GooglePayConfiguration } from './types';\n\nclass GooglePayService {\n public readonly paymentsClient: Promise<google.payments.api.PaymentsClient>;\n\n constructor(environment: string, paymentDataCallbacks: google.payments.api.PaymentDataCallbacks) {\n const googlePayEnvironment = resolveEnvironment(environment);\n\n this.paymentsClient = this.getGooglePaymentsClient({\n environment: googlePayEnvironment,\n paymentDataCallbacks\n });\n }\n\n /**\n * Initialize a Google Pay API client\n *\n * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}\n * @returns Google Pay API client\n */\n async getGooglePaymentsClient(paymentOptions: google.payments.api.PaymentOptions): Promise<google.payments.api.PaymentsClient> {\n if (!window.google?.payments) {\n const script = new Script(config.URL);\n await script.load();\n }\n\n return new google.payments.api.PaymentsClient(paymentOptions);\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n * @see {@link https://developers.google.com/pay/api/web/reference/client#isReadyToPay|isReadyToPay}\n */\n isReadyToPay(props): Promise<google.payments.api.IsReadyToPayResponse> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) return Promise.reject(new Error('Google Pay is not available'));\n\n return this.paymentsClient.then(client => client.isReadyToPay(isReadyToPayRequest(props)));\n }\n\n prefetchPaymentData(props: GooglePayConfiguration, countryCode: string): void {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) throw new Error('Google Pay is not available');\n\n const paymentDataRequest = initiatePaymentRequest(props, countryCode);\n void this.paymentsClient.then(client => client.prefetchPaymentData(paymentDataRequest));\n }\n\n /**\n * Show Google Pay payment sheet when Google Pay payment button is clicked\n * @returns paymentData response from Google Pay API after user approves payment\n * @see {@link https://developers.google.com/pay/api/web/reference/object#PaymentData|PaymentData object reference}\n */\n initiatePayment(props: GooglePayConfiguration, countryCode: string): Promise<google.payments.api.PaymentData> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) throw new Error('Google Pay is not available');\n\n const paymentDataRequest = initiatePaymentRequest(props, countryCode);\n return this.paymentsClient.then(client => client.loadPaymentData(paymentDataRequest));\n }\n}\n\nexport default GooglePayService;\n"],"names":["GooglePayService","getGooglePaymentsClient","paymentOptions","window","google","payments","script","Script","config","URL","load","api","PaymentsClient","isReadyToPay","props","this","paymentsClient","then","client","isReadyToPayRequest","Promise","reject","Error","prefetchPaymentData","countryCode","paymentDataRequest","initiatePaymentRequest","initiatePayment","loadPaymentData","constructor","environment","paymentDataCallbacks","googlePayEnvironment","resolveEnvironment"],"mappings":"gMAMA,MAAMA,EAkBF,6BAAMC,CAAwBC,GACrBC,IAAAA,EAAL,aAAKA,EAAAA,OAAOC,cAAPD,IAAAA,OAAAA,EAAAA,EAAeE,UAAU,CAC1B,MAAMC,EAAS,IAAIC,EAAOC,EAAOC,WAC3BH,EAAOI,MACjB,CAEA,OAAO,IAAIN,OAAOC,SAASM,IAAIC,eAAeV,EAClD,CAMAW,YAAAA,CAAaC,GAET,OAAKC,KAAKC,eAEHD,KAAKC,eAAeC,KAAKC,GAAUA,EAAOL,aAAaM,EAAoBL,KAFjDM,QAAQC,OAAO,IAAIC,MAAM,+BAG9D,CAEAC,mBAAAA,CAAoBT,EAA+BU,GAE/C,IAAKT,KAAKC,eAAgB,MAAM,IAAIM,MAAM,+BAE1C,MAAMG,EAAqBC,EAAuBZ,EAAOU,GACpDT,KAAKC,eAAeC,KAAKC,GAAUA,EAAOK,oBAAoBE,GACvE,CAOAE,eAAAA,CAAgBb,EAA+BU,GAE3C,IAAKT,KAAKC,eAAgB,MAAM,IAAIM,MAAM,+BAE1C,MAAMG,EAAqBC,EAAuBZ,EAAOU,GACzD,OAAOT,KAAKC,eAAeC,KAAKC,GAAUA,EAAOU,gBAAgBH,GACrE,CAtDA,WAAAI,CAAYC,EAAqBC,oBAFjC,KAAgBf,sBAAhBD,4FAGI,MAAMiB,EAAuBC,EAAmBH,GAEhDf,KAAKC,eAAiBD,KAAKd,wBAAwB,CAC/C6B,YAAaE,EACbD,wBAER"}
1
+ {"version":3,"file":"GooglePayService.js","sources":["../../../../src/components/GooglePay/GooglePayService.ts"],"sourcesContent":["import { isReadyToPayRequest, initiatePaymentRequest } from './requests';\nimport { resolveEnvironment } from './utils';\nimport Script from '../../utils/Script';\nimport config from './config';\nimport type { GooglePayConfiguration } from './types';\nimport { AnalyticsModule } from '../../types/global-types';\n\nclass GooglePayService {\n private readonly analytics: AnalyticsModule;\n\n public readonly paymentsClient: Promise<google.payments.api.PaymentsClient>;\n\n constructor(environment: string, analytics: AnalyticsModule, paymentDataCallbacks: google.payments.api.PaymentDataCallbacks) {\n const googlePayEnvironment = resolveEnvironment(environment);\n\n this.analytics = analytics;\n this.paymentsClient = this.getGooglePaymentsClient({\n environment: googlePayEnvironment,\n paymentDataCallbacks\n });\n }\n\n /**\n * Initialize a Google Pay API client\n *\n * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}\n * @returns Google Pay API client\n */\n async getGooglePaymentsClient(paymentOptions: google.payments.api.PaymentOptions): Promise<google.payments.api.PaymentsClient> {\n if (!window.google?.payments) {\n const script = new Script({ src: config.URL, component: 'googlepay', analytics: this.analytics });\n await script.load();\n }\n\n return new google.payments.api.PaymentsClient(paymentOptions);\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n * @see {@link https://developers.google.com/pay/api/web/reference/client#isReadyToPay|isReadyToPay}\n */\n isReadyToPay(props): Promise<google.payments.api.IsReadyToPayResponse> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) return Promise.reject(new Error('Google Pay is not available'));\n\n return this.paymentsClient.then(client => client.isReadyToPay(isReadyToPayRequest(props)));\n }\n\n prefetchPaymentData(props: GooglePayConfiguration, countryCode: string): void {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) throw new Error('Google Pay is not available');\n\n const paymentDataRequest = initiatePaymentRequest(props, countryCode);\n void this.paymentsClient.then(client => client.prefetchPaymentData(paymentDataRequest));\n }\n\n /**\n * Show Google Pay payment sheet when Google Pay payment button is clicked\n * @returns paymentData response from Google Pay API after user approves payment\n * @see {@link https://developers.google.com/pay/api/web/reference/object#PaymentData|PaymentData object reference}\n */\n initiatePayment(props: GooglePayConfiguration, countryCode: string): Promise<google.payments.api.PaymentData> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) throw new Error('Google Pay is not available');\n\n const paymentDataRequest = initiatePaymentRequest(props, countryCode);\n return this.paymentsClient.then(client => client.loadPaymentData(paymentDataRequest));\n }\n}\n\nexport default GooglePayService;\n"],"names":["GooglePayService","getGooglePaymentsClient","paymentOptions","window","google","payments","script","Script","src","config","URL","component","analytics","this","load","api","PaymentsClient","isReadyToPay","props","paymentsClient","then","client","isReadyToPayRequest","Promise","reject","Error","prefetchPaymentData","countryCode","paymentDataRequest","initiatePaymentRequest","initiatePayment","loadPaymentData","constructor","environment","paymentDataCallbacks","_define_property","googlePayEnvironment","resolveEnvironment"],"mappings":"wTAOA,MAAMA,EAqBF,6BAAMC,CAAwBC,GACrBC,IAAAA,EAAL,aAAKA,EAAAA,OAAOC,cAAPD,IAAAA,OAAAA,EAAAA,EAAeE,UAAU,CAC1B,MAAMC,EAAS,IAAIC,EAAO,CAAEC,IAAKC,EAAOC,IAAKC,UAAW,YAAaC,UAAWC,KAAKD,kBAC/EN,EAAOQ,MACjB,CAEA,OAAO,IAAIV,OAAOC,SAASU,IAAIC,eAAed,EAClD,CAMAe,YAAAA,CAAaC,GAET,OAAKL,KAAKM,eAEHN,KAAKM,eAAeC,KAAKC,GAAUA,EAAOJ,aAAaK,EAAoBJ,KAFjDK,QAAQC,OAAO,IAAIC,MAAM,+BAG9D,CAEAC,mBAAAA,CAAoBR,EAA+BS,GAE/C,IAAKd,KAAKM,eAAgB,MAAM,IAAIM,MAAM,+BAE1C,MAAMG,EAAqBC,EAAuBX,EAAOS,GACpDd,KAAKM,eAAeC,KAAKC,GAAUA,EAAOK,oBAAoBE,GACvE,CAOAE,eAAAA,CAAgBZ,EAA+BS,GAE3C,IAAKd,KAAKM,eAAgB,MAAM,IAAIM,MAAM,+BAE1C,MAAMG,EAAqBC,EAAuBX,EAAOS,GACzD,OAAOd,KAAKM,eAAeC,KAAKC,GAAUA,EAAOU,gBAAgBH,GACrE,CAvDA,WAAAI,CAAYC,EAAqBrB,EAA4BsB,GAJ7DC,EAAAtB,KAAiBD,iBAAjB,GAEAuB,EAAAtB,KAAgBM,sBAAhB,GAGI,MAAMiB,EAAuBC,EAAmBJ,GAEhDpB,KAAKD,UAAYA,EACjBC,KAAKM,eAAiBN,KAAKZ,wBAAwB,CAC/CgC,YAAaG,EACbF,wBAER"}
@@ -1,2 +1,2 @@
1
- const e={isExpress:!1,existingPaymentMethodRequired:!1,buttonColor:"default",buttonType:"buy",buttonSizeMode:"fill",configuration:{gatewayMerchantId:"",merchantId:"",merchantName:""},amount:{value:0,currency:"USD"},totalPriceStatus:"FINAL",onClick:e=>e(),allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowedCardNetworks:["AMEX","DISCOVER","JCB","MASTERCARD","VISA"],allowCreditCards:!0,allowPrepaidCards:!0,billingAddressRequired:!1,billingAddressParameters:void 0,assuranceDetailsRequired:!1,emailRequired:!1,shippingAddressRequired:!1,shippingAddressParameters:void 0,shippingOptionRequired:!1,shippingOptionParameters:void 0,callbackIntents:[]};export{e as default};
1
+ const e={isExpress:!1,existingPaymentMethodRequired:!1,buttonColor:"default",buttonType:"buy",buttonSizeMode:"fill",configuration:{gatewayMerchantId:"",merchantId:"",merchantName:""},amount:{value:0,currency:"USD"},totalPriceStatus:"FINAL",onClick:e=>e(),allowedAuthMethods:["PAN_ONLY","CRYPTOGRAM_3DS"],allowCreditCards:!0,allowPrepaidCards:!0,billingAddressRequired:!1,billingAddressParameters:void 0,assuranceDetailsRequired:!1,emailRequired:!1,shippingAddressRequired:!1,shippingAddressParameters:void 0,shippingOptionRequired:!1,shippingOptionParameters:void 0,callbackIntents:[]};export{e as default};
2
2
  //# sourceMappingURL=defaultProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultProps.js","sources":["../../../../src/components/GooglePay/defaultProps.ts"],"sourcesContent":["import { GooglePayConfiguration } from './types';\n\nconst defaultProps: GooglePayConfiguration = {\n isExpress: false,\n\n // isReadyToPayRequest\n existingPaymentMethodRequired: false,\n\n // ButtonOptions\n // https://developers.google.com/pay/api/web/reference/object#ButtonOptions\n buttonColor: 'default',\n buttonType: 'buy',\n buttonSizeMode: 'fill',\n\n // PaymentDataRequest\n configuration: {\n // Adyen's merchant account\n gatewayMerchantId: '', // E.g TestMerchant\n\n // https://developers.google.com/pay/api/web/reference/object#MerchantInfo\n merchantId: '', // E.g 039484839309\n merchantName: '' // E.g Example Merchant,\n },\n\n // Payment\n amount: {\n value: 0,\n currency: 'USD'\n },\n\n totalPriceStatus: 'FINAL',\n\n // Callbacks\n onClick: resolve => resolve(),\n\n // CardParameters\n // https://developers.google.com/pay/api/web/reference/object#CardParameters\n allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'] as google.payments.api.CardAuthMethod[],\n allowedCardNetworks: ['AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA'] as google.payments.api.CardNetwork[],\n allowCreditCards: true, // Set to false if you don't support credit cards.\n allowPrepaidCards: true, // Set to false if you don't support prepaid cards.\n billingAddressRequired: false, // A billing address should only be requested if it's required to process the transaction.\n billingAddressParameters: undefined, // The expected fields returned if billingAddressRequired is set to true.\n assuranceDetailsRequired: false, // https://developers.google.com/pay/api/web/reference/response-objects#assurance-details-specifications\n\n emailRequired: false,\n shippingAddressRequired: false,\n shippingAddressParameters: undefined, // https://developers.google.com/pay/api/web/reference/object#ShippingAddressParameters\n shippingOptionRequired: false,\n shippingOptionParameters: undefined,\n callbackIntents: []\n};\n\nexport default defaultProps;\n"],"names":["defaultProps","isExpress","existingPaymentMethodRequired","buttonColor","buttonType","buttonSizeMode","configuration","gatewayMerchantId","merchantId","merchantName","amount","value","currency","totalPriceStatus","onClick","resolve","allowedAuthMethods","allowedCardNetworks","allowCreditCards","allowPrepaidCards","billingAddressRequired","billingAddressParameters","undefined","assuranceDetailsRequired","emailRequired","shippingAddressRequired","shippingAddressParameters","shippingOptionRequired","shippingOptionParameters","callbackIntents"],"mappings":"AAEA,MAAMA,EAAuC,CACzCC,WAAW,EAGXC,+BAA+B,EAI/BC,YAAa,UACbC,WAAY,MACZC,eAAgB,OAGhBC,cAAe,CAEXC,kBAAmB,GAGnBC,WAAY,GACZC,aAAc,IAIlBC,OAAQ,CACJC,MAAO,EACPC,SAAU,OAGdC,iBAAkB,QAGlBC,QAASC,GAAWA,IAIpBC,mBAAoB,CAAC,WAAY,kBACjCC,oBAAqB,CAAC,OAAQ,WAAY,MAAO,aAAc,QAC/DC,kBAAkB,EAClBC,mBAAmB,EACnBC,wBAAwB,EACxBC,8BAA0BC,EAC1BC,0BAA0B,EAE1BC,eAAe,EACfC,yBAAyB,EACzBC,+BAA2BJ,EAC3BK,wBAAwB,EACxBC,8BAA0BN,EAC1BO,gBAAiB"}
1
+ {"version":3,"file":"defaultProps.js","sources":["../../../../src/components/GooglePay/defaultProps.ts"],"sourcesContent":["import { GooglePayConfiguration } from './types';\n\nconst defaultProps: GooglePayConfiguration = {\n isExpress: false,\n\n // isReadyToPayRequest\n existingPaymentMethodRequired: false,\n\n // ButtonOptions\n // https://developers.google.com/pay/api/web/reference/object#ButtonOptions\n buttonColor: 'default',\n buttonType: 'buy',\n buttonSizeMode: 'fill',\n\n // PaymentDataRequest\n configuration: {\n // Adyen's merchant account\n gatewayMerchantId: '', // E.g TestMerchant\n\n // https://developers.google.com/pay/api/web/reference/object#MerchantInfo\n merchantId: '', // E.g 039484839309\n merchantName: '' // E.g Example Merchant,\n },\n\n // Payment\n amount: {\n value: 0,\n currency: 'USD'\n },\n\n totalPriceStatus: 'FINAL',\n\n // Callbacks\n onClick: resolve => resolve(),\n\n // CardParameters\n // https://developers.google.com/pay/api/web/reference/object#CardParameters\n allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'] as google.payments.api.CardAuthMethod[],\n allowCreditCards: true, // Set to false if you don't support credit cards.\n allowPrepaidCards: true, // Set to false if you don't support prepaid cards.\n billingAddressRequired: false, // A billing address should only be requested if it's required to process the transaction.\n billingAddressParameters: undefined, // The expected fields returned if billingAddressRequired is set to true.\n assuranceDetailsRequired: false, // https://developers.google.com/pay/api/web/reference/response-objects#assurance-details-specifications\n\n emailRequired: false,\n shippingAddressRequired: false,\n shippingAddressParameters: undefined, // https://developers.google.com/pay/api/web/reference/object#ShippingAddressParameters\n shippingOptionRequired: false,\n shippingOptionParameters: undefined,\n callbackIntents: []\n};\n\nexport default defaultProps;\n"],"names":["defaultProps","isExpress","existingPaymentMethodRequired","buttonColor","buttonType","buttonSizeMode","configuration","gatewayMerchantId","merchantId","merchantName","amount","value","currency","totalPriceStatus","onClick","resolve","allowedAuthMethods","allowCreditCards","allowPrepaidCards","billingAddressRequired","billingAddressParameters","undefined","assuranceDetailsRequired","emailRequired","shippingAddressRequired","shippingAddressParameters","shippingOptionRequired","shippingOptionParameters","callbackIntents"],"mappings":"AAEA,MAAMA,EAAuC,CACzCC,WAAW,EAGXC,+BAA+B,EAI/BC,YAAa,UACbC,WAAY,MACZC,eAAgB,OAGhBC,cAAe,CAEXC,kBAAmB,GAGnBC,WAAY,GACZC,aAAc,IAIlBC,OAAQ,CACJC,MAAO,EACPC,SAAU,OAGdC,iBAAkB,QAGlBC,QAASC,GAAWA,IAIpBC,mBAAoB,CAAC,WAAY,kBACjCC,kBAAkB,EAClBC,mBAAmB,EACnBC,wBAAwB,EACxBC,8BAA0BC,EAC1BC,0BAA0B,EAE1BC,eAAe,EACfC,yBAAyB,EACzBC,+BAA2BJ,EAC3BK,wBAAwB,EACxBC,8BAA0BN,EAC1BO,gBAAiB"}
@@ -0,0 +1,2 @@
1
+ const e=Object.freeze({mc:"MASTERCARD",amex:"AMEX",visa:"VISA",elodebit:"ELO_DEBIT",elo:"ELO",interac:"INTERAC",discover:"DISCOVER",jcb:"JCB",electron:"ELECTRON",maestro:"MAESTRO"});function t(t){const E=t.map(t=>e[t]).filter(e=>!!e);return[...new Set(E)]}export{t as mapGooglePayBrands};
2
+ //# sourceMappingURL=map-adyen-brands-to-googlepay-brands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-adyen-brands-to-googlepay-brands.js","sources":["../../../../../src/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.ts"],"sourcesContent":["const brandMapping: Record<string, google.payments.api.CardNetwork> = Object.freeze({\n mc: 'MASTERCARD',\n amex: 'AMEX',\n visa: 'VISA',\n elodebit: 'ELO_DEBIT',\n elo: 'ELO',\n interac: 'INTERAC',\n discover: 'DISCOVER',\n jcb: 'JCB',\n electron: 'ELECTRON',\n maestro: 'MAESTRO'\n});\n\nexport function mapGooglePayBrands(brands: string[]): google.payments.api.CardNetwork[] {\n const mappedBrands = brands.map(brand => brandMapping[brand]).filter((brand): brand is google.payments.api.CardNetwork => !!brand);\n return [...new Set(mappedBrands)];\n}\n"],"names":["brandMapping","Object","freeze","mc","amex","visa","elodebit","elo","interac","discover","jcb","electron","maestro","mapGooglePayBrands","brands","mappedBrands","map","brand","filter","Set"],"mappings":"AAAA,MAAMA,EAAgEC,OAAOC,OAAO,CAChFC,GAAI,aACJC,KAAM,OACNC,KAAM,OACNC,SAAU,YACVC,IAAK,MACLC,QAAS,UACTC,SAAU,WACVC,IAAK,MACLC,SAAU,WACVC,QAAS,YAGN,SAASC,EAAmBC,GAC/B,MAAMC,EAAeD,EAAOE,IAAIC,GAASjB,EAAaiB,IAAQC,OAAQD,KAAsDA,GAC5H,MAAO,IAAI,IAAIE,IAAIJ,GACvB"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import o from"../internal/PayButton/PayButton.js";import{KlarnaContainer as r}from"./components/KlarnaContainer/KlarnaContainer.js";import{TxVariants as i}from"../tx-variants.js";function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.forEach(function(e){s(t,e,n[e])})}return t}function p(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e}(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}class c extends e{get isValid(){return!0}formatData(){return{paymentMethod:a({type:this.type},this.props.useKlarnaWidget?{subtype:"sdk"}:{})}}handleAction(t,e={}){if("sdk"!==t.type)return super.handleAction(t,e);this.updateWithAction(t)}updateWithAction(t){if(t.paymentMethodType!==this.type)throw new Error("Invalid Action");this.componentRef.setAction(t)}onLoaded(){this.setElementStatus("ready")}activate(){this.componentRef.reinitializeWidget()}onComplete(t){this.handleAdditionalDetails(t)}render(){return t(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(r,p(a({},this.props),{setComponentRef:this.setComponentRef,displayName:this.displayName,onComplete:this.onComplete,onError:this.props.onError,payButton:this.payButton,onLoaded:this.onLoaded,showPayButton:this.props.showPayButton,onActionHandled:this.onActionHandled,type:this.props.type})))}constructor(e,n){super(e,n),s(this,"componentRef",void 0),s(this,"payButton",e=>t(o,a({amount:this.props.amount,onClick:this.submit},e))),this.onComplete=this.onComplete.bind(this),this.updateWithAction=this.updateWithAction.bind(this),this.submit=this.submit.bind(this),this.onLoaded=this.onLoaded.bind(this)}}s(c,"type",i.klarna),s(c,"txVariants",[i.klarna,i.klarna_account,i.klarna_paynow,i.klarna_b2b]),s(c,"defaultProps",{useKlarnaWidget:!1});export{c as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import o from"../internal/PayButton/PayButton.js";import{KlarnaContainer as r}from"./components/KlarnaContainer/KlarnaContainer.js";import{TxVariants as i}from"../tx-variants.js";function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.forEach(function(e){s(t,e,n[e])})}return t}function p(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e}(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}class c extends e{get isValid(){return!0}formatData(){return{paymentMethod:a({type:this.type},this.props.useKlarnaWidget?{subtype:"sdk"}:{})}}handleAction(t,e={}){if("sdk"!==t.type)return super.handleAction(t,e);this.updateWithAction(t)}updateWithAction(t){if(t.paymentMethodType!==this.type)throw new Error("Invalid Action");this.componentRef.setAction(t)}onLoaded(){this.setElementStatus("ready")}activate(){this.componentRef.reinitializeWidget()}onComplete(t){this.handleAdditionalDetails(t)}render(){return t(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources,analytics:this.analytics},t(r,p(a({},this.props),{setComponentRef:this.setComponentRef,displayName:this.displayName,onComplete:this.onComplete,onError:this.props.onError,payButton:this.payButton,onLoaded:this.onLoaded,showPayButton:this.props.showPayButton,onActionHandled:this.onActionHandled,type:this.props.type})))}constructor(e,n){super(e,n),s(this,"componentRef",void 0),s(this,"payButton",e=>t(o,a({amount:this.props.amount,onClick:this.submit},e))),this.onComplete=this.onComplete.bind(this),this.updateWithAction=this.updateWithAction.bind(this),this.submit=this.submit.bind(this),this.onLoaded=this.onLoaded.bind(this)}}s(c,"type",i.klarna),s(c,"txVariants",[i.klarna,i.klarna_account,i.klarna_paynow,i.klarna_b2b]),s(c,"defaultProps",{useKlarnaWidget:!1});export{c as default};
2
2
  //# sourceMappingURL=KlarnaPayments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KlarnaPayments.js","sources":["../../../../src/components/Klarna/KlarnaPayments.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport PayButton from '../internal/PayButton';\nimport { KlarnaContainer } from './components/KlarnaContainer/KlarnaContainer';\nimport { TxVariants } from '../tx-variants';\nimport type { KlarnaAction, KlarnaAdditionalDetailsData, KlarnaComponentRef, KlarnaConfiguration } from './types';\nimport type { ICore } from '../../core/types';\n\nclass KlarnaPayments extends UIElement<KlarnaConfiguration> {\n public static type = TxVariants.klarna;\n public static txVariants = [TxVariants.klarna, TxVariants.klarna_account, TxVariants.klarna_paynow, TxVariants.klarna_b2b];\n\n public componentRef: KlarnaComponentRef;\n\n protected static defaultProps = {\n useKlarnaWidget: false\n };\n\n constructor(checkout: ICore, props?: KlarnaConfiguration) {\n super(checkout, props);\n\n this.onComplete = this.onComplete.bind(this);\n this.updateWithAction = this.updateWithAction.bind(this);\n this.submit = this.submit.bind(this);\n this.onLoaded = this.onLoaded.bind(this);\n }\n get isValid() {\n return true;\n }\n\n protected formatData() {\n return {\n paymentMethod: {\n type: this.type,\n ...(this.props.useKlarnaWidget ? { subtype: 'sdk' } : {})\n }\n };\n }\n\n public payButton = props => {\n return <PayButton amount={this.props.amount} onClick={this.submit} {...props} />;\n };\n\n public override handleAction(action: KlarnaAction, props = {}): UIElement | null {\n if (action.type === 'sdk') {\n this.updateWithAction(action);\n return;\n }\n return super.handleAction(action, props);\n }\n\n updateWithAction(action: KlarnaAction): void {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n this.componentRef.setAction(action);\n }\n\n private onLoaded() {\n // When action/widget is loaded, set the 'drop-in' back to ready\n this.setElementStatus('ready');\n }\n\n public override activate() {\n this.componentRef.reinitializeWidget();\n }\n\n protected onComplete(details: KlarnaAdditionalDetailsData): void {\n this.handleAdditionalDetails(details);\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <KlarnaContainer\n {...this.props}\n setComponentRef={this.setComponentRef}\n displayName={this.displayName}\n onComplete={this.onComplete}\n onError={this.props.onError}\n payButton={this.payButton}\n onLoaded={this.onLoaded}\n showPayButton={this.props.showPayButton}\n onActionHandled={this.onActionHandled}\n type={this.props.type}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default KlarnaPayments;\n"],"names":["KlarnaPayments","UIElement","isValid","formatData","paymentMethod","_object_spread","type","this","props","useKlarnaWidget","subtype","handleAction","action","super","updateWithAction","paymentMethodType","Error","componentRef","setAction","onLoaded","setElementStatus","activate","reinitializeWidget","onComplete","details","handleAdditionalDetails","render","h","CoreProvider","i18n","loadingContext","resources","KlarnaContainer","setComponentRef","displayName","onError","payButton","showPayButton","onActionHandled","constructor","checkout","_define_property","PayButton","amount","onClick","submit","bind","TxVariants","klarna","txVariants","klarna_account","klarna_paynow","klarna_b2b","defaultProps"],"mappings":"kqCASA,MAAMA,UAAuBC,EAkBzB,WAAIC,GACA,OAAO,CACX,CAEUC,UAAAA,GACN,MAAO,CACHC,cAAeC,EAAA,CACXC,KAAMC,KAAKD,MACPC,KAAKC,MAAMC,gBAAkB,CAAEC,QAAS,OAAU,CAAA,GAGlE,CAMgBC,YAAAA,CAAaC,EAAsBJ,EAAQ,IACvD,GAAoB,QAAhBI,EAAON,KAIX,OAAOO,MAAMF,aAAaC,EAAQJ,GAH9BD,KAAKO,iBAAiBF,EAI9B,CAEAE,gBAAAA,CAAiBF,GACb,GAAIA,EAAOG,oBAAsBR,KAAKD,KAAM,MAAM,IAAIU,MAAM,kBAC5DT,KAAKU,aAAaC,UAAUN,EAChC,CAEQO,QAAAA,GAEJZ,KAAKa,iBAAiB,QAC1B,CAEgBC,QAAAA,GACZd,KAAKU,aAAaK,oBACtB,CAEUC,UAAAA,CAAWC,GACjBjB,KAAKkB,wBAAwBD,EACjC,CAEAE,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMtB,KAAKC,MAAMqB,KAAMC,eAAgBvB,KAAKC,MAAMsB,eAAgBC,UAAWxB,KAAKwB,WAC5FJ,EAACK,EAAAA,EAAAA,EAAAA,GACOzB,KAAKC,OAAK,CACdyB,gBAAiB1B,KAAK0B,gBACtBC,YAAa3B,KAAK2B,YAClBX,WAAYhB,KAAKgB,WACjBY,QAAS5B,KAAKC,MAAM2B,QACpBC,UAAW7B,KAAK6B,UAChBjB,SAAUZ,KAAKY,SACfkB,cAAe9B,KAAKC,MAAM6B,cAC1BC,gBAAiB/B,KAAK+B,gBACtBhC,KAAMC,KAAKC,MAAMF,QAIjC,CApEA,WAAAiC,CAAYC,EAAiBhC,GACzBK,MAAM2B,EAAUhC,GAPpBiC,EAAAlC,KAAOU,oBAAP,GA2BAwB,EAAAlC,KAAO6B,YAAY5B,GACRmB,EAACe,EAAAA,EAAAA,CAAUC,OAAQpC,KAAKC,MAAMmC,OAAQC,QAASrC,KAAKsC,QAAYrC,KAnBvED,KAAKgB,WAAahB,KAAKgB,WAAWuB,KAAKvC,MACvCA,KAAKO,iBAAmBP,KAAKO,iBAAiBgC,KAAKvC,MACnDA,KAAKsC,OAAStC,KAAKsC,OAAOC,KAAKvC,MAC/BA,KAAKY,SAAWZ,KAAKY,SAAS2B,KAAKvC,KACvC,EAhBAkC,EADEzC,EACYM,OAAOyC,EAAWC,QAChCP,EAFEzC,EAEYiD,aAAa,CAACF,EAAWC,OAAQD,EAAWG,eAAgBH,EAAWI,cAAeJ,EAAWK,aAI/GX,EANEzC,EAMeqD,eAAe,CAC5B5C,iBAAiB"}
1
+ {"version":3,"file":"KlarnaPayments.js","sources":["../../../../src/components/Klarna/KlarnaPayments.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport PayButton from '../internal/PayButton';\nimport { KlarnaContainer } from './components/KlarnaContainer/KlarnaContainer';\nimport { TxVariants } from '../tx-variants';\nimport type { KlarnaAction, KlarnaAdditionalDetailsData, KlarnaComponentRef, KlarnaConfiguration } from './types';\nimport type { ICore } from '../../core/types';\nimport { PayButtonFunctionProps } from '../internal/UIElement/types';\n\nclass KlarnaPayments extends UIElement<KlarnaConfiguration> {\n public static type = TxVariants.klarna;\n public static txVariants = [TxVariants.klarna, TxVariants.klarna_account, TxVariants.klarna_paynow, TxVariants.klarna_b2b];\n\n public componentRef: KlarnaComponentRef;\n\n protected static defaultProps = {\n useKlarnaWidget: false\n };\n\n constructor(checkout: ICore, props?: KlarnaConfiguration) {\n super(checkout, props);\n\n this.onComplete = this.onComplete.bind(this);\n this.updateWithAction = this.updateWithAction.bind(this);\n this.submit = this.submit.bind(this);\n this.onLoaded = this.onLoaded.bind(this);\n }\n get isValid() {\n return true;\n }\n\n protected formatData() {\n return {\n paymentMethod: {\n type: this.type,\n ...(this.props.useKlarnaWidget ? { subtype: 'sdk' } : {})\n }\n };\n }\n\n public payButton = (props: PayButtonFunctionProps) => {\n return <PayButton amount={this.props.amount} onClick={this.submit} {...props} />;\n };\n\n public override handleAction(action: KlarnaAction, props = {}): UIElement | null {\n if (action.type === 'sdk') {\n this.updateWithAction(action);\n return;\n }\n return super.handleAction(action, props);\n }\n\n updateWithAction(action: KlarnaAction): void {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n this.componentRef.setAction(action);\n }\n\n private onLoaded() {\n // When action/widget is loaded, set the 'drop-in' back to ready\n this.setElementStatus('ready');\n }\n\n public override activate() {\n this.componentRef.reinitializeWidget();\n }\n\n protected onComplete(details: KlarnaAdditionalDetailsData): void {\n this.handleAdditionalDetails(details);\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources} analytics={this.analytics}>\n <KlarnaContainer\n {...this.props}\n setComponentRef={this.setComponentRef}\n displayName={this.displayName}\n onComplete={this.onComplete}\n onError={this.props.onError}\n payButton={this.payButton}\n onLoaded={this.onLoaded}\n showPayButton={this.props.showPayButton}\n onActionHandled={this.onActionHandled}\n type={this.props.type}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default KlarnaPayments;\n"],"names":["KlarnaPayments","UIElement","isValid","formatData","paymentMethod","_object_spread","type","this","props","useKlarnaWidget","subtype","handleAction","action","super","updateWithAction","paymentMethodType","Error","componentRef","setAction","onLoaded","setElementStatus","activate","reinitializeWidget","onComplete","details","handleAdditionalDetails","render","h","CoreProvider","i18n","loadingContext","resources","analytics","KlarnaContainer","setComponentRef","displayName","onError","payButton","showPayButton","onActionHandled","constructor","checkout","_define_property","PayButton","amount","onClick","submit","bind","TxVariants","klarna","txVariants","klarna_account","klarna_paynow","klarna_b2b","defaultProps"],"mappings":"kqCAUA,MAAMA,UAAuBC,EAkBzB,WAAIC,GACA,OAAO,CACX,CAEUC,UAAAA,GACN,MAAO,CACHC,cAAeC,EAAA,CACXC,KAAMC,KAAKD,MACPC,KAAKC,MAAMC,gBAAkB,CAAEC,QAAS,OAAU,CAAA,GAGlE,CAMgBC,YAAAA,CAAaC,EAAsBJ,EAAQ,IACvD,GAAoB,QAAhBI,EAAON,KAIX,OAAOO,MAAMF,aAAaC,EAAQJ,GAH9BD,KAAKO,iBAAiBF,EAI9B,CAEAE,gBAAAA,CAAiBF,GACb,GAAIA,EAAOG,oBAAsBR,KAAKD,KAAM,MAAM,IAAIU,MAAM,kBAC5DT,KAAKU,aAAaC,UAAUN,EAChC,CAEQO,QAAAA,GAEJZ,KAAKa,iBAAiB,QAC1B,CAEgBC,QAAAA,GACZd,KAAKU,aAAaK,oBACtB,CAEUC,UAAAA,CAAWC,GACjBjB,KAAKkB,wBAAwBD,EACjC,CAEAE,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMtB,KAAKC,MAAMqB,KAAMC,eAAgBvB,KAAKC,MAAMsB,eAAgBC,UAAWxB,KAAKwB,UAAWC,UAAWzB,KAAKyB,WACvHL,EAACM,EAAAA,EAAAA,EAAAA,GACO1B,KAAKC,OAAK,CACd0B,gBAAiB3B,KAAK2B,gBACtBC,YAAa5B,KAAK4B,YAClBZ,WAAYhB,KAAKgB,WACjBa,QAAS7B,KAAKC,MAAM4B,QACpBC,UAAW9B,KAAK8B,UAChBlB,SAAUZ,KAAKY,SACfmB,cAAe/B,KAAKC,MAAM8B,cAC1BC,gBAAiBhC,KAAKgC,gBACtBjC,KAAMC,KAAKC,MAAMF,QAIjC,CApEA,WAAAkC,CAAYC,EAAiBjC,GACzBK,MAAM4B,EAAUjC,GAPpBkC,EAAAnC,KAAOU,oBAAP,GA2BAyB,EAAAnC,KAAO8B,YAAa7B,GACTmB,EAACgB,EAAAA,EAAAA,CAAUC,OAAQrC,KAAKC,MAAMoC,OAAQC,QAAStC,KAAKuC,QAAYtC,KAnBvED,KAAKgB,WAAahB,KAAKgB,WAAWwB,KAAKxC,MACvCA,KAAKO,iBAAmBP,KAAKO,iBAAiBiC,KAAKxC,MACnDA,KAAKuC,OAASvC,KAAKuC,OAAOC,KAAKxC,MAC/BA,KAAKY,SAAWZ,KAAKY,SAAS4B,KAAKxC,KACvC,EAhBAmC,EADE1C,EACYM,OAAO0C,EAAWC,QAChCP,EAFE1C,EAEYkD,aAAa,CAACF,EAAWC,OAAQD,EAAWG,eAAgBH,EAAWI,cAAeJ,EAAWK,aAI/GX,EANE1C,EAMesD,eAAe,CAC5B7C,iBAAiB"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../../../external/preact/dist/preact.js";import{useRef as e,useState as a,useCallback as n,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import r from"../../../../utils/Script.js";import{KLARNA_WIDGET_URL as i}from"../../constants.js";function l(t,e){if(null==t)return{};var a,n,o=function(t,e){if(null==t)return{};var a,n,o={},r=Object.keys(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}function s(s){var{sdkData:m,paymentMethodType:c,widgetInitializationTime:d,payButton:p}=s,y=l(s,["sdkData","paymentMethodType","widgetInitializationTime","payButton"]);const u=e(null),[f,_]=a("ready"),h=n(()=>{_("error"),y.onComplete({data:{paymentData:y.paymentData,details:{}}})},[y.paymentData,y.onComplete]),w=n(()=>{window.Klarna.Payments.init({client_token:m.client_token}),window.Klarna.Payments.load({container:u.current,payment_method_category:m.payment_method_category},function(t){!t.show_form||t.error?h():y.onLoaded()})},[m.client_token,m.payment_method_category]),k=n(()=>{_("loading");try{window.Klarna.Payments.authorize({payment_method_category:m.payment_method_category},function(t){!0===t.approved&&!0===t.show_form?(_("success"),y.onComplete({data:{paymentData:y.paymentData,details:{authorization_token:t.authorization_token}}})):t.approved||!0!==t.show_form?h():(_("ready"),y.onError(t))})}catch(t){h()}},[m.payment_method_category,y.onComplete,y.onError]);return o(()=>{var t,e;(null===(e=window.Klarna)||void 0===e||null===(t=e.Payments)||void 0===t?void 0:t.init)&&w()},[d]),o(()=>{window.klarnaAsyncCallback=function(){w()};const t=new r(i);return t.load(),()=>{t.remove()}},[w]),"error"!==f&&"success"!==f?t("div",{className:"adyen-checkout__klarna-widget"},t("div",{ref:u}),p({status:f,disabled:"loading"===f,onClick:k})):null}export{s as KlarnaWidget};
1
+ import{createElement as t}from"../../../../external/preact/dist/preact.js";import{useRef as e,useState as a,useCallback as n,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import r from"../../../../utils/Script.js";import{KLARNA_WIDGET_URL as i}from"../../constants.js";import l from"../../../../core/Analytics/useAnalytics.js";function s(t,e){if(null==t)return{};var a,n,o=function(t,e){if(null==t)return{};var a,n,o={},r=Object.keys(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n<r.length;n++)a=r[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}function c(c){var{sdkData:m,paymentMethodType:d,widgetInitializationTime:y,payButton:p}=c,u=s(c,["sdkData","paymentMethodType","widgetInitializationTime","payButton"]);const f=e(null),[_,h]=a("ready"),{analytics:w}=l(),k=n(()=>{h("error"),u.onComplete({data:{paymentData:u.paymentData,details:{}}})},[u.paymentData,u.onComplete]),g=n(()=>{window.Klarna.Payments.init({client_token:m.client_token}),window.Klarna.Payments.load({container:f.current,payment_method_category:m.payment_method_category},function(t){!t.show_form||t.error?k():u.onLoaded()})},[m.client_token,m.payment_method_category]),v=n(()=>{h("loading");try{window.Klarna.Payments.authorize({payment_method_category:m.payment_method_category},function(t){!0===t.approved&&!0===t.show_form?(h("success"),u.onComplete({data:{paymentData:u.paymentData,details:{authorization_token:t.authorization_token}}})):t.approved||!0!==t.show_form?k():(h("ready"),u.onError(t))})}catch(t){k()}},[m.payment_method_category,u.onComplete,u.onError]),b=t=>{"Enter"!==t.key&&"Enter"!==t.code||(t.preventDefault(),v())};return o(()=>{var t,e;(null===(e=window.Klarna)||void 0===e||null===(t=e.Payments)||void 0===t?void 0:t.init)&&g()},[y]),o(()=>{window.klarnaAsyncCallback=function(){g()};const t=new r({src:i,component:"klarna",analytics:w});return t.load(),()=>{t.remove()}},[g,w]),"error"!==_&&"success"!==_?t("div",{className:"adyen-checkout__klarna-widget"},t("div",{ref:f}),p({status:_,disabled:"loading"===_,onClick:v,onKeyDown:b})):null}export{c as KlarnaWidget};
2
2
  //# sourceMappingURL=KlarnaWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KlarnaWidget.js","sources":["../../../../../../src/components/Klarna/components/KlarnaWidget/KlarnaWidget.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState, useCallback } from 'preact/hooks';\nimport Script from '../../../../utils/Script';\nimport { KLARNA_WIDGET_URL } from '../../constants';\nimport type { KlarnaWidgetAuthorizeResponse, KlarnaWidgetProps } from '../../types';\n\nimport './KlarnaWidget.scss';\n\nexport function KlarnaWidget({ sdkData, paymentMethodType, widgetInitializationTime, payButton, ...props }: KlarnaWidgetProps) {\n const klarnaWidgetRef = useRef(null);\n const [status, setStatus] = useState('ready');\n\n const handleError = useCallback(() => {\n setStatus('error');\n props.onComplete({\n data: {\n paymentData: props.paymentData,\n details: {}\n }\n });\n }, [props.paymentData, props.onComplete]);\n\n const initializeKlarnaWidget = useCallback(() => {\n window.Klarna.Payments.init({\n client_token: sdkData.client_token\n });\n\n window.Klarna.Payments.load(\n {\n container: klarnaWidgetRef.current,\n payment_method_category: sdkData.payment_method_category\n },\n function (res) {\n // If show_form: true is received together with an error, something fixable is wrong and the consumer\n // needs to take action before moving forward\n // If show_form: false, the payment method in the loaded widget will not be offered for this order\n // based on Klarna’s pre-assessment.\n if (!res.show_form || !!res.error) {\n handleError();\n } else {\n props.onLoaded();\n }\n }\n );\n }, [sdkData.client_token, sdkData.payment_method_category]);\n\n const authorizeKlarna = useCallback(() => {\n setStatus('loading');\n try {\n window.Klarna.Payments.authorize(\n {\n payment_method_category: sdkData.payment_method_category\n },\n function (res: KlarnaWidgetAuthorizeResponse) {\n if (res.approved === true && res.show_form === true) {\n // Klarna has approved the authorization of credit for this order.\n setStatus('success');\n props.onComplete({\n data: {\n paymentData: props.paymentData,\n details: {\n authorization_token: res.authorization_token\n }\n }\n });\n } else if (!res.approved && res.show_form === true) {\n // Fixable error\n setStatus('ready');\n props.onError(res);\n } else {\n // The purchase is declined. The widget should be hidden and the user\n // should select another payment method.\n handleError();\n }\n }\n );\n } catch (e) {\n handleError();\n }\n }, [sdkData.payment_method_category, props.onComplete, props.onError]);\n\n /**\n * Initializes Klarna SDK if it is already available and reinitialize\n * it when the init time refreshes\n */\n useEffect(() => {\n const isKlarnaAvailable = window.Klarna?.Payments?.init;\n if (isKlarnaAvailable) {\n initializeKlarnaWidget();\n }\n }, [widgetInitializationTime]);\n\n useEffect(() => {\n window.klarnaAsyncCallback = function () {\n initializeKlarnaWidget();\n };\n const script = new Script(KLARNA_WIDGET_URL);\n void script.load();\n\n return () => {\n script.remove();\n };\n }, [initializeKlarnaWidget]);\n\n if (status !== 'error' && status !== 'success') {\n return (\n <div className=\"adyen-checkout__klarna-widget\">\n <div ref={klarnaWidgetRef} />\n {payButton({ status, disabled: status === 'loading', onClick: authorizeKlarna })}\n </div>\n );\n }\n\n return null;\n}\n"],"names":["KlarnaWidget","_param","sdkData","paymentMethodType","widgetInitializationTime","payButton","props","klarnaWidgetRef","useRef","status","setStatus","useState","handleError","useCallback","onComplete","data","paymentData","details","initializeKlarnaWidget","window","Klarna","Payments","init","client_token","load","container","current","payment_method_category","res","show_form","error","onLoaded","authorizeKlarna","authorize","approved","authorization_token","onError","e","useEffect","klarnaAsyncCallback","script","Script","KLARNA_WIDGET_URL","remove","h","div","className","ref","disabled","onClick"],"mappings":"wpBAQO,SAASA,EAAaC,OAAAC,QAAEA,EAAOC,kBAAEA,EAAiBC,yBAAEA,EAAwBC,UAAEA,GAAxDJ,EAAsEK,EAAAA,EAAtEL,EAAA,CAAEC,UAASC,oBAAmBC,2BAA0BC,cACjF,MAAME,EAAkBC,EAAO,OACxBC,EAAQC,GAAaC,EAAS,SAE/BC,EAAcC,EAAY,KAC5BH,EAAU,SACVJ,EAAMQ,WAAW,CACbC,KAAM,CACFC,YAAaV,EAAMU,YACnBC,QAAS,CAAA,MAGlB,CAACX,EAAMU,YAAaV,EAAMQ,aAEvBI,EAAyBL,EAAY,KACvCM,OAAOC,OAAOC,SAASC,KAAK,CACxBC,aAAcrB,EAAQqB,eAG1BJ,OAAOC,OAAOC,SAASG,KACnB,CACIC,UAAWlB,EAAgBmB,QAC3BC,wBAAyBzB,EAAQyB,yBAErC,SAAUC,IAKDA,EAAIC,WAAeD,EAAIE,MACxBlB,IAEAN,EAAMyB,UAEd,IAEL,CAAC7B,EAAQqB,aAAcrB,EAAQyB,0BAE5BK,EAAkBnB,EAAY,KAChCH,EAAU,WACV,IACIS,OAAOC,OAAOC,SAASY,UACnB,CACIN,wBAAyBzB,EAAQyB,yBAErC,SAAUC,IACe,IAAjBA,EAAIM,WAAuC,IAAlBN,EAAIC,WAE7BnB,EAAU,WACVJ,EAAMQ,WAAW,CACbC,KAAM,CACFC,YAAaV,EAAMU,YACnBC,QAAS,CACLkB,oBAAqBP,EAAIO,yBAI7BP,EAAIM,WAA8B,IAAlBN,EAAIC,UAO5BjB,KALAF,EAAU,SACVJ,EAAM8B,QAAQR,GAMtB,EAER,CAAE,MAAOS,GACLzB,GACJ,GACD,CAACV,EAAQyB,wBAAyBrB,EAAMQ,WAAYR,EAAM8B,UAyB7D,OAnBAE,EAAU,SACoBnB,EAAAA,GAAa,QAAbA,EAAAA,OAAOC,cAAPD,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeE,gBAAfF,IAAAA,OAAAA,EAAAA,EAAyBG,OAE/CJ,KAEL,CAACd,IAEJkC,EAAU,KACNnB,OAAOoB,oBAAsB,WACzBrB,GACJ,EACA,MAAMsB,EAAS,IAAIC,EAAOC,GAG1B,OAFKF,EAAOhB,OAEL,KACHgB,EAAOG,WAEZ,CAACzB,IAEW,UAAXT,GAAiC,YAAXA,EAElBmC,EAACC,MAAAA,CAAIC,UAAU,iCACXF,EAACC,MAAAA,CAAIE,IAAKxC,IACTF,EAAU,CAAEI,SAAQuC,SAAqB,YAAXvC,EAAsBwC,QAASjB,KAKnE,IACX"}
1
+ {"version":3,"file":"KlarnaWidget.js","sources":["../../../../../../src/components/Klarna/components/KlarnaWidget/KlarnaWidget.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState, useCallback } from 'preact/hooks';\nimport Script from '../../../../utils/Script';\nimport { KLARNA_WIDGET_URL } from '../../constants';\nimport type { KlarnaWidgetAuthorizeResponse, KlarnaWidgetProps } from '../../types';\n\nimport './KlarnaWidget.scss';\nimport useAnalytics from '../../../../core/Analytics/useAnalytics';\n\nexport function KlarnaWidget({ sdkData, paymentMethodType, widgetInitializationTime, payButton, ...props }: KlarnaWidgetProps) {\n const klarnaWidgetRef = useRef(null);\n const [status, setStatus] = useState('ready');\n const { analytics } = useAnalytics();\n\n const handleError = useCallback(() => {\n setStatus('error');\n props.onComplete({\n data: {\n paymentData: props.paymentData,\n details: {}\n }\n });\n }, [props.paymentData, props.onComplete]);\n\n const initializeKlarnaWidget = useCallback(() => {\n window.Klarna.Payments.init({\n client_token: sdkData.client_token\n });\n\n window.Klarna.Payments.load(\n {\n container: klarnaWidgetRef.current,\n payment_method_category: sdkData.payment_method_category\n },\n function (res: { show_form: boolean; error: unknown }) {\n // If show_form: true is received together with an error, something fixable is wrong and the consumer\n // needs to take action before moving forward\n // If show_form: false, the payment method in the loaded widget will not be offered for this order\n // based on Klarna’s pre-assessment.\n if (!res.show_form || !!res.error) {\n handleError();\n } else {\n props.onLoaded();\n }\n }\n );\n }, [sdkData.client_token, sdkData.payment_method_category]);\n\n const authorizeKlarna = useCallback(() => {\n setStatus('loading');\n try {\n window.Klarna.Payments.authorize(\n {\n payment_method_category: sdkData.payment_method_category\n },\n function (res: KlarnaWidgetAuthorizeResponse) {\n if (res.approved === true && res.show_form === true) {\n // Klarna has approved the authorization of credit for this order.\n setStatus('success');\n props.onComplete({\n data: {\n paymentData: props.paymentData,\n details: {\n authorization_token: res.authorization_token\n }\n }\n });\n } else if (!res.approved && res.show_form === true) {\n // Fixable error\n setStatus('ready');\n props.onError(res);\n } else {\n // The purchase is declined. The widget should be hidden and the user\n // should select another payment method.\n handleError();\n }\n }\n );\n } catch (e) {\n handleError();\n }\n }, [sdkData.payment_method_category, props.onComplete, props.onError]);\n\n /**\n * TODO: Clean this up when we have a different solution for handling on click in the BaseElement class\n * We need this specifically for handling ENTER keypresses from the keyboard\n * because the UIElement class has an on keypress handler which can trigger a components submit function\n * ENTER key press on this button should not trigger this behaviour since the Klarna script has already been loaded\n */\n const handleKeyDown = (e: h.JSX.TargetedKeyboardEvent<HTMLButtonElement>) => {\n if (e.key === 'Enter' || e.code === 'Enter') {\n e.preventDefault();\n authorizeKlarna();\n }\n };\n\n /**\n * Initializes Klarna SDK if it is already available and reinitialize\n * it when the init time refreshes\n */\n useEffect(() => {\n const isKlarnaAvailable = window.Klarna?.Payments?.init;\n if (isKlarnaAvailable) {\n initializeKlarnaWidget();\n }\n }, [widgetInitializationTime]);\n\n useEffect(() => {\n window.klarnaAsyncCallback = function () {\n initializeKlarnaWidget();\n };\n const script = new Script({\n src: KLARNA_WIDGET_URL,\n component: 'klarna',\n analytics\n });\n\n void script.load();\n\n return () => {\n script.remove();\n };\n }, [initializeKlarnaWidget, analytics]);\n\n if (status !== 'error' && status !== 'success') {\n return (\n <div className=\"adyen-checkout__klarna-widget\">\n <div ref={klarnaWidgetRef} />\n {payButton({\n status,\n disabled: status === 'loading',\n onClick: authorizeKlarna,\n onKeyDown: handleKeyDown\n })}\n </div>\n );\n }\n\n return null;\n}\n"],"names":["KlarnaWidget","_param","sdkData","paymentMethodType","widgetInitializationTime","payButton","props","klarnaWidgetRef","useRef","status","setStatus","useState","analytics","useAnalytics","handleError","useCallback","onComplete","data","paymentData","details","initializeKlarnaWidget","window","Klarna","Payments","init","client_token","load","container","current","payment_method_category","res","show_form","error","onLoaded","authorizeKlarna","authorize","approved","authorization_token","onError","e","handleKeyDown","key","code","preventDefault","useEffect","klarnaAsyncCallback","script","Script","src","KLARNA_WIDGET_URL","component","remove","h","div","className","ref","disabled","onClick","onKeyDown"],"mappings":"ktBASO,SAASA,EAAaC,OAAAC,QAAEA,EAAOC,kBAAEA,EAAiBC,yBAAEA,EAAwBC,UAAEA,GAAxDJ,EAAsEK,EAAAA,EAAtEL,EAAA,CAAEC,UAASC,oBAAmBC,2BAA0BC,cACjF,MAAME,EAAkBC,EAAO,OACxBC,EAAQC,GAAaC,EAAS,UAC/BC,UAAEA,GAAcC,IAEhBC,EAAcC,EAAY,KAC5BL,EAAU,SACVJ,EAAMU,WAAW,CACbC,KAAM,CACFC,YAAaZ,EAAMY,YACnBC,QAAS,CAAA,MAGlB,CAACb,EAAMY,YAAaZ,EAAMU,aAEvBI,EAAyBL,EAAY,KACvCM,OAAOC,OAAOC,SAASC,KAAK,CACxBC,aAAcvB,EAAQuB,eAG1BJ,OAAOC,OAAOC,SAASG,KACnB,CACIC,UAAWpB,EAAgBqB,QAC3BC,wBAAyB3B,EAAQ2B,yBAErC,SAAUC,IAKDA,EAAIC,WAAeD,EAAIE,MACxBlB,IAEAR,EAAM2B,UAEd,IAEL,CAAC/B,EAAQuB,aAAcvB,EAAQ2B,0BAE5BK,EAAkBnB,EAAY,KAChCL,EAAU,WACV,IACIW,OAAOC,OAAOC,SAASY,UACnB,CACIN,wBAAyB3B,EAAQ2B,yBAErC,SAAUC,IACe,IAAjBA,EAAIM,WAAuC,IAAlBN,EAAIC,WAE7BrB,EAAU,WACVJ,EAAMU,WAAW,CACbC,KAAM,CACFC,YAAaZ,EAAMY,YACnBC,QAAS,CACLkB,oBAAqBP,EAAIO,yBAI7BP,EAAIM,WAA8B,IAAlBN,EAAIC,UAO5BjB,KALAJ,EAAU,SACVJ,EAAMgC,QAAQR,GAMtB,EAER,CAAE,MAAOS,GACLzB,GACJ,GACD,CAACZ,EAAQ2B,wBAAyBvB,EAAMU,WAAYV,EAAMgC,UAQvDE,EAAiBD,IACL,UAAVA,EAAEE,KAA8B,UAAXF,EAAEG,OACvBH,EAAEI,iBACFT,MAgCR,OAxBAU,EAAU,SACoBvB,EAAAA,GAAa,QAAbA,EAAAA,OAAOC,cAAPD,IAAAA,GAAuB,QAAvBA,EAAAA,EAAeE,gBAAfF,IAAAA,OAAAA,EAAAA,EAAyBG,OAE/CJ,KAEL,CAAChB,IAEJwC,EAAU,KACNvB,OAAOwB,oBAAsB,WACzBzB,GACJ,EACA,MAAM0B,EAAS,IAAIC,EAAO,CACtBC,IAAKC,EACLC,UAAW,SACXtC,cAKJ,OAFKkC,EAAOpB,OAEL,KACHoB,EAAOK,WAEZ,CAAC/B,EAAwBR,IAEb,UAAXH,GAAiC,YAAXA,EAElB2C,EAACC,MAAAA,CAAIC,UAAU,iCACXF,EAACC,MAAAA,CAAIE,IAAKhD,IACTF,EAAU,CACPI,SACA+C,SAAqB,YAAX/C,EACVgD,QAASvB,EACTwB,UAAWlB,KAMpB,IACX"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useRef as t,useState as r}from"../../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";import n from"../../../internal/PhoneInput/PhoneInputForm.js";import a from"../../../internal/LoadingWrapper/LoadingWrapper.js";import i from"../../../internal/PhoneInput/usePhonePrefixes.js";function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function c(c){const{i18n:l,loadingContext:p}=o(),f=t(null),{allowedCountries:m=[]}=c,[b,d]=r("ready");this.setStatus=d;const{loadingStatus:y,phonePrefixes:O}=i({allowedCountries:m,loadingContext:p,handleError:c.onError});return e(a,{status:y},e("div",{className:"adyen-checkout__mb-way"},e(n,u(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){s(e,t,r[t])})}return e}({setComponentRef:c.setComponentRef},c),{items:O,ref:f,onChange:({data:e,valid:t,errors:r,isValid:o})=>{c.onChange({data:e,valid:t,errors:r,isValid:o})},data:c.data})),c.showPayButton&&c.payButton({status:b,label:l.get("confirmPurchase")})))}c.defaultProps={onChange:()=>{},phoneNumberKey:"mobileNumber",phoneNumberErrorKey:"mobileNumber.invalid"};export{c as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useState as t}from"../../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as r}from"../../../../core/Context/CoreProvider.js";import o from"../../../internal/PhoneInput/PhoneInputForm.js";import n from"../../../internal/LoadingWrapper/LoadingWrapper.js";import a from"../../../internal/PhoneInput/usePhonePrefixes.js";function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function c(c){const{i18n:p,loadingContext:u}=r(),{allowedCountries:l=[]}=c,[f,m]=t("ready");this.setStatus=m;const{loadingStatus:b,phonePrefixes:d}=a({allowedCountries:l,loadingContext:u,handleError:c.onError});return e(n,{status:b},e("div",{className:"adyen-checkout__mb-way"},e(o,s(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){i(e,t,r[t])})}return e}({setComponentRef:c.setComponentRef},c),{items:d,onChange:({data:e,valid:t,errors:r,isValid:o})=>{c.onChange({data:e,valid:t,errors:r,isValid:o})},data:c.data})),c.showPayButton&&c.payButton({status:f,label:p.get("confirmPurchase")})))}c.defaultProps={onChange:()=>{},phoneNumberKey:"mobileNumber",phoneNumberErrorKey:"mobileNumber.invalid"};export{c as default};
2
2
  //# sourceMappingURL=MBWayInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MBWayInput.js","sources":["../../../../../../src/components/MBWay/components/MBWayInput/MBWayInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useRef } from 'preact/hooks';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { MBWayInputProps } from './types';\nimport './MBWayInput.scss';\nimport PhoneInputForm from '../../../internal/PhoneInput';\nimport LoadingWrapper from '../../../internal/LoadingWrapper';\nimport usePhonePrefixes from '../../../internal/PhoneInput/usePhonePrefixes';\n\nfunction MBWayInput(props: MBWayInputProps) {\n const { i18n, loadingContext } = useCoreContext();\n\n const phoneInputRef = useRef(null);\n\n const { allowedCountries = [] } = props;\n\n const [status, setStatus] = useState<string>('ready');\n\n this.setStatus = setStatus;\n\n const { loadingStatus: prefixLoadingStatus, phonePrefixes } = usePhonePrefixes({ allowedCountries, loadingContext, handleError: props.onError });\n\n const onChange = ({ data, valid, errors, isValid }) => {\n props.onChange({ data, valid, errors, isValid });\n };\n\n return (\n <LoadingWrapper status={prefixLoadingStatus}>\n <div className=\"adyen-checkout__mb-way\">\n <PhoneInputForm\n setComponentRef={props.setComponentRef}\n {...props}\n items={phonePrefixes}\n ref={phoneInputRef}\n onChange={onChange}\n data={props.data}\n />\n\n {props.showPayButton && props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n </LoadingWrapper>\n );\n}\n\nMBWayInput.defaultProps = {\n onChange: () => {},\n phoneNumberKey: 'mobileNumber',\n phoneNumberErrorKey: 'mobileNumber.invalid'\n};\n\nexport default MBWayInput;\n"],"names":["MBWayInput","props","i18n","loadingContext","useCoreContext","phoneInputRef","useRef","allowedCountries","status","setStatus","useState","this","loadingStatus","prefixLoadingStatus","phonePrefixes","usePhonePrefixes","handleError","onError","h","LoadingWrapper","div","className","PhoneInputForm","setComponentRef","items","ref","onChange","data","valid","errors","isValid","showPayButton","payButton","label","get","defaultProps","phoneNumberKey","phoneNumberErrorKey"],"mappings":"i5BASA,SAASA,EAAWC,GAChB,MAAMC,KAAEA,EAAIC,eAAEA,GAAmBC,IAE3BC,EAAgBC,EAAO,OAEvBC,iBAAEA,EAAmB,IAAON,GAE3BO,EAAQC,GAAaC,EAAiB,SAE7CC,KAAKF,UAAYA,EAEjB,MAAQG,cAAeC,EAAmBC,cAAEA,GAAkBC,EAAiB,CAAER,mBAAkBJ,iBAAgBa,YAAaf,EAAMgB,UAMtI,OACIC,EAACC,EAAAA,CAAeX,OAAQK,GACpBK,EAACE,MAAAA,CAAIC,UAAU,0BACXH,EAACI,EAAAA,oUAAAA,CAAAA,CACGC,gBAAiBtB,EAAMsB,iBACnBtB,GAAAA,CACJuB,MAAOV,EACPW,IAAKpB,EACLqB,SAZC,EAAGC,OAAMC,QAAOC,SAAQC,cACrC7B,EAAMyB,SAAS,CAAEC,OAAMC,QAAOC,SAAQC,aAY1BH,KAAM1B,EAAM0B,QAGf1B,EAAM8B,eAAiB9B,EAAM+B,UAAU,CAAExB,SAAQyB,MAAO/B,EAAKgC,IAAI,sBAIlF,CAEAlC,EAAWmC,aAAe,CACtBT,SAAU,OACVU,eAAgB,eAChBC,oBAAqB"}
1
+ {"version":3,"file":"MBWayInput.js","sources":["../../../../../../src/components/MBWay/components/MBWayInput/MBWayInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { MBWayInputProps } from './types';\nimport './MBWayInput.scss';\nimport PhoneInputForm from '../../../internal/PhoneInput';\nimport LoadingWrapper from '../../../internal/LoadingWrapper';\nimport usePhonePrefixes from '../../../internal/PhoneInput/usePhonePrefixes';\n\nfunction MBWayInput(props: MBWayInputProps) {\n const { i18n, loadingContext } = useCoreContext();\n\n const { allowedCountries = [] } = props;\n\n const [status, setStatus] = useState<string>('ready');\n\n this.setStatus = setStatus;\n\n const { loadingStatus: prefixLoadingStatus, phonePrefixes } = usePhonePrefixes({ allowedCountries, loadingContext, handleError: props.onError });\n\n const onChange = ({ data, valid, errors, isValid }) => {\n props.onChange({ data, valid, errors, isValid });\n };\n\n return (\n <LoadingWrapper status={prefixLoadingStatus}>\n <div className=\"adyen-checkout__mb-way\">\n <PhoneInputForm setComponentRef={props.setComponentRef} {...props} items={phonePrefixes} onChange={onChange} data={props.data} />\n\n {props.showPayButton && props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n </LoadingWrapper>\n );\n}\n\nMBWayInput.defaultProps = {\n onChange: () => {},\n phoneNumberKey: 'mobileNumber',\n phoneNumberErrorKey: 'mobileNumber.invalid'\n};\n\nexport default MBWayInput;\n"],"names":["MBWayInput","props","i18n","loadingContext","useCoreContext","allowedCountries","status","setStatus","useState","this","loadingStatus","prefixLoadingStatus","phonePrefixes","usePhonePrefixes","handleError","onError","h","LoadingWrapper","div","className","PhoneInputForm","setComponentRef","items","onChange","data","valid","errors","isValid","showPayButton","payButton","label","get","defaultProps","phoneNumberKey","phoneNumberErrorKey"],"mappings":"q4BASA,SAASA,EAAWC,GAChB,MAAMC,KAAEA,EAAIC,eAAEA,GAAmBC,KAE3BC,iBAAEA,EAAmB,IAAOJ,GAE3BK,EAAQC,GAAaC,EAAiB,SAE7CC,KAAKF,UAAYA,EAEjB,MAAQG,cAAeC,EAAmBC,cAAEA,GAAkBC,EAAiB,CAAER,mBAAkBF,iBAAgBW,YAAab,EAAMc,UAMtI,OACIC,EAACC,EAAAA,CAAeX,OAAQK,GACpBK,EAACE,MAAAA,CAAIC,UAAU,0BACXH,EAACI,EAAAA,oUAAAA,CAAAA,CAAeC,gBAAiBpB,EAAMoB,iBAAqBpB,GAAAA,CAAOqB,MAAOV,EAAeW,SAPpF,EAAGC,OAAMC,QAAOC,SAAQC,cACrC1B,EAAMsB,SAAS,CAAEC,OAAMC,QAAOC,SAAQC,aAM+EH,KAAMvB,EAAMuB,QAExHvB,EAAM2B,eAAiB3B,EAAM4B,UAAU,CAAEvB,SAAQwB,MAAO5B,EAAK6B,IAAI,sBAIlF,CAEA/B,EAAWgC,aAAe,CACtBT,SAAU,OACVU,eAAgB,eAChBC,oBAAqB"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{CoreProvider as t}from"../../core/Context/CoreProvider.js";import{TxVariants as r}from"../tx-variants.js";import{UIElement as n}from"../internal/UIElement/UIElement.js";import o from"../../core/Errors/SRPanelProvider.js";import i from"../internal/RedirectButton/RedirectButton.js";import s,{ERROR as a}from"../../core/Errors/AdyenCheckoutError.js";import{PasskeyService as p}from"./services/PasskeyService.js";import{authorizeEnrollment as d}from"./services/authorizeEnrollment.js";import{authorizePayment as l}from"./services/authorizePayment.js";import h from"./components/StoredPayment/StoredPayment.js";import c from"./components/Enrollment/Enrollment.js";function y(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){y(e,t,r[t])})}return e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function v(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}class f extends n{get isValid(){var e;return!(this.props._isAdyenHosted&&!this.props.storedPaymentMethodId)||!!(null===(e=this.state)||void 0===e?void 0:e.isValid)}get additionalInfo(){var e,t;return this.props.storedPaymentMethodId?this.props.i18n.get("paybybankpix.storedPayment.additionalLabel",{values:{receiver:null===(t=this.props)||void 0===t||null===(e=t.payByBankPixDetails)||void 0===e?void 0:e.receiver}}):""}get icon(){var e,t;return this.props.storedPaymentMethodId?this.resources.getImage({parentFolder:`${f.type}/`})(null===(t=this.props)||void 0===t||null===(e=t.payByBankPixDetails)||void 0===e?void 0:e.ispb):super.icon}async isAvailable(){const e=await this.passkeyService.getWebAuthnUnsupportedReason();if(e)return Promise.reject(new s(a,e));if(!this.props._isAdyenHosted)return Promise.resolve();try{if(await this.passkeyService.initialize(),this.props.storedPaymentMethodId){return await this.passkeyService.canUseStoredCredential()?Promise.resolve():Promise.reject(new s("ERROR","The stored payment method is not available on this device"))}return Promise.resolve()}catch(e){return Promise.reject(e instanceof Error?null==e?void 0:e.message:"Unknown error")}}handleAction(e,t={}){const r=this.core.createFromAction(e,u(m({},this.elementRef.props,t),{onAdditionalDetails:this.handleAdditionalDetails}));return r?(this.unmount(),r.isAvailable().then(()=>{r.mount(this._node)}),r):null}formatData(){if(!this.props._isAdyenHosted)return{paymentMethod:{type:r.paybybank_pix}};const e=null==this.props.storedPaymentMethodId;return m({paymentMethod:m({type:r.paybybank_pix},this.state.data)},e?{storePaymentMethod:!0}:{})}render(){var r,n,s;return this.props._isAdyenHosted?e(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(o,{srPanel:this.props.modules.srPanel},null!=this.props.storedPaymentMethodId?e(h,{txVariant:f.type,type:this.props.type,clientKey:this.props.clientKey,amount:this.props.amount,enrollmentId:null===(r=this.props.paymentMethodData)||void 0===r?void 0:r.enrollmentId,initiationId:null===(n=this.props.paymentMethodData)||void 0===n?void 0:n.initiationId,setComponentRef:this.setComponentRef,onPay:this.payWithStoredPayment,onAuthorize:this.authorizePayment}):e(c,{onError:this.handleError,txVariant:f.type,type:this.props.type,clientKey:this.props.clientKey,enrollmentId:null===(s=this.props.paymentMethodData)||void 0===s?void 0:s.enrollmentId,countdownTime:this.props.countdownTime,onEnroll:this.authorizeEnrollment,issuers:this.props.issuers,payButton:this.payButton,onChange:this.onIssuerSelected,onSubmitAnalytics:this.submitAnalytics,setComponentRef:this.setComponentRef}))):e(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(o,{srPanel:this.props.modules.srPanel},e(i,{showPayButton:this.props.showPayButton,name:this.displayName,label:this.props.i18n.get("paybybankpix.redirectBtn.label"),amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:e=>{this.componentRef=e}})))}constructor(e,t){var r,n;super(e,t),y(this,"passkeyService",void 0),y(this,"onIssuerSelected",async e=>{try{const{data:t={}}=e;if(!t.issuer)return;const r=await this.passkeyService.captureRiskSignalsEnrollment(),{deviceId:n}=r,o=v(r,["deviceId"]);this.setState(u(m({},e),{data:u(m({},t),{riskSignals:o,deviceId:n})}))}catch(e){const t=e instanceof Error?e.message:"Unknown error in the onIssuerSelected";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"authorizeEnrollment",async e=>{try{var t;const r=await this.passkeyService.createCredentialForEnrollment(e),n={enrollmentId:null===(t=this.props.paymentMethodData)||void 0===t?void 0:t.enrollmentId,fidoAssertion:r},{redirectResult:o}=await d({enrollment:n,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:o}}})}catch(e){const t=e instanceof Error?e.message:"Unknown error in the authorizeEnrollment";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"payWithStoredPayment",async()=>{try{const e=await this.passkeyService.captureRiskSignalsAuthentication(),{deviceId:t}=e,r=v(e,["deviceId"]);this.state=m({},this.state,{data:{storedPaymentMethodId:this.props.storedPaymentMethodId,riskSignals:r,deviceId:t}}),super.submit()}catch(e){const t=e instanceof Error?e.message:"Unknown error in the payWithStoredPayment";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"authorizePayment",async e=>{try{var t,r;const n=await this.passkeyService.authenticateWithCredential(e),o={enrollmentId:null===(t=this.props.paymentMethodData)||void 0===t?void 0:t.enrollmentId,initiationId:null===(r=this.props.paymentMethodData)||void 0===r?void 0:r.initiationId,fidoAssertion:n},{redirectResult:i}=await l({payment:o,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:i}}})}catch(e){const t=e instanceof Error?e.message:"Unknown error in the authorizePayment";this.handleError(e instanceof s?e:new s(a,t))}});const o=this.props.storedPaymentMethodId?null===(n=this.props)||void 0===n||null===(r=n.payByBankPixDetails)||void 0===r?void 0:r.deviceId:this.props.deviceId;this.passkeyService=new p({environment:this.props.environment,deviceId:o}),this.props._isAdyenHosted&&this.passkeyService.initialize()}}y(f,"type",r.paybybank_pix),y(f,"TIMEOUT_MINUTES",1),y(f,"defaultProps",{showPayButton:!0,_isAdyenHosted:(()=>{try{return new URL(window.location.href).hostname.endsWith(".adyen.com")}catch(e){return!1}})(),countdownTime:f.TIMEOUT_MINUTES});export{f as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{CoreProvider as t}from"../../core/Context/CoreProvider.js";import{TxVariants as n}from"../tx-variants.js";import{UIElement as r}from"../internal/UIElement/UIElement.js";import o from"../../core/Errors/SRPanelProvider.js";import i from"../internal/RedirectButton/RedirectButton.js";import s,{ERROR as a}from"../../core/Errors/AdyenCheckoutError.js";import{PasskeyService as p}from"./services/PasskeyService.js";import{authorizeEnrollment as l}from"./services/authorizeEnrollment.js";import{authorizePayment as d}from"./services/authorizePayment.js";import h from"./components/StoredPayment/StoredPayment.js";import c from"./components/Enrollment/Enrollment.js";function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){y(e,t,n[t])})}return e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function v(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}class f extends r{get isValid(){var e;return!(this.props._isAdyenHosted&&!this.props.storedPaymentMethodId)||!!(null===(e=this.state)||void 0===e?void 0:e.isValid)}get additionalInfo(){var e,t;return this.props.storedPaymentMethodId?this.props.i18n.get("paybybankpix.storedPayment.additionalLabel",{values:{receiver:null===(t=this.props)||void 0===t||null===(e=t.payByBankPixDetails)||void 0===e?void 0:e.receiver}}):""}get icon(){var e,t;return this.props.storedPaymentMethodId?this.resources.getImage({parentFolder:`${f.type}/`})(null===(t=this.props)||void 0===t||null===(e=t.payByBankPixDetails)||void 0===e?void 0:e.ispb):super.icon}async isAvailable(){const e=await this.passkeyService.getWebAuthnUnsupportedReason();if(e)return Promise.reject(new s(a,e));if(!this.props._isAdyenHosted)return Promise.resolve();try{if(await this.passkeyService.initialize(),this.props.storedPaymentMethodId){return await this.passkeyService.canUseStoredCredential()?Promise.resolve():Promise.reject(new s("ERROR","The stored payment method is not available on this device"))}return Promise.resolve()}catch(e){return Promise.reject(e instanceof Error?null==e?void 0:e.message:"Unknown error")}}handleAction(e,t={}){const n=this.core.createFromAction(e,u(m({},this.elementRef.props,t),{onAdditionalDetails:this.handleAdditionalDetails}));return n?(this.unmount(),n.isAvailable().then(()=>{n.mount(this._node)}),n):null}formatData(){if(!this.props._isAdyenHosted)return{paymentMethod:{type:n.paybybank_pix}};const e=null==this.props.storedPaymentMethodId;return m({paymentMethod:m({type:n.paybybank_pix},this.state.data)},e?{storePaymentMethod:!0}:{})}render(){var n,r,s;return this.props._isAdyenHosted?e(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(o,{srPanel:this.props.modules.srPanel},null!=this.props.storedPaymentMethodId?e(h,{txVariant:f.type,type:this.props.type,clientKey:this.props.clientKey,amount:this.props.amount,enrollmentId:null===(n=this.props.paymentMethodData)||void 0===n?void 0:n.enrollmentId,initiationId:null===(r=this.props.paymentMethodData)||void 0===r?void 0:r.initiationId,setComponentRef:this.setComponentRef,onPay:this.payWithStoredPayment,onAuthorize:this.authorizePayment}):e(c,{onError:this.handleError,txVariant:f.type,type:this.props.type,clientKey:this.props.clientKey,enrollmentId:null===(s=this.props.paymentMethodData)||void 0===s?void 0:s.enrollmentId,countdownTime:this.props.countdownTime,onEnroll:this.authorizeEnrollment,issuers:this.props.issuers,payButton:this.payButton,onChange:this.onIssuerSelected,onSubmitAnalytics:this.submitAnalytics,setComponentRef:this.setComponentRef}))):e(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(o,{srPanel:this.props.modules.srPanel},e(i,{showPayButton:this.props.showPayButton,name:this.displayName,label:this.props.i18n.get("paybybankpix.redirectBtn.label"),amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:e=>{this.componentRef=e}})))}constructor(e,t){var n,r;super(e,t),y(this,"passkeyService",void 0),y(this,"onIssuerSelected",async e=>{try{const{data:t={}}=e;if(!t.issuer)return;const n=await this.passkeyService.captureRiskSignalsEnrollment(),{deviceId:r}=n,o=v(n,["deviceId"]);this.setState(u(m({},e),{data:u(m({},t),{riskSignals:o,deviceId:r})}))}catch(e){const t=e instanceof Error?e.message:"Unknown error in the onIssuerSelected";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"authorizeEnrollment",async e=>{try{var t;const n=await this.passkeyService.createCredentialForEnrollment(e),r={enrollmentId:null===(t=this.props.paymentMethodData)||void 0===t?void 0:t.enrollmentId,fidoAssertion:n},{redirectResult:o}=await l({enrollment:r,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:o}}})}catch(e){const t=e instanceof Error?e.message:"Unknown error in the authorizeEnrollment";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"payWithStoredPayment",async()=>{try{const e=await this.passkeyService.captureRiskSignalsAuthentication(),{deviceId:t}=e,n=v(e,["deviceId"]);this.state=m({},this.state,{data:{storedPaymentMethodId:this.props.storedPaymentMethodId,riskSignals:n,deviceId:t}}),super.submit()}catch(e){const t=e instanceof Error?e.message:"Unknown error in the payWithStoredPayment";this.handleError(e instanceof s?e:new s(a,t))}}),y(this,"authorizePayment",async e=>{try{var t,n;const r=await this.passkeyService.authenticateWithCredential(e),o={enrollmentId:null===(t=this.props.paymentMethodData)||void 0===t?void 0:t.enrollmentId,initiationId:null===(n=this.props.paymentMethodData)||void 0===n?void 0:n.initiationId,fidoAssertion:r},{redirectResult:i}=await d({payment:o,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:i}}})}catch(e){const t=e instanceof Error?e.message:"Unknown error in the authorizePayment";this.handleError(e instanceof s?e:new s(a,t))}});const o=this.props.storedPaymentMethodId?null===(r=this.props)||void 0===r||null===(n=r.payByBankPixDetails)||void 0===n?void 0:n.deviceId:this.props.deviceId;this.passkeyService=new p({environment:this.props.environment,deviceId:o},this.analytics),this.props._isAdyenHosted&&this.passkeyService.initialize()}}y(f,"type",n.paybybank_pix),y(f,"TIMEOUT_MINUTES",1),y(f,"defaultProps",{showPayButton:!0,_isAdyenHosted:(()=>{try{return new URL(window.location.href).hostname.endsWith(".adyen.com")}catch(e){return!1}})(),countdownTime:f.TIMEOUT_MINUTES});export{f as default};
2
2
  //# sourceMappingURL=PayByBankPix.js.map