@adyen/adyen-web 6.6.0 → 6.7.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 (295) hide show
  1. package/dist/cjs/adyen.css +3 -3
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +223 -140
  6. package/dist/es/adyen.css +3 -3
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ANCV/ANCV.js +1 -1
  9. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  10. package/dist/es/components/Ach/components/AchInput/AchInput.js.map +1 -1
  11. package/dist/es/components/Ach/components/AchInput/defaultProps.js.map +1 -1
  12. package/dist/es/components/Ach/components/AchInput/defaultStyles.js.map +1 -1
  13. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  14. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  15. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  16. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  17. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  18. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  19. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  20. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  21. package/dist/es/components/Card/Card.js.map +1 -1
  22. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  23. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  24. package/dist/es/components/Card/components/CardInput/defaultProps.js.map +1 -1
  25. package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
  26. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  27. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  28. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  29. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  30. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  31. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  32. package/dist/es/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  33. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  34. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  35. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  36. package/dist/es/components/Dropin/components/PaymentMethod/useBrandLogoConfiguration.js.map +1 -1
  37. package/dist/es/components/Dropin/elements/filters.js.map +1 -1
  38. package/dist/es/components/Dropin/elements/getComponentConfiguration.js.map +1 -1
  39. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  40. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  41. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  42. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  43. package/dist/es/components/GooglePay/components/GooglePayButton.js +1 -1
  44. package/dist/es/components/GooglePay/components/GooglePayButton.js.map +1 -1
  45. package/dist/es/components/GooglePay/requests.js.map +1 -1
  46. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  47. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  48. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  49. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  50. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  51. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  52. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  53. package/dist/es/components/PayPal/utils/get-paypal-styles.js.map +1 -1
  54. package/dist/es/components/Pix/Pix.js.map +1 -1
  55. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  56. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  57. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  58. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  59. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  60. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  61. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  62. package/dist/es/components/Twint/Twint.js.map +1 -1
  63. package/dist/es/components/UPI/UPI.js.map +1 -1
  64. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  65. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  66. package/dist/es/components/internal/Address/Address.js.map +1 -1
  67. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  68. package/dist/es/components/internal/Button/Button.js.map +1 -1
  69. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js +1 -1
  70. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  71. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  72. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  73. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  74. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  75. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  76. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  77. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  78. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  79. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  80. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  81. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  82. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  83. package/dist/es/components/internal/OpenInvoice/utils.js.map +1 -1
  84. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  85. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  86. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  87. package/dist/es/components/internal/SecuredFields/SFP/defaultProps.js.map +1 -1
  88. package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  89. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  90. package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  91. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  92. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  93. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
  94. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleIOSTouchEvents.js.map +1 -1
  95. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.js.map +1 -1
  96. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/handleBinValue.js.map +1 -1
  97. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/handleFocus.js.map +1 -1
  98. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/handleIframeConfigFeedback.js.map +1 -1
  99. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js.map +1 -1
  100. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/postMessageToAllIframes.js.map +1 -1
  101. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  102. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processBrand.js.map +1 -1
  103. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/validateForm.js.map +1 -1
  104. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/callbackUtils.js.map +1 -1
  105. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/destroySecuredFields.js.map +1 -1
  106. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
  107. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  108. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  109. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  110. package/dist/es/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
  111. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  112. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  113. package/dist/es/components/internal/UIElement/utils.js.map +1 -1
  114. package/dist/es/components/internal/Voucher/utils.js.map +1 -1
  115. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  116. package/dist/es/core/Analytics/constants.js.map +1 -1
  117. package/dist/es/core/Analytics/utils.js.map +1 -1
  118. package/dist/es/core/Errors/AdyenCheckoutError.js +1 -1
  119. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  120. package/dist/es/core/Errors/SRMessages.js.map +1 -1
  121. package/dist/es/core/Errors/constants.js.map +1 -1
  122. package/dist/es/core/Errors/utils.js.map +1 -1
  123. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  124. package/dist/es/core/Services/http.js +1 -1
  125. package/dist/es/core/Services/http.js.map +1 -1
  126. package/dist/es/core/Services/sessions/constants.js +1 -1
  127. package/dist/es/core/Services/sessions/constants.js.map +1 -1
  128. package/dist/es/core/Services/sessions/create-order.js +1 -1
  129. package/dist/es/core/Services/sessions/create-order.js.map +1 -1
  130. package/dist/es/core/Services/sessions/make-payment.js +1 -1
  131. package/dist/es/core/Services/sessions/make-payment.js.map +1 -1
  132. package/dist/es/core/Services/sessions/setup-session.js.map +1 -1
  133. package/dist/es/core/Services/sessions/submit-details.js +1 -1
  134. package/dist/es/core/Services/sessions/submit-details.js.map +1 -1
  135. package/dist/es/core/core.js +1 -1
  136. package/dist/es/core/core.registry.js.map +1 -1
  137. package/dist/es/core/utils.js.map +1 -1
  138. package/dist/es/external/classnames/index.js.map +1 -1
  139. package/dist/es/external/preact/dist/preact.js +1 -1
  140. package/dist/es/external/preact/dist/preact.js.map +1 -1
  141. package/dist/es/index.d.ts +223 -140
  142. package/dist/es/language/Language.js.map +1 -1
  143. package/dist/es/language/utils.js.map +1 -1
  144. package/dist/es/utils/Storage.js.map +1 -1
  145. package/dist/es/utils/commonUtils.js.map +1 -1
  146. package/dist/es/utils/get-process-message-handler.js.map +1 -1
  147. package/dist/es/utils/getOrigin.js.map +1 -1
  148. package/dist/es/utils/useForm/reducer.js.map +1 -1
  149. package/dist/es/utils/useForm/useForm.js.map +1 -1
  150. package/dist/es-legacy/adyen.css +3 -3
  151. package/dist/es-legacy/adyen.css.map +1 -1
  152. package/dist/es-legacy/components/ANCV/ANCV.js +1 -1
  153. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  154. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js.map +1 -1
  155. package/dist/es-legacy/components/Ach/components/AchInput/defaultProps.js.map +1 -1
  156. package/dist/es-legacy/components/Ach/components/AchInput/defaultStyles.js.map +1 -1
  157. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  158. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  159. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  160. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  161. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  162. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  163. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  164. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  165. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  166. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  167. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  168. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js.map +1 -1
  169. package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
  170. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  171. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  172. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  173. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  174. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  175. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  176. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  177. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  178. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  179. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  180. package/dist/es-legacy/components/Dropin/components/PaymentMethod/useBrandLogoConfiguration.js.map +1 -1
  181. package/dist/es-legacy/components/Dropin/elements/filters.js.map +1 -1
  182. package/dist/es-legacy/components/Dropin/elements/getComponentConfiguration.js.map +1 -1
  183. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  184. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  185. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  186. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  187. package/dist/es-legacy/components/GooglePay/components/GooglePayButton.js +1 -1
  188. package/dist/es-legacy/components/GooglePay/components/GooglePayButton.js.map +1 -1
  189. package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
  190. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  191. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  192. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  193. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  194. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  195. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  196. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  197. package/dist/es-legacy/components/PayPal/utils/get-paypal-styles.js.map +1 -1
  198. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  199. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  200. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  201. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  202. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  203. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  204. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  205. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  206. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  207. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  208. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  209. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  210. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  211. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  212. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  213. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js +1 -1
  214. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  215. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  216. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  217. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  218. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  219. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  220. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  221. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  222. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  223. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  224. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  225. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  226. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  227. package/dist/es-legacy/components/internal/OpenInvoice/utils.js.map +1 -1
  228. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  229. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  230. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  231. package/dist/es-legacy/components/internal/SecuredFields/SFP/defaultProps.js.map +1 -1
  232. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  233. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  234. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  235. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  236. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  237. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  238. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
  239. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleIOSTouchEvents.js.map +1 -1
  240. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.js.map +1 -1
  241. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/handleBinValue.js.map +1 -1
  242. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/handleFocus.js.map +1 -1
  243. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/handleIframeConfigFeedback.js.map +1 -1
  244. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js.map +1 -1
  245. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/postMessageToAllIframes.js.map +1 -1
  246. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  247. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processBrand.js.map +1 -1
  248. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/validateForm.js.map +1 -1
  249. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/callbackUtils.js.map +1 -1
  250. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/destroySecuredFields.js.map +1 -1
  251. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
  252. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  253. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  254. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  255. package/dist/es-legacy/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
  256. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  257. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  258. package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
  259. package/dist/es-legacy/components/internal/Voucher/utils.js.map +1 -1
  260. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  261. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  262. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  263. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js +1 -1
  264. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js.map +1 -1
  265. package/dist/es-legacy/core/Errors/SRMessages.js.map +1 -1
  266. package/dist/es-legacy/core/Errors/constants.js.map +1 -1
  267. package/dist/es-legacy/core/Errors/utils.js.map +1 -1
  268. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  269. package/dist/es-legacy/core/Services/http.js +1 -1
  270. package/dist/es-legacy/core/Services/http.js.map +1 -1
  271. package/dist/es-legacy/core/Services/sessions/constants.js +1 -1
  272. package/dist/es-legacy/core/Services/sessions/constants.js.map +1 -1
  273. package/dist/es-legacy/core/Services/sessions/create-order.js +1 -1
  274. package/dist/es-legacy/core/Services/sessions/create-order.js.map +1 -1
  275. package/dist/es-legacy/core/Services/sessions/make-payment.js +1 -1
  276. package/dist/es-legacy/core/Services/sessions/make-payment.js.map +1 -1
  277. package/dist/es-legacy/core/Services/sessions/setup-session.js.map +1 -1
  278. package/dist/es-legacy/core/Services/sessions/submit-details.js +1 -1
  279. package/dist/es-legacy/core/Services/sessions/submit-details.js.map +1 -1
  280. package/dist/es-legacy/core/core.js +1 -1
  281. package/dist/es-legacy/core/core.registry.js.map +1 -1
  282. package/dist/es-legacy/core/utils.js.map +1 -1
  283. package/dist/es-legacy/external/classnames/index.js.map +1 -1
  284. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  285. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  286. package/dist/es-legacy/language/Language.js.map +1 -1
  287. package/dist/es-legacy/language/utils.js.map +1 -1
  288. package/dist/es-legacy/utils/Storage.js.map +1 -1
  289. package/dist/es-legacy/utils/commonUtils.js.map +1 -1
  290. package/dist/es-legacy/utils/get-process-message-handler.js.map +1 -1
  291. package/dist/es-legacy/utils/getOrigin.js.map +1 -1
  292. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  293. package/dist/es-legacy/utils/useForm/useForm.js.map +1 -1
  294. package/package.json +19 -19
  295. package/styles/adyen.css +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCard.js","sources":["../../../../src/components/CustomCard/CustomCard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport CustomCardInput from './CustomCardInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CbObjOnBinLookup, CbObjOnFocus } from '../internal/SecuredFields/lib/types';\nimport { BrandObject } from '../Card/types';\nimport { getCardImageUrl, fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { TxVariants } from '../tx-variants';\nimport { CustomCardConfiguration } from './types';\nimport { ANALYTICS_FOCUS_STR, ANALYTICS_UNFOCUS_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\n// TODO questions about\n// brand - does a merchant ever make a custom stored card?\n// type\n// countryCode\n\nexport class CustomCard extends UIElement<CustomCardConfiguration> {\n public static type = TxVariants.customCard;\n\n public static analyticsType = 'custom-scheme';\n\n protected static defaultProps = {\n onBinLookup: () => {},\n brandsConfiguration: {}\n };\n\n formatProps(props: CustomCardConfiguration) {\n return {\n ...props,\n type: TxVariants.customCard,\n brand: TxVariants.card\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const sfBrand = this.state.selectedBrandValue;\n return {\n paymentMethod: {\n type: 'scheme',\n ...this.state.data,\n ...(sfBrand && { brand: sfBrand })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n super.submitAnalytics(analyticsObj, this.props);\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(frame) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(frame);\n return this;\n }\n\n processBinLookupResponse(binLookupResponse) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse);\n return this;\n }\n\n dualBrandingChangeHandler(e: Event | string) {\n if (this.componentRef?.dualBrandingChangeHandler) this.componentRef.dualBrandingChangeHandler(e);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n onBinLookup(obj: CbObjOnBinLookup) {\n const nuObj = { ...obj };\n nuObj.rootNode = this._node;\n\n if (!nuObj.isReset) {\n // Add brandImage urls, first checking if the merchant has configured their own one for the brand\n nuObj.supportedBrandsRaw = obj.supportedBrandsRaw?.map((item: BrandObject) => {\n item.brandImageUrl = this.props.brandsConfiguration[item.brand]?.icon ?? getCardImageUrl(item.brand, this.resources);\n return item;\n });\n }\n\n this.props.onBinLookup(nuObj);\n }\n\n public onBinValue = triggerBinLookUp(this);\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n private onFocus = (obj: CbObjOnFocus) => {\n this.submitAnalytics({\n type: obj.focus === true ? ANALYTICS_FOCUS_STR : ANALYTICS_UNFOCUS_STR,\n target: fieldTypeToSnakeCase(obj.fieldType)\n });\n\n // Call merchant defined callback\n this.props.onFocus?.(obj);\n };\n\n protected onEnterKeyPressed = (activeElement: Element, component: UIElement) => {\n this.props.onEnterKeyPressed?.(activeElement, component);\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <CustomCardInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n {...this.state}\n handleKeyPress={this.handleKeyPress}\n rootNode={this._node}\n onChange={this.setState}\n onBinValue={this.onBinValue}\n implementationType={'custom'}\n resources={this.resources}\n brand={this.props.brand}\n onFocus={this.onFocus}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default CustomCard;\n"],"names":["CustomCard","UIElement","formatProps","props","_object_spread_props","type","TxVariants","customCard","brand","card","formatData","sfBrand","this","state","selectedBrandValue","paymentMethod","_object_spread","data","browserInfo","origin","window","location","submitAnalytics","analyticsObj","super","updateStyles","stylesObj","_this_componentRef","componentRef","setFocusOn","frame","processBinLookupResponse","binLookupResponse","dualBrandingChangeHandler","e","handleUnsupportedCard","errObj","onBinLookup","obj","nuObj","rootNode","_node","isReset","supportedBrandsRaw","map","item","_this_props_brandsConfiguration_item_brand","_this_props_brandsConfiguration_item_brand_icon","brandImageUrl","brandsConfiguration","icon","getCardImageUrl","resources","isValid","collectBrowserInfo","render","h","CoreProvider","i18n","loadingContext","CustomCardInput","ref","handleKeyPress","onChange","setState","onBinValue","implementationType","onFocus","args","_define_property","triggerBinLookUp","_this_props_onFocus","_this_props","focus","ANALYTICS_FOCUS_STR","ANALYTICS_UNFOCUS_STR","target","fieldTypeToSnakeCase","fieldType","call","onEnterKeyPressed","activeElement","component","_this_props_onEnterKeyPressed","analyticsType","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"CustomCard.js","sources":["../../../../src/components/CustomCard/CustomCard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport CustomCardInput from './CustomCardInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { BrandObject } from '../Card/types';\nimport { getCardImageUrl, fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { TxVariants } from '../tx-variants';\nimport { CustomCardConfiguration } from './types';\nimport { ANALYTICS_FOCUS_STR, ANALYTICS_UNFOCUS_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nexport class CustomCard extends UIElement<CustomCardConfiguration> {\n public static type = TxVariants.customCard;\n\n public static analyticsType = 'custom-scheme';\n\n protected static defaultProps = {\n onBinLookup: () => {},\n brandsConfiguration: {}\n };\n\n private brand = TxVariants.card;\n\n formatProps(props: CustomCardConfiguration) {\n return {\n ...props,\n type: TxVariants.customCard\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const sfBrand = this.state.selectedBrandValue;\n return {\n paymentMethod: {\n type: 'scheme',\n ...this.state.data,\n ...(sfBrand && { brand: sfBrand })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n super.submitAnalytics(analyticsObj, this.props);\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(frame) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(frame);\n return this;\n }\n\n processBinLookupResponse(binLookupResponse) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse);\n return this;\n }\n\n dualBrandingChangeHandler(e: Event | string) {\n if (this.componentRef?.dualBrandingChangeHandler) this.componentRef.dualBrandingChangeHandler(e);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n onBinLookup(obj: CardBinLookupData) {\n const nuObj = { ...obj };\n nuObj.rootNode = this._node;\n\n if (!nuObj.isReset) {\n // Add brandImage urls, first checking if the merchant has configured their own one for the brand\n nuObj.supportedBrandsRaw = obj.supportedBrandsRaw?.map((item: BrandObject) => {\n item.brandImageUrl = this.props.brandsConfiguration[item.brand]?.icon ?? getCardImageUrl(item.brand, this.resources);\n return item;\n });\n }\n\n this.props.onBinLookup(nuObj);\n }\n\n public onBinValue = triggerBinLookUp(this);\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n private onFocus = (obj: CardFocusData) => {\n this.submitAnalytics({\n type: obj.focus === true ? ANALYTICS_FOCUS_STR : ANALYTICS_UNFOCUS_STR,\n target: fieldTypeToSnakeCase(obj.fieldType)\n });\n\n // Call merchant defined callback\n this.props.onFocus?.(obj);\n };\n\n protected onEnterKeyPressed = (activeElement: Element, component: UIElement) => {\n this.props.onEnterKeyPressed?.(activeElement, component);\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <CustomCardInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n {...this.state}\n handleKeyPress={this.handleKeyPress}\n rootNode={this._node}\n onChange={this.setState}\n onBinValue={this.onBinValue}\n implementationType={'custom'}\n resources={this.resources}\n brand={this.brand}\n onFocus={this.onFocus}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default CustomCard;\n"],"names":["CustomCard","UIElement","formatProps","props","_object_spread_props","type","TxVariants","customCard","formatData","sfBrand","this","state","selectedBrandValue","paymentMethod","_object_spread","data","brand","browserInfo","origin","window","location","submitAnalytics","analyticsObj","super","updateStyles","stylesObj","_this_componentRef","componentRef","setFocusOn","frame","processBinLookupResponse","binLookupResponse","dualBrandingChangeHandler","e","handleUnsupportedCard","errObj","onBinLookup","obj","nuObj","rootNode","_node","isReset","supportedBrandsRaw","map","item","_this_props_brandsConfiguration_item_brand","_this_props_brandsConfiguration_item_brand_icon","brandImageUrl","brandsConfiguration","icon","getCardImageUrl","resources","isValid","collectBrowserInfo","render","h","CoreProvider","i18n","loadingContext","CustomCardInput","ref","handleKeyPress","onChange","setState","onBinValue","implementationType","onFocus","args","_define_property","card","triggerBinLookUp","_this_props_onFocus","_this_props","focus","ANALYTICS_FOCUS_STR","ANALYTICS_UNFOCUS_STR","target","fieldTypeToSnakeCase","fieldType","call","onEnterKeyPressed","activeElement","component","_this_props_onEnterKeyPressed","analyticsType","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as o,useState as n,useMemo as r,useEffect as t}from"../../../external/preact/hooks/dist/hooks.js";import a from"../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import i from"../../internal/SecuredFields/binLookup/extensions.js";function s(e,o,n){return o in e?Object.defineProperty(e,o,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[o]=n,e}function l(e){for(var o=1;o<arguments.length;o++){var n=null!=arguments[o]?arguments[o]:{},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(o){s(e,o,n[o])}))}return e}function d(e,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):function(e){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o.push.apply(o,n)}return o}(Object(o)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})),e}function u(s){const u=o(null),[p,y]=n({}),[f,m]=n({}),[g,b]=n({}),[h,O]=n(!1),[S,C]=n(null),[j,F]=n([]),[P,V]=n(""),E=r((()=>i(s,{sfp:u},{dualBrandSelectElements:j,setDualBrandSelectElements:F,setSelectedBrandValue:V,issuingCountryCode:S,setIssuingCountryCode:C})),[j,S]);return this.processBinLookupResponse=(e,o)=>{E.processBinLookup(e,o)},this.dualBrandingChangeHandler=E.handleDualBrandSelection,t((()=>(this.setFocusOn=u.current.setFocusOn,this.updateStyles=u.current.updateStyles,this.showValidation=u.current.showValidation,this.handleUnsupportedCard=u.current.handleUnsupportedCard,()=>{u.current.destroy()})),[]),t((()=>{const e=u.current.mapErrorsToValidationRuleResult(),o=l({},p,e);if(s.onChange({data:g,valid:f,errors:o,isValid:h,selectedBrandValue:P}),Object.keys(o).length){var n,r;const e=Object.entries(o).map((([e,o])=>l({fieldType:e},o||{error:"",rootNode:this.props.rootNode})));null===(n=(r=this.props).onValidationError)||void 0===n||n.call(r,e)}}),[g,f,p,P]),e(a,d(l({ref:u},c(s)),{type:s.brand,onChange:e=>{b(l({},g,e.data)),y(l({},p,e.errors)),m(l({},f,e.valid)),O(e.isSfpValid)},render:()=>null}))}u.defaultProps={onChange:()=>{},onError:()=>{},onValidationError:()=>{}};const c=e=>({autoFocus:e.autoFocus,brands:e.brands,brandsConfiguration:e.brandsConfiguration,clientKey:e.clientKey,i18n:e.i18n,implementationType:e.implementationType,keypadFix:e.keypadFix,legacyInputMode:e.legacyInputMode,loadingContext:e.loadingContext,minimumExpiryDate:e.minimumExpiryDate,onAdditionalSFConfig:e.onAdditionalSFConfig,onAdditionalSFRemoved:e.onAdditionalSFRemoved,onAllValid:e.onAllValid,onAutoComplete:e.onAutoComplete,onBinValue:e.onBinValue,onBrand:e.onBrand,onConfigSuccess:e.onConfigSuccess,handleKeyPress:e.handleKeyPress,onError:e.onError,onFieldValid:e.onFieldValid,onFocus:e.onFocus,onLoad:e.onLoad,rootNode:e.rootNode,showWarnings:e.showWarnings,styles:e.styles,trimTrailingSeparator:e.trimTrailingSeparator,resources:e.resources,maskSecurityCode:e.maskSecurityCode,placeholders:e.placeholders});export{u as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as o,useState as n,useMemo as r,useEffect as t}from"../../../external/preact/hooks/dist/hooks.js";import a from"../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import i from"../../internal/SecuredFields/binLookup/extensions.js";function s(e,o,n){return o in e?Object.defineProperty(e,o,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[o]=n,e}function l(e){for(var o=1;o<arguments.length;o++){var n=null!=arguments[o]?arguments[o]:{},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(o){s(e,o,n[o])}))}return e}function d(e,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):function(e){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o.push.apply(o,n)}return o}(Object(o)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))})),e}function u(s){const u=o(null),[p,y]=n({}),[f,m]=n({}),[g,b]=n({}),[h,O]=n(!1),[S,C]=n(null),[j,F]=n([]),[P,V]=n(""),E=r((()=>i(s,{sfp:u},{dualBrandSelectElements:j,setDualBrandSelectElements:F,setSelectedBrandValue:V,issuingCountryCode:S,setIssuingCountryCode:C})),[j,S]);return this.processBinLookupResponse=(e,o)=>{E.processBinLookup(e,o)},this.dualBrandingChangeHandler=E.handleDualBrandSelection,t((()=>(this.setFocusOn=u.current.setFocusOn,this.updateStyles=u.current.updateStyles,this.showValidation=u.current.showValidation,this.handleUnsupportedCard=u.current.handleUnsupportedCard,()=>{u.current.destroy()})),[]),t((()=>{const e=u.current.mapErrorsToValidationRuleResult(),o=l({},p,e);if(s.onChange({data:g,valid:f,errors:o,isValid:h,selectedBrandValue:P}),Object.keys(o).length){var n,r;const e=Object.entries(o).map((([e,o])=>l({fieldType:e},o||{error:"",rootNode:this.props.rootNode})));null===(n=(r=this.props).onValidationError)||void 0===n||n.call(r,e)}}),[g,f,p,P]),e(a,d(l({ref:u},c(s)),{type:s.brand,onChange:e=>{b(l({},g,e.data)),y(l({},p,e.errors)),m(l({},f,e.valid)),O(e.isSfpValid)},render:()=>null}))}u.defaultProps={onChange:()=>{},onError:()=>{},onValidationError:()=>{}};const c=e=>({autoFocus:e.autoFocus,brands:e.brands,brandsConfiguration:e.brandsConfiguration,clientKey:e.clientKey,forceCompat:e.forceCompat,i18n:e.i18n,implementationType:e.implementationType,keypadFix:e.keypadFix,legacyInputMode:e.legacyInputMode,loadingContext:e.loadingContext,minimumExpiryDate:e.minimumExpiryDate,onAdditionalSFConfig:e.onAdditionalSFConfig,onAdditionalSFRemoved:e.onAdditionalSFRemoved,onAllValid:e.onAllValid,onAutoComplete:e.onAutoComplete,onBinValue:e.onBinValue,onBrand:e.onBrand,onConfigSuccess:e.onConfigSuccess,handleKeyPress:e.handleKeyPress,onError:e.onError,onFieldValid:e.onFieldValid,onFocus:e.onFocus,onLoad:e.onLoad,rootNode:e.rootNode,showWarnings:e.showWarnings,styles:e.styles,trimTrailingSeparator:e.trimTrailingSeparator,resources:e.resources,maskSecurityCode:e.maskSecurityCode,placeholders:e.placeholders});export{u as default};
2
2
  //# sourceMappingURL=CustomCardInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCardInput.js","sources":["../../../../../src/components/CustomCard/CustomCardInput/CustomCardInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef, useMemo } from 'preact/hooks';\nimport Language from '../../../language/Language';\nimport SecuredFieldsProvider from '../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport { SFPState } from '../../internal/SecuredFields/SFP/types';\nimport { BinLookupResponse, CardBrandsConfiguration } from '../../Card/types';\nimport SFExtensions from '../../internal/SecuredFields/binLookup/extensions';\nimport { StylesObject } from '../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../core/Context/Resources';\nimport { Placeholders, SFError } from '../../Card/components/CardInput/types';\nimport { ValidationError } from '../types';\n\ninterface SecuredFieldsProps {\n autoFocus?: boolean;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n clientKey?: string;\n countryCode?: string;\n i18n: Language;\n implementationType?: string;\n keypadFix?: boolean;\n loadingContext?: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n onAdditionalSFConfig?: () => {};\n onAdditionalSFRemoved?: () => {};\n onAllValid?: () => {};\n onAutoComplete?: () => {};\n onBinValue?: () => {};\n onBrand?: () => {};\n onConfigSuccess?: () => {};\n onChange: (data) => void;\n handleKeyPress?: (obj: KeyboardEvent) => void;\n onError?: () => {};\n onFieldValid?: () => {};\n onFocus?: (e) => {};\n onLoad?: () => {};\n placeholders?: Placeholders;\n rootNode: HTMLElement;\n resources: Resources;\n showWarnings?: boolean;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n}\n\nconst defaultProps = {\n onChange: () => {},\n onError: () => {},\n onValidationError: () => {}\n};\n\nfunction CustomCardInput(props: SecuredFieldsProps) {\n const sfp = useRef(null);\n\n const [errors, setErrors] = useState({});\n const [valid, setValid] = useState({});\n const [data, setData] = useState({});\n\n const [isSfpValid, setIsSfpValid] = useState(false);\n\n const [issuingCountryCode, setIssuingCountryCode] = useState(null);\n\n const [dualBrandSelectElements, setDualBrandSelectElements] = useState([]);\n const [selectedBrandValue, setSelectedBrandValue] = useState('');\n\n const handleSecuredFieldsChange = (sfState: SFPState): void => {\n setData({ ...data, ...sfState.data });\n setErrors({ ...errors, ...sfState.errors });\n setValid({ ...valid, ...sfState.valid });\n\n setIsSfpValid(sfState.isSfpValid);\n };\n\n // Farm the handlers for binLookup related functionality out to another 'extensions' file\n const extensions = useMemo(\n () =>\n SFExtensions(\n props,\n { sfp },\n { dualBrandSelectElements, setDualBrandSelectElements, setSelectedBrandValue, issuingCountryCode, setIssuingCountryCode }\n ),\n [dualBrandSelectElements, issuingCountryCode]\n );\n\n /**\n * EXPECTED METHODS ON SecuredFields.this\n */\n this.processBinLookupResponse = (binLookupResponse: BinLookupResponse, isReset: boolean) => {\n extensions.processBinLookup(binLookupResponse, isReset);\n };\n\n this.dualBrandingChangeHandler = extensions.handleDualBrandSelection;\n\n /**\n * EFFECT HOOKS\n */\n useEffect(() => {\n // componentDidMount\n this.setFocusOn = sfp.current.setFocusOn;\n this.updateStyles = sfp.current.updateStyles;\n this.showValidation = sfp.current.showValidation;\n this.handleUnsupportedCard = sfp.current.handleUnsupportedCard;\n\n // componentWillUnmount\n return () => {\n sfp.current.destroy();\n };\n }, []);\n\n /**\n * Main 'componentDidUpdate' handler\n */\n useEffect(() => {\n const sfStateErrorsObj = sfp.current.mapErrorsToValidationRuleResult();\n\n const mappedErrors = { ...errors, ...sfStateErrorsObj }; // maps sfErrors\n\n props.onChange({\n data,\n valid,\n errors: mappedErrors,\n isValid: isSfpValid,\n selectedBrandValue\n });\n\n // Create an array of Validation error objects and send to callback\n if (Object.keys(mappedErrors).length) {\n const validationErrors: ValidationError[] = Object.entries(mappedErrors).map(([fieldType, error]) => {\n const valErr: ValidationError = {\n fieldType,\n ...(error ? (error as SFError) : { error: '', rootNode: this.props.rootNode })\n };\n return valErr;\n });\n this.props.onValidationError?.(validationErrors);\n }\n }, [data, valid, errors, selectedBrandValue]);\n\n /**\n * RENDER\n */\n // prettier-ignore\n return (\n <SecuredFieldsProvider\n ref={sfp}\n {...extractPropsForSFP(props)}\n type={props.brand}\n onChange={handleSecuredFieldsChange}\n render={() => null}\n />\n );\n}\n\nCustomCardInput.defaultProps = defaultProps;\n\nexport default CustomCardInput;\n\nconst extractPropsForSFP = (props: SecuredFieldsProps) => {\n return {\n autoFocus: props.autoFocus,\n brands: props.brands,\n brandsConfiguration: props.brandsConfiguration,\n clientKey: props.clientKey,\n // countryCode: props.countryCode, // only used for korean cards when koreanAuthenticationRequired is true\n i18n: props.i18n,\n implementationType: props.implementationType,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\n minimumExpiryDate: props.minimumExpiryDate,\n onAdditionalSFConfig: props.onAdditionalSFConfig,\n onAdditionalSFRemoved: props.onAdditionalSFRemoved,\n onAllValid: props.onAllValid,\n onAutoComplete: props.onAutoComplete,\n onBinValue: props.onBinValue,\n onBrand: props.onBrand,\n // onChange // set directly\n onConfigSuccess: props.onConfigSuccess,\n handleKeyPress: props.handleKeyPress,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onFocus: props.onFocus,\n onLoad: props.onLoad,\n // render // set directly\n rootNode: props.rootNode,\n showWarnings: props.showWarnings,\n styles: props.styles,\n trimTrailingSeparator: props.trimTrailingSeparator,\n resources: props.resources,\n maskSecurityCode: props.maskSecurityCode,\n placeholders: props.placeholders\n };\n};\n"],"names":["CustomCardInput","props","sfp","useRef","errors","setErrors","useState","valid","setValid","data","setData","isSfpValid","setIsSfpValid","issuingCountryCode","setIssuingCountryCode","dualBrandSelectElements","setDualBrandSelectElements","selectedBrandValue","setSelectedBrandValue","extensions","useMemo","SFExtensions","this","processBinLookupResponse","binLookupResponse","isReset","processBinLookup","dualBrandingChangeHandler","handleDualBrandSelection","useEffect","setFocusOn","current","updateStyles","showValidation","handleUnsupportedCard","destroy","sfStateErrorsObj","mapErrorsToValidationRuleResult","mappedErrors","_object_spread","onChange","isValid","Object","keys","length","_this_props_onValidationError","_this_props","validationErrors","entries","map","fieldType","error","rootNode","onValidationError","call","h","SecuredFieldsProvider","ref","extractPropsForSFP","type","brand","sfState","render","defaultProps","onError","autoFocus","brands","brandsConfiguration","clientKey","i18n","implementationType","keypadFix","legacyInputMode","loadingContext","minimumExpiryDate","onAdditionalSFConfig","onAdditionalSFRemoved","onAllValid","onAutoComplete","onBinValue","onBrand","onConfigSuccess","handleKeyPress","onFieldValid","onFocus","onLoad","showWarnings","styles","trimTrailingSeparator","resources","maskSecurityCode","placeholders"],"mappings":"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"}
1
+ {"version":3,"file":"CustomCardInput.js","sources":["../../../../../src/components/CustomCard/CustomCardInput/CustomCardInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef, useMemo } from 'preact/hooks';\nimport Language from '../../../language/Language';\nimport SecuredFieldsProvider from '../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport { SFPState } from '../../internal/SecuredFields/SFP/types';\nimport { BinLookupResponse, CardBrandsConfiguration } from '../../Card/types';\nimport SFExtensions from '../../internal/SecuredFields/binLookup/extensions';\nimport { StylesObject } from '../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../core/Context/Resources';\nimport { Placeholders, SFError } from '../../Card/components/CardInput/types';\nimport { ValidationError } from '../types';\n\ninterface SecuredFieldsProps {\n autoFocus?: boolean;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n clientKey?: string;\n countryCode?: string;\n forceCompat?: boolean;\n i18n: Language;\n implementationType?: string;\n keypadFix?: boolean;\n loadingContext?: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n onAdditionalSFConfig?: () => {};\n onAdditionalSFRemoved?: () => {};\n onAllValid?: () => {};\n onAutoComplete?: () => {};\n onBinValue?: () => {};\n onBrand?: () => {};\n onConfigSuccess?: () => {};\n onChange: (data) => void;\n handleKeyPress?: (obj: KeyboardEvent) => void;\n onError?: () => {};\n onFieldValid?: () => {};\n onFocus?: (e) => {};\n onLoad?: () => {};\n placeholders?: Placeholders;\n rootNode: HTMLElement;\n resources: Resources;\n showWarnings?: boolean;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n}\n\nconst defaultProps = {\n onChange: () => {},\n onError: () => {},\n onValidationError: () => {}\n};\n\nfunction CustomCardInput(props: SecuredFieldsProps) {\n const sfp = useRef(null);\n\n const [errors, setErrors] = useState({});\n const [valid, setValid] = useState({});\n const [data, setData] = useState({});\n\n const [isSfpValid, setIsSfpValid] = useState(false);\n\n const [issuingCountryCode, setIssuingCountryCode] = useState(null);\n\n const [dualBrandSelectElements, setDualBrandSelectElements] = useState([]);\n const [selectedBrandValue, setSelectedBrandValue] = useState('');\n\n const handleSecuredFieldsChange = (sfState: SFPState): void => {\n setData({ ...data, ...sfState.data });\n setErrors({ ...errors, ...sfState.errors });\n setValid({ ...valid, ...sfState.valid });\n\n setIsSfpValid(sfState.isSfpValid);\n };\n\n // Farm the handlers for binLookup related functionality out to another 'extensions' file\n const extensions = useMemo(\n () =>\n SFExtensions(\n props,\n { sfp },\n { dualBrandSelectElements, setDualBrandSelectElements, setSelectedBrandValue, issuingCountryCode, setIssuingCountryCode }\n ),\n [dualBrandSelectElements, issuingCountryCode]\n );\n\n /**\n * EXPECTED METHODS ON SecuredFields.this\n */\n this.processBinLookupResponse = (binLookupResponse: BinLookupResponse, isReset: boolean) => {\n extensions.processBinLookup(binLookupResponse, isReset);\n };\n\n this.dualBrandingChangeHandler = extensions.handleDualBrandSelection;\n\n /**\n * EFFECT HOOKS\n */\n useEffect(() => {\n // componentDidMount\n this.setFocusOn = sfp.current.setFocusOn;\n this.updateStyles = sfp.current.updateStyles;\n this.showValidation = sfp.current.showValidation;\n this.handleUnsupportedCard = sfp.current.handleUnsupportedCard;\n\n // componentWillUnmount\n return () => {\n sfp.current.destroy();\n };\n }, []);\n\n /**\n * Main 'componentDidUpdate' handler\n */\n useEffect(() => {\n const sfStateErrorsObj = sfp.current.mapErrorsToValidationRuleResult();\n\n const mappedErrors = { ...errors, ...sfStateErrorsObj }; // maps sfErrors\n\n props.onChange({\n data,\n valid,\n errors: mappedErrors,\n isValid: isSfpValid,\n selectedBrandValue\n });\n\n // Create an array of Validation error objects and send to callback\n if (Object.keys(mappedErrors).length) {\n const validationErrors: ValidationError[] = Object.entries(mappedErrors).map(([fieldType, error]) => {\n const valErr: ValidationError = {\n fieldType,\n ...(error ? (error as SFError) : { error: '', rootNode: this.props.rootNode })\n };\n return valErr;\n });\n this.props.onValidationError?.(validationErrors);\n }\n }, [data, valid, errors, selectedBrandValue]);\n\n /**\n * RENDER\n */\n // prettier-ignore\n return (\n <SecuredFieldsProvider\n ref={sfp}\n {...extractPropsForSFP(props)}\n type={props.brand}\n onChange={handleSecuredFieldsChange}\n render={() => null}\n />\n );\n}\n\nCustomCardInput.defaultProps = defaultProps;\n\nexport default CustomCardInput;\n\nconst extractPropsForSFP = (props: SecuredFieldsProps) => {\n return {\n autoFocus: props.autoFocus,\n brands: props.brands,\n brandsConfiguration: props.brandsConfiguration,\n clientKey: props.clientKey,\n forceCompat: props.forceCompat,\n // countryCode: props.countryCode, // only used for korean cards when koreanAuthenticationRequired is true\n i18n: props.i18n,\n implementationType: props.implementationType,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\n minimumExpiryDate: props.minimumExpiryDate,\n onAdditionalSFConfig: props.onAdditionalSFConfig,\n onAdditionalSFRemoved: props.onAdditionalSFRemoved,\n onAllValid: props.onAllValid,\n onAutoComplete: props.onAutoComplete,\n onBinValue: props.onBinValue,\n onBrand: props.onBrand,\n // onChange // set directly\n onConfigSuccess: props.onConfigSuccess,\n handleKeyPress: props.handleKeyPress,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onFocus: props.onFocus,\n onLoad: props.onLoad,\n // render // set directly\n rootNode: props.rootNode,\n showWarnings: props.showWarnings,\n styles: props.styles,\n trimTrailingSeparator: props.trimTrailingSeparator,\n resources: props.resources,\n maskSecurityCode: props.maskSecurityCode,\n placeholders: props.placeholders\n };\n};\n"],"names":["CustomCardInput","props","sfp","useRef","errors","setErrors","useState","valid","setValid","data","setData","isSfpValid","setIsSfpValid","issuingCountryCode","setIssuingCountryCode","dualBrandSelectElements","setDualBrandSelectElements","selectedBrandValue","setSelectedBrandValue","extensions","useMemo","SFExtensions","this","processBinLookupResponse","binLookupResponse","isReset","processBinLookup","dualBrandingChangeHandler","handleDualBrandSelection","useEffect","setFocusOn","current","updateStyles","showValidation","handleUnsupportedCard","destroy","sfStateErrorsObj","mapErrorsToValidationRuleResult","mappedErrors","_object_spread","onChange","isValid","Object","keys","length","_this_props_onValidationError","_this_props","validationErrors","entries","map","fieldType","error","rootNode","onValidationError","call","h","SecuredFieldsProvider","ref","extractPropsForSFP","type","brand","sfState","render","defaultProps","onError","autoFocus","brands","brandsConfiguration","clientKey","forceCompat","i18n","implementationType","keypadFix","legacyInputMode","loadingContext","minimumExpiryDate","onAdditionalSFConfig","onAdditionalSFRemoved","onAllValid","onAutoComplete","onBinValue","onBrand","onConfigSuccess","handleKeyPress","onFieldValid","onFocus","onLoad","showWarnings","styles","trimTrailingSeparator","resources","maskSecurityCode","placeholders"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DokuInput.js","sources":["../../../../../../src/components/Doku/components/DokuInput/DokuInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef, useState } from 'preact/hooks';\nimport PersonalDetails from '../../../internal/PersonalDetails/PersonalDetails';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nexport default function DokuInput(props) {\n const personalDetailsRef = useRef(null);\n const setPersonalDetailsRef = ref => {\n personalDetailsRef.current = ref;\n };\n\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState('ready');\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const dokuRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(dokuRef.current).length) {\n props.setComponentRef?.(dokuRef.current);\n }\n\n dokuRef.current.showValidation = () => {\n personalDetailsRef.current?.showValidation();\n };\n\n dokuRef.current.setStatus = setStatus;\n\n return (\n <div className=\"adyen-checkout__doku-input__field\">\n <FormInstruction />\n\n <PersonalDetails\n data={props.data}\n requiredFields={['firstName', 'lastName', 'shopperEmail']}\n onChange={props.onChange}\n namePrefix=\"doku\"\n setComponentRef={setPersonalDetailsRef}\n />\n\n {props.showPayButton && props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n"],"names":["DokuInput","props","personalDetailsRef","useRef","i18n","useCoreContext","status","setStatus","useState","dokuRef","Object","keys","current","length","setComponentRef","showValidation","h","div","className","FormInstruction","PersonalDetails","data","requiredFields","onChange","namePrefix","ref","showPayButton","payButton","label","get"],"mappings":"oXAOe,SAASA,EAAUC,GAC9B,MAAMC,EAAqBC,EAAO,OAK5BC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAAS,SAG/BC,EAAUN,EAA4B,CAAA,GAGxCF,IAAAA,EADCS,OAAOC,KAAKF,EAAQG,SAASC,SACT,QAArBZ,EAAAA,EAAMa,2BAANb,GAAAA,EAAAA,KAAAA,EAAwBQ,EAAQG,UASpC,OANAH,EAAQG,QAAQG,eAAiB,KAC7Bb,IAAAA,EAAAA,QAAAA,EAAAA,EAAmBU,eAAnBV,IAAAA,GAAAA,EAA4Ba,gBAAc,EAG9CN,EAAQG,QAAQL,UAAYA,EAGxBS,EAACC,MAAAA,CAAIC,UAAU,qCACXF,EAACG,QAEDH,EAACI,EAAAA,CACGC,KAAMpB,EAAMoB,KACZC,eAAgB,CAAC,YAAa,WAAY,gBAC1CC,SAAUtB,EAAMsB,SAChBC,WAAW,OACXV,gBA9BkBW,IAC1BvB,EAAmBU,QAAUa,CAAAA,IAgCxBxB,EAAMyB,eAAiBzB,EAAM0B,UAAU,CAAErB,SAAQsB,MAAOxB,EAAKyB,IAAI,qBAG9E"}
1
+ {"version":3,"file":"DokuInput.js","sources":["../../../../../../src/components/Doku/components/DokuInput/DokuInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef, useState } from 'preact/hooks';\nimport PersonalDetails from '../../../internal/PersonalDetails/PersonalDetails';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nexport default function DokuInput(props) {\n const personalDetailsRef = useRef(null);\n const setPersonalDetailsRef = ref => {\n personalDetailsRef.current = ref;\n };\n\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState('ready');\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const dokuRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(dokuRef.current).length) {\n props.setComponentRef?.(dokuRef.current);\n }\n\n dokuRef.current.showValidation = () => {\n personalDetailsRef.current?.showValidation();\n };\n\n dokuRef.current.setStatus = setStatus;\n\n return (\n <div className=\"adyen-checkout__doku-input__field\">\n <FormInstruction />\n\n <PersonalDetails\n data={props.data}\n requiredFields={['firstName', 'lastName', 'shopperEmail']}\n onChange={props.onChange}\n namePrefix=\"doku\"\n setComponentRef={setPersonalDetailsRef}\n />\n\n {props.showPayButton && props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n"],"names":["DokuInput","props","personalDetailsRef","useRef","i18n","useCoreContext","status","setStatus","useState","dokuRef","Object","keys","current","length","setComponentRef","showValidation","h","div","className","FormInstruction","PersonalDetails","data","requiredFields","onChange","namePrefix","ref","showPayButton","payButton","label","get"],"mappings":"oXAOe,SAASA,EAAUC,GAC9B,MAAMC,EAAqBC,EAAO,OAK5BC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAAS,SAG/BC,EAAUN,EAA4B,IAGxCF,IAAAA,EADCS,OAAOC,KAAKF,EAAQG,SAASC,SACT,QAArBZ,EAAAA,EAAMa,2BAANb,GAAAA,EAAAA,KAAAA,EAAwBQ,EAAQG,UASpC,OANAH,EAAQG,QAAQG,eAAiB,KAC7Bb,IAAAA,EAAAA,QAAAA,EAAAA,EAAmBU,eAAnBV,IAAAA,GAAAA,EAA4Ba,gBAAc,EAG9CN,EAAQG,QAAQL,UAAYA,EAGxBS,EAACC,MAAAA,CAAIC,UAAU,qCACXF,EAACG,QAEDH,EAACI,EAAAA,CACGC,KAAMpB,EAAMoB,KACZC,eAAgB,CAAC,YAAa,WAAY,gBAC1CC,SAAUtB,EAAMsB,SAChBC,WAAW,OACXV,gBA9BkBW,IAC1BvB,EAAmBU,QAAUa,CAAAA,IAgCxBxB,EAAMyB,eAAiBzB,EAAM0B,UAAU,CAAErB,SAAQsB,MAAOxB,EAAKyB,IAAI,qBAG9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"Dropin.js","sources":["../../../../src/components/Dropin/Dropin.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport defaultProps from './defaultProps';\nimport DropinComponent from '../../components/Dropin/components/DropinComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { getCommonProps } from './components/utils';\nimport { createElements, createStoredElements } from './elements';\nimport createInstantPaymentElements from './elements/createInstantPaymentElements';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport splitPaymentMethods from './elements/splitPaymentMethods';\nimport { TxVariants } from '../tx-variants';\n\nimport type { DropinConfiguration, InstantPaymentTypes, PaymentMethodsConfiguration } from './types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { ICore } from '../../core/types';\nimport type { IDropin } from './types';\n\nconst SUPPORTED_INSTANT_PAYMENTS = ['paywithgoogle', 'googlepay', 'applepay'];\n\nclass DropinElement extends UIElement<DropinConfiguration> implements IDropin {\n public static type = TxVariants.dropin;\n\n protected static defaultProps = defaultProps;\n\n public dropinRef = null;\n\n private paymentMethodsConfiguration: PaymentMethodsConfiguration;\n /**\n * Reference to the component created from `handleAction` (Ex.: ThreeDS2Challenge)\n */\n public componentFromAction?: UIElement;\n\n constructor(checkout: ICore, props?: DropinConfiguration) {\n super(checkout, props);\n this.submit = this.submit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n\n this.props.paymentMethodComponents.forEach(PaymentMethod => this.core.register(PaymentMethod));\n this.paymentMethodsConfiguration = this.props.paymentMethodsConfiguration || {};\n }\n\n protected override storeElementRefOnCore() {\n this.core.storeElementReference(this);\n }\n\n formatProps(props) {\n return {\n type: 'dropin', // for analytics\n ...super.formatProps(props),\n instantPaymentTypes: Array.from<InstantPaymentTypes>(new Set(props.instantPaymentTypes)).filter(value =>\n SUPPORTED_INSTANT_PAYMENTS.includes(value)\n )\n };\n }\n\n get isValid() {\n return !!this.dropinRef && !!this.dropinRef.state.activePaymentMethod && !!this.dropinRef.state.activePaymentMethod.isValid;\n }\n\n showValidation() {\n if (this.dropinRef.state.activePaymentMethod) {\n this.dropinRef.state.activePaymentMethod.showValidation();\n }\n\n return this;\n }\n\n public setStatus(status, props = {}): this {\n this.dropinRef?.setStatus(status, props);\n return this;\n }\n\n get activePaymentMethod() {\n if (!this.dropinRef?.state && !this.dropinRef?.state.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod;\n }\n\n get data() {\n if (!this.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod.data;\n }\n\n public displayFinalAnimation(type: 'success' | 'error') {\n if (this.props.disableFinalAnimation) return;\n\n this.dropinRef.setStatus(type);\n }\n\n /**\n * Calls the onSubmit event with the state of the activePaymentMethod\n */\n public override submit(): void {\n if (!this.activePaymentMethod) {\n throw new Error('No active payment method.');\n }\n\n if (!this.activePaymentMethod.isValid) {\n this.activePaymentMethod.showValidation();\n }\n\n if (this.activePaymentMethod.isInstantPayment) {\n this.closeActivePaymentMethod();\n }\n\n this.activePaymentMethod.submit();\n }\n\n /**\n * Creates the Drop-in elements\n */\n private handleCreate = () => {\n const { paymentMethodsConfiguration, showStoredPaymentMethods, showPaymentMethods, instantPaymentTypes } = this.props;\n\n const { paymentMethods, storedPaymentMethods, instantPaymentMethods } = splitPaymentMethods(\n this.core.paymentMethodsResponse,\n instantPaymentTypes\n );\n\n const commonProps = getCommonProps({ ...this.props, elementRef: this.elementRef });\n\n const storedElements = showStoredPaymentMethods\n ? createStoredElements(storedPaymentMethods, paymentMethodsConfiguration, commonProps, this.core)\n : [];\n const elements = showPaymentMethods ? createElements(paymentMethods, paymentMethodsConfiguration, commonProps, this.core) : [];\n const instantPaymentElements = createInstantPaymentElements(instantPaymentMethods, paymentMethodsConfiguration, commonProps, this.core);\n\n return [storedElements, elements, instantPaymentElements];\n };\n\n public handleAction(action: PaymentAction, props = {}): this | null {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'handleAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('handleAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n if (action.type !== 'redirect' && this.activePaymentMethod?.updateWithAction) {\n return this.activePaymentMethod.updateWithAction(action);\n }\n\n if (this.elementRef instanceof DropinElement) {\n props = {\n ...this.elementRef.activePaymentMethod?.props,\n ...props\n };\n }\n\n const paymentAction: UIElement = this.core.createFromAction(action, {\n ...props,\n elementRef: this.elementRef, // maintain elementRef for 3DS2 flow\n onAdditionalDetails: this.handleAdditionalDetails,\n isDropin: true\n });\n\n if (paymentAction) {\n this.setStatus(paymentAction.props.statusType, { component: paymentAction });\n this.componentFromAction = paymentAction;\n return this;\n }\n\n return null;\n }\n\n /**\n * handleOrder is implemented so we don't trigger a callback like in the components\n * @param response - PaymentResponse\n */\n protected handleOrder = ({ order }: PaymentResponseData): void => {\n void this.updateParent({ order });\n };\n\n closeActivePaymentMethod() {\n this.dropinRef.closeActivePaymentMethod();\n }\n\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement> | KeyboardEvent) {\n if (e.key === 'Enter' || e.code === 'Enter') {\n // If the active element has role=\"radio\", we're on a header in the PMList, in which case we don't want to validate the form, or, prevent the default behaviour\n const isPMHeader = document?.activeElement?.getAttribute('role') === 'radio';\n if (isPMHeader) {\n return;\n }\n super.handleKeyPress(e);\n }\n }\n\n protected onEnterKeyPressed(activeElement: Element, component: UIElement) {\n // We want to have a ref to the activePM, if we can; not a ref to the Dropin\n const pmComponent = this.activePaymentMethod ?? component;\n this.activePaymentMethod?.onEnterKeyPressed(activeElement, pmComponent);\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <DropinComponent\n {...this.props}\n core={this.core}\n elementRef={this.elementRef}\n onCreateElements={this.handleCreate}\n ref={dropinRef => {\n this.dropinRef = dropinRef;\n }}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default DropinElement;\n"],"names":["SUPPORTED_INSTANT_PAYMENTS","DropinElement","UIElement","storeElementRefOnCore","this","core","storeElementReference","formatProps","props","_object_spread_props","_object_spread","type","super","instantPaymentTypes","Array","from","Set","filter","value","includes","isValid","dropinRef","state","activePaymentMethod","showValidation","setStatus","status","_this_dropinRef","_this_dropinRef1","data","displayFinalAnimation","disableFinalAnimation","submit","Error","isInstantPayment","closeActivePaymentMethod","handleAction","action","_this_activePaymentMethod","_this_elementRef_activePaymentMethod","hasOwnProperty","updateWithAction","elementRef","paymentAction","createFromAction","onAdditionalDetails","handleAdditionalDetails","isDropin","statusType","component","componentFromAction","handleKeyPress","e","key","code","document","activeElement","getAttribute","onEnterKeyPressed","_this_activePaymentMethod1","pmComponent","render","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","DropinComponent","onCreateElements","handleCreate","ref","constructor","checkout","_define_property","paymentMethodsConfiguration","showStoredPaymentMethods","showPaymentMethods","paymentMethods","storedPaymentMethods","instantPaymentMethods","splitPaymentMethods","paymentMethodsResponse","commonProps","getCommonProps","createStoredElements","createElements","createInstantPaymentElements","handleOrder","order","updateParent","bind","paymentMethodComponents","forEach","PaymentMethod","register","TxVariants","dropin","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Dropin.js","sources":["../../../../src/components/Dropin/Dropin.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport defaultProps from './defaultProps';\nimport DropinComponent from '../../components/Dropin/components/DropinComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { getCommonProps } from './components/utils';\nimport { createElements, createStoredElements } from './elements';\nimport createInstantPaymentElements from './elements/createInstantPaymentElements';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport splitPaymentMethods from './elements/splitPaymentMethods';\nimport { TxVariants } from '../tx-variants';\n\nimport type { DropinConfiguration, InstantPaymentTypes, PaymentMethodsConfiguration } from './types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { ICore } from '../../core/types';\nimport type { IDropin } from './types';\n\nconst SUPPORTED_INSTANT_PAYMENTS = ['paywithgoogle', 'googlepay', 'applepay'];\n\nclass DropinElement extends UIElement<DropinConfiguration> implements IDropin {\n public static type = TxVariants.dropin;\n\n protected static defaultProps = defaultProps;\n\n public dropinRef = null;\n\n private paymentMethodsConfiguration: PaymentMethodsConfiguration;\n /**\n * Reference to the component created from `handleAction` (Ex.: ThreeDS2Challenge)\n */\n public componentFromAction?: UIElement;\n\n constructor(checkout: ICore, props?: DropinConfiguration) {\n super(checkout, props);\n this.submit = this.submit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n\n this.props.paymentMethodComponents.forEach(PaymentMethod => this.core.register(PaymentMethod));\n this.paymentMethodsConfiguration = this.props.paymentMethodsConfiguration || {};\n }\n\n protected override storeElementRefOnCore() {\n this.core.storeElementReference(this);\n }\n\n formatProps(props) {\n return {\n type: 'dropin', // for analytics\n ...super.formatProps(props),\n instantPaymentTypes: Array.from<InstantPaymentTypes>(new Set(props.instantPaymentTypes)).filter(value =>\n SUPPORTED_INSTANT_PAYMENTS.includes(value)\n )\n };\n }\n\n get isValid() {\n return !!this.dropinRef && !!this.dropinRef.state.activePaymentMethod && !!this.dropinRef.state.activePaymentMethod.isValid;\n }\n\n showValidation() {\n if (this.dropinRef.state.activePaymentMethod) {\n this.dropinRef.state.activePaymentMethod.showValidation();\n }\n\n return this;\n }\n\n public setStatus(status, props = {}): this {\n this.dropinRef?.setStatus(status, props);\n return this;\n }\n\n get activePaymentMethod() {\n if (!this.dropinRef?.state && !this.dropinRef?.state.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod;\n }\n\n get data() {\n if (!this.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod.data;\n }\n\n public displayFinalAnimation(type: 'success' | 'error') {\n if (this.props.disableFinalAnimation) return;\n\n this.dropinRef.setStatus(type);\n }\n\n /**\n * Calls the onSubmit event with the state of the activePaymentMethod\n */\n public override submit(): void {\n if (!this.activePaymentMethod) {\n throw new Error('No active payment method.');\n }\n\n if (!this.activePaymentMethod.isValid) {\n this.activePaymentMethod.showValidation();\n }\n\n if (this.activePaymentMethod.isInstantPayment) {\n this.closeActivePaymentMethod();\n }\n\n this.activePaymentMethod.submit();\n }\n\n /**\n * Creates the Drop-in elements\n */\n private handleCreate = () => {\n const { paymentMethodsConfiguration, showStoredPaymentMethods, showPaymentMethods, instantPaymentTypes } = this.props;\n\n const { paymentMethods, storedPaymentMethods, instantPaymentMethods } = splitPaymentMethods(\n this.core.paymentMethodsResponse,\n instantPaymentTypes\n );\n\n const commonProps = getCommonProps({ ...this.props, elementRef: this.elementRef });\n\n const storedElements = showStoredPaymentMethods\n ? createStoredElements(storedPaymentMethods, paymentMethodsConfiguration, commonProps, this.core)\n : [];\n const elements = showPaymentMethods ? createElements(paymentMethods, paymentMethodsConfiguration, commonProps, this.core) : [];\n const instantPaymentElements = createInstantPaymentElements(instantPaymentMethods, paymentMethodsConfiguration, commonProps, this.core);\n\n return [storedElements, elements, instantPaymentElements];\n };\n\n public handleAction(action: PaymentAction, props = {}): this | null {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'handleAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('handleAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n if (action.type !== 'redirect' && this.activePaymentMethod?.updateWithAction) {\n return this.activePaymentMethod.updateWithAction(action);\n }\n\n if (this.elementRef instanceof DropinElement) {\n props = {\n ...this.elementRef.activePaymentMethod?.props,\n ...props\n };\n }\n\n const paymentAction: UIElement = this.core.createFromAction(action, {\n ...props,\n elementRef: this.elementRef, // maintain elementRef for 3DS2 flow\n onAdditionalDetails: this.handleAdditionalDetails,\n isDropin: true\n });\n\n if (paymentAction) {\n this.setStatus(paymentAction.props.statusType, { component: paymentAction });\n this.componentFromAction = paymentAction;\n return this;\n }\n\n return null;\n }\n\n /**\n * handleOrder is implemented so we don't trigger a callback like in the components\n * @param response - PaymentResponse\n */\n protected handleOrder = ({ order }: PaymentResponseData): void => {\n void this.updateParent({ order });\n };\n\n closeActivePaymentMethod() {\n this.dropinRef.closeActivePaymentMethod();\n }\n\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement> | KeyboardEvent) {\n if (e.key === 'Enter' || e.code === 'Enter') {\n // If the active element has role=\"radio\", we're on a header in the PMList, in which case we don't want to validate the form, or, prevent the default behaviour\n const isPMHeader = document?.activeElement?.getAttribute('role') === 'radio';\n if (isPMHeader) {\n return;\n }\n super.handleKeyPress(e);\n }\n }\n\n protected onEnterKeyPressed(activeElement: Element, component: UIElement) {\n // We want to have a ref to the activePM, if we can; not a ref to the Dropin\n const pmComponent = this.activePaymentMethod ?? component;\n this.activePaymentMethod?.onEnterKeyPressed(activeElement, pmComponent);\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <DropinComponent\n {...this.props}\n core={this.core}\n elementRef={this.elementRef}\n onCreateElements={this.handleCreate}\n ref={dropinRef => {\n this.dropinRef = dropinRef;\n }}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default DropinElement;\n"],"names":["SUPPORTED_INSTANT_PAYMENTS","DropinElement","UIElement","storeElementRefOnCore","this","core","storeElementReference","formatProps","props","_object_spread_props","_object_spread","type","super","instantPaymentTypes","Array","from","Set","filter","value","includes","isValid","dropinRef","state","activePaymentMethod","showValidation","setStatus","status","_this_dropinRef","_this_dropinRef1","data","displayFinalAnimation","disableFinalAnimation","submit","Error","isInstantPayment","closeActivePaymentMethod","handleAction","action","_this_activePaymentMethod","_this_elementRef_activePaymentMethod","hasOwnProperty","updateWithAction","elementRef","paymentAction","createFromAction","onAdditionalDetails","handleAdditionalDetails","isDropin","statusType","component","componentFromAction","handleKeyPress","e","key","code","document","activeElement","getAttribute","onEnterKeyPressed","_this_activePaymentMethod1","pmComponent","render","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","DropinComponent","onCreateElements","handleCreate","ref","constructor","checkout","_define_property","paymentMethodsConfiguration","showStoredPaymentMethods","showPaymentMethods","paymentMethods","storedPaymentMethods","instantPaymentMethods","splitPaymentMethods","paymentMethodsResponse","commonProps","getCommonProps","createStoredElements","createElements","createInstantPaymentElements","handleOrder","order","updateParent","bind","paymentMethodComponents","forEach","PaymentMethod","register","TxVariants","dropin","defaultProps"],"mappings":"0/CAkBA,MAAMA,EAA6B,CAAC,gBAAiB,YAAa,YAElE,MAAMC,UAAsBC,EAsBLC,qBAAAA,GACfC,KAAKC,KAAKC,sBAAsBF,KACpC,CAEAG,WAAAA,CAAYC,GACR,OAAOC,EAAAC,EAAA,CACHC,KAAM,UACHC,MAAML,YAAYC,IAAAA,CACrBK,oBAAqBC,MAAMC,KAA0B,IAAIC,IAAIR,EAAMK,sBAAsBI,QAAOC,GAC5FlB,EAA2BmB,SAASD,MAGhD,CAEA,WAAIE,GACA,QAAShB,KAAKiB,aAAejB,KAAKiB,UAAUC,MAAMC,uBAAyBnB,KAAKiB,UAAUC,MAAMC,oBAAoBH,OACxH,CAEAI,cAAAA,GAKI,OAJIpB,KAAKiB,UAAUC,MAAMC,qBACrBnB,KAAKiB,UAAUC,MAAMC,oBAAoBC,iBAGtCpB,IACX,CAEOqB,SAAAA,CAAUC,EAAQlB,EAAQ,IAC7B,IAAAmB,EACA,OADc,QAAdA,EAAAvB,KAAKiB,qBAALM,GAAAA,EAAgBF,UAAUC,EAAQlB,GAC3BJ,IACX,CAEA,uBAAImB,OACKI,EAA0BC,EAA/B,OAAK,QAAAD,EAAAvB,KAAKiB,iBAAL,IAAAM,OAAA,EAAAA,EAAgBL,SAAwB,QAAdM,EAAAxB,KAAKiB,qBAALO,SAAAA,EAAgBN,MAAMC,qBAI9CnB,KAAKiB,UAAUC,MAAMC,oBAHjB,IAIf,CAEA,QAAIM,GACA,OAAKzB,KAAKmB,oBAIHnB,KAAKiB,UAAUC,MAAMC,oBAAoBM,KAHrC,IAIf,CAEOC,qBAAAA,CAAsBnB,GACrBP,KAAKI,MAAMuB,uBAEf3B,KAAKiB,UAAUI,UAAUd,EAC7B,CAKA,MAAAqB,GACI,IAAK5B,KAAKmB,oBACN,MAAM,IAAIU,MAAM,6BAGf7B,KAAKmB,oBAAoBH,SAC1BhB,KAAKmB,oBAAoBC,iBAGzBpB,KAAKmB,oBAAoBW,kBACzB9B,KAAK+B,2BAGT/B,KAAKmB,oBAAoBS,QAC7B,CAwBOI,YAAAA,CAAaC,EAAuB7B,EAAQ,IAWb,IAAA8B,EAMvBC,EAhBX,IAAKF,IAAWA,EAAO1B,KAAM,CACzB,GAAI6B,EAAeH,EAAQ,WAAaG,EAAeH,EAAQ,cAC3D,MAAM,IAAIJ,MACN,wKAIR,MAAM,IAAIA,MAAM,0FACpB,CAEA,GAAoB,aAAhBI,EAAO1B,OAAuB,QAAA2B,EAAAlC,KAAKmB,2BAAL,IAAAe,OAAA,EAAAA,EAA0BG,kBACxD,OAAOrC,KAAKmB,oBAAoBkB,iBAAiBJ,GAGjDjC,KAAKsC,sBAAsBzC,IAC3BO,EAAQE,EAAA,CAAA,EACD,QAAA6B,EAAAnC,KAAKsC,WAAWnB,2BAAhB,IAAAgB,OAAA,EAAAA,EAAqC/B,MACrCA,IAIX,MAAMmC,EAA2BvC,KAAKC,KAAKuC,iBAAiBP,EAAQ5B,EAC7DD,EAAAA,GAAAA,GAAAA,CACHkC,WAAYtC,KAAKsC,WACjBG,oBAAqBzC,KAAK0C,wBAC1BC,UAAU,KAGd,OAAIJ,GACAvC,KAAKqB,UAAUkB,EAAcnC,MAAMwC,WAAY,CAAEC,UAAWN,IAC5DvC,KAAK8C,oBAAsBP,EACpBvC,MAGJ,IACX,CAUA+B,wBAAAA,GACI/B,KAAKiB,UAAUc,0BACnB,CAEUgB,cAAAA,CAAeC,GACrB,GAAc,UAAVA,EAAEC,KAA8B,UAAXD,EAAEE,KAAkB,KAEtBC,EAAAA,EACnB,GADqE,WAAlDA,QAAAA,EAAAA,gBAAAA,IAAAA,GAAAA,QAAAA,EAAAA,EAAUC,qBAAVD,IAAAA,OAAAA,EAAAA,EAAyBE,aAAa,SAErD,OAEJ7C,MAAMuC,eAAeC,EACzB,CACJ,CAEUM,iBAAAA,CAAkBF,EAAwBP,GAGhD,IAAAX,EADoBqB,EAApB,MAAMC,EAAsC,QAAxBD,EAAAvD,KAAKmB,+BAALoC,EAAAA,EAA4BV,EACxB,QAAxBX,EAAAlC,KAAKmB,+BAALe,GAAAA,EAA0BoB,kBAAkBF,EAAeI,EAC/D,CAEAC,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAM5D,KAAKI,MAAMwD,KAAMC,eAAgB7D,KAAKI,MAAMyD,eAAgBC,UAAW9D,KAAK8D,WAC5FJ,EAACK,EAAAA,CAAgBC,QAAShE,KAAKI,MAAM6D,QAAQD,SACzCN,EAACQ,EAAAA,EAAAA,EAAAA,GACOlE,KAAKI,OAAK,CACdH,KAAMD,KAAKC,KACXqC,WAAYtC,KAAKsC,WACjB6B,iBAAkBnE,KAAKoE,aACvBC,IAAKpD,IACDjB,KAAKiB,UAAYA,CAAAA,MAMzC,CA1LAqD,WAAAA,CAAYC,EAAiBnE,GACzBI,MAAM+D,EAAUnE,GATpBoE,EAAAxE,KAAOiB,YAAY,MAEnBuD,EAAAxE,KAAQyE,mCAAR,GAIAD,EAAAxE,KAAO8C,2BAAP,GAsFA0B,OAAQJ,gBAAe,KACnB,MAAMK,4BAAEA,EAA2BC,yBAAEA,EAAwBC,mBAAEA,EAAkBlE,oBAAEA,GAAwBT,KAAKI,OAE1GwE,eAAEA,EAAcC,qBAAEA,EAAoBC,sBAAEA,GAA0BC,EACpE/E,KAAKC,KAAK+E,uBACVvE,GAGEwE,EAAcC,EAAe7E,EAAKC,EAAA,GAAAN,KAAKI,OAAK,CAAEkC,WAAYtC,KAAKsC,cAQrE,MAAO,CANgBoC,EACjBS,EAAqBN,EAAsBJ,EAA6BQ,EAAajF,KAAKC,MAC1F,GACW0E,EAAqBS,EAAeR,EAAgBH,EAA6BQ,EAAajF,KAAKC,MAAQ,GAC7FoF,EAA6BP,EAAuBL,EAA6BQ,EAAajF,KAAKC,MAEzE,IA6C7DuE,EAAUc,KAAAA,eAAc,EAAGC,YAClBvF,KAAKwF,aAAa,CAAED,SAAM,IAhJ/BvF,KAAK4B,OAAS5B,KAAK4B,OAAO6D,KAAKzF,MAC/BA,KAAKgC,aAAehC,KAAKgC,aAAayD,KAAKzF,MAE3CA,KAAKI,MAAMsF,wBAAwBC,SAAQC,GAAiB5F,KAAKC,KAAK4F,SAASD,KAC/E5F,KAAKyE,4BAA8BzE,KAAKI,MAAMqE,6BAA+B,CAAC,CAClF,EAnBAD,EADE3E,EACYU,OAAOuF,EAAWC,QAEhCvB,EAHE3E,EAGemG,eAAeA"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport { DropinComponentProps, DropinComponentState, DropinStatusProps, onOrderCancelData } from '../types';\nimport './DropinComponent.scss';\nimport { UIElementStatus } from '../../internal/UIElement/types';\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 UIElement from '../../internal/UIElement';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {}\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, orderStatusPromise]).then(\n ([storedPaymentElements, elements, instantPaymentElements, orderStatus]) => {\n this.setState({ instantPaymentElements, elements, storedPaymentElements, orderStatus });\n this.setStatus('ready');\n\n this.props.modules?.analytics.sendAnalytics('dropin', {\n type: ANALYTICS_RENDERED_STR,\n configData: this.analyticConfigData\n });\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: UIElementStatus, 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 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 paymentMethod.submitAnalytics({ type: ANALYTICS_RENDERED_STR });\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 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(props, { elements, instantPaymentElements, storedPaymentElements, status, activePaymentMethod, cachedPaymentMethods }) {\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={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 {!!hasPaymentMethodsToBeDisplayed && (\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","instantPaymentElements","storedPaymentElements","cachedPaymentMethods","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","h","Status","Success","message","amount","value","Error","component","div","className","PaymentMethodList","isDisablingPaymentMethod","isDisabling","paymentMethods","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","onSelect","handleOnSelectPaymentMethod","openPaymentMethod","openFirstPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","showRadioButton","super","args","_define_property","undefined","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","_this_props_modules","modules","analytics","sendAnalytics","ANALYTICS_RENDERED_STR","configData","getOnOrderCancel","setActivePaymentMethod","paymentMethod","_object_spread_props","_object_spread","_id","activate","_this_props_onSelect","_this_props","call","submitAnalytics","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","catch","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, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport { DropinComponentProps, DropinComponentState, DropinStatusProps, onOrderCancelData } from '../types';\nimport './DropinComponent.scss';\nimport { UIElementStatus } from '../../internal/UIElement/types';\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 UIElement from '../../internal/UIElement';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {}\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, orderStatusPromise]).then(\n ([storedPaymentElements, elements, instantPaymentElements, orderStatus]) => {\n this.setState({ instantPaymentElements, elements, storedPaymentElements, orderStatus });\n this.setStatus('ready');\n\n this.props.modules?.analytics.sendAnalytics('dropin', {\n type: ANALYTICS_RENDERED_STR,\n configData: this.analyticConfigData\n });\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: UIElementStatus, 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 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 paymentMethod.submitAnalytics({ type: ANALYTICS_RENDERED_STR });\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 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(props, { elements, instantPaymentElements, storedPaymentElements, status, activePaymentMethod, cachedPaymentMethods }) {\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={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 {!!hasPaymentMethodsToBeDisplayed && (\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","instantPaymentElements","storedPaymentElements","cachedPaymentMethods","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","h","Status","Success","message","amount","value","Error","component","div","className","PaymentMethodList","isDisablingPaymentMethod","isDisabling","paymentMethods","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","onSelect","handleOnSelectPaymentMethod","openPaymentMethod","openFirstPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","showRadioButton","super","args","_define_property","undefined","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","_this_props_modules","modules","analytics","sendAnalytics","ANALYTICS_RENDERED_STR","configData","getOnOrderCancel","setActivePaymentMethod","paymentMethod","_object_spread_props","_object_spread","_id","activate","_this_props_onSelect","_this_props","call","submitAnalytics","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","catch","data","sanitizeOrder","elementRef","handleAdvanceFlowPaymentMethodsUpdate","error","AdyenCheckoutError","session","cancelOrder","core","update","console"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentMethodItem.js","sources":["../../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport PaymentMethodDetails from '../PaymentMethodDetails';\nimport PaymentMethodIcon from '../PaymentMethodIcon';\nimport DisableOneClickConfirmation from '../DisableOneClickConfirmation';\nimport './PaymentMethodItem.scss';\nimport UIElement from '../../../../internal/UIElement/UIElement';\nimport PaymentMethodBrands from '../PaymentMethodBrands/PaymentMethodBrands';\nimport { BRAND_ICON_UI_EXCLUSION_LIST } from '../../../../internal/SecuredFields/lib/constants';\nimport PaymentMethodName from '../PaymentMethodName';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport ExpandButton from '../../../../internal/ExpandButton';\n\nexport interface PaymentMethodItemProps {\n paymentMethod: UIElement;\n isSelected?: boolean;\n isLoaded?: boolean;\n isLoading?: boolean;\n isDisablingPaymentMethod: boolean;\n showRemovePaymentMethodButton: boolean;\n onDisableStoredPaymentMethod: (paymentMethod) => void;\n onSelect: (paymentMethod: UIElement) => void;\n standalone: boolean;\n className?: string;\n showRadioButton?: boolean;\n}\n\nclass PaymentMethodItem extends Component<PaymentMethodItemProps> {\n public static defaultProps = {\n paymentMethod: null,\n isSelected: false,\n isLoaded: false,\n isLoading: false,\n showDisableStoredPaymentMethodConfirmation: false,\n showRadioButton: false\n };\n\n public state = {\n showDisableStoredPaymentMethodConfirmation: false\n };\n\n public toggleDisableConfirmation = () => {\n this.setState({ showDisableStoredPaymentMethodConfirmation: !this.state.showDisableStoredPaymentMethodConfirmation });\n };\n\n public onDisableStoredPaymentMethod = () => {\n this.props.onDisableStoredPaymentMethod(this.props.paymentMethod);\n this.toggleDisableConfirmation();\n };\n\n private handleOnListItemClick = (): void => {\n const { onSelect, paymentMethod } = this.props;\n onSelect(paymentMethod);\n };\n\n // @ts-ignore need to refine the type for paymentMethod\n render({ paymentMethod, isSelected, isDisablingPaymentMethod, isLoaded, isLoading, standalone, showRadioButton }) {\n const { i18n } = useCoreContext();\n\n if (!paymentMethod) {\n return null;\n }\n\n const isCard = paymentMethod.props.type === 'card' || paymentMethod.props.type === 'scheme';\n\n const paymentMethodClassnames = classNames({\n 'adyen-checkout__payment-method': true,\n [`adyen-checkout__payment-method--${paymentMethod.props.type}`]: true,\n ...(isCard && { [`adyen-checkout__payment-method--${paymentMethod.props.fundingSource ?? 'credit'}`]: true }),\n 'adyen-checkout__payment-method--selected': isSelected,\n 'adyen-checkout__payment-method--loading': isLoading,\n 'adyen-checkout__payment-method--disabling': isDisablingPaymentMethod,\n 'adyen-checkout__payment-method--confirming': this.state.showDisableStoredPaymentMethodConfirmation,\n 'adyen-checkout__payment-method--standalone': standalone,\n [paymentMethod._id]: true,\n [this.props.className]: true\n });\n\n const showRemovePaymentMethodButton = this.props.showRemovePaymentMethodButton && paymentMethod.props.oneClick && isSelected;\n const disableConfirmationId = `remove-${paymentMethod._id}`;\n const containerId = `container-${paymentMethod._id}`;\n const buttonId = `button-${paymentMethod._id}`;\n\n const showBrands = !paymentMethod.props.oneClick && paymentMethod.brands && paymentMethod.brands.length > 0;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div key={paymentMethod._id} className={paymentMethodClassnames} onClick={this.handleOnListItemClick}>\n <div className=\"adyen-checkout__payment-method__header\">\n <ExpandButton buttonId={buttonId} showRadioButton={showRadioButton} isSelected={isSelected} expandContentId={containerId}>\n <PaymentMethodIcon\n // Only add alt attribute to storedPaymentMethods (to avoid SR reading the PM name twice)\n {...(paymentMethod.props.oneClick && { altDescription: paymentMethod.props.name })}\n type={paymentMethod.type}\n src={paymentMethod.icon}\n />\n\n <PaymentMethodName\n displayName={paymentMethod.displayName}\n isSelected={isSelected}\n additionalInfo={paymentMethod.additionalInfo}\n />\n </ExpandButton>\n\n {showRemovePaymentMethodButton && (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link\"\n onClick={this.toggleDisableConfirmation}\n aria-expanded={this.state.showDisableStoredPaymentMethodConfirmation}\n aria-controls={disableConfirmationId}\n >\n {i18n.get('storedPaymentMethod.disable.button')}\n </button>\n )}\n\n {showBrands && (\n <PaymentMethodBrands\n showOtherInsteafOfNumber={paymentMethod.props.showOtherInsteafOfNumber}\n keepBrandsVisible={paymentMethod.props.keepBrandsVisible}\n brands={paymentMethod.brands}\n excludedUIBrands={BRAND_ICON_UI_EXCLUSION_LIST}\n isPaymentMethodSelected={isSelected}\n />\n )}\n </div>\n\n <div className=\"adyen-checkout-pm-details-wrapper\" aria-hidden={!isSelected}>\n <div className=\"adyen-checkout__payment-method__details\" id={containerId}>\n {showRemovePaymentMethodButton && (\n <DisableOneClickConfirmation\n id={disableConfirmationId}\n open={this.state.showDisableStoredPaymentMethodConfirmation}\n onDisable={this.onDisableStoredPaymentMethod}\n onCancel={this.toggleDisableConfirmation}\n />\n )}\n\n <PaymentMethodDetails paymentMethodComponent={paymentMethod.render()} isLoaded={isLoaded} />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default PaymentMethodItem;\n"],"names":["PaymentMethodItem","Component","render","paymentMethod","isSelected","isDisablingPaymentMethod","isLoaded","isLoading","standalone","showRadioButton","i18n","useCoreContext","isCard","props","type","paymentMethodClassnames","classNames","_object_spread_props","_object_spread","fundingSource","this","state","showDisableStoredPaymentMethodConfirmation","_id","className","showRemovePaymentMethodButton","oneClick","disableConfirmationId","containerId","buttonId","showBrands","brands","length","h","div","key","onClick","handleOnListItemClick","ExpandButton","expandContentId","PaymentMethodIcon","altDescription","name","src","icon","PaymentMethodName","displayName","additionalInfo","button","toggleDisableConfirmation","aria-expanded","aria-controls","get","PaymentMethodBrands","showOtherInsteafOfNumber","keepBrandsVisible","excludedUIBrands","BRAND_ICON_UI_EXCLUSION_LIST","isPaymentMethodSelected","aria-hidden","id","DisableOneClickConfirmation","open","onDisable","onDisableStoredPaymentMethod","onCancel","PaymentMethodDetails","paymentMethodComponent","super","args","_define_property","setState","onSelect","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"PaymentMethodItem.js","sources":["../../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport PaymentMethodDetails from '../PaymentMethodDetails';\nimport PaymentMethodIcon from '../PaymentMethodIcon';\nimport DisableOneClickConfirmation from '../DisableOneClickConfirmation';\nimport './PaymentMethodItem.scss';\nimport UIElement from '../../../../internal/UIElement/UIElement';\nimport PaymentMethodBrands from '../PaymentMethodBrands/PaymentMethodBrands';\nimport { BRAND_ICON_UI_EXCLUSION_LIST } from '../../../../internal/SecuredFields/lib/constants';\nimport PaymentMethodName from '../PaymentMethodName';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport ExpandButton from '../../../../internal/ExpandButton';\n\nexport interface PaymentMethodItemProps {\n paymentMethod: UIElement;\n isSelected?: boolean;\n isLoaded?: boolean;\n isLoading?: boolean;\n isDisablingPaymentMethod: boolean;\n showRemovePaymentMethodButton: boolean;\n onDisableStoredPaymentMethod: (paymentMethod) => void;\n onSelect: (paymentMethod: UIElement) => void;\n standalone: boolean;\n className?: string;\n showRadioButton?: boolean;\n}\n\nclass PaymentMethodItem extends Component<PaymentMethodItemProps> {\n public static defaultProps = {\n paymentMethod: null,\n isSelected: false,\n isLoaded: false,\n isLoading: false,\n showDisableStoredPaymentMethodConfirmation: false,\n showRadioButton: false\n };\n\n public state = {\n showDisableStoredPaymentMethodConfirmation: false\n };\n\n public toggleDisableConfirmation = () => {\n this.setState({ showDisableStoredPaymentMethodConfirmation: !this.state.showDisableStoredPaymentMethodConfirmation });\n };\n\n public onDisableStoredPaymentMethod = () => {\n this.props.onDisableStoredPaymentMethod(this.props.paymentMethod);\n this.toggleDisableConfirmation();\n };\n\n private handleOnListItemClick = (): void => {\n const { onSelect, paymentMethod } = this.props;\n onSelect(paymentMethod);\n };\n\n // @ts-ignore need to refine the type for paymentMethod\n render({ paymentMethod, isSelected, isDisablingPaymentMethod, isLoaded, isLoading, standalone, showRadioButton }) {\n const { i18n } = useCoreContext();\n\n if (!paymentMethod) {\n return null;\n }\n\n const isCard = paymentMethod.props.type === 'card' || paymentMethod.props.type === 'scheme';\n\n const paymentMethodClassnames = classNames({\n 'adyen-checkout__payment-method': true,\n [`adyen-checkout__payment-method--${paymentMethod.props.type}`]: true,\n ...(isCard && { [`adyen-checkout__payment-method--${paymentMethod.props.fundingSource ?? 'credit'}`]: true }),\n 'adyen-checkout__payment-method--selected': isSelected,\n 'adyen-checkout__payment-method--loading': isLoading,\n 'adyen-checkout__payment-method--disabling': isDisablingPaymentMethod,\n 'adyen-checkout__payment-method--confirming': this.state.showDisableStoredPaymentMethodConfirmation,\n 'adyen-checkout__payment-method--standalone': standalone,\n [paymentMethod._id]: true,\n [this.props.className]: true\n });\n\n const showRemovePaymentMethodButton = this.props.showRemovePaymentMethodButton && paymentMethod.props.oneClick && isSelected;\n const disableConfirmationId = `remove-${paymentMethod._id}`;\n const containerId = `container-${paymentMethod._id}`;\n const buttonId = `button-${paymentMethod._id}`;\n\n const showBrands = !paymentMethod.props.oneClick && paymentMethod.brands && paymentMethod.brands.length > 0;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div key={paymentMethod._id} className={paymentMethodClassnames} onClick={this.handleOnListItemClick}>\n <div className=\"adyen-checkout__payment-method__header\">\n <ExpandButton buttonId={buttonId} showRadioButton={showRadioButton} isSelected={isSelected} expandContentId={containerId}>\n <PaymentMethodIcon\n // Only add alt attribute to storedPaymentMethods (to avoid SR reading the PM name twice)\n {...(paymentMethod.props.oneClick && { altDescription: paymentMethod.props.name })}\n type={paymentMethod.type}\n src={paymentMethod.icon}\n />\n\n <PaymentMethodName\n displayName={paymentMethod.displayName}\n isSelected={isSelected}\n additionalInfo={paymentMethod.additionalInfo}\n />\n </ExpandButton>\n\n {showRemovePaymentMethodButton && (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link\"\n onClick={this.toggleDisableConfirmation}\n aria-expanded={this.state.showDisableStoredPaymentMethodConfirmation}\n aria-controls={disableConfirmationId}\n >\n {i18n.get('storedPaymentMethod.disable.button')}\n </button>\n )}\n\n {showBrands && (\n <PaymentMethodBrands\n showOtherInsteafOfNumber={paymentMethod.props.showOtherInsteafOfNumber}\n keepBrandsVisible={paymentMethod.props.keepBrandsVisible}\n brands={paymentMethod.brands}\n excludedUIBrands={BRAND_ICON_UI_EXCLUSION_LIST}\n isPaymentMethodSelected={isSelected}\n />\n )}\n </div>\n\n <div className=\"adyen-checkout-pm-details-wrapper\" aria-hidden={!isSelected}>\n <div className=\"adyen-checkout__payment-method__details\" id={containerId}>\n {showRemovePaymentMethodButton && (\n <DisableOneClickConfirmation\n id={disableConfirmationId}\n open={this.state.showDisableStoredPaymentMethodConfirmation}\n onDisable={this.onDisableStoredPaymentMethod}\n onCancel={this.toggleDisableConfirmation}\n />\n )}\n\n <PaymentMethodDetails paymentMethodComponent={paymentMethod.render()} isLoaded={isLoaded} />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default PaymentMethodItem;\n"],"names":["PaymentMethodItem","Component","render","paymentMethod","isSelected","isDisablingPaymentMethod","isLoaded","isLoading","standalone","showRadioButton","i18n","useCoreContext","isCard","props","type","paymentMethodClassnames","classNames","_object_spread_props","_object_spread","fundingSource","this","state","showDisableStoredPaymentMethodConfirmation","_id","className","showRemovePaymentMethodButton","oneClick","disableConfirmationId","containerId","buttonId","showBrands","brands","length","h","div","key","onClick","handleOnListItemClick","ExpandButton","expandContentId","PaymentMethodIcon","altDescription","name","src","icon","PaymentMethodName","displayName","additionalInfo","button","toggleDisableConfirmation","aria-expanded","aria-controls","get","PaymentMethodBrands","showOtherInsteafOfNumber","keepBrandsVisible","excludedUIBrands","BRAND_ICON_UI_EXCLUSION_LIST","isPaymentMethodSelected","aria-hidden","id","DisableOneClickConfirmation","open","onDisable","onDisableStoredPaymentMethod","onCancel","PaymentMethodDetails","paymentMethodComponent","super","args","_define_property","setState","onSelect","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBrandLogoConfiguration.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/useBrandLogoConfiguration.ts"],"sourcesContent":["import { useEffect, useState } from 'preact/hooks';\nimport UIElement from '../../../internal/UIElement/UIElement';\n\ntype BrandLogoConfiguration = {\n [key: string]: string;\n};\n\nexport function useBrandLogoConfiguration(paymentMethods: UIElement[]): BrandLogoConfiguration {\n const [brandLogoConfiguration, setBrandLogoConfiguration] = useState<BrandLogoConfiguration>({});\n\n useEffect(() => {\n setBrandLogoConfiguration(\n paymentMethods.reduce(\n (accumulator, paymentMethod) => ({\n ...accumulator,\n ...(paymentMethod.props['brand'] && paymentMethod.icon && { [paymentMethod.props['brand']]: paymentMethod.icon })\n }),\n {}\n )\n );\n }, [paymentMethods]);\n\n return brandLogoConfiguration;\n}\n"],"names":["useBrandLogoConfiguration","paymentMethods","brandLogoConfiguration","setBrandLogoConfiguration","useState","useEffect","reduce","accumulator","paymentMethod","_object_spread","props","icon"],"mappings":"kNAOO,SAASA,EAA0BC,GACtC,MAAOC,EAAwBC,GAA6BC,EAAiC,CAAC,GAc9F,OAZAC,GAAU,KACNF,EACIF,EAAeK,QACX,CAACC,EAAaC,0UAAmBC,CAAA,CAAA,EAC1BF,EACCC,EAAcE,MAAM,OAAYF,EAAcG,MAAQ,CAAE,CAACH,EAAcE,aAAiBF,EAAcG,QAE9G,CAAC,GAAA,GAGV,CAACV,IAEGC,CACX"}
1
+ {"version":3,"file":"useBrandLogoConfiguration.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/useBrandLogoConfiguration.ts"],"sourcesContent":["import { useEffect, useState } from 'preact/hooks';\nimport UIElement from '../../../internal/UIElement/UIElement';\n\ntype BrandLogoConfiguration = {\n [key: string]: string;\n};\n\nexport function useBrandLogoConfiguration(paymentMethods: UIElement[]): BrandLogoConfiguration {\n const [brandLogoConfiguration, setBrandLogoConfiguration] = useState<BrandLogoConfiguration>({});\n\n useEffect(() => {\n setBrandLogoConfiguration(\n paymentMethods.reduce(\n (accumulator, paymentMethod) => ({\n ...accumulator,\n ...(paymentMethod.props['brand'] && paymentMethod.icon && { [paymentMethod.props['brand']]: paymentMethod.icon })\n }),\n {}\n )\n );\n }, [paymentMethods]);\n\n return brandLogoConfiguration;\n}\n"],"names":["useBrandLogoConfiguration","paymentMethods","brandLogoConfiguration","setBrandLogoConfiguration","useState","useEffect","reduce","accumulator","paymentMethod","_object_spread","props","icon"],"mappings":"kNAOO,SAASA,EAA0BC,GACtC,MAAOC,EAAwBC,GAA6BC,EAAiC,CAAA,GAc7F,OAZAC,GAAU,KACNF,EACIF,EAAeK,QACX,CAACC,EAAaC,0UAAmBC,CAAA,CAAA,EAC1BF,EACCC,EAAcE,MAAM,OAAYF,EAAcG,MAAQ,CAAE,CAACH,EAAcE,aAAiBF,EAAcG,QAE9G,CAAC,GAAA,GAGV,CAACV,IAEGC,CACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sources":["../../../../../src/components/Dropin/elements/filters.ts"],"sourcesContent":["import promiseTimeout from '../../../utils/promiseTimeout';\nimport type { PaymentMethod, StoredPaymentMethod, UIElement } from '../../../types';\n\nexport const UNSUPPORTED_PAYMENT_METHODS = ['androidpay', 'samsungpay', 'clicktopay'];\n\n/**\n * Filter out payment methods that are not supported by Drop-in\n * @param paymentMethod - Payment method object from /paymentMethods response\n */\nexport const filterUnsupportedPaymentMethod = (paymentMethod: PaymentMethod | StoredPaymentMethod) =>\n !UNSUPPORTED_PAYMENT_METHODS.includes(paymentMethod.type);\n\n// filter payment methods that we support (that are in the paymentMethods/index dictionary)\nexport const filterPresent = paymentMethod => !!paymentMethod;\n\n// filter payment methods that are available to the user\nexport const filterAvailable = (elements: UIElement[]) => {\n const elementIsAvailablePromises = elements.map(element => {\n const { promise } = promiseTimeout(5000, element.isAvailable(), {});\n return promise;\n });\n\n return Promise.allSettled(elementIsAvailablePromises).then(promiseResults => {\n return elements.filter((element, i) => promiseResults[i].status === 'fulfilled');\n });\n};\n\nexport const optionallyFilterUpiSubTxVariants = (paymentMethods: Array<PaymentMethod | StoredPaymentMethod>) => {\n const hasUpiParent = paymentMethods.some(pm => pm?.type === 'upi');\n // If we don't get the 'upi' parent, we render multiple upi components\n if (!hasUpiParent) return paymentMethods;\n\n // If we get the 'upi' parent, we remove upi sub tx_variant components\n const UPI_SUB_TX_VARIANTS = ['upi_qr', 'upi_collect', 'upi_intent'];\n return paymentMethods.filter(pm => !UPI_SUB_TX_VARIANTS.includes(pm?.type));\n};\n"],"names":["UNSUPPORTED_PAYMENT_METHODS","filterUnsupportedPaymentMethod","paymentMethod","includes","type","filterPresent","filterAvailable","elements","elementIsAvailablePromises","map","element","promise","promiseTimeout","isAvailable","Promise","allSettled","then","promiseResults","filter","i","status","optionallyFilterUpiSubTxVariants","paymentMethods","some","pm","UPI_SUB_TX_VARIANTS"],"mappings":"sDAGaA,EAA8B,CAAC,aAAc,aAAc,cAM3DC,EAAkCC,IAC1CF,EAA4BG,SAASD,EAAcE,MAG3CC,EAAgBH,KAAmBA,EAGnCI,EAAmBC,IAC5B,MAAMC,EAA6BD,EAASE,KAAIC,IAC5C,MAAMC,QAAEA,GAAYC,EAAe,IAAMF,EAAQG,cAAe,CAAA,GAChE,OAAOF,CAAAA,IAGX,OAAOG,QAAQC,WAAWP,GAA4BQ,MAAKC,GAChDV,EAASW,QAAO,CAACR,EAASS,IAAmC,cAA7BF,EAAeE,GAAGC,UAC7D,EAGSC,EAAoCC,IAG7C,IAFqBA,EAAeC,MAAKC,GAAmB,SAAbA,aAAAA,EAAAA,EAAIpB,QAEhC,OAAOkB,EAG1B,MAAMG,EAAsB,CAAC,SAAU,cAAe,cACtD,OAAOH,EAAeJ,QAAOM,IAAOC,EAAoBtB,SAASqB,aAAAA,EAAAA,EAAIpB,OAAI"}
1
+ {"version":3,"file":"filters.js","sources":["../../../../../src/components/Dropin/elements/filters.ts"],"sourcesContent":["import promiseTimeout from '../../../utils/promiseTimeout';\nimport type { PaymentMethod, StoredPaymentMethod, UIElement } from '../../../types';\n\nexport const UNSUPPORTED_PAYMENT_METHODS = ['androidpay', 'samsungpay', 'clicktopay'];\n\n/**\n * Filter out payment methods that are not supported by Drop-in\n * @param paymentMethod - Payment method object from /paymentMethods response\n */\nexport const filterUnsupportedPaymentMethod = (paymentMethod: PaymentMethod | StoredPaymentMethod) =>\n !UNSUPPORTED_PAYMENT_METHODS.includes(paymentMethod.type);\n\n// filter payment methods that we support (that are in the paymentMethods/index dictionary)\nexport const filterPresent = paymentMethod => !!paymentMethod;\n\n// filter payment methods that are available to the user\nexport const filterAvailable = (elements: UIElement[]) => {\n const elementIsAvailablePromises = elements.map(element => {\n const { promise } = promiseTimeout(5000, element.isAvailable(), {});\n return promise;\n });\n\n return Promise.allSettled(elementIsAvailablePromises).then(promiseResults => {\n return elements.filter((element, i) => promiseResults[i].status === 'fulfilled');\n });\n};\n\nexport const optionallyFilterUpiSubTxVariants = (paymentMethods: Array<PaymentMethod | StoredPaymentMethod>) => {\n const hasUpiParent = paymentMethods.some(pm => pm?.type === 'upi');\n // If we don't get the 'upi' parent, we render multiple upi components\n if (!hasUpiParent) return paymentMethods;\n\n // If we get the 'upi' parent, we remove upi sub tx_variant components\n const UPI_SUB_TX_VARIANTS = ['upi_qr', 'upi_collect', 'upi_intent'];\n return paymentMethods.filter(pm => !UPI_SUB_TX_VARIANTS.includes(pm?.type));\n};\n"],"names":["UNSUPPORTED_PAYMENT_METHODS","filterUnsupportedPaymentMethod","paymentMethod","includes","type","filterPresent","filterAvailable","elements","elementIsAvailablePromises","map","element","promise","promiseTimeout","isAvailable","Promise","allSettled","then","promiseResults","filter","i","status","optionallyFilterUpiSubTxVariants","paymentMethods","some","pm","UPI_SUB_TX_VARIANTS"],"mappings":"sDAGaA,EAA8B,CAAC,aAAc,aAAc,cAM3DC,EAAkCC,IAC1CF,EAA4BG,SAASD,EAAcE,MAG3CC,EAAgBH,KAAmBA,EAGnCI,EAAmBC,IAC5B,MAAMC,EAA6BD,EAASE,KAAIC,IAC5C,MAAMC,QAAEA,GAAYC,EAAe,IAAMF,EAAQG,cAAe,IAChE,OAAOF,CAAAA,IAGX,OAAOG,QAAQC,WAAWP,GAA4BQ,MAAKC,GAChDV,EAASW,QAAO,CAACR,EAASS,IAAmC,cAA7BF,EAAeE,GAAGC,UAC7D,EAGSC,EAAoCC,IAG7C,IAFqBA,EAAeC,MAAKC,GAAmB,SAAbA,aAAAA,EAAAA,EAAIpB,QAEhC,OAAOkB,EAG1B,MAAMG,EAAsB,CAAC,SAAU,cAAe,cACtD,OAAOH,EAAeJ,QAAOM,IAAOC,EAAoBtB,SAASqB,aAAAA,EAAAA,EAAIpB,OAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"getComponentConfiguration.js","sources":["../../../../../src/components/Dropin/elements/getComponentConfiguration.ts"],"sourcesContent":["import { PaymentMethodsConfiguration } from '../types';\n\nexport const getComponentConfiguration = (type: string, paymentMethodsConfiguration: PaymentMethodsConfiguration = {}, isStoredCard = false) => {\n const pmType = type === 'scheme' ? 'card' : type;\n\n if (pmType === 'card' && isStoredCard) {\n return paymentMethodsConfiguration['storedCard'] || {};\n }\n\n return paymentMethodsConfiguration[pmType] || {};\n};\n"],"names":["getComponentConfiguration","type","paymentMethodsConfiguration","isStoredCard","pmType"],"mappings":"AAEO,MAAMA,EAA4B,CAACC,EAAcC,EAA2D,CAAA,EAAIC,GAAe,KAClI,MAAMC,EAAkB,WAATH,EAAoB,OAASA,EAE5C,MAAe,SAAXG,GAAqBD,EACdD,EAAyC,YAAI,GAGjDA,EAA4BE,IAAW,EAAC"}
1
+ {"version":3,"file":"getComponentConfiguration.js","sources":["../../../../../src/components/Dropin/elements/getComponentConfiguration.ts"],"sourcesContent":["import { PaymentMethodsConfiguration } from '../types';\n\nexport const getComponentConfiguration = (type: string, paymentMethodsConfiguration: PaymentMethodsConfiguration = {}, isStoredCard = false) => {\n const pmType = type === 'scheme' ? 'card' : type;\n\n if (pmType === 'card' && isStoredCard) {\n return paymentMethodsConfiguration['storedCard'] || {};\n }\n\n return paymentMethodsConfiguration[pmType] || {};\n};\n"],"names":["getComponentConfiguration","type","paymentMethodsConfiguration","isStoredCard","pmType"],"mappings":"AAEO,MAAMA,EAA4B,CAACC,EAAcC,EAA2D,CAAA,EAAIC,GAAe,KAClI,MAAMC,EAAkB,WAATH,EAAoB,OAASA,EAE5C,MAAe,SAAXG,GAAqBD,EACdD,EAAyC,YAAI,CAAC,EAGlDA,EAA4BE,IAAW,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"EcontextInput.js","sources":["../../../../../../src/components/Econtext/components/EcontextInput/EcontextInput.tsx"],"sourcesContent":["import { Fragment, h, VNode } from 'preact';\nimport { useRef, useState } from 'preact/hooks';\nimport PersonalDetails from '../../../internal/PersonalDetails/PersonalDetails';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { econtextValidationRules } from '../../validate';\nimport { PersonalDetailsSchema } from '../../../../types/global-types';\nimport './EcontextInput.scss';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\ninterface EcontextInputProps {\n personalDetailsRequired?: boolean;\n data?: PersonalDetailsSchema;\n showPayButton: boolean;\n payButton(config: any): VNode;\n onChange?(data: any): void;\n onSubmit?(state: any, component: any): void;\n [key: string]: any;\n}\n\nexport default function EcontextInput({ personalDetailsRequired = true, data, onChange, showPayButton, payButton, ...props }: EcontextInputProps) {\n const personalDetailsRef = useRef(null);\n const setPersonalDetailsRef = ref => {\n personalDetailsRef.current = ref;\n };\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState('ready');\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const econtextRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(econtextRef.current).length) {\n props.setComponentRef?.(econtextRef.current);\n }\n\n econtextRef.current.showValidation = () => {\n personalDetailsRef.current?.showValidation();\n };\n\n econtextRef.current.setStatus = setStatus;\n\n return (\n <div className=\"adyen-checkout__econtext-input__field\">\n {personalDetailsRequired && (\n <Fragment>\n <FormInstruction />\n <PersonalDetails\n data={data}\n requiredFields={['firstName', 'lastName', 'telephoneNumber', 'shopperEmail']}\n onChange={onChange}\n namePrefix=\"econtext\"\n setComponentRef={setPersonalDetailsRef}\n validationRules={econtextValidationRules}\n />\n </Fragment>\n )}\n {showPayButton && payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n"],"names":["EcontextInput","_param","personalDetailsRequired","data","onChange","showPayButton","payButton","props","_object_without_properties","personalDetailsRef","useRef","i18n","useCoreContext","status","setStatus","useState","econtextRef","Object","keys","current","length","setComponentRef","showValidation","h","div","className","Fragment","FormInstruction","PersonalDetails","requiredFields","namePrefix","ref","validationRules","econtextValidationRules","label","get"],"mappings":"kzBAoBe,SAASA,EAAcC,GAAA,IAAAC,wBAAEA,GAA0B,EAAIC,KAAEA,EAAIC,SAAEA,EAAQC,cAAEA,EAAaC,UAAEA,GAAjEL,EAA+EM,EAA/EC,EAAAP,EAAA,CAAEC,0BAAgCC,OAAMC,WAAUC,gBAAeC,cACnG,MAAMG,EAAqBC,EAAO,OAI5BC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAAS,SAG/BC,EAAcN,EAA4B,CAAA,GAG5CH,IAAAA,EADCU,OAAOC,KAAKF,EAAYG,SAASC,SACb,QAArBb,EAAAA,EAAMc,2BAANd,GAAAA,EAAAA,KAAAA,EAAwBS,EAAYG,UASxC,OANAH,EAAYG,QAAQG,eAAiB,KACjCb,IAAAA,EAAAA,QAAAA,EAAAA,EAAmBU,eAAnBV,IAAAA,GAAAA,EAA4Ba,gBAAc,EAG9CN,EAAYG,QAAQL,UAAYA,EAG5BS,EAACC,MAAAA,CAAIC,UAAU,yCACVvB,GACGqB,EAACG,EAAAA,KACGH,EAACI,EAAAA,MACDJ,EAACK,EAAAA,CACGzB,KAAMA,EACN0B,eAAgB,CAAC,YAAa,WAAY,kBAAmB,gBAC7DzB,SAAUA,EACV0B,WAAW,WACXT,gBA9BUU,IAC1BtB,EAAmBU,QAAUY,CAAAA,EA8BbC,gBAAiBC,KAI5B5B,GAAiBC,EAAU,CAAEO,SAAQqB,MAAOvB,EAAKwB,IAAI,qBAGlE"}
1
+ {"version":3,"file":"EcontextInput.js","sources":["../../../../../../src/components/Econtext/components/EcontextInput/EcontextInput.tsx"],"sourcesContent":["import { Fragment, h, VNode } from 'preact';\nimport { useRef, useState } from 'preact/hooks';\nimport PersonalDetails from '../../../internal/PersonalDetails/PersonalDetails';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { econtextValidationRules } from '../../validate';\nimport { PersonalDetailsSchema } from '../../../../types/global-types';\nimport './EcontextInput.scss';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\ninterface EcontextInputProps {\n personalDetailsRequired?: boolean;\n data?: PersonalDetailsSchema;\n showPayButton: boolean;\n payButton(config: any): VNode;\n onChange?(data: any): void;\n onSubmit?(state: any, component: any): void;\n [key: string]: any;\n}\n\nexport default function EcontextInput({ personalDetailsRequired = true, data, onChange, showPayButton, payButton, ...props }: EcontextInputProps) {\n const personalDetailsRef = useRef(null);\n const setPersonalDetailsRef = ref => {\n personalDetailsRef.current = ref;\n };\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState('ready');\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const econtextRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(econtextRef.current).length) {\n props.setComponentRef?.(econtextRef.current);\n }\n\n econtextRef.current.showValidation = () => {\n personalDetailsRef.current?.showValidation();\n };\n\n econtextRef.current.setStatus = setStatus;\n\n return (\n <div className=\"adyen-checkout__econtext-input__field\">\n {personalDetailsRequired && (\n <Fragment>\n <FormInstruction />\n <PersonalDetails\n data={data}\n requiredFields={['firstName', 'lastName', 'telephoneNumber', 'shopperEmail']}\n onChange={onChange}\n namePrefix=\"econtext\"\n setComponentRef={setPersonalDetailsRef}\n validationRules={econtextValidationRules}\n />\n </Fragment>\n )}\n {showPayButton && payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n"],"names":["EcontextInput","_param","personalDetailsRequired","data","onChange","showPayButton","payButton","props","_object_without_properties","personalDetailsRef","useRef","i18n","useCoreContext","status","setStatus","useState","econtextRef","Object","keys","current","length","setComponentRef","showValidation","h","div","className","Fragment","FormInstruction","PersonalDetails","requiredFields","namePrefix","ref","validationRules","econtextValidationRules","label","get"],"mappings":"kzBAoBe,SAASA,EAAcC,GAAA,IAAAC,wBAAEA,GAA0B,EAAIC,KAAEA,EAAIC,SAAEA,EAAQC,cAAEA,EAAaC,UAAEA,GAAjEL,EAA+EM,EAA/EC,EAAAP,EAAA,CAAEC,0BAAgCC,OAAMC,WAAUC,gBAAeC,cACnG,MAAMG,EAAqBC,EAAO,OAI5BC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAAS,SAG/BC,EAAcN,EAA4B,IAG5CH,IAAAA,EADCU,OAAOC,KAAKF,EAAYG,SAASC,SACb,QAArBb,EAAAA,EAAMc,2BAANd,GAAAA,EAAAA,KAAAA,EAAwBS,EAAYG,UASxC,OANAH,EAAYG,QAAQG,eAAiB,KACjCb,IAAAA,EAAAA,QAAAA,EAAAA,EAAmBU,eAAnBV,IAAAA,GAAAA,EAA4Ba,gBAAc,EAG9CN,EAAYG,QAAQL,UAAYA,EAG5BS,EAACC,MAAAA,CAAIC,UAAU,yCACVvB,GACGqB,EAACG,EAAAA,KACGH,EAACI,EAAAA,MACDJ,EAACK,EAAAA,CACGzB,KAAMA,EACN0B,eAAgB,CAAC,YAAa,WAAY,kBAAmB,gBAC7DzB,SAAUA,EACV0B,WAAW,WACXT,gBA9BUU,IAC1BtB,EAAmBU,QAAUY,CAAAA,EA8BbC,gBAAiBC,KAI5B5B,GAAiBC,EAAU,CAAEO,SAAQqB,MAAOvB,EAAKwB,IAAI,qBAGlE"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import r from"./components/GiftcardComponent.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import o from"../internal/PayButton/PayButton.js";import s from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as i}from"../tx-variants.js";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(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){a(e,t,r[t])}))}return e}function c(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}class h extends t{formatProps(e){return p({},null==e?void 0:e.configuration,e)}formatData(){var e,t;return{paymentMethod:{type:this.constructor.type,brand:this.props.brand,encryptedCardNumber:null===(e=this.state.data)||void 0===e?void 0:e.encryptedCardNumber,encryptedSecurityCode:null===(t=this.state.data)||void 0===t?void 0:t.encryptedSecurityCode}}}get isValid(){return!!this.state.isValid}get icon(){var e;return(null===(e=this.props.brandsConfiguration[this.props.brand])||void 0===e?void 0:e.icon)||this.props.icon||this.resources.getImage()(this.props.brand)}get displayName(){var e;return(null===(e=this.props.brandsConfiguration[this.props.brand])||void 0===e?void 0:e.name)||this.props.name}balanceCheck(){return this.onBalanceCheck()}submit(){if(!this.isValid)return this.showValidation(),!1;this.balanceCheck()}render(){return e(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(r,c(p({ref:e=>{this.componentRef=e}},this.props),{handleKeyPress:this.handleKeyPress,showPayButton:this.props.showPayButton,onChange:this.setState,onBalanceCheck:this.onBalanceCheck,onSubmit:this.submit,payButton:this.payButton})))}constructor(...t){super(...t),a(this,"handleBalanceCheck",(e=>this.props.onBalanceCheck?new Promise(((t,r)=>{this.props.onBalanceCheck(t,r,e)})):this.props.session?this.props.session.checkBalance(e):void 0)),a(this,"onOrderRequest",(e=>this.props.onOrderRequest?new Promise(((t,r)=>{this.props.onOrderRequest(t,r,e)})):this.props.session?this.props.session.createOrder():void 0)),a(this,"onBalanceCheck",(()=>{if(!(this.props.session||this.props.onBalanceCheck))return super.submit();this.setStatus("loading"),this.handleBalanceCheck(this.formatData()).then((({balance:e,transactionLimit:t={}})=>{var r;if(!e)throw new Error("card-error");if((null==e?void 0:e.currency)!==(null===(r=this.props.amount)||void 0===r?void 0:r.currency))throw new Error("currency-error");if((null==e?void 0:e.value)<=0)throw new Error("no-balance");return this.componentRef.setBalance({balance:e,transactionLimit:t}),this.props.amount.value>e.value||this.props.amount.value>t.value?this.props.order?super.submit():this.onOrderRequest(this.data).then((e=>(this.setState({order:{orderData:e.orderData,pspReference:e.pspReference}}),super.submit()))):this.handleOnRequiringConfirmation().then((()=>super.submit()))})).catch((e=>{this.setStatus((null==e?void 0:e.message)||"error"),this.props.onError&&this.handleError(new s("ERROR",e))}))})),a(this,"handleOnRequiringConfirmation",(()=>{if(this.props.onRequiringConfirmation)return new Promise(((e,t)=>{this.props.onRequiringConfirmation(e,t)}))})),a(this,"payButton",(t=>e(o,t)))}}a(h,"type",i.giftcard),a(h,"defaultProps",{brandsConfiguration:{}});export{h as GiftcardElement,h as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import r from"./components/GiftcardComponent.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import o from"../internal/PayButton/PayButton.js";import s from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as i}from"../tx-variants.js";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(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){a(e,t,r[t])}))}return e}function c(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}class h extends t{formatProps(e){return p({},null==e?void 0:e.configuration,e)}formatData(){var e,t;return{paymentMethod:{type:this.constructor.type,brand:this.props.brand,encryptedCardNumber:null===(e=this.state.data)||void 0===e?void 0:e.encryptedCardNumber,encryptedSecurityCode:null===(t=this.state.data)||void 0===t?void 0:t.encryptedSecurityCode}}}get isValid(){return!!this.state.isValid}get icon(){var e;return(null===(e=this.props.brandsConfiguration[this.props.brand])||void 0===e?void 0:e.icon)||this.props.icon||this.resources.getImage()(this.props.brand)}get displayName(){var e;return(null===(e=this.props.brandsConfiguration[this.props.brand])||void 0===e?void 0:e.name)||this.props.name}balanceCheck(){return this.onBalanceCheck()}submit(){if(!this.isValid)return this.showValidation(),!1;this.balanceCheck()}render(){return e(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(r,c(p({ref:e=>{this.componentRef=e}},this.props),{handleKeyPress:this.handleKeyPress,showPayButton:this.props.showPayButton,onChange:this.setState,onBalanceCheck:this.onBalanceCheck,onSubmit:this.submit,payButton:this.payButton})))}constructor(...t){super(...t),a(this,"handleBalanceCheck",(e=>this.props.onBalanceCheck?new Promise(((t,r)=>{this.props.onBalanceCheck(t,r,e)})):this.props.session?this.props.session.checkBalance(e):void 0)),a(this,"onOrderRequest",(e=>this.props.onOrderRequest?new Promise(((t,r)=>{this.props.onOrderRequest(t,r,e)})):this.props.session?this.props.session.createOrder():void 0)),a(this,"onBalanceCheck",(()=>{if(!(this.props.session||this.props.onBalanceCheck))return super.submit();this.setStatus("loading"),this.handleBalanceCheck(this.formatData()).then((({balance:e,transactionLimit:t={}})=>{var r;if(!e)throw new Error("card-error");if((null==e?void 0:e.currency)!==(null===(r=this.props.amount)||void 0===r?void 0:r.currency))throw new Error("currency-error");if((null==e?void 0:e.value)<=0)throw new Error("no-balance");return this.componentRef.setBalance({balance:e,transactionLimit:t}),this.props.amount.value>e.value||this.props.amount.value>t.value?this.props.order?super.submit():this.onOrderRequest(this.data).then((e=>(this.setState({order:{orderData:e.orderData,pspReference:e.pspReference}}),super.submit()))):this.handleOnRequiringConfirmation().then((()=>super.submit()))})).catch((e=>{this.setStatus((null==e?void 0:e.message)||"error"),this.props.onError&&(e instanceof s?this.handleError(e):this.handleError(new s("ERROR",e)))}))})),a(this,"handleOnRequiringConfirmation",(()=>{if(this.props.onRequiringConfirmation)return new Promise(((e,t)=>{this.props.onRequiringConfirmation(e,t)}))})),a(this,"payButton",(t=>e(o,t)))}}a(h,"type",i.giftcard),a(h,"defaultProps",{brandsConfiguration:{}});export{h as GiftcardElement,h as default};
2
2
  //# sourceMappingURL=Giftcard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Giftcard.js","sources":["../../../../src/components/Giftcard/Giftcard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GiftcardComponent from './components/GiftcardComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport PayButton from '../internal/PayButton';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { PaymentAmount } from '../../types/global-types';\nimport { GiftCardElementData, GiftCardConfiguration, balanceCheckResponseType } from './types';\nimport { TxVariants } from '../tx-variants';\n\nexport class GiftcardElement extends UIElement<GiftCardConfiguration> {\n public static type = TxVariants.giftcard;\n\n protected static defaultProps = {\n brandsConfiguration: {}\n };\n\n formatProps(props) {\n return {\n ...props?.configuration,\n ...props\n };\n }\n\n formatData(): GiftCardElementData {\n return {\n paymentMethod: {\n type: this.constructor['type'],\n brand: this.props.brand,\n encryptedCardNumber: this.state.data?.encryptedCardNumber,\n encryptedSecurityCode: this.state.data?.encryptedSecurityCode\n }\n };\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.brandsConfiguration[this.props.brand]?.icon || this.props.icon || this.resources.getImage()(this.props.brand);\n }\n\n get displayName() {\n return this.props.brandsConfiguration[this.props.brand]?.name || this.props.name;\n }\n\n private handleBalanceCheck = (data: GiftCardElementData): Promise<balanceCheckResponseType> => {\n if (this.props.onBalanceCheck) {\n return new Promise((resolve, reject) => {\n void this.props.onBalanceCheck(resolve, reject, data);\n });\n }\n\n if (this.props.session) {\n return this.props.session.checkBalance(data);\n }\n };\n\n private onOrderRequest = data => {\n if (this.props.onOrderRequest)\n return new Promise((resolve, reject) => {\n void this.props.onOrderRequest(resolve, reject, data);\n });\n\n if (this.props.session) {\n return this.props.session.createOrder();\n }\n };\n\n public balanceCheck() {\n return this.onBalanceCheck();\n }\n\n private onBalanceCheck = (): void => {\n // skip balance check if no onBalanceCheck event has been defined\n const hasBalanceCheck = this.props.session || this.props.onBalanceCheck;\n if (!hasBalanceCheck) return super.submit();\n\n this.setStatus('loading');\n\n this.handleBalanceCheck(this.formatData())\n .then(({ balance, transactionLimit = {} as PaymentAmount }) => {\n if (!balance) throw new Error('card-error'); // card doesn't exist\n if (balance?.currency !== this.props.amount?.currency) throw new Error('currency-error');\n if (balance?.value <= 0) throw new Error('no-balance');\n\n this.componentRef.setBalance({ balance, transactionLimit });\n\n if (this.props.amount.value > balance.value || this.props.amount.value > transactionLimit.value) {\n if (this.props.order) {\n return super.submit();\n }\n\n return this.onOrderRequest(this.data).then((order: { orderData: string; pspReference: string }) => {\n this.setState({ order: { orderData: order.orderData, pspReference: order.pspReference } });\n return super.submit();\n });\n } else {\n return this.handleOnRequiringConfirmation().then(() => super.submit());\n }\n })\n .catch(error => {\n this.setStatus(error?.message || 'error');\n if (this.props.onError) this.handleError(new AdyenCheckoutError('ERROR', error));\n });\n };\n\n private handleOnRequiringConfirmation = (): Promise<any> => {\n if (this.props.onRequiringConfirmation) {\n return new Promise<void>((resolve, reject) => {\n void this.props.onRequiringConfirmation(resolve, reject);\n });\n }\n };\n\n public submit() {\n if (!this.isValid) {\n this.showValidation();\n return false;\n }\n\n this.balanceCheck();\n }\n\n // Giftcards override the regular payButton flow\n public payButton = props => {\n return <PayButton {...props} />;\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <GiftcardComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n handleKeyPress={this.handleKeyPress}\n showPayButton={this.props.showPayButton}\n onChange={this.setState}\n onBalanceCheck={this.onBalanceCheck}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default GiftcardElement;\n"],"names":["GiftcardElement","UIElement","formatProps","props","_object_spread","configuration","formatData","_this_state_data","_this_state_data1","paymentMethod","type","this","constructor","brand","encryptedCardNumber","state","data","encryptedSecurityCode","isValid","icon","_this_props_brandsConfiguration_this_props_brand","brandsConfiguration","resources","getImage","displayName","name","balanceCheck","onBalanceCheck","submit","showValidation","render","h","CoreProvider","i18n","loadingContext","GiftcardComponent","ref","componentRef","handleKeyPress","showPayButton","onChange","setState","onSubmit","payButton","super","args","_define_property","handleBalanceCheck","Promise","resolve","reject","session","checkBalance","onOrderRequest","createOrder","setStatus","then","balance","transactionLimit","_this_props_amount","Error","currency","amount","value","setBalance","order","orderData","pspReference","handleOnRequiringConfirmation","catch","error","message","onError","handleError","AdyenCheckoutError","onRequiringConfirmation","PayButton","TxVariants","giftcard","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Giftcard.js","sources":["../../../../src/components/Giftcard/Giftcard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GiftcardComponent from './components/GiftcardComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport PayButton from '../internal/PayButton';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { PaymentAmount } from '../../types/global-types';\nimport { GiftCardElementData, GiftCardConfiguration, balanceCheckResponseType } from './types';\nimport { TxVariants } from '../tx-variants';\n\nexport class GiftcardElement extends UIElement<GiftCardConfiguration> {\n public static type = TxVariants.giftcard;\n\n protected static defaultProps = {\n brandsConfiguration: {}\n };\n\n formatProps(props) {\n return {\n ...props?.configuration,\n ...props\n };\n }\n\n formatData(): GiftCardElementData {\n return {\n paymentMethod: {\n type: this.constructor['type'],\n brand: this.props.brand,\n encryptedCardNumber: this.state.data?.encryptedCardNumber,\n encryptedSecurityCode: this.state.data?.encryptedSecurityCode\n }\n };\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.brandsConfiguration[this.props.brand]?.icon || this.props.icon || this.resources.getImage()(this.props.brand);\n }\n\n get displayName() {\n return this.props.brandsConfiguration[this.props.brand]?.name || this.props.name;\n }\n\n private handleBalanceCheck = (data: GiftCardElementData): Promise<balanceCheckResponseType> => {\n if (this.props.onBalanceCheck) {\n return new Promise((resolve, reject) => {\n void this.props.onBalanceCheck(resolve, reject, data);\n });\n }\n\n if (this.props.session) {\n return this.props.session.checkBalance(data);\n }\n };\n\n private onOrderRequest = data => {\n if (this.props.onOrderRequest)\n return new Promise((resolve, reject) => {\n void this.props.onOrderRequest(resolve, reject, data);\n });\n if (this.props.session) {\n return this.props.session.createOrder();\n }\n };\n\n public balanceCheck() {\n return this.onBalanceCheck();\n }\n\n private onBalanceCheck = (): void => {\n // skip balance check if no onBalanceCheck event has been defined\n const hasBalanceCheck = this.props.session || this.props.onBalanceCheck;\n if (!hasBalanceCheck) return super.submit();\n\n this.setStatus('loading');\n\n this.handleBalanceCheck(this.formatData())\n .then(({ balance, transactionLimit = {} as PaymentAmount }) => {\n if (!balance) throw new Error('card-error'); // card doesn't exist\n if (balance?.currency !== this.props.amount?.currency) throw new Error('currency-error');\n if (balance?.value <= 0) throw new Error('no-balance');\n\n this.componentRef.setBalance({ balance, transactionLimit });\n\n if (this.props.amount.value > balance.value || this.props.amount.value > transactionLimit.value) {\n if (this.props.order) {\n return super.submit();\n }\n\n return this.onOrderRequest(this.data).then((order: { orderData: string; pspReference: string }) => {\n this.setState({ order: { orderData: order.orderData, pspReference: order.pspReference } });\n return super.submit();\n });\n } else {\n return this.handleOnRequiringConfirmation().then(() => super.submit());\n }\n })\n .catch(error => {\n this.setStatus(error?.message || 'error');\n if (this.props.onError) {\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n }\n });\n };\n\n private handleOnRequiringConfirmation = (): Promise<any> => {\n if (this.props.onRequiringConfirmation) {\n return new Promise<void>((resolve, reject) => {\n void this.props.onRequiringConfirmation(resolve, reject);\n });\n }\n };\n\n public submit() {\n if (!this.isValid) {\n this.showValidation();\n return false;\n }\n\n this.balanceCheck();\n }\n\n // Giftcards override the regular payButton flow\n public payButton = props => {\n return <PayButton {...props} />;\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <GiftcardComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n handleKeyPress={this.handleKeyPress}\n showPayButton={this.props.showPayButton}\n onChange={this.setState}\n onBalanceCheck={this.onBalanceCheck}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default GiftcardElement;\n"],"names":["GiftcardElement","UIElement","formatProps","props","_object_spread","configuration","formatData","_this_state_data","_this_state_data1","paymentMethod","type","this","constructor","brand","encryptedCardNumber","state","data","encryptedSecurityCode","isValid","icon","_this_props_brandsConfiguration_this_props_brand","brandsConfiguration","resources","getImage","displayName","name","balanceCheck","onBalanceCheck","submit","showValidation","render","h","CoreProvider","i18n","loadingContext","GiftcardComponent","ref","componentRef","handleKeyPress","showPayButton","onChange","setState","onSubmit","payButton","super","args","_define_property","handleBalanceCheck","Promise","resolve","reject","session","checkBalance","onOrderRequest","createOrder","setStatus","then","balance","transactionLimit","_this_props_amount","Error","currency","amount","value","setBalance","order","orderData","pspReference","handleOnRequiringConfirmation","catch","error","message","onError","AdyenCheckoutError","handleError","onRequiringConfirmation","PayButton","TxVariants","giftcard","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GiftcardComponent.js","sources":["../../../../../src/components/Giftcard/components/GiftcardComponent.tsx"],"sourcesContent":["import { Component, FunctionComponent, h } from 'preact';\nimport SecuredFieldsProvider from '../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport Alert from '../../internal/Alert';\nimport GiftcardResult from './GiftcardResult';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { GIFT_CARD } from '../../internal/SecuredFields/lib/constants';\nimport { GiftCardFields } from './GiftcardFields';\nimport { GiftcardFieldsProps, Placeholders } from './types';\n\ninterface GiftcardComponentProps {\n onChange: (state) => void;\n onFocus: (event) => void;\n onBlur: (event) => void;\n onSubmit: (event) => void;\n onBalanceCheck: (event) => void;\n\n amount?: PaymentAmount;\n showPayButton: boolean;\n payButton: (config) => any;\n\n pinRequired: boolean;\n expiryDateRequired?: boolean;\n fieldsLayoutComponent: FunctionComponent<GiftcardFieldsProps>;\n placeholders?: Placeholders;\n handleKeyPress?: (o: KeyboardEvent) => void;\n}\n\nclass Giftcard extends Component<GiftcardComponentProps> {\n public state = {\n status: 'ready',\n data: {},\n balance: null,\n transactionLimit: null,\n focusedElement: false,\n isValid: false\n };\n\n public static defaultProps = {\n pinRequired: true,\n expiryDateRequired: false,\n onChange: () => {},\n onFocus: () => {},\n onBlur: () => {},\n fieldsLayoutComponent: GiftCardFields\n };\n\n public sfp;\n\n public onChange = sfpState => {\n this.props.onChange({\n data: sfpState.data,\n isValid: sfpState.isSfpValid\n });\n };\n\n public showValidation = () => {\n this.sfp.showValidation();\n };\n\n setStatus(status) {\n this.setState({ status });\n }\n\n public handleFocus = e => {\n this.setState({ focusedElement: e.currentFocusObject });\n\n const isFocused = e.focus === true;\n if (isFocused) {\n this.props.onFocus(e);\n } else {\n this.props.onBlur(e);\n }\n };\n\n public setBalance = ({ balance, transactionLimit }) => {\n this.setState({ balance, transactionLimit });\n };\n\n render(props, { focusedElement, balance, transactionLimit }) {\n const { i18n } = useCoreContext();\n\n const transactionAmount = transactionLimit?.value < balance?.value ? transactionLimit : balance;\n const hasEnoughBalance = transactionAmount?.value >= this.props.amount?.value;\n\n if (transactionAmount && hasEnoughBalance) {\n return <GiftcardResult balance={balance} transactionLimit={transactionLimit} onSubmit={props.onSubmit} {...props} />;\n }\n\n const getCardErrorMessage = sfpState => {\n if (sfpState.errors.encryptedCardNumber) return i18n.get(sfpState.errors.encryptedCardNumber);\n\n switch (this.state.status) {\n case 'no-balance':\n return i18n.get('error.giftcard.no-balance');\n case 'card-error':\n return i18n.get('error.giftcard.card-error');\n case 'currency-error':\n return i18n.get('error.giftcard.currency-error');\n default:\n return null;\n }\n };\n\n return (\n <div className=\"adyen-checkout__giftcard\">\n {this.state.status === 'error' && <Alert icon={'cross'}>{i18n.get('error.message.unknown')}</Alert>}\n\n <SecuredFieldsProvider\n {...this.props}\n ref={ref => {\n this.sfp = ref;\n }}\n onChange={this.onChange}\n onFocus={this.handleFocus}\n type={GIFT_CARD}\n render={({ setRootNode, setFocusOn }, sfpState) =>\n this.props.fieldsLayoutComponent({\n i18n: i18n,\n pinRequired: this.props.pinRequired,\n focusedElement: focusedElement,\n getCardErrorMessage: getCardErrorMessage,\n setRootNode: setRootNode,\n setFocusOn: setFocusOn,\n sfpState: sfpState\n })\n }\n />\n\n {this.props.showPayButton &&\n this.props.payButton({\n status: this.state.status,\n onClick: this.props.onSubmit,\n label: i18n.get('applyGiftcard')\n })}\n </div>\n );\n }\n}\n\nexport default Giftcard;\n"],"names":["Giftcard","Component","setStatus","status","this","setState","render","props","focusedElement","balance","transactionLimit","_this_props_amount","i18n","useCoreContext","transactionAmount","value","hasEnoughBalance","amount","h","GiftcardResult","onSubmit","getCardErrorMessage","sfpState","errors","encryptedCardNumber","get","state","div","className","Alert","icon","SecuredFieldsProvider","_object_spread_props","_object_spread","ref","sfp","onChange","onFocus","handleFocus","type","GIFT_CARD","setRootNode","setFocusOn","fieldsLayoutComponent","pinRequired","showPayButton","payButton","onClick","label","super","args","_define_property","data","isValid","isSfpValid","showValidation","e","currentFocusObject","focus","onBlur","setBalance","defaultProps","expiryDateRequired","GiftCardFields"],"mappings":"quCA4BA,MAAMA,UAAiBC,EAgCnBC,SAAAA,CAAUC,GACNC,KAAKC,SAAS,CAAEF,UACpB,CAiBAG,MAAAA,CAAOC,GAAOC,eAAEA,EAAcC,QAAEA,EAAOC,iBAAEA,IAIgB,IAAAC,EAHrD,MAAMC,KAAEA,GAASC,IAEXC,GAAoBJ,aAAAA,EAAAA,EAAkBK,QAAQN,aAAAA,EAAAA,EAASM,OAAQL,EAAmBD,EAClFO,GAAmBF,aAAAA,EAAAA,EAAmBC,SAAS,QAAAJ,EAAAP,KAAKG,MAAMU,cAAX,IAAAN,OAAA,EAAAA,EAAmBI,OAExE,GAAID,GAAqBE,EACrB,OAAOE,EAACC,EAAAA,EAAAA,CAAeV,QAASA,EAASC,iBAAkBA,EAAkBU,SAAUb,EAAMa,UAAcb,IAG/G,MAAMc,EAAsBC,IACxB,GAAIA,EAASC,OAAOC,oBAAqB,OAAOZ,EAAKa,IAAIH,EAASC,OAAOC,qBAEzE,OAAQpB,KAAKsB,MAAMvB,QACf,IAAK,aACD,OAAOS,EAAKa,IAAI,6BACpB,IAAK,aACD,OAAOb,EAAKa,IAAI,6BACpB,IAAK,iBACD,OAAOb,EAAKa,IAAI,iCACpB,QACI,OAAO,KACf,EAGJ,OACIP,EAACS,MAAAA,CAAIC,UAAU,4BACY,UAAtBxB,KAAKsB,MAAMvB,QAAsBe,EAACW,EAAAA,CAAMC,KAAM,SAAUlB,EAAKa,IAAI,0BAElEP,EAACa,EACOC,EAAAC,EAAA,CAAA,EAAA7B,KAAKG,OAAK,CACd2B,IAAKA,IACD9B,KAAK+B,IAAMD,CAAAA,EAEfE,SAAUhC,KAAKgC,SACfC,QAASjC,KAAKkC,YACdC,KAAMC,EACNlC,OAAQ,EAAGmC,cAAaC,cAAcpB,IAClClB,KAAKG,MAAMoC,sBAAsB,CAC7B/B,KAAMA,EACNgC,YAAaxC,KAAKG,MAAMqC,YACxBpC,eAAgBA,EAChBa,oBAAqBA,EACrBoB,YAAaA,EACbC,WAAYA,EACZpB,SAAUA,OAKrBlB,KAAKG,MAAMsC,eACRzC,KAAKG,MAAMuC,UAAU,CACjB3C,OAAQC,KAAKsB,MAAMvB,OACnB4C,QAAS3C,KAAKG,MAAMa,SACpB4B,MAAOpC,EAAKa,IAAI,mBAIpC,mBA5GAwB,SAAAC,GAAAC,EAAA/C,KAAOsB,QAAQ,CACXvB,OAAQ,QACRiD,KAAM,CAAC,EACP3C,QAAS,KACTC,iBAAkB,KAClBF,gBAAgB,EAChB6C,SAAS,IAYbF,OAAOhB,WAAP,GAEAgB,EAAA/C,KAAOgC,YAAWd,IACdlB,KAAKG,MAAM6B,SAAS,CAChBgB,KAAM9B,EAAS8B,KACfC,QAAS/B,EAASgC,YACtB,IAGJH,OAAOI,kBAAiB,KACpBnD,KAAK+B,IAAIoB,gBAAc,IAO3BJ,EAAA/C,KAAOkC,eAAckB,IACjBpD,KAAKC,SAAS,CAAEG,eAAgBgD,EAAEC,sBAEJ,IAAZD,EAAEE,MAEhBtD,KAAKG,MAAM8B,QAAQmB,GAEnBpD,KAAKG,MAAMoD,OAAOH,EACtB,IAGJL,OAAOS,cAAa,EAAGnD,UAASC,uBAC5BN,KAAKC,SAAS,CAAEI,UAASC,oBAAiB,KAtC9CyC,EAVEnD,EAUY6D,eAAe,CACzBjB,aAAa,EACbkB,oBAAoB,EACpB1B,SAAU,OACVC,QAAS,OACTsB,OAAQ,OACRhB,sBAAuBoB"}
1
+ {"version":3,"file":"GiftcardComponent.js","sources":["../../../../../src/components/Giftcard/components/GiftcardComponent.tsx"],"sourcesContent":["import { Component, FunctionComponent, h } from 'preact';\nimport SecuredFieldsProvider from '../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport Alert from '../../internal/Alert';\nimport GiftcardResult from './GiftcardResult';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { GIFT_CARD } from '../../internal/SecuredFields/lib/constants';\nimport { GiftCardFields } from './GiftcardFields';\nimport { GiftcardFieldsProps, Placeholders } from './types';\n\ninterface GiftcardComponentProps {\n onChange: (state) => void;\n onFocus: (event) => void;\n onBlur: (event) => void;\n onSubmit: (event) => void;\n onBalanceCheck: (event) => void;\n\n amount?: PaymentAmount;\n showPayButton: boolean;\n payButton: (config) => any;\n\n pinRequired: boolean;\n expiryDateRequired?: boolean;\n fieldsLayoutComponent: FunctionComponent<GiftcardFieldsProps>;\n placeholders?: Placeholders;\n handleKeyPress?: (o: KeyboardEvent) => void;\n}\n\nclass Giftcard extends Component<GiftcardComponentProps> {\n public state = {\n status: 'ready',\n data: {},\n balance: null,\n transactionLimit: null,\n focusedElement: false,\n isValid: false\n };\n\n public static defaultProps = {\n pinRequired: true,\n expiryDateRequired: false,\n onChange: () => {},\n onFocus: () => {},\n onBlur: () => {},\n fieldsLayoutComponent: GiftCardFields\n };\n\n public sfp;\n\n public onChange = sfpState => {\n this.props.onChange({\n data: sfpState.data,\n isValid: sfpState.isSfpValid\n });\n };\n\n public showValidation = () => {\n this.sfp.showValidation();\n };\n\n setStatus(status) {\n this.setState({ status });\n }\n\n public handleFocus = e => {\n this.setState({ focusedElement: e.currentFocusObject });\n\n const isFocused = e.focus === true;\n if (isFocused) {\n this.props.onFocus(e);\n } else {\n this.props.onBlur(e);\n }\n };\n\n public setBalance = ({ balance, transactionLimit }) => {\n this.setState({ balance, transactionLimit });\n };\n\n render(props, { focusedElement, balance, transactionLimit }) {\n const { i18n } = useCoreContext();\n\n const transactionAmount = transactionLimit?.value < balance?.value ? transactionLimit : balance;\n const hasEnoughBalance = transactionAmount?.value >= this.props.amount?.value;\n\n if (transactionAmount && hasEnoughBalance) {\n return <GiftcardResult balance={balance} transactionLimit={transactionLimit} onSubmit={props.onSubmit} {...props} />;\n }\n\n const getCardErrorMessage = sfpState => {\n if (sfpState.errors.encryptedCardNumber) return i18n.get(sfpState.errors.encryptedCardNumber);\n\n switch (this.state.status) {\n case 'no-balance':\n return i18n.get('error.giftcard.no-balance');\n case 'card-error':\n return i18n.get('error.giftcard.card-error');\n case 'currency-error':\n return i18n.get('error.giftcard.currency-error');\n default:\n return null;\n }\n };\n\n return (\n <div className=\"adyen-checkout__giftcard\">\n {this.state.status === 'error' && <Alert icon={'cross'}>{i18n.get('error.message.unknown')}</Alert>}\n\n <SecuredFieldsProvider\n {...this.props}\n ref={ref => {\n this.sfp = ref;\n }}\n onChange={this.onChange}\n onFocus={this.handleFocus}\n type={GIFT_CARD}\n render={({ setRootNode, setFocusOn }, sfpState) =>\n this.props.fieldsLayoutComponent({\n i18n: i18n,\n pinRequired: this.props.pinRequired,\n focusedElement: focusedElement,\n getCardErrorMessage: getCardErrorMessage,\n setRootNode: setRootNode,\n setFocusOn: setFocusOn,\n sfpState: sfpState\n })\n }\n />\n\n {this.props.showPayButton &&\n this.props.payButton({\n status: this.state.status,\n onClick: this.props.onSubmit,\n label: i18n.get('applyGiftcard')\n })}\n </div>\n );\n }\n}\n\nexport default Giftcard;\n"],"names":["Giftcard","Component","setStatus","status","this","setState","render","props","focusedElement","balance","transactionLimit","_this_props_amount","i18n","useCoreContext","transactionAmount","value","hasEnoughBalance","amount","h","GiftcardResult","onSubmit","getCardErrorMessage","sfpState","errors","encryptedCardNumber","get","state","div","className","Alert","icon","SecuredFieldsProvider","_object_spread_props","_object_spread","ref","sfp","onChange","onFocus","handleFocus","type","GIFT_CARD","setRootNode","setFocusOn","fieldsLayoutComponent","pinRequired","showPayButton","payButton","onClick","label","super","args","_define_property","data","isValid","isSfpValid","showValidation","e","currentFocusObject","focus","onBlur","setBalance","defaultProps","expiryDateRequired","GiftCardFields"],"mappings":"quCA4BA,MAAMA,UAAiBC,EAgCnBC,SAAAA,CAAUC,GACNC,KAAKC,SAAS,CAAEF,UACpB,CAiBAG,MAAAA,CAAOC,GAAOC,eAAEA,EAAcC,QAAEA,EAAOC,iBAAEA,IAIgB,IAAAC,EAHrD,MAAMC,KAAEA,GAASC,IAEXC,GAAoBJ,aAAAA,EAAAA,EAAkBK,QAAQN,aAAAA,EAAAA,EAASM,OAAQL,EAAmBD,EAClFO,GAAmBF,aAAAA,EAAAA,EAAmBC,SAAS,QAAAJ,EAAAP,KAAKG,MAAMU,cAAX,IAAAN,OAAA,EAAAA,EAAmBI,OAExE,GAAID,GAAqBE,EACrB,OAAOE,EAACC,EAAAA,EAAAA,CAAeV,QAASA,EAASC,iBAAkBA,EAAkBU,SAAUb,EAAMa,UAAcb,IAG/G,MAAMc,EAAsBC,IACxB,GAAIA,EAASC,OAAOC,oBAAqB,OAAOZ,EAAKa,IAAIH,EAASC,OAAOC,qBAEzE,OAAQpB,KAAKsB,MAAMvB,QACf,IAAK,aACD,OAAOS,EAAKa,IAAI,6BACpB,IAAK,aACD,OAAOb,EAAKa,IAAI,6BACpB,IAAK,iBACD,OAAOb,EAAKa,IAAI,iCACpB,QACI,OAAO,KACf,EAGJ,OACIP,EAACS,MAAAA,CAAIC,UAAU,4BACY,UAAtBxB,KAAKsB,MAAMvB,QAAsBe,EAACW,EAAAA,CAAMC,KAAM,SAAUlB,EAAKa,IAAI,0BAElEP,EAACa,EACOC,EAAAC,EAAA,CAAA,EAAA7B,KAAKG,OAAK,CACd2B,IAAKA,IACD9B,KAAK+B,IAAMD,CAAAA,EAEfE,SAAUhC,KAAKgC,SACfC,QAASjC,KAAKkC,YACdC,KAAMC,EACNlC,OAAQ,EAAGmC,cAAaC,cAAcpB,IAClClB,KAAKG,MAAMoC,sBAAsB,CAC7B/B,KAAMA,EACNgC,YAAaxC,KAAKG,MAAMqC,YACxBpC,eAAgBA,EAChBa,oBAAqBA,EACrBoB,YAAaA,EACbC,WAAYA,EACZpB,SAAUA,OAKrBlB,KAAKG,MAAMsC,eACRzC,KAAKG,MAAMuC,UAAU,CACjB3C,OAAQC,KAAKsB,MAAMvB,OACnB4C,QAAS3C,KAAKG,MAAMa,SACpB4B,MAAOpC,EAAKa,IAAI,mBAIpC,mBA7GJwB,SAAAC,GACIC,OAAOzB,QAAQ,CACXvB,OAAQ,QACRiD,KAAM,CAAC,EACP3C,QAAS,KACTC,iBAAkB,KAClBF,gBAAgB,EAChB6C,SAAS,IAYbF,OAAOhB,WAAP,GAEAgB,EAAA/C,KAAOgC,YAAWd,IACdlB,KAAKG,MAAM6B,SAAS,CAChBgB,KAAM9B,EAAS8B,KACfC,QAAS/B,EAASgC,YACtB,IAGJH,OAAOI,kBAAiB,KACpBnD,KAAK+B,IAAIoB,gBAAc,IAO3BJ,EAAA/C,KAAOkC,eAAckB,IACjBpD,KAAKC,SAAS,CAAEG,eAAgBgD,EAAEC,sBAEJ,IAAZD,EAAEE,MAEhBtD,KAAKG,MAAM8B,QAAQmB,GAEnBpD,KAAKG,MAAMoD,OAAOH,EACtB,IAGJL,OAAOS,cAAa,EAAGnD,UAASC,uBAC5BN,KAAKC,SAAS,CAAEI,UAASC,oBAAiB,KAtC9CyC,EAVEnD,EAUY6D,eAAe,CACzBjB,aAAa,EACbkB,oBAAoB,EACpB1B,SAAU,OACVC,QAAS,OACTsB,OAAQ,OACRhB,sBAAuBoB"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../../external/preact/dist/preact.js";import{useRef as e,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";function n(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}const r=r=>{const u=e(void 0);return o((()=>{const{onClick:t,buttonRadius:e,buttonColor:o,buttonType:a,buttonLocale:c,buttonSizeMode:i,buttonRootNode:b,paymentsClient:l}=r;l.then((r=>r.createButton(function(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){n(t,e,o[e])}))}return t}({onClick:t,buttonType:a,buttonColor:o,buttonLocale:c,buttonSizeMode:i,buttonRootNode:b},e&&{buttonRadius:e})))).then((t=>{u.current&&u.current.appendChild(t)}))}),[r.buttonColor,r.buttonType,r.buttonLocale,r.buttonSizeMode,r.buttonRootNode,r.paymentsClient]),t("div",{"data-testid":"googlepay-button-container",className:"adyen-checkout__paywithgoogle",ref:u})};export{r as default};
1
+ import{createElement as t}from"../../../external/preact/dist/preact.js";import{useRef as e,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";function n(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}const r=r=>{const u=e(void 0);return o((()=>{const{onClick:t,buttonRadius:e,buttonColor:o,buttonType:a,buttonLocale:c,buttonSizeMode:i,buttonRootNode:b,paymentsClient:l}=r;l.then((r=>r.createButton(function(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){n(t,e,o[e])}))}return t}({onClick:t,buttonType:a,buttonColor:o,buttonLocale:c,buttonSizeMode:i,buttonRootNode:b},void 0!==e&&{buttonRadius:e})))).then((t=>{u.current&&u.current.appendChild(t)}))}),[r.buttonColor,r.buttonType,r.buttonLocale,r.buttonSizeMode,r.buttonRootNode,r.paymentsClient]),t("div",{"data-testid":"googlepay-button-container",className:"adyen-checkout__paywithgoogle",ref:u})};export{r as default};
2
2
  //# sourceMappingURL=GooglePayButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GooglePayButton.js","sources":["../../../../../src/components/GooglePay/components/GooglePayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport './GooglePayButton.scss';\n\ninterface GooglePayButtonProps {\n buttonColor: google.payments.api.ButtonColor;\n buttonType: google.payments.api.ButtonType;\n buttonSizeMode: google.payments.api.ButtonSizeMode;\n buttonLocale: string;\n buttonRadius?: number;\n buttonRootNode?: HTMLDocument | ShadowRoot;\n paymentsClient: Promise<google.payments.api.PaymentsClient>;\n onClick: (e: Event) => void;\n}\n\nconst GooglePayButton = (props: GooglePayButtonProps) => {\n const googlePayWrapperRef = useRef<HTMLDivElement | undefined>(undefined);\n\n useEffect(() => {\n const { onClick, buttonRadius, buttonColor, buttonType, buttonLocale, buttonSizeMode, buttonRootNode, paymentsClient } = props;\n\n void paymentsClient\n .then(client =>\n client.createButton({\n onClick,\n buttonType,\n buttonColor,\n buttonLocale,\n buttonSizeMode,\n buttonRootNode,\n ...(buttonRadius && { buttonRadius })\n })\n )\n .then(googlePayButton => {\n if (googlePayWrapperRef.current) {\n googlePayWrapperRef.current.appendChild(googlePayButton);\n }\n });\n }, [props.buttonColor, props.buttonType, props.buttonLocale, props.buttonSizeMode, props.buttonRootNode, props.paymentsClient]);\n\n return <div data-testid=\"googlepay-button-container\" className={'adyen-checkout__paywithgoogle'} ref={googlePayWrapperRef} />;\n};\n\nexport default GooglePayButton;\n"],"names":["GooglePayButton","props","googlePayWrapperRef","useRef","undefined","useEffect","onClick","buttonRadius","buttonColor","buttonType","buttonLocale","buttonSizeMode","buttonRootNode","paymentsClient","then","client","createButton","_object_spread","googlePayButton","current","appendChild","h","div","data-testid","className","ref"],"mappings":"qRAeA,MAAMA,EAAmBC,IACrB,MAAMC,EAAsBC,OAAmCC,GAwB/D,OAtBAC,GAAU,KACN,MAAMC,QAAEA,EAAOC,aAAEA,EAAYC,YAAEA,EAAWC,WAAEA,EAAUC,aAAEA,EAAYC,eAAEA,EAAcC,eAAEA,EAAcC,eAAEA,GAAmBZ,EAEpHY,EACAC,MAAKC,GACFA,EAAOC,mVAAaC,CAAA,CAChBX,UACAG,aACAD,cACAE,eACAC,iBACAC,kBACIL,GAAgB,CAAEA,oBAG7BO,MAAKI,IACEhB,EAAoBiB,SACpBjB,EAAoBiB,QAAQC,YAAYF,EAC5C,GACJ,GACL,CAACjB,EAAMO,YAAaP,EAAMQ,WAAYR,EAAMS,aAAcT,EAAMU,eAAgBV,EAAMW,eAAgBX,EAAMY,iBAExGQ,EAACC,MAAAA,CAAIC,cAAY,6BAA6BC,UAAW,gCAAiCC,IAAKvB"}
1
+ {"version":3,"file":"GooglePayButton.js","sources":["../../../../../src/components/GooglePay/components/GooglePayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport './GooglePayButton.scss';\n\ninterface GooglePayButtonProps {\n buttonColor: google.payments.api.ButtonColor;\n buttonType: google.payments.api.ButtonType;\n buttonSizeMode: google.payments.api.ButtonSizeMode;\n buttonLocale: string;\n buttonRadius?: number;\n buttonRootNode?: HTMLDocument | ShadowRoot;\n paymentsClient: Promise<google.payments.api.PaymentsClient>;\n onClick: (e: Event) => void;\n}\n\nconst GooglePayButton = (props: GooglePayButtonProps) => {\n const googlePayWrapperRef = useRef<HTMLDivElement | undefined>(undefined);\n\n useEffect(() => {\n const { onClick, buttonRadius, buttonColor, buttonType, buttonLocale, buttonSizeMode, buttonRootNode, paymentsClient } = props;\n\n void paymentsClient\n .then(client =>\n client.createButton({\n onClick,\n buttonType,\n buttonColor,\n buttonLocale,\n buttonSizeMode,\n buttonRootNode,\n ...(buttonRadius !== undefined && { buttonRadius })\n })\n )\n .then(googlePayButton => {\n if (googlePayWrapperRef.current) {\n googlePayWrapperRef.current.appendChild(googlePayButton);\n }\n });\n }, [props.buttonColor, props.buttonType, props.buttonLocale, props.buttonSizeMode, props.buttonRootNode, props.paymentsClient]);\n\n return <div data-testid=\"googlepay-button-container\" className={'adyen-checkout__paywithgoogle'} ref={googlePayWrapperRef} />;\n};\n\nexport default GooglePayButton;\n"],"names":["GooglePayButton","props","googlePayWrapperRef","useRef","undefined","useEffect","onClick","buttonRadius","buttonColor","buttonType","buttonLocale","buttonSizeMode","buttonRootNode","paymentsClient","then","client","createButton","_object_spread","googlePayButton","current","appendChild","h","div","data-testid","className","ref"],"mappings":"qRAeA,MAAMA,EAAmBC,IACrB,MAAMC,EAAsBC,OAAmCC,GAwB/D,OAtBAC,GAAU,KACN,MAAMC,QAAEA,EAAOC,aAAEA,EAAYC,YAAEA,EAAWC,WAAEA,EAAUC,aAAEA,EAAYC,eAAEA,EAAcC,eAAEA,EAAcC,eAAEA,GAAmBZ,EAEpHY,EACAC,MAAKC,GACFA,EAAOC,mVAAaC,CAAA,CAChBX,UACAG,aACAD,cACAE,eACAC,iBACAC,uBACqBR,IAAjBG,GAA8B,CAAEA,oBAG3CO,MAAKI,IACEhB,EAAoBiB,SACpBjB,EAAoBiB,QAAQC,YAAYF,EAC5C,GACJ,GACL,CAACjB,EAAMO,YAAaP,EAAMQ,WAAYR,EAAMS,aAAcT,EAAMU,eAAgBV,EAAMW,eAAgBX,EAAMY,iBAExGQ,EAACC,MAAAA,CAAIC,cAAY,6BAA6BC,UAAW,gCAAiCC,IAAKvB"}