@adyen/adyen-web 6.45.2 → 6.46.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 (410) hide show
  1. package/dist/cjs/adyen.css +7 -7
  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 +2027 -1918
  6. package/dist/es/adyen.css +7 -7
  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/ANCV/components/ANCVInput.js +1 -1
  11. package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
  12. package/dist/es/components/Ach/Ach.js +1 -1
  13. package/dist/es/components/Ach/Ach.js.map +1 -1
  14. package/dist/es/components/Ach/components/AchComponent.js +1 -1
  15. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  16. package/dist/es/components/Ach/components/useSRPanelForACHErrors.js.map +1 -1
  17. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  18. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  19. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  20. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  21. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  22. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  23. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  24. package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
  25. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  26. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  27. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  28. package/dist/es/components/Blik/Blik.js +1 -1
  29. package/dist/es/components/Blik/Blik.js.map +1 -1
  30. package/dist/es/components/Blik/components/BlikInput.js +1 -1
  31. package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
  32. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js +1 -1
  33. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  34. package/dist/es/components/Card/Card.js +1 -1
  35. package/dist/es/components/Card/Card.js.map +1 -1
  36. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  37. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  38. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  39. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  40. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  41. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  42. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  43. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  44. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  45. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  46. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  47. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  48. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  49. package/dist/es/components/Doku/components/DokuInput/DokuInput.js +1 -1
  50. package/dist/es/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  51. package/dist/es/components/Donation/Donation.js +1 -1
  52. package/dist/es/components/Donation/Donation.js.map +1 -1
  53. package/dist/es/components/Donation/components/DonationComponent.js +1 -1
  54. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  55. package/dist/es/components/Dragonpay/Dragonpay.js +1 -1
  56. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  57. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  58. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  59. package/dist/es/components/Dropin/Dropin.js +1 -1
  60. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  61. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  62. package/dist/es/components/Econtext/Econtext.js +1 -1
  63. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  64. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js +1 -1
  65. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  66. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  67. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  68. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  69. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  70. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  71. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  72. package/dist/es/components/Giropay/Giropay.js +1 -1
  73. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  74. package/dist/es/components/Iris/Iris.js +1 -1
  75. package/dist/es/components/Iris/Iris.js.map +1 -1
  76. package/dist/es/components/Iris/components/IrisComponent.js +1 -1
  77. package/dist/es/components/Iris/components/IrisComponent.js.map +1 -1
  78. package/dist/es/components/Iris/components/IrisGenerateQRCode.js +1 -1
  79. package/dist/es/components/Iris/components/IrisGenerateQRCode.js.map +1 -1
  80. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  81. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  82. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +1 -1
  83. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  84. package/dist/es/components/MBWay/MBWay.js +1 -1
  85. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  86. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  87. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  88. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  89. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  90. package/dist/es/components/Oxxo/Oxxo.js +1 -1
  91. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  92. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  93. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  94. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js +1 -1
  95. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  96. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  97. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  98. package/dist/es/components/PayPal/Paypal.js +1 -1
  99. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  100. package/dist/es/components/PayPalFastlane/Fastlane.js +1 -1
  101. package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -1
  102. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js +1 -1
  103. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  104. package/dist/es/components/PayTo/PayTo.js +1 -1
  105. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  106. package/dist/es/components/PayTo/components/BSBInput.js +1 -1
  107. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -1
  108. package/dist/es/components/PayTo/components/PayToComponent.js +1 -1
  109. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  110. package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
  111. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  112. package/dist/es/components/PayTo/components/PayToPhone.js +1 -1
  113. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  114. package/dist/es/components/Pix/Pix.js +1 -1
  115. package/dist/es/components/Pix/Pix.js.map +1 -1
  116. package/dist/es/components/Pix/components/PixInput/PixInput.js +1 -1
  117. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -1
  118. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  119. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  120. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
  121. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  122. package/dist/es/components/Redirect/Redirect.js +1 -1
  123. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  124. package/dist/es/components/Sepa/Sepa.js.map +1 -1
  125. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  126. package/dist/es/components/Trustly/Trustly.js +1 -1
  127. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  128. package/dist/es/components/UPI/UPI.js +1 -1
  129. package/dist/es/components/UPI/UPI.js.map +1 -1
  130. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  131. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  132. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  133. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  134. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  135. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  136. package/dist/es/components/internal/Address/components/CountryField.js.map +1 -1
  137. package/dist/es/components/internal/Address/components/FieldContainer.js +1 -1
  138. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  139. package/dist/es/components/internal/Address/components/StateField.js.map +1 -1
  140. package/dist/es/components/internal/Address/constants.js +1 -1
  141. package/dist/es/components/internal/Address/constants.js.map +1 -1
  142. package/dist/es/components/internal/Address/validate.formats.js +1 -1
  143. package/dist/es/components/internal/Address/validate.formats.js.map +1 -1
  144. package/dist/es/components/internal/Address/validate.js +1 -1
  145. package/dist/es/components/internal/Address/validate.js.map +1 -1
  146. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  147. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  148. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  149. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  150. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  151. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  152. package/dist/es/components/internal/DisclaimerMessage/utils.js +2 -0
  153. package/dist/es/components/internal/DisclaimerMessage/utils.js.map +1 -0
  154. package/dist/es/components/internal/FormFields/utils.js +1 -1
  155. package/dist/es/components/internal/FormFields/utils.js.map +1 -1
  156. package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
  157. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  158. package/dist/es/components/internal/IbanInput/validate.js +1 -1
  159. package/dist/es/components/internal/IbanInput/validate.js.map +1 -1
  160. package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
  161. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  162. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  163. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  164. package/dist/es/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
  165. package/dist/es/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js.map +1 -1
  166. package/dist/es/components/internal/PayButton/PayButton.js +1 -1
  167. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  168. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  169. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  170. package/dist/es/components/internal/PhoneInput/usePhonePrefixes.js.map +1 -1
  171. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  172. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  173. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  174. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  175. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  176. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  177. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  178. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  179. package/dist/es/components/internal/UIElement/utils.js +1 -1
  180. package/dist/es/components/internal/UIElement/utils.js.map +1 -1
  181. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  182. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  183. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  184. package/dist/es/core/Errors/SRPanelProvider.js.map +1 -1
  185. package/dist/es/core/RiskModule/RiskModule.js +1 -1
  186. package/dist/es/core/RiskModule/RiskModule.js.map +1 -1
  187. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  188. package/dist/es/core/Services/get-dataset.js.map +1 -1
  189. package/dist/es/core/Services/http.js +1 -1
  190. package/dist/es/core/Services/http.js.map +1 -1
  191. package/dist/es/core/config.js +1 -1
  192. package/dist/es/core/config.js.map +1 -1
  193. package/dist/es/core/core.js.map +1 -1
  194. package/dist/es/core/core.registry.js +1 -1
  195. package/dist/es/core/core.registry.js.map +1 -1
  196. package/dist/es/core/utils.js +1 -1
  197. package/dist/es/core/utils.js.map +1 -1
  198. package/dist/es/index.d.ts +2027 -1918
  199. package/dist/es/packages/server/translations/en-US.json.js +1 -1
  200. package/dist/es/utils/Validator/Validator.js +1 -1
  201. package/dist/es/utils/Validator/Validator.js.map +1 -1
  202. package/dist/es/utils/useForm/reducer.js +1 -1
  203. package/dist/es/utils/useForm/reducer.js.map +1 -1
  204. package/dist/es/utils/useForm/useForm.js +1 -1
  205. package/dist/es/utils/useForm/useForm.js.map +1 -1
  206. package/dist/es/utils/useForm/useFormWithA11y.js +1 -1
  207. package/dist/es/utils/useForm/useFormWithA11y.js.map +1 -1
  208. package/dist/es-legacy/adyen.css +7 -7
  209. package/dist/es-legacy/adyen.css.map +1 -1
  210. package/dist/es-legacy/components/ANCV/ANCV.js +1 -1
  211. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  212. package/dist/es-legacy/components/ANCV/components/ANCVInput.js +1 -1
  213. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  214. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  215. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  216. package/dist/es-legacy/components/Ach/components/AchComponent.js +1 -1
  217. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  218. package/dist/es-legacy/components/Ach/components/useSRPanelForACHErrors.js.map +1 -1
  219. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  220. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  221. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  222. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  223. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  224. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  225. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  226. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  227. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  228. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  229. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  230. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  231. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  232. package/dist/es-legacy/components/Blik/components/BlikInput.js +1 -1
  233. package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
  234. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js +1 -1
  235. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  236. package/dist/es-legacy/components/Card/Card.js +1 -1
  237. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  238. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  239. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  240. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  241. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  242. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  243. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  244. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  245. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  246. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  247. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  248. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  249. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  250. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  251. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js +1 -1
  252. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  253. package/dist/es-legacy/components/Donation/Donation.js +1 -1
  254. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  255. package/dist/es-legacy/components/Donation/components/DonationComponent.js +1 -1
  256. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  257. package/dist/es-legacy/components/Dragonpay/Dragonpay.js +1 -1
  258. package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
  259. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  260. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  261. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  262. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  263. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  264. package/dist/es-legacy/components/Econtext/Econtext.js +1 -1
  265. package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
  266. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js +1 -1
  267. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  268. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  269. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  270. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  271. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  272. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  273. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  274. package/dist/es-legacy/components/Giropay/Giropay.js +1 -1
  275. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  276. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  277. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  278. package/dist/es-legacy/components/Iris/components/IrisComponent.js +1 -1
  279. package/dist/es-legacy/components/Iris/components/IrisComponent.js.map +1 -1
  280. package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.js +1 -1
  281. package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.js.map +1 -1
  282. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  283. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  284. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +1 -1
  285. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  286. package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
  287. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  288. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  289. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  290. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  291. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  292. package/dist/es-legacy/components/Oxxo/Oxxo.js +1 -1
  293. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  294. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  295. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  296. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js +1 -1
  297. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  298. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  299. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  300. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  301. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  302. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js +1 -1
  303. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -1
  304. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js +1 -1
  305. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  306. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  307. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  308. package/dist/es-legacy/components/PayTo/components/BSBInput.js +1 -1
  309. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -1
  310. package/dist/es-legacy/components/PayTo/components/PayToComponent.js +1 -1
  311. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  312. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
  313. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  314. package/dist/es-legacy/components/PayTo/components/PayToPhone.js +1 -1
  315. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  316. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  317. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  318. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js +1 -1
  319. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -1
  320. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  321. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  322. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
  323. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  324. package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
  325. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  326. package/dist/es-legacy/components/Sepa/Sepa.js.map +1 -1
  327. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  328. package/dist/es-legacy/components/Trustly/Trustly.js +1 -1
  329. package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
  330. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  331. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  332. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  333. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  334. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  335. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  336. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  337. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  338. package/dist/es-legacy/components/internal/Address/components/CountryField.js.map +1 -1
  339. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js +1 -1
  340. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  341. package/dist/es-legacy/components/internal/Address/components/StateField.js.map +1 -1
  342. package/dist/es-legacy/components/internal/Address/constants.js +1 -1
  343. package/dist/es-legacy/components/internal/Address/constants.js.map +1 -1
  344. package/dist/es-legacy/components/internal/Address/validate.formats.js +1 -1
  345. package/dist/es-legacy/components/internal/Address/validate.formats.js.map +1 -1
  346. package/dist/es-legacy/components/internal/Address/validate.js +1 -1
  347. package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
  348. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  349. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  350. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  351. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  352. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  353. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  354. package/dist/es-legacy/components/internal/DisclaimerMessage/utils.js +2 -0
  355. package/dist/es-legacy/components/internal/DisclaimerMessage/utils.js.map +1 -0
  356. package/dist/es-legacy/components/internal/FormFields/utils.js +1 -1
  357. package/dist/es-legacy/components/internal/FormFields/utils.js.map +1 -1
  358. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js +1 -1
  359. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  360. package/dist/es-legacy/components/internal/IbanInput/validate.js +1 -1
  361. package/dist/es-legacy/components/internal/IbanInput/validate.js.map +1 -1
  362. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
  363. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  364. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  365. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  366. package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
  367. package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js.map +1 -1
  368. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  369. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  370. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  371. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  372. package/dist/es-legacy/components/internal/PhoneInput/usePhonePrefixes.js.map +1 -1
  373. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  374. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  375. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  376. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  377. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  378. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  379. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  380. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  381. package/dist/es-legacy/components/internal/UIElement/utils.js +1 -1
  382. package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
  383. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  384. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  385. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js.map +1 -1
  386. package/dist/es-legacy/core/Errors/SRPanelProvider.js.map +1 -1
  387. package/dist/es-legacy/core/RiskModule/RiskModule.js +1 -1
  388. package/dist/es-legacy/core/RiskModule/RiskModule.js.map +1 -1
  389. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  390. package/dist/es-legacy/core/Services/get-dataset.js.map +1 -1
  391. package/dist/es-legacy/core/Services/http.js +1 -1
  392. package/dist/es-legacy/core/Services/http.js.map +1 -1
  393. package/dist/es-legacy/core/config.js +1 -1
  394. package/dist/es-legacy/core/config.js.map +1 -1
  395. package/dist/es-legacy/core/core.js.map +1 -1
  396. package/dist/es-legacy/core/core.registry.js +1 -1
  397. package/dist/es-legacy/core/core.registry.js.map +1 -1
  398. package/dist/es-legacy/core/utils.js +1 -1
  399. package/dist/es-legacy/core/utils.js.map +1 -1
  400. package/dist/es-legacy/packages/server/translations/en-US.json.js +1 -1
  401. package/dist/es-legacy/utils/Validator/Validator.js +1 -1
  402. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  403. package/dist/es-legacy/utils/useForm/reducer.js +1 -1
  404. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  405. package/dist/es-legacy/utils/useForm/useForm.js +1 -1
  406. package/dist/es-legacy/utils/useForm/useForm.js.map +1 -1
  407. package/dist/es-legacy/utils/useForm/useFormWithA11y.js +1 -1
  408. package/dist/es-legacy/utils/useForm/useFormWithA11y.js.map +1 -1
  409. package/package.json +12 -12
  410. package/styles/adyen.css +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"Dragonpay.js","sources":["../../../../src/components/Dragonpay/Dragonpay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport DragonpayInput from './components/DragonpayInput';\nimport DragonpayVoucherResult from './components/DragonpayVoucherResult';\nimport { DragonpayConfiguraton } from './types';\nimport { TxVariants } from '../tx-variants';\n\nexport class DragonpayElement extends UIElement<DragonpayConfiguraton> {\n public static readonly type = TxVariants.dragonpay;\n\n public static readonly txVariants = [\n TxVariants.dragonpay,\n TxVariants.dragonpay_ebanking,\n TxVariants.dragonpay_otc_banking,\n TxVariants.dragonpay_otc_non_banking,\n TxVariants.dragonpay_otc_philippines\n ];\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const { issuer, shopperEmail } = this.state.data;\n\n return {\n ...(shopperEmail && { shopperEmail }),\n paymentMethod: {\n ...(issuer && { issuer }),\n type: this.type\n }\n };\n }\n\n protected formatProps(props: DragonpayConfiguraton) {\n return {\n ...props,\n issuers: props.details?.find(detail => detail.key === 'issuer')?.items ?? props.issuers\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.reference ? (\n <DragonpayVoucherResult icon={this.icon} {...this.props} onActionHandled={this.onActionHandled} />\n ) : (\n <DragonpayInput\n setComponentRef={this.setComponentRef}\n items={this.props.issuers}\n {...this.props}\n showPayButton={this.props.showPayButton}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default DragonpayElement;\n"],"names":["DragonpayElement","UIElement","isValid","this","state","formatData","issuer","shopperEmail","data","_object_spread_props","paymentMethod","type","formatProps","props","_object_spread","issuers","_ref","details","find","detail","key","items","componentToRender","reference","h","DragonpayVoucherResult","icon","onActionHandled","DragonpayInput","setComponentRef","showPayButton","onChange","setState","onSubmit","submit","payButton","_define_property","TxVariants","dragonpay","txVariants","dragonpay_ebanking","dragonpay_otc_banking","dragonpay_otc_non_banking","dragonpay_otc_philippines"],"mappings":"smCAOO,MAAMA,UAAyBC,EAWlC,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAMC,OAAEA,EAAMC,aAAEA,GAAiBJ,KAAKC,MAAMI,KAE5C,OAAOC,OACCF,GAAgB,CAAEA,iBAAa,CACnCG,cAAeD,OACPH,GAAU,CAAEA,WAAO,CACvBK,KAAMR,KAAKQ,QAGvB,CAEUC,WAAAA,CAAYC,SAGLA,EAAAA,EAFb,OAAOJ,EAAAK,EAAA,CAAA,EACAD,GAAAA,CACHE,QAAsE,QAA/DC,UAAEH,EAAAA,EAAMI,eAANJ,IAAAA,GAA6C,QAA7CA,EAAAA,EAAeK,KAAKC,GAAyB,WAAfA,EAAOC,gBAArCP,OAAAA,EAAAA,EAAwDQ,aAAK,IAAAL,EAAAA,EAAIH,EAAME,SAExF,CAEmBO,iBAAAA,GACf,OAAOnB,KAAKU,MAAMU,UACdC,EAACC,EAAAA,EAAAA,EAAAA,CAAuBC,KAAMvB,KAAKuB,MAAUvB,KAAKU,OAAK,CAAEc,gBAAiBxB,KAAKwB,mBAE/EH,EAACI,EAAAA,EAAAA,EAAAA,CACGC,gBAAiB1B,KAAK0B,gBACtBR,MAAOlB,KAAKU,MAAME,SACdZ,KAAKU,OAAK,CACdiB,cAAe3B,KAAKU,MAAMiB,cAC1BC,SAAU5B,KAAK6B,SACfC,SAAU9B,KAAK+B,OACfC,UAAWhC,KAAKgC,YAG5B,EAlDAC,EADSpC,EACcW,OAAO0B,EAAWC,WAEzCF,EAHSpC,EAGcuC,aAAa,CAChCF,EAAWC,UACXD,EAAWG,mBACXH,EAAWI,sBACXJ,EAAWK,0BACXL,EAAWM"}
1
+ {"version":3,"file":"Dragonpay.js","sources":["../../../../src/components/Dragonpay/Dragonpay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport DragonpayInput from './components/DragonpayInput';\nimport DragonpayVoucherResult from './components/DragonpayVoucherResult';\nimport { DragonpayConfiguraton } from './types';\nimport { TxVariants } from '../tx-variants';\n\nexport class DragonpayElement extends UIElement<DragonpayConfiguraton> {\n public static readonly type = TxVariants.dragonpay;\n\n public static readonly txVariants = [\n TxVariants.dragonpay,\n TxVariants.dragonpay_ebanking,\n TxVariants.dragonpay_otc_banking,\n TxVariants.dragonpay_otc_non_banking,\n TxVariants.dragonpay_otc_philippines\n ];\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const { issuer, shopperEmail } = this.state.data;\n\n return {\n ...(shopperEmail && { shopperEmail }),\n paymentMethod: {\n ...(issuer && { issuer }),\n type: this.type\n }\n };\n }\n\n protected formatProps(props: DragonpayConfiguraton) {\n return {\n ...props,\n issuers: props.details?.find(detail => detail.key === 'issuer')?.items ?? props.issuers\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.reference ? (\n <DragonpayVoucherResult icon={this.icon} {...this.props} onActionHandled={this.onActionHandled} />\n ) : (\n <DragonpayInput\n setComponentRef={this.setComponentRef}\n items={this.props.issuers}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default DragonpayElement;\n"],"names":["DragonpayElement","UIElement","isValid","this","state","formatData","issuer","shopperEmail","data","_object_spread_props","paymentMethod","type","formatProps","props","_object_spread","issuers","_ref","details","find","detail","key","items","componentToRender","reference","h","DragonpayVoucherResult","icon","onActionHandled","DragonpayInput","setComponentRef","onChange","setState","onSubmit","submit","payButton","_define_property","TxVariants","dragonpay","txVariants","dragonpay_ebanking","dragonpay_otc_banking","dragonpay_otc_non_banking","dragonpay_otc_philippines"],"mappings":"smCAOO,MAAMA,UAAyBC,EAWlC,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAMC,OAAEA,EAAMC,aAAEA,GAAiBJ,KAAKC,MAAMI,KAE5C,OAAOC,OACCF,GAAgB,CAAEA,iBAAa,CACnCG,cAAeD,OACPH,GAAU,CAAEA,WAAO,CACvBK,KAAMR,KAAKQ,QAGvB,CAEUC,WAAAA,CAAYC,SAGLA,EAAAA,EAFb,OAAOJ,EAAAK,EAAA,CAAA,EACAD,GAAAA,CACHE,QAAsE,QAA/DC,UAAEH,EAAAA,EAAMI,eAANJ,IAAAA,GAA6C,QAA7CA,EAAAA,EAAeK,KAAKC,GAAyB,WAAfA,EAAOC,gBAArCP,OAAAA,EAAAA,EAAwDQ,aAAK,IAAAL,EAAAA,EAAIH,EAAME,SAExF,CAEmBO,iBAAAA,GACf,OAAOnB,KAAKU,MAAMU,UACdC,EAACC,EAAAA,EAAAA,EAAAA,CAAuBC,KAAMvB,KAAKuB,MAAUvB,KAAKU,OAAK,CAAEc,gBAAiBxB,KAAKwB,mBAE/EH,EAACI,EAAAA,EAAAA,EAAAA,CACGC,gBAAiB1B,KAAK0B,gBACtBR,MAAOlB,KAAKU,MAAME,SACdZ,KAAKU,OAAK,CACdiB,SAAU3B,KAAK4B,SACfC,SAAU7B,KAAK8B,OACfC,UAAW/B,KAAK+B,YAG5B,EAjDAC,EADSnC,EACcW,OAAOyB,EAAWC,WAEzCF,EAHSnC,EAGcsC,aAAa,CAChCF,EAAWC,UACXD,EAAWG,mBACXH,EAAWI,sBACXJ,EAAWK,0BACXL,EAAWM"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useState as r,useRef as t,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import a from"../../../../utils/useForm/useForm.js";import"../../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import n from"../../../internal/FormFields/Field/Field.js";import s from"../../../../utils/get-issuer-image.js";import{useCoreContext as i}from"../../../../core/Context/CoreProvider.js";import l from"../../../internal/FormFields/InputEmail.js";import p from"../../../internal/FormFields/Select/Select.js";import u from"../../../../core/Context/useImage.js";import{validationRules as c}from"../../../../utils/Validator/defaultRules.js";import{getErrorMessage as m}from"../../../../utils/getErrorMessage.js";function d(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function g(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function f(f){const{i18n:y}=i(),b=u(),h=()=>["dragonpay_ebanking","dragonpay_otc_banking","dragonpay_otc_non_banking"].includes(f.type),[j,O]=r("ready"),{handleChangeFor:_,triggerValidation:E,data:k,valid:F,errors:P,isValid:w}=a({schema:[...h()?["issuer"]:[],"shopperEmail"],rules:{issuer:{validate:e=>h()&&!!e,modes:["input","blur"]},shopperEmail:c.emailRule}}),v=t({setStatus:O,showValidation:()=>{E()}}),C=s({},f.type,b),S=f.items.map(e=>g(function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.forEach(function(r){d(e,r,t[r])})}return e}({},e),{icon:C(e.id&&e.id.toLowerCase())}));return o(()=>{f.onChange({isValid:w,data:k,valid:F,errors:P})},[w,k,F,P]),o(()=>{f.setComponentRef(v.current)},[f.setComponentRef]),e("div",{className:"adyen-checkout__dragonpay-input__field"},e(n,{label:y.get("shopperEmail"),errorMessage:m(y,P.shopperEmail,y.get("shopperEmail")),name:"dragonpay-shopperEmail"},e(l,{name:"dragonpay-shopperEmail",autoCorrect:"off",value:k.shopperEmail,className:"adyen-checkout__input--large",spellcheck:!1,onInput:_("shopperEmail","input"),onBlur:_("shopperEmail","blur"),autocomplete:"email"})),h()&&e(n,{label:y.get((x=f.type,"dragonpay_otc_non_banking"===x?"dragonpayVoucher.selectField.contextualText.nonBank":"dragonpayVoucher.selectField.contextualText.bank")),errorMessage:!!P.issuer,name:"issuer"},e(p,{items:S,selectedValue:k.issuer,name:"issuer",className:"adyen-checkout__dropdown--large adyen-checkout__issuer-list__dropdown",onChange:_("issuer")})),f.showPayButton&&f.payButton({status:j,label:y.get("confirmPurchase")}));var x}f.defaultProps={data:{},items:[],onChange:()=>{}};export{f as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useState as r,useRef as t,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import a from"../../../../utils/useForm/useForm.js";import"../../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import n from"../../../internal/FormFields/Field/Field.js";import s from"../../../../utils/get-issuer-image.js";import{useCoreContext as i}from"../../../../core/Context/CoreProvider.js";import l from"../../../internal/FormFields/InputEmail.js";import p from"../../../internal/FormFields/Select/Select.js";import u from"../../../../core/Context/useImage.js";import{validationRules as c}from"../../../../utils/Validator/defaultRules.js";import{getErrorMessage as m}from"../../../../utils/getErrorMessage.js";function d(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function g(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function f(f){const{i18n:y}=i(),b=u(),h=()=>["dragonpay_ebanking","dragonpay_otc_banking","dragonpay_otc_non_banking"].includes(f.type),[j,O]=r("ready"),{handleChangeFor:_,triggerValidation:E,data:k,valid:F,errors:P,isValid:w}=a({schema:[...h()?["issuer"]:[],"shopperEmail"],rules:{issuer:{validate:e=>h()&&!!e,modes:["input","blur"]},shopperEmail:c.emailRule}}),v=t({setStatus:O,showValidation:()=>{E()}}),C=s({},f.type,b),S=f.items.map(e=>g(function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),o.forEach(function(r){d(e,r,t[r])})}return e}({},e),{icon:C(e.id&&e.id.toLowerCase())}));return o(()=>{f.onChange({isValid:w,data:k,valid:F,errors:P})},[w,k,F,P]),o(()=>{f.setComponentRef(v.current)},[f.setComponentRef]),e("div",{className:"adyen-checkout__dragonpay-input__field"},e(n,{label:y.get("shopperEmail"),errorMessage:m(y,P.shopperEmail,y.get("shopperEmail")),name:"dragonpay-shopperEmail"},e(l,{name:"dragonpay-shopperEmail",autoCorrect:"off",value:k.shopperEmail,className:"adyen-checkout__input--large",spellcheck:!1,onInput:_("shopperEmail","input"),onBlur:_("shopperEmail","blur"),autocomplete:"email"})),h()&&e(n,{label:y.get((x=f.type,"dragonpay_otc_non_banking"===x?"dragonpayVoucher.selectField.contextualText.nonBank":"dragonpayVoucher.selectField.contextualText.bank")),errorMessage:!!P.issuer,name:"issuer"},e(p,{items:S,selectedValue:k.issuer,name:"issuer",className:"adyen-checkout__dropdown--large adyen-checkout__issuer-list__dropdown",onChange:_("issuer")})),f.payButton({status:j,label:y.get("confirmPurchase")}));var x}f.defaultProps={data:{},items:[],onChange:()=>{}};export{f as default};
2
2
  //# sourceMappingURL=DragonpayInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DragonpayInput.js","sources":["../../../../../../src/components/Dragonpay/components/DragonpayInput/DragonpayInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport useForm from '../../../../utils/useForm';\nimport Field from '../../../internal/FormFields/Field';\nimport getIssuerImageUrl from '../../../../utils/get-issuer-image';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { DragonpayInputData, DragonpayInputIssuerItem, DragonpayInputProps } from '../../types';\nimport InputEmail from '../../../internal/FormFields/InputEmail';\nimport Select from '../../../internal/FormFields/Select';\nimport useImage from '../../../../core/Context/useImage';\nimport { validationRules } from '../../../../utils/Validator/defaultRules';\nimport { getErrorMessage } from '../../../../utils/getErrorMessage';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nexport default function DragonpayInput(props: Readonly<DragonpayInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const isIssuerRequired = () => {\n const typesRequiringIssuers = ['dragonpay_ebanking', 'dragonpay_otc_banking', 'dragonpay_otc_non_banking'];\n return typesRequiringIssuers.includes(props.type);\n };\n const [status, setStatus] = useState('ready');\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<DragonpayInputData>({\n schema: [...(isIssuerRequired() ? ['issuer'] : []), 'shopperEmail'],\n rules: {\n issuer: {\n validate: issuer => isIssuerRequired() && !!issuer,\n modes: ['input', 'blur']\n },\n shopperEmail: validationRules.emailRule\n }\n });\n\n const self = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n const getIssuerIcon = getIssuerImageUrl({}, props.type, getImage);\n const items = props.items.map(\n (item: DragonpayInputIssuerItem): DragonpayInputIssuerItem => ({\n ...item,\n icon: getIssuerIcon(item.id && item.id.toLowerCase())\n })\n );\n\n const getIssuerSelectFieldKey = type => {\n if (type === 'dragonpay_otc_non_banking') {\n return 'dragonpayVoucher.selectField.contextualText.nonBank';\n }\n return 'dragonpayVoucher.selectField.contextualText.bank';\n };\n\n useEffect(() => {\n props.onChange({ isValid, data, valid, errors });\n }, [isValid, data, valid, errors]);\n\n useEffect(() => {\n props.setComponentRef(self.current);\n }, [props.setComponentRef]);\n\n return (\n <div className=\"adyen-checkout__dragonpay-input__field\">\n <Field\n label={i18n.get('shopperEmail')}\n errorMessage={getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n name={'dragonpay-shopperEmail'}\n >\n <InputEmail\n name={'dragonpay-shopperEmail'}\n autoCorrect={'off'}\n value={data.shopperEmail}\n className={'adyen-checkout__input--large'}\n spellcheck={false}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n autocomplete={'email'}\n />\n </Field>\n\n {isIssuerRequired() && (\n <Field label={i18n.get(getIssuerSelectFieldKey(props.type))} errorMessage={!!errors.issuer} name={'issuer'}>\n <Select\n items={items}\n selectedValue={data.issuer}\n name={'issuer'}\n className={'adyen-checkout__dropdown--large adyen-checkout__issuer-list__dropdown'}\n onChange={handleChangeFor('issuer')}\n />\n </Field>\n )}\n\n {props.showPayButton && props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n\nDragonpayInput.defaultProps = {\n data: {},\n items: [],\n onChange: () => {}\n};\n"],"names":["DragonpayInput","props","i18n","useCoreContext","getImage","useImage","isIssuerRequired","includes","type","status","setStatus","useState","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","rules","issuer","validate","modes","shopperEmail","validationRules","emailRule","self","useRef","showValidation","getIssuerIcon","getIssuerImageUrl","items","map","item","_object_spread_props","_object_spread","icon","id","toLowerCase","useEffect","onChange","setComponentRef","current","h","div","className","Field","label","get","errorMessage","getErrorMessage","name","InputEmail","autoCorrect","value","spellcheck","onInput","onBlur","autocomplete","Select","selectedValue","showPayButton","payButton","defaultProps"],"mappings":"uwCAce,SAASA,EAAeC,GACnC,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IACXC,EAAmB,IACS,CAAC,qBAAsB,wBAAyB,6BACjDC,SAASN,EAAMO,OAEzCC,EAAQC,GAAaC,EAAS,UAE/BC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,IAAKb,IAAqB,CAAC,UAAY,GAAK,gBACpDc,MAAO,CACHC,OAAQ,CACJC,SAAUD,GAAUf,OAAwBe,EAC5CE,MAAO,CAAC,QAAS,SAErBC,aAAcC,EAAgBC,aAIhCC,EAAOC,EAA4B,CACrClB,UAAWA,EACXmB,eAAgB,KACZhB,OAIFiB,EAAgBC,EAAkB,CAAA,EAAI9B,EAAMO,KAAMJ,GAClD4B,EAAQ/B,EAAM+B,MAAMC,IACrBC,GAA8DC,oUAAAC,CAAA,GACxDF,GAAAA,CACHG,KAAMP,EAAcI,EAAKI,IAAMJ,EAAKI,GAAGC,kBAmB/C,OARAC,EAAU,KACNvC,EAAMwC,SAAS,CAAExB,UAASH,OAAMC,QAAOC,YACxC,CAACC,EAASH,EAAMC,EAAOC,IAE1BwB,EAAU,KACNvC,EAAMyC,gBAAgBf,EAAKgB,UAC5B,CAAC1C,EAAMyC,kBAGNE,EAACC,MAAAA,CAAIC,UAAU,0CACXF,EAACG,EAAAA,CACGC,MAAO9C,EAAK+C,IAAI,gBAChBC,aAAcC,EAAgBjD,EAAMc,EAAOQ,aAActB,EAAK+C,IAAI,iBAClEG,KAAM,0BAENR,EAACS,EAAAA,CACGD,KAAM,yBACNE,YAAa,MACbC,MAAOzC,EAAKU,aACZsB,UAAW,+BACXU,YAAY,EACZC,QAAS7C,EAAgB,eAAgB,SACzC8C,OAAQ9C,EAAgB,eAAgB,QACxC+C,aAAc,WAIrBrD,KACGsC,EAACG,EAAAA,CAAMC,MAAO9C,EAAK+C,KAnCCzC,EAmC2BP,EAAMO,KAlChD,8BAATA,EACO,sDAEJ,qDA+B8D0C,eAAgBlC,EAAOK,OAAQ+B,KAAM,UAC9FR,EAACgB,EAAAA,CACG5B,MAAOA,EACP6B,cAAe/C,EAAKO,OACpB+B,KAAM,SACNN,UAAW,wEACXL,SAAU7B,EAAgB,aAKrCX,EAAM6D,eAAiB7D,EAAM8D,UAAU,CAAEtD,SAAQuC,MAAO9C,EAAK+C,IAAI,sBA9C1CzC,IAAAA,CAiDpC,CAEAR,EAAegE,aAAe,CAC1BlD,KAAM,CAAA,EACNkB,MAAO,GACPS,SAAU"}
1
+ {"version":3,"file":"DragonpayInput.js","sources":["../../../../../../src/components/Dragonpay/components/DragonpayInput/DragonpayInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport useForm from '../../../../utils/useForm';\nimport Field from '../../../internal/FormFields/Field';\nimport getIssuerImageUrl from '../../../../utils/get-issuer-image';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { DragonpayInputData, DragonpayInputIssuerItem, DragonpayInputProps } from '../../types';\nimport InputEmail from '../../../internal/FormFields/InputEmail';\nimport Select from '../../../internal/FormFields/Select';\nimport useImage from '../../../../core/Context/useImage';\nimport { validationRules } from '../../../../utils/Validator/defaultRules';\nimport { getErrorMessage } from '../../../../utils/getErrorMessage';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nexport default function DragonpayInput(props: Readonly<DragonpayInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const isIssuerRequired = () => {\n const typesRequiringIssuers = ['dragonpay_ebanking', 'dragonpay_otc_banking', 'dragonpay_otc_non_banking'];\n return typesRequiringIssuers.includes(props.type);\n };\n const [status, setStatus] = useState('ready');\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<DragonpayInputData>({\n schema: [...(isIssuerRequired() ? ['issuer'] : []), 'shopperEmail'],\n rules: {\n issuer: {\n validate: issuer => isIssuerRequired() && !!issuer,\n modes: ['input', 'blur']\n },\n shopperEmail: validationRules.emailRule\n }\n });\n\n const self = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n const getIssuerIcon = getIssuerImageUrl({}, props.type, getImage);\n const items = props.items.map((item: DragonpayInputIssuerItem): DragonpayInputIssuerItem => ({\n ...item,\n icon: getIssuerIcon(item.id && item.id.toLowerCase())\n }));\n\n const getIssuerSelectFieldKey = type => {\n if (type === 'dragonpay_otc_non_banking') {\n return 'dragonpayVoucher.selectField.contextualText.nonBank';\n }\n return 'dragonpayVoucher.selectField.contextualText.bank';\n };\n\n useEffect(() => {\n props.onChange({ isValid, data, valid, errors });\n }, [isValid, data, valid, errors]);\n\n useEffect(() => {\n props.setComponentRef(self.current);\n }, [props.setComponentRef]);\n\n return (\n <div className=\"adyen-checkout__dragonpay-input__field\">\n <Field\n label={i18n.get('shopperEmail')}\n errorMessage={getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n name={'dragonpay-shopperEmail'}\n >\n <InputEmail\n name={'dragonpay-shopperEmail'}\n autoCorrect={'off'}\n value={data.shopperEmail}\n className={'adyen-checkout__input--large'}\n spellcheck={false}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n autocomplete={'email'}\n />\n </Field>\n\n {isIssuerRequired() && (\n <Field label={i18n.get(getIssuerSelectFieldKey(props.type))} errorMessage={!!errors.issuer} name={'issuer'}>\n <Select\n items={items}\n selectedValue={data.issuer}\n name={'issuer'}\n className={'adyen-checkout__dropdown--large adyen-checkout__issuer-list__dropdown'}\n onChange={handleChangeFor('issuer')}\n />\n </Field>\n )}\n\n {props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n\nDragonpayInput.defaultProps = {\n data: {},\n items: [],\n onChange: () => {}\n};\n"],"names":["DragonpayInput","props","i18n","useCoreContext","getImage","useImage","isIssuerRequired","includes","type","status","setStatus","useState","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","rules","issuer","validate","modes","shopperEmail","validationRules","emailRule","self","useRef","showValidation","getIssuerIcon","getIssuerImageUrl","items","map","item","_object_spread_props","_object_spread","icon","id","toLowerCase","useEffect","onChange","setComponentRef","current","h","div","className","Field","label","get","errorMessage","getErrorMessage","name","InputEmail","autoCorrect","value","spellcheck","onInput","onBlur","autocomplete","Select","selectedValue","payButton","defaultProps"],"mappings":"uwCAce,SAASA,EAAeC,GACnC,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IACXC,EAAmB,IACS,CAAC,qBAAsB,wBAAyB,6BACjDC,SAASN,EAAMO,OAEzCC,EAAQC,GAAaC,EAAS,UAE/BC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,IAAKb,IAAqB,CAAC,UAAY,GAAK,gBACpDc,MAAO,CACHC,OAAQ,CACJC,SAAUD,GAAUf,OAAwBe,EAC5CE,MAAO,CAAC,QAAS,SAErBC,aAAcC,EAAgBC,aAIhCC,EAAOC,EAA4B,CACrClB,UAAWA,EACXmB,eAAgB,KACZhB,OAIFiB,EAAgBC,EAAkB,CAAA,EAAI9B,EAAMO,KAAMJ,GAClD4B,EAAQ/B,EAAM+B,MAAMC,IAAKC,GAA8DC,oUAAAC,CAAA,GACtFF,GAAAA,CACHG,KAAMP,EAAcI,EAAKI,IAAMJ,EAAKI,GAAGC,kBAkB3C,OARAC,EAAU,KACNvC,EAAMwC,SAAS,CAAExB,UAASH,OAAMC,QAAOC,YACxC,CAACC,EAASH,EAAMC,EAAOC,IAE1BwB,EAAU,KACNvC,EAAMyC,gBAAgBf,EAAKgB,UAC5B,CAAC1C,EAAMyC,kBAGNE,EAACC,MAAAA,CAAIC,UAAU,0CACXF,EAACG,EAAAA,CACGC,MAAO9C,EAAK+C,IAAI,gBAChBC,aAAcC,EAAgBjD,EAAMc,EAAOQ,aAActB,EAAK+C,IAAI,iBAClEG,KAAM,0BAENR,EAACS,EAAAA,CACGD,KAAM,yBACNE,YAAa,MACbC,MAAOzC,EAAKU,aACZsB,UAAW,+BACXU,YAAY,EACZC,QAAS7C,EAAgB,eAAgB,SACzC8C,OAAQ9C,EAAgB,eAAgB,QACxC+C,aAAc,WAIrBrD,KACGsC,EAACG,EAAAA,CAAMC,MAAO9C,EAAK+C,KAnCCzC,EAmC2BP,EAAMO,KAlChD,8BAATA,EACO,sDAEJ,qDA+B8D0C,eAAgBlC,EAAOK,OAAQ+B,KAAM,UAC9FR,EAACgB,EAAAA,CACG5B,MAAOA,EACP6B,cAAe/C,EAAKO,OACpB+B,KAAM,SACNN,UAAW,wEACXL,SAAU7B,EAAgB,aAKrCX,EAAM6D,UAAU,CAAErD,SAAQuC,MAAO9C,EAAK+C,IAAI,sBA9CnBzC,IAAAA,CAiDpC,CAEAR,EAAe+D,aAAe,CAC1BjD,KAAM,CAAA,EACNkB,MAAO,GACPS,SAAU"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"./defaultProps.js";import{DropinComponent as o}from"./components/DropinComponent.js";import i from"./elements/createElements.js";import r from"./elements/createStoredElements.js";import s from"./elements/createInstantPaymentElements.js";import{hasOwnProperty as a}from"../../utils/hasOwnProperty.js";import h from"./elements/splitPaymentMethods.js";import{TxVariants as d}from"../tx-variants.js";function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){l(e,t,n[t])})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const c=["paywithgoogle","googlepay","applepay"];class y extends t{reportIntegrationFlavor(){this.analytics.sendFlavor("dropin")}storeElementRefOnCore(){this.core.storeElementReference(this)}formatProps(e){return p(m({},super.formatProps(e)),{instantPaymentTypes:Array.from(new Set(e.instantPaymentTypes)).filter(e=>c.includes(e))})}get isValid(){return!!this.dropinRef&&!!this.dropinRef.state.activePaymentMethod&&!!this.dropinRef.state.activePaymentMethod.isValid}showValidation(){return this.dropinRef.state.activePaymentMethod&&this.dropinRef.state.activePaymentMethod.showValidation(),this}setStatus(e,t={}){var n;return null===(n=this.dropinRef)||void 0===n||n.setStatus(e,t),this}get activePaymentMethod(){var e,t;return(null===(e=this.dropinRef)||void 0===e?void 0:e.state)||(null===(t=this.dropinRef)||void 0===t?void 0:t.state.activePaymentMethod)?this.dropinRef.state.activePaymentMethod:null}get data(){return this.activePaymentMethod?this.dropinRef.state.activePaymentMethod.data:null}displayFinalAnimation(e){var t;this.props.disableFinalAnimation||null===(t=this.dropinRef)||void 0===t||t.setStatus(e)}submit(){if(!this.activePaymentMethod)throw new Error("No active payment method.");this.activePaymentMethod.isValid||this.activePaymentMethod.showValidation(),this.activePaymentMethod.isInstantPayment&&this.closeActivePaymentMethod(),this.activePaymentMethod.submit()}updateAmount(e,t){var n;this.props=m({},this.props,e&&{amount:e},t&&{secondaryAmount:t}),null===(n=this.amountProviderRef.current)||void 0===n||n.update(e,t),this.paymentMethodElements.forEach(n=>{n.updateAmount(e,t)})}handleElementsCreated(e){e&&0!==e.length||(this.paymentMethodElements=[]),this.paymentMethodElements=e}handleAction(e,t={}){var n,o;if(!e||!e.type){if(a(e,"action")&&a(e,"resultCode"))throw new Error('handleAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('handleAction::Invalid Action - the passed action object does not have a "type" property')}if("redirect"!==e.type&&(null===(n=this.activePaymentMethod)||void 0===n?void 0:n.updateWithAction))return this.activePaymentMethod.updateWithAction(e);this.elementRef instanceof y&&(t=m({},null===(o=this.elementRef.activePaymentMethod)||void 0===o?void 0:o.props,t));const i=this.core.createFromAction(e,p(m({},t),{elementRef:this.elementRef,isDropin:!0}));return i?(this.setStatus(i.props.statusType,{component:i}),this.componentFromAction=i,this):null}closeActivePaymentMethod(){this.dropinRef.closeActivePaymentMethod()}handleKeyDown(e){if("Enter"===e.key||"Enter"===e.code){var t,n;if("radio"===(null===(n=document)||void 0===n||null===(t=n.activeElement)||void 0===t?void 0:t.getAttribute("role")))return;super.handleKeyDown(e)}}onEnterKeyPressed(e,t){var n,o;const i=null!==(n=this.activePaymentMethod)&&void 0!==n?n:t;null===(o=this.activePaymentMethod)||void 0===o||o.onEnterKeyPressed(e,i)}componentToRender(){return e(o,p(m({},this.props),{core:this.core,elementRef:this.elementRef,onCreateElements:this.handleCreate,onElementsCreated:this.handleElementsCreated,ref:e=>{this.dropinRef=e}}))}constructor(e,t){super(e,t),l(this,"dropinRef",null),l(this,"paymentMethodsConfiguration",void 0),l(this,"componentFromAction",void 0),l(this,"paymentMethodElements",[]),l(this,"handleCreate",()=>{var e,t,n;const{paymentMethodsConfiguration:o,showStoredPaymentMethods:a,showPaymentMethods:d,instantPaymentTypes:l}=this.props,{paymentMethods:m,storedPaymentMethods:p,instantPaymentMethods:c,fastlanePaymentMethod:y}=h(this.core.paymentMethodsResponse,l),u={elementRef:this.elementRef,isDropin:!0},f=d?i(m,o,u,this.core):Promise.resolve([]),v=s(c,o,u,this.core);return[a?r(null!==(e=null===(t=(n=this.props).filterStoredPaymentMethods)||void 0===t?void 0:t.call(n,p))&&void 0!==e?e:p,o,u,this.core):Promise.resolve([]),f,v,y?i([y],o,u,this.core):[]]}),l(this,"handleOrder",({order:e})=>{this.updateParent({order:e})}),this.submit=this.submit.bind(this),this.handleAction=this.handleAction.bind(this),this.handleElementsCreated=this.handleElementsCreated.bind(this),this.props.paymentMethodComponents.forEach(e=>this.core.register(e)),this.paymentMethodsConfiguration=this.props.paymentMethodsConfiguration||{}}}l(y,"type",d.dropin),l(y,"defaultProps",n);export{y as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"./defaultProps.js";import{DropinComponent as o}from"./components/DropinComponent.js";import i from"./elements/createElements.js";import r from"./elements/createStoredElements.js";import s from"./elements/createInstantPaymentElements.js";import{hasOwnProperty as a}from"../../utils/hasOwnProperty.js";import h from"./elements/splitPaymentMethods.js";import{TxVariants as d}from"../tx-variants.js";function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){l(e,t,n[t])})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const c=["paywithgoogle","googlepay","applepay"];class u extends t{reportIntegrationFlavor(){this.analytics.sendFlavor("dropin")}storeElementRefOnCore(){this.core.storeElementReference(this)}formatProps(e){return p(m({},super.formatProps(e)),{instantPaymentTypes:Array.from(new Set(e.instantPaymentTypes)).filter(e=>c.includes(e))})}get isValid(){return!!this.dropinRef&&!!this.dropinRef.state.activePaymentMethod&&!!this.dropinRef.state.activePaymentMethod.isValid}showValidation(){return this.dropinRef.state.activePaymentMethod&&this.dropinRef.state.activePaymentMethod.showValidation(),this}setElementStatus(e,t){var n,o;return null===(o=this.elementRef)||void 0===o||null===(n=o.setStatus)||void 0===n||n.call(o,e,t),this}setStatus(e,t={}){var n;return null===(n=this.dropinRef)||void 0===n||n.setStatus(e,t),this}get activePaymentMethod(){var e,t;return(null===(e=this.dropinRef)||void 0===e?void 0:e.state)||(null===(t=this.dropinRef)||void 0===t?void 0:t.state.activePaymentMethod)?this.dropinRef.state.activePaymentMethod:null}get data(){return this.activePaymentMethod?this.dropinRef.state.activePaymentMethod.data:null}displayFinalAnimation(e){var t;this.props.disableFinalAnimation||null===(t=this.dropinRef)||void 0===t||t.setStatus(e)}submit(){if(!this.activePaymentMethod)throw new Error("No active payment method.");this.activePaymentMethod.isValid||this.activePaymentMethod.showValidation(),this.activePaymentMethod.isInstantPayment&&this.closeActivePaymentMethod(),this.activePaymentMethod.submit()}updateAmount(e,t){var n;this.props=m({},this.props,e&&{amount:e},t&&{secondaryAmount:t}),null===(n=this.amountProviderRef.current)||void 0===n||n.update(e,t),this.paymentMethodElements.forEach(n=>{n.updateAmount(e,t)})}handleElementsCreated(e){e&&0!==e.length||(this.paymentMethodElements=[]),this.paymentMethodElements=e}handleAction(e,t={}){var n,o;if(!e||!e.type){if(a(e,"action")&&a(e,"resultCode"))throw new Error('handleAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('handleAction::Invalid Action - the passed action object does not have a "type" property')}if("redirect"!==e.type&&(null===(n=this.activePaymentMethod)||void 0===n?void 0:n.updateWithAction))return this.activePaymentMethod.updateWithAction(e);this.elementRef instanceof u&&(t=m({},null===(o=this.elementRef.activePaymentMethod)||void 0===o?void 0:o.props,t));const i=this.core.createFromAction(e,p(m({},t),{elementRef:this.elementRef,isDropin:!0}));return i?(this.setStatus(i.props.statusType,{component:i}),this.componentFromAction=i,this):null}closeActivePaymentMethod(){this.dropinRef.closeActivePaymentMethod()}handleKeyDown(e){if("Enter"===e.key||"Enter"===e.code){var t,n;if("radio"===(null===(n=document)||void 0===n||null===(t=n.activeElement)||void 0===t?void 0:t.getAttribute("role")))return;super.handleKeyDown(e)}}onEnterKeyPressed(e,t){var n,o;const i=null!==(n=this.activePaymentMethod)&&void 0!==n?n:t;null===(o=this.activePaymentMethod)||void 0===o||o.onEnterKeyPressed(e,i)}componentToRender(){return e(o,p(m({},this.props),{core:this.core,elementRef:this.elementRef,onCreateElements:this.handleCreate,onElementsCreated:this.handleElementsCreated,ref:e=>{this.dropinRef=e}}))}constructor(e,t){super(e,t),l(this,"dropinRef",null),l(this,"paymentMethodsConfiguration",void 0),l(this,"componentFromAction",void 0),l(this,"paymentMethodElements",[]),l(this,"handleCreate",()=>{var e,t,n;const{paymentMethodsConfiguration:o,showStoredPaymentMethods:a,showPaymentMethods:d,instantPaymentTypes:l}=this.props,{paymentMethods:m,storedPaymentMethods:p,instantPaymentMethods:c,fastlanePaymentMethod:u}=h(this.core.paymentMethodsResponse,l),y={elementRef:this.elementRef,isDropin:!0},f=d?i(m,o,y,this.core):Promise.resolve([]),v=s(c,o,y,this.core);return[a?r(null!==(e=null===(t=(n=this.props).filterStoredPaymentMethods)||void 0===t?void 0:t.call(n,p))&&void 0!==e?e:p,o,y,this.core):Promise.resolve([]),f,v,u?i([u],o,y,this.core):[]]}),l(this,"handleOrder",({order:e})=>{this.updateParent({order:e})}),this.submit=this.submit.bind(this),this.handleAction=this.handleAction.bind(this),this.handleElementsCreated=this.handleElementsCreated.bind(this),this.props.paymentMethodComponents.forEach(e=>this.core.register(e)),this.paymentMethodsConfiguration=this.props.paymentMethodsConfiguration||{}}}l(u,"type",d.dropin),l(u,"defaultProps",n);export{u as default};
2
2
  //# sourceMappingURL=Dropin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropin.js","sources":["../../../../src/components/Dropin/Dropin.tsx"],"sourcesContent":["import { h, TargetedKeyboardEvent } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport defaultProps from './defaultProps';\nimport DropinComponent from '../../components/Dropin/components/DropinComponent';\nimport { createElements, createStoredElements } from './elements';\nimport createInstantPaymentElements from './elements/createInstantPaymentElements';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport splitPaymentMethods from './elements/splitPaymentMethods';\nimport { TxVariants } from '../tx-variants';\n\nimport type { DropinComponentProps, DropinConfiguration, InstantPaymentTypes, PaymentMethodsConfiguration } from './types';\nimport type { PaymentAction, PaymentAmount, 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 readonly type = TxVariants.dropin;\n\n protected static readonly 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 /**\n * Reference to all payment method elements being rendered by Drop-in\n */\n public paymentMethodElements: 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 this.handleElementsCreated = this.handleElementsCreated.bind(this);\n\n this.props.paymentMethodComponents.forEach(PaymentMethod => this.core.register(PaymentMethod));\n this.paymentMethodsConfiguration = this.props.paymentMethodsConfiguration || {};\n }\n\n protected override reportIntegrationFlavor(): void {\n void this.analytics.sendFlavor('dropin');\n }\n\n protected override storeElementRefOnCore() {\n this.core.storeElementReference(this);\n }\n\n formatProps(props) {\n return {\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 * Updates the amount in the props and propagates it to the AmountProvider. That way the children components can use the updated amount.\n *\n * This method **overrides** the parent one to specifically propagate the changes to all payment method elements.\n *\n * @param amount - Primary payment amount object\n * @param secondaryAmount - Optional secondary amount for display purposes (e.g., converted currency)\n * @internal\n */\n public override updateAmount(amount: PaymentAmount, secondaryAmount?: PaymentAmount): void {\n this.props = {\n ...this.props,\n ...(amount && { amount }),\n ...(secondaryAmount && { secondaryAmount })\n };\n\n this.amountProviderRef.current?.update(amount, secondaryAmount);\n\n this.paymentMethodElements.forEach(element => {\n element.updateAmount(amount, secondaryAmount);\n });\n }\n\n /**\n * Assign all elements created in the Component to the paymentMethodElements property\n * @param elements\n */\n private handleElementsCreated(elements: UIElement[]) {\n if (!elements || elements.length === 0) this.paymentMethodElements = [];\n this.paymentMethodElements = elements;\n }\n\n /**\n * Creates the Drop-in elements\n */\n private handleCreate = (): ReturnType<DropinComponentProps['onCreateElements']> => {\n const { paymentMethodsConfiguration, showStoredPaymentMethods, showPaymentMethods, instantPaymentTypes } = this.props;\n\n const { paymentMethods, storedPaymentMethods, instantPaymentMethods, fastlanePaymentMethod } = splitPaymentMethods(\n this.core.paymentMethodsResponse,\n instantPaymentTypes\n );\n\n const dropinProps = {\n elementRef: this.elementRef,\n isDropin: true\n };\n\n const elements = showPaymentMethods\n ? createElements(paymentMethods, paymentMethodsConfiguration, dropinProps, this.core)\n : Promise.resolve([]);\n const instantPaymentElements = createInstantPaymentElements(instantPaymentMethods, paymentMethodsConfiguration, dropinProps, this.core);\n const storedElements = showStoredPaymentMethods\n ? createStoredElements(\n this.props.filterStoredPaymentMethods?.(storedPaymentMethods) ?? storedPaymentMethods,\n paymentMethodsConfiguration,\n dropinProps,\n this.core\n )\n : Promise.resolve([]);\n const fastlanePaymentElement: Promise<UIElement[]> | [] = fastlanePaymentMethod\n ? createElements([fastlanePaymentMethod], paymentMethodsConfiguration, dropinProps, this.core)\n : [];\n\n return [storedElements, elements, instantPaymentElements, fastlanePaymentElement];\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 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 handleKeyDown(e: 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.handleKeyDown(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 protected override componentToRender(): h.JSX.Element {\n return (\n <DropinComponent\n {...this.props}\n core={this.core}\n elementRef={this.elementRef}\n onCreateElements={this.handleCreate}\n onElementsCreated={this.handleElementsCreated}\n ref={dropinRef => {\n this.dropinRef = dropinRef;\n }}\n />\n );\n }\n}\n\nexport default DropinElement;\n"],"names":["SUPPORTED_INSTANT_PAYMENTS","DropinElement","UIElement","reportIntegrationFlavor","this","analytics","sendFlavor","storeElementRefOnCore","core","storeElementReference","formatProps","props","_object_spread_props","_object_spread","super","instantPaymentTypes","Array","from","Set","filter","value","includes","isValid","dropinRef","state","activePaymentMethod","showValidation","setStatus","status","_this_dropinRef","_this_dropinRef1","data","displayFinalAnimation","type","disableFinalAnimation","submit","Error","isInstantPayment","closeActivePaymentMethod","updateAmount","amount","secondaryAmount","_this_amountProviderRef_current","amountProviderRef","current","update","paymentMethodElements","forEach","element","handleElementsCreated","elements","length","handleAction","action","_this_activePaymentMethod","_this_elementRef_activePaymentMethod","hasOwnProperty","updateWithAction","elementRef","paymentAction","createFromAction","isDropin","statusType","component","componentFromAction","handleKeyDown","e","key","code","document","activeElement","getAttribute","onEnterKeyPressed","_this_activePaymentMethod1","pmComponent","componentToRender","h","DropinComponent","onCreateElements","handleCreate","onElementsCreated","ref","constructor","checkout","_define_property","paymentMethodsConfiguration","_this_props_filterStoredPaymentMethods","_this_props","showStoredPaymentMethods","showPaymentMethods","paymentMethods","storedPaymentMethods","instantPaymentMethods","fastlanePaymentMethod","splitPaymentMethods","paymentMethodsResponse","dropinProps","createElements","Promise","resolve","instantPaymentElements","createInstantPaymentElements","createStoredElements","filterStoredPaymentMethods","handleOrder","order","updateParent","bind","paymentMethodComponents","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, TargetedKeyboardEvent } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport defaultProps from './defaultProps';\nimport DropinComponent from '../../components/Dropin/components/DropinComponent';\nimport { createElements, createStoredElements } from './elements';\nimport createInstantPaymentElements from './elements/createInstantPaymentElements';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport splitPaymentMethods from './elements/splitPaymentMethods';\nimport { TxVariants } from '../tx-variants';\n\nimport type { DropinComponentProps, DropinConfiguration, InstantPaymentTypes, PaymentMethodsConfiguration } from './types';\nimport type { PaymentAction, PaymentAmount, PaymentResponseData } from '../../types/global-types';\nimport type { ICore } from '../../core/types';\nimport type { IDropin } from './types';\nimport { UIElementStatus } from '../types';\n\nconst SUPPORTED_INSTANT_PAYMENTS = ['paywithgoogle', 'googlepay', 'applepay'];\n\nclass DropinElement extends UIElement<DropinConfiguration> implements IDropin {\n public static readonly type = TxVariants.dropin;\n\n protected static readonly defaultProps = defaultProps;\n\n public dropinRef = null;\n\n declare public elementRef: DropinElement;\n\n private readonly paymentMethodsConfiguration: PaymentMethodsConfiguration;\n /**\n * Reference to the component created from `handleAction` (Ex.: ThreeDS2Challenge)\n */\n public componentFromAction?: UIElement;\n\n /**\n * Reference to all payment method elements being rendered by Drop-in\n */\n public paymentMethodElements: 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 this.handleElementsCreated = this.handleElementsCreated.bind(this);\n\n this.props.paymentMethodComponents.forEach(PaymentMethod => this.core.register(PaymentMethod));\n this.paymentMethodsConfiguration = this.props.paymentMethodsConfiguration || {};\n }\n\n protected override reportIntegrationFlavor(): void {\n void this.analytics.sendFlavor('dropin');\n }\n\n protected override storeElementRefOnCore() {\n this.core.storeElementReference(this);\n }\n\n formatProps(props: DropinConfiguration) {\n return {\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 setElementStatus(status: UIElementStatus, props?: Record<string, unknown>): this {\n this.elementRef?.setStatus?.(status, props);\n return this;\n }\n\n public setStatus(status: UIElementStatus, props: Record<string, unknown> = {}): 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 * Updates the amount in the props and propagates it to the AmountProvider. That way the children components can use the updated amount.\n *\n * This method **overrides** the parent one to specifically propagate the changes to all payment method elements.\n *\n * @param amount - Primary payment amount object\n * @param secondaryAmount - Optional secondary amount for display purposes (e.g., converted currency)\n * @internal\n */\n public override updateAmount(amount: PaymentAmount, secondaryAmount?: PaymentAmount): void {\n this.props = {\n ...this.props,\n ...(amount && { amount }),\n ...(secondaryAmount && { secondaryAmount })\n };\n\n this.amountProviderRef.current?.update(amount, secondaryAmount);\n\n this.paymentMethodElements.forEach(element => {\n element.updateAmount(amount, secondaryAmount);\n });\n }\n\n /**\n * Assign all elements created in the Component to the paymentMethodElements property\n * @param elements\n */\n private handleElementsCreated(elements: UIElement[]) {\n if (!elements || elements.length === 0) this.paymentMethodElements = [];\n this.paymentMethodElements = elements;\n }\n\n /**\n * Creates the Drop-in elements\n */\n private readonly handleCreate = (): ReturnType<DropinComponentProps['onCreateElements']> => {\n const { paymentMethodsConfiguration, showStoredPaymentMethods, showPaymentMethods, instantPaymentTypes } = this.props;\n\n const { paymentMethods, storedPaymentMethods, instantPaymentMethods, fastlanePaymentMethod } = splitPaymentMethods(\n this.core.paymentMethodsResponse,\n instantPaymentTypes\n );\n\n const dropinProps = {\n elementRef: this.elementRef,\n isDropin: true\n };\n\n const elements = showPaymentMethods\n ? createElements(paymentMethods, paymentMethodsConfiguration, dropinProps, this.core)\n : Promise.resolve([]);\n const instantPaymentElements = createInstantPaymentElements(instantPaymentMethods, paymentMethodsConfiguration, dropinProps, this.core);\n const storedElements = showStoredPaymentMethods\n ? createStoredElements(\n this.props.filterStoredPaymentMethods?.(storedPaymentMethods) ?? storedPaymentMethods,\n paymentMethodsConfiguration,\n dropinProps,\n this.core\n )\n : Promise.resolve([]);\n const fastlanePaymentElement: Promise<UIElement[]> | [] = fastlanePaymentMethod\n ? createElements([fastlanePaymentMethod], paymentMethodsConfiguration, dropinProps, this.core)\n : [];\n\n return [storedElements, elements, instantPaymentElements, fastlanePaymentElement];\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 isDropin: true\n });\n\n if (paymentAction) {\n this.setStatus(paymentAction.props.statusType as UIElementStatus, { 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 handleKeyDown(e: 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.handleKeyDown(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 protected override componentToRender(): h.JSX.Element {\n return (\n <DropinComponent\n {...this.props}\n core={this.core}\n elementRef={this.elementRef}\n onCreateElements={this.handleCreate}\n onElementsCreated={this.handleElementsCreated}\n ref={dropinRef => {\n this.dropinRef = dropinRef;\n }}\n />\n );\n }\n}\n\nexport default DropinElement;\n"],"names":["SUPPORTED_INSTANT_PAYMENTS","DropinElement","UIElement","reportIntegrationFlavor","this","analytics","sendFlavor","storeElementRefOnCore","core","storeElementReference","formatProps","props","_object_spread_props","_object_spread","super","instantPaymentTypes","Array","from","Set","filter","value","includes","isValid","dropinRef","state","activePaymentMethod","showValidation","setElementStatus","status","_this_elementRef_setStatus","_this_elementRef","elementRef","setStatus","call","_this_dropinRef","_this_dropinRef1","data","displayFinalAnimation","type","disableFinalAnimation","submit","Error","isInstantPayment","closeActivePaymentMethod","updateAmount","amount","secondaryAmount","_this_amountProviderRef_current","amountProviderRef","current","update","paymentMethodElements","forEach","element","handleElementsCreated","elements","length","handleAction","action","_this_activePaymentMethod","_this_elementRef_activePaymentMethod","hasOwnProperty","updateWithAction","paymentAction","createFromAction","isDropin","statusType","component","componentFromAction","handleKeyDown","e","key","code","document","activeElement","getAttribute","onEnterKeyPressed","_this_activePaymentMethod1","pmComponent","componentToRender","h","DropinComponent","onCreateElements","handleCreate","onElementsCreated","ref","constructor","checkout","_define_property","paymentMethodsConfiguration","_this_props_filterStoredPaymentMethods","_this_props","showStoredPaymentMethods","showPaymentMethods","paymentMethods","storedPaymentMethods","instantPaymentMethods","fastlanePaymentMethod","splitPaymentMethods","paymentMethodsResponse","dropinProps","createElements","Promise","resolve","instantPaymentElements","createInstantPaymentElements","createStoredElements","filterStoredPaymentMethods","handleOrder","order","updateParent","bind","paymentMethodComponents","PaymentMethod","register","TxVariants","dropin","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, Fragment, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport './DropinComponent.scss';\nimport { sanitizeOrder } from '../../internal/UIElement/utils';\nimport type { PaymentAmount } from '../../../types/global-types';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Button from '../../internal/Button';\nimport type {\n DropinComponentProps,\n DropinComponentState,\n DropinStatus,\n DropinStatusProps,\n onOrderCancelData,\n onOrderCancelInternalCallback,\n PaymentMethodDisplayMode\n} from '../types';\nimport splitPaymentMethods from '../elements/splitPaymentMethods';\nimport { createAvailablePaymentsList, createUnavailablePaymentsList, type PaymentMethodDisplayModeEntry } from '../utils/paymentMethodsAnalytics';\nimport UIElement from '../../internal/UIElement';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../../core/Analytics/events/AnalyticsInfoEvent';\nimport { DropinSuccessState } from './DropinSuccessState';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n fastlanePaymentElement: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {},\n showDefaultPaymentMethodList: true\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise, orderStatusPromise])\n .then(([storedPaymentElements, elements, instantPaymentElements, fastlanePaymentElement, orderStatus]) => {\n this.setState({\n orderStatus,\n elements,\n instantPaymentElements,\n storedPaymentElements,\n fastlanePaymentElement,\n showDefaultPaymentMethodList: fastlanePaymentElement.length === 0\n });\n this.setStatus('ready');\n\n this.props.onElementsCreated([...instantPaymentElements, ...storedPaymentElements, ...elements, ...fastlanePaymentElement]);\n\n this.reportPaymentMethodList({\n fastlane: fastlanePaymentElement,\n instant: instantPaymentElements,\n stored: storedPaymentElements,\n regular: elements\n });\n })\n .catch(() => {\n this.setStatus('error');\n });\n\n this.onOrderCancel = this.getOnOrderCancel();\n };\n\n /**\n * Builds and sends the payment list displayed analytics event.\n */\n private reportPaymentMethodList = (availableElementsByDisplayMode: Record<PaymentMethodDisplayMode, UIElement[]>): void => {\n try {\n const { paymentMethods, storedPaymentMethods, instantPaymentMethods, fastlanePaymentMethod } = splitPaymentMethods(\n this.props.core.paymentMethodsResponse,\n this.props.instantPaymentTypes ?? []\n );\n\n const paymentMethodDisplayModes: PaymentMethodDisplayModeEntry[] = [\n { displayMode: 'fastlane', paymentMethods: fastlanePaymentMethod ? [fastlanePaymentMethod] : [] },\n { displayMode: 'instant', paymentMethods: instantPaymentMethods },\n { displayMode: 'stored', paymentMethods: storedPaymentMethods },\n { displayMode: 'regular', paymentMethods: paymentMethods }\n ];\n\n const availablePaymentMethods = createAvailablePaymentsList(\n paymentMethodDisplayModes.map(e => e.displayMode),\n availableElementsByDisplayMode,\n this.props.core\n );\n\n const unavailablePaymentMethods = createUnavailablePaymentsList(paymentMethodDisplayModes, availableElementsByDisplayMode);\n\n const dropinPaymentListDisplayedEvent = new AnalyticsInfoEvent({\n type: InfoEventType.PaymentListDisplayed,\n component: 'dropin',\n availablePaymentMethods,\n unavailablePaymentMethods\n });\n this.props.core.modules.analytics.sendAnalytics(dropinPaymentListDisplayedEvent);\n } catch (error) {\n console.warn('Drop-in: failed to report payment method list analytics', error);\n }\n };\n\n public setStatus = (status: DropinStatus['type'], props: DropinStatusProps = {}) => {\n this.setState({ status: { type: status, props } });\n };\n\n private setActivePaymentMethod = (paymentMethod: UIElement): void => {\n if (paymentMethod === this.state.activePaymentMethod) {\n return;\n }\n\n this.setState(prevState => ({\n activePaymentMethod: paymentMethod,\n cachedPaymentMethods: { ...prevState.cachedPaymentMethods, [paymentMethod._id]: true }\n }));\n\n if (this.state.cachedPaymentMethods[paymentMethod._id]) {\n paymentMethod.activate();\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status.type !== this.state.status.type && this.state.activePaymentMethod) {\n // @ts-ignore TODO: Drop-in has its own 'status' values ('custom' for ex) which differs from regular UIElementStatus. Need to investigate best way to define/use this status variable\n this.state.activePaymentMethod.setStatus(this.state.status.type);\n }\n\n if (this.state.status.type === 'ready' && prevState.status.type !== 'ready' && this.props.onReady) {\n this.props.onReady();\n }\n }\n\n private handleOnSelectPaymentMethod = paymentMethod => {\n const { activePaymentMethod } = this.state;\n\n this.setActivePaymentMethod(paymentMethod);\n\n if ((activePaymentMethod && activePaymentMethod._id !== paymentMethod._id) || !activePaymentMethod) {\n this.props.onSelect?.(paymentMethod);\n }\n };\n\n private handleDisableStoredPaymentMethod = storedPaymentMethod => {\n this.setState({ isDisabling: true });\n\n new Promise((resolve, reject) => this.props.onDisableStoredPaymentMethod(storedPaymentMethod.props.storedPaymentMethodId, resolve, reject))\n .then(() => {\n this.setState(prevState => ({\n storedPaymentElements: prevState.storedPaymentElements.filter(pm => pm._id !== storedPaymentMethod._id)\n }));\n this.setState({ isDisabling: false });\n })\n .catch(() => {\n this.setState({ isDisabling: false });\n });\n };\n\n private readonly onShowDefaultPaymentMethodListClick = () => {\n this.setState({\n showDefaultPaymentMethodList: true\n });\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.clicked,\n target: UiTarget.otherPaymentMethodButton,\n component: 'dropin'\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n };\n\n closeActivePaymentMethod() {\n this.setState({ activePaymentMethod: null });\n }\n\n /**\n * getOnOrderCancel decides which onOrderCancel logic should be used, manual or sessions\n */\n private readonly getOnOrderCancel = (): ((data: onOrderCancelData) => void) | null => {\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 void 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: onOrderCancelInternalCallback;\n\n render() {\n const {\n elements,\n fastlanePaymentElement,\n instantPaymentElements,\n storedPaymentElements,\n status,\n activePaymentMethod,\n showDefaultPaymentMethodList\n } = this.state;\n\n const isLoading = status.type === 'loading';\n const isRedirecting = status.type === 'redirect';\n const hasPaymentMethodsToBeDisplayed = !!(elements?.length || instantPaymentElements?.length || storedPaymentElements?.length);\n\n switch (status.type) {\n case 'success':\n return <DropinSuccessState message={status.props?.message} />;\n\n case 'error':\n return <Status.Error message={status.props?.message} />;\n\n case 'custom':\n return status.props?.component?.render();\n\n default:\n return (\n <div className={`adyen-checkout__dropin adyen-checkout__dropin--${status.type}`}>\n {isRedirecting && status.props.component && status.props.component.render()}\n {isLoading && status.props && status.props.component && status.props.component.render()}\n\n {!showDefaultPaymentMethodList && (\n <Fragment>\n <PaymentMethodList\n isLoading={isLoading}\n paymentMethods={fastlanePaymentElement}\n activePaymentMethod={activePaymentMethod}\n onSelect={this.handleOnSelectPaymentMethod}\n openFirstPaymentMethod\n showRadioButton={this.props.showRadioButton}\n />\n\n {hasPaymentMethodsToBeDisplayed && (\n <Button\n classNameModifiers={['dropin-show-paymentmethods']}\n variant=\"link\"\n inline\n label=\"Other payment methods\"\n onClick={this.onShowDefaultPaymentMethodListClick}\n />\n )}\n </Fragment>\n )}\n\n {hasPaymentMethodsToBeDisplayed && showDefaultPaymentMethodList && (\n <PaymentMethodList\n isLoading={isLoading || isRedirecting}\n isDisablingPaymentMethod={this.state.isDisabling}\n paymentMethods={elements}\n instantPaymentMethods={instantPaymentElements}\n storedPaymentMethods={storedPaymentElements}\n activePaymentMethod={activePaymentMethod}\n 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","componentDidUpdate","prevProps","prevState","status","type","state","activePaymentMethod","setStatus","props","onReady","closeActivePaymentMethod","setState","render","elements","fastlanePaymentElement","instantPaymentElements","storedPaymentElements","showDefaultPaymentMethodList","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","h","DropinSuccessState","message","Status","Error","component","div","className","Fragment","PaymentMethodList","paymentMethods","onSelect","handleOnSelectPaymentMethod","openFirstPaymentMethod","showRadioButton","Button","classNameModifiers","variant","inline","label","onClick","onShowDefaultPaymentMethodListClick","isDisablingPaymentMethod","isDisabling","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","openPaymentMethod","openFirstStoredPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","super","args","_define_property","undefined","cachedPaymentMethods","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","fastlanePaymentElementPromise","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","onElementsCreated","reportPaymentMethodList","fastlane","instant","stored","regular","catch","getOnOrderCancel","availableElementsByDisplayMode","_this_props_instantPaymentTypes","fastlanePaymentMethod","splitPaymentMethods","core","paymentMethodsResponse","instantPaymentTypes","paymentMethodDisplayModes","displayMode","availablePaymentMethods","createAvailablePaymentsList","map","e","unavailablePaymentMethods","createUnavailablePaymentsList","dropinPaymentListDisplayedEvent","AnalyticsInfoEvent","InfoEventType","PaymentListDisplayed","modules","analytics","sendAnalytics","error","console","warn","setActivePaymentMethod","paymentMethod","_object_spread_props","_object_spread","_id","activate","_this_props_onSelect","_this_props","call","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","_this_props_modules","event","clicked","target","UiTarget","otherPaymentMethodButton","data","sanitizeOrder","amount","elementRef","handleAdvanceFlowPaymentMethodsUpdate","AdyenCheckoutError","session","cancelOrder","update"],"mappings":"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"}
1
+ {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, Fragment, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport './DropinComponent.scss';\nimport { sanitizeOrder } from '../../internal/UIElement/utils';\nimport type { PaymentAmount } from '../../../types/global-types';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Button from '../../internal/Button';\nimport type {\n DropinComponentProps,\n DropinComponentState,\n DropinStatus,\n DropinStatusProps,\n onOrderCancelData,\n onOrderCancelInternalCallback,\n PaymentMethodDisplayMode\n} from '../types';\nimport splitPaymentMethods from '../elements/splitPaymentMethods';\nimport { createAvailablePaymentsList, createUnavailablePaymentsList, type PaymentMethodDisplayModeEntry } from '../utils/paymentMethodsAnalytics';\nimport UIElement from '../../internal/UIElement';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../../core/Analytics/events/AnalyticsInfoEvent';\nimport { DropinSuccessState } from './DropinSuccessState';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n fastlanePaymentElement: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {},\n showDefaultPaymentMethodList: true\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise, orderStatusPromise])\n .then(([storedPaymentElements, elements, instantPaymentElements, fastlanePaymentElement, orderStatus]) => {\n this.setState({\n orderStatus,\n elements,\n instantPaymentElements,\n storedPaymentElements,\n fastlanePaymentElement,\n showDefaultPaymentMethodList: fastlanePaymentElement.length === 0\n });\n this.setStatus('ready');\n\n this.props.onElementsCreated([...instantPaymentElements, ...storedPaymentElements, ...elements, ...fastlanePaymentElement]);\n\n this.reportPaymentMethodList({\n fastlane: fastlanePaymentElement,\n instant: instantPaymentElements,\n stored: storedPaymentElements,\n regular: elements\n });\n })\n .catch(() => {\n this.setStatus('error');\n });\n\n this.onOrderCancel = this.getOnOrderCancel();\n };\n\n /**\n * Builds and sends the payment list displayed analytics event.\n */\n private reportPaymentMethodList = (availableElementsByDisplayMode: Record<PaymentMethodDisplayMode, UIElement[]>): void => {\n try {\n const { paymentMethods, storedPaymentMethods, instantPaymentMethods, fastlanePaymentMethod } = splitPaymentMethods(\n this.props.core.paymentMethodsResponse,\n this.props.instantPaymentTypes ?? []\n );\n\n const paymentMethodDisplayModes: PaymentMethodDisplayModeEntry[] = [\n { displayMode: 'fastlane', paymentMethods: fastlanePaymentMethod ? [fastlanePaymentMethod] : [] },\n { displayMode: 'instant', paymentMethods: instantPaymentMethods },\n { displayMode: 'stored', paymentMethods: storedPaymentMethods },\n { displayMode: 'regular', paymentMethods: paymentMethods }\n ];\n\n const availablePaymentMethods = createAvailablePaymentsList(\n paymentMethodDisplayModes.map(e => e.displayMode),\n availableElementsByDisplayMode,\n this.props.core\n );\n\n const unavailablePaymentMethods = createUnavailablePaymentsList(paymentMethodDisplayModes, availableElementsByDisplayMode);\n\n const dropinPaymentListDisplayedEvent = new AnalyticsInfoEvent({\n type: InfoEventType.PaymentListDisplayed,\n component: 'dropin',\n availablePaymentMethods,\n unavailablePaymentMethods\n });\n this.props.core.modules.analytics.sendAnalytics(dropinPaymentListDisplayedEvent);\n } catch (error) {\n console.warn('Drop-in: failed to report payment method list analytics', error);\n }\n };\n\n public setStatus = (status: DropinStatus['type'], props: DropinStatusProps = {}) => {\n this.setState({ status: { type: status, props } });\n };\n\n private setActivePaymentMethod = (paymentMethod: UIElement): void => {\n if (paymentMethod === this.state.activePaymentMethod) {\n return;\n }\n\n this.setState(prevState => ({\n activePaymentMethod: paymentMethod,\n cachedPaymentMethods: { ...prevState.cachedPaymentMethods, [paymentMethod._id]: true }\n }));\n\n if (this.state.cachedPaymentMethods[paymentMethod._id]) {\n paymentMethod.activate();\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status.type !== this.state.status.type && this.state.activePaymentMethod) {\n // @ts-ignore TODO: Drop-in has its own 'status' values ('custom' for ex) which differs from regular UIElementStatus. Need to investigate best way to define/use this status variable\n this.state.activePaymentMethod.setStatus(this.state.status.type);\n }\n\n if (this.state.status.type === 'ready' && prevState.status.type !== 'ready' && this.props.onReady) {\n this.props.onReady();\n }\n }\n\n private handleOnSelectPaymentMethod = paymentMethod => {\n const { activePaymentMethod } = this.state;\n\n this.setActivePaymentMethod(paymentMethod);\n\n if ((activePaymentMethod && activePaymentMethod._id !== paymentMethod._id) || !activePaymentMethod) {\n this.props.onSelect?.(paymentMethod);\n }\n };\n\n private handleDisableStoredPaymentMethod = storedPaymentMethod => {\n this.setState({ isDisabling: true });\n\n new Promise((resolve, reject) => this.props.onDisableStoredPaymentMethod(storedPaymentMethod.props.storedPaymentMethodId, resolve, reject))\n .then(() => {\n this.setState(prevState => ({\n storedPaymentElements: prevState.storedPaymentElements.filter(pm => pm._id !== storedPaymentMethod._id)\n }));\n this.setState({ isDisabling: false });\n })\n .catch(() => {\n this.setState({ isDisabling: false });\n });\n };\n\n private readonly onShowDefaultPaymentMethodListClick = () => {\n this.setState({\n showDefaultPaymentMethodList: true\n });\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.clicked,\n target: UiTarget.otherPaymentMethodButton,\n component: 'dropin'\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n };\n\n closeActivePaymentMethod() {\n this.setState({ activePaymentMethod: null });\n }\n\n /**\n * getOnOrderCancel decides which onOrderCancel logic should be used, manual or sessions\n */\n private readonly getOnOrderCancel = (): ((data: onOrderCancelData) => void) | null => {\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 // @ts-ignore - handleAdvanceFlowPaymentMethodsUpdate is protected but we need to call it from here\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 void 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: onOrderCancelInternalCallback;\n\n render() {\n const {\n elements,\n fastlanePaymentElement,\n instantPaymentElements,\n storedPaymentElements,\n status,\n activePaymentMethod,\n showDefaultPaymentMethodList\n } = this.state;\n\n const isLoading = status.type === 'loading';\n const isRedirecting = status.type === 'redirect';\n const hasPaymentMethodsToBeDisplayed = !!(elements?.length || instantPaymentElements?.length || storedPaymentElements?.length);\n\n switch (status.type) {\n case 'success':\n return <DropinSuccessState message={status.props?.message} />;\n\n case 'error':\n return <Status.Error message={status.props?.message} />;\n\n case 'custom':\n return status.props?.component?.render();\n\n default:\n return (\n <div className={`adyen-checkout__dropin adyen-checkout__dropin--${status.type}`}>\n {isRedirecting && status.props.component && status.props.component.render()}\n {isLoading && status.props && status.props.component && status.props.component.render()}\n\n {!showDefaultPaymentMethodList && (\n <Fragment>\n <PaymentMethodList\n isLoading={isLoading}\n paymentMethods={fastlanePaymentElement}\n activePaymentMethod={activePaymentMethod}\n onSelect={this.handleOnSelectPaymentMethod}\n openFirstPaymentMethod\n showRadioButton={this.props.showRadioButton}\n />\n\n {hasPaymentMethodsToBeDisplayed && (\n <Button\n classNameModifiers={['dropin-show-paymentmethods']}\n variant=\"link\"\n inline\n label=\"Other payment methods\"\n onClick={this.onShowDefaultPaymentMethodListClick}\n />\n )}\n </Fragment>\n )}\n\n {hasPaymentMethodsToBeDisplayed && showDefaultPaymentMethodList && (\n <PaymentMethodList\n isLoading={isLoading || isRedirecting}\n isDisablingPaymentMethod={this.state.isDisabling}\n paymentMethods={elements}\n instantPaymentMethods={instantPaymentElements}\n storedPaymentMethods={storedPaymentElements}\n activePaymentMethod={activePaymentMethod}\n 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","componentDidUpdate","prevProps","prevState","status","type","state","activePaymentMethod","setStatus","props","onReady","closeActivePaymentMethod","setState","render","elements","fastlanePaymentElement","instantPaymentElements","storedPaymentElements","showDefaultPaymentMethodList","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","h","DropinSuccessState","message","Status","Error","component","div","className","Fragment","PaymentMethodList","paymentMethods","onSelect","handleOnSelectPaymentMethod","openFirstPaymentMethod","showRadioButton","Button","classNameModifiers","variant","inline","label","onClick","onShowDefaultPaymentMethodListClick","isDisablingPaymentMethod","isDisabling","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","openPaymentMethod","openFirstStoredPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","super","args","_define_property","undefined","cachedPaymentMethods","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","fastlanePaymentElementPromise","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","onElementsCreated","reportPaymentMethodList","fastlane","instant","stored","regular","catch","getOnOrderCancel","availableElementsByDisplayMode","_this_props_instantPaymentTypes","fastlanePaymentMethod","splitPaymentMethods","core","paymentMethodsResponse","instantPaymentTypes","paymentMethodDisplayModes","displayMode","availablePaymentMethods","createAvailablePaymentsList","map","e","unavailablePaymentMethods","createUnavailablePaymentsList","dropinPaymentListDisplayedEvent","AnalyticsInfoEvent","InfoEventType","PaymentListDisplayed","modules","analytics","sendAnalytics","error","console","warn","setActivePaymentMethod","paymentMethod","_object_spread_props","_object_spread","_id","activate","_this_props_onSelect","_this_props","call","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","_this_props_modules","event","clicked","target","UiTarget","otherPaymentMethodButton","data","sanitizeOrder","amount","elementRef","handleAdvanceFlowPaymentMethodsUpdate","AdyenCheckoutError","session","cancelOrder","update"],"mappings":"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"}
@@ -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/EcontextInput/EcontextInput.js";import n from"./components/EcontextVoucherResult/EcontextVoucherResult.js";import{TxVariants as o}from"../tx-variants.js";function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 p extends t{get isValid(){return!this.props.personalDetailsRequired||!!this.state.isValid}formatData(){return i(function(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){s(e,t,r[t])})}return e}({},this.state.data),{paymentMethod:{type:this.type}})}componentToRender(){return this.props.reference?e(n,{reference:this.props.reference,totalAmount:this.props.totalAmount,expiresAt:this.props.expiresAt,paymentMethodType:this.props.paymentMethodType,maskedTelephoneNumber:this.props.maskedTelephoneNumber,instructionsUrl:this.props.instructionsUrl,alternativeReference:this.props.alternativeReference,collectionInstitutionNumber:this.props.collectionInstitutionNumber,onActionHandled:this.onActionHandled}):e(r,{setComponentRef:this.setComponentRef,data:this.props.data,personalDetailsRequired:this.props.personalDetailsRequired,showPayButton:this.props.showPayButton,onChange:this.setState,payButton:this.payButton})}}s(p,"type",o.econtext),s(p,"txVariants",[o.econtext,o.econtext_atm,o.econtext_online,o.econtext_seven_eleven,o.econtext_stores]),s(p,"defaultProps",{personalDetailsRequired:!0});export{p as EcontextElement,p 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/EcontextInput/EcontextInput.js";import n from"./components/EcontextVoucherResult/EcontextVoucherResult.js";import{TxVariants as o}from"../tx-variants.js";function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(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 p extends t{get isValid(){return!this.props.personalDetailsRequired||!!this.state.isValid}formatData(){return i(function(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){s(e,t,r[t])})}return e}({},this.state.data),{paymentMethod:{type:this.type}})}componentToRender(){return this.props.reference?e(n,{reference:this.props.reference,totalAmount:this.props.totalAmount,expiresAt:this.props.expiresAt,paymentMethodType:this.props.paymentMethodType,maskedTelephoneNumber:this.props.maskedTelephoneNumber,instructionsUrl:this.props.instructionsUrl,alternativeReference:this.props.alternativeReference,collectionInstitutionNumber:this.props.collectionInstitutionNumber,onActionHandled:this.onActionHandled}):e(r,{setComponentRef:this.setComponentRef,data:this.props.data,personalDetailsRequired:this.props.personalDetailsRequired,onChange:this.setState,payButton:this.payButton})}}s(p,"type",o.econtext),s(p,"txVariants",[o.econtext,o.econtext_atm,o.econtext_online,o.econtext_seven_eleven,o.econtext_stores]),s(p,"defaultProps",{personalDetailsRequired:!0});export{p as EcontextElement,p as default};
2
2
  //# sourceMappingURL=Econtext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Econtext.js","sources":["../../../../src/components/Econtext/Econtext.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport EcontextInput from './components/EcontextInput';\nimport EcontextVoucherResult from './components/EcontextVoucherResult';\nimport { TxVariants } from '../tx-variants';\nimport { EcontextConfiguration } from './types';\n\nexport class EcontextElement extends UIElement<EcontextConfiguration> {\n public static readonly type = TxVariants.econtext;\n public static readonly txVariants = [\n TxVariants.econtext,\n TxVariants.econtext_atm,\n TxVariants.econtext_online,\n TxVariants.econtext_seven_eleven,\n TxVariants.econtext_stores\n ];\n\n protected static readonly defaultProps = {\n personalDetailsRequired: true\n };\n\n get isValid() {\n if (!this.props.personalDetailsRequired) {\n return true;\n }\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n ...this.state.data,\n paymentMethod: {\n type: this.type\n }\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.reference ? (\n <EcontextVoucherResult\n reference={this.props.reference}\n totalAmount={this.props.totalAmount}\n expiresAt={this.props.expiresAt}\n paymentMethodType={this.props.paymentMethodType}\n maskedTelephoneNumber={this.props.maskedTelephoneNumber}\n instructionsUrl={this.props.instructionsUrl}\n alternativeReference={this.props.alternativeReference}\n collectionInstitutionNumber={this.props.collectionInstitutionNumber}\n onActionHandled={this.onActionHandled}\n />\n ) : (\n <EcontextInput\n setComponentRef={this.setComponentRef}\n data={this.props.data}\n personalDetailsRequired={this.props.personalDetailsRequired}\n showPayButton={this.props.showPayButton}\n onChange={this.setState}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default EcontextElement;\n"],"names":["EcontextElement","UIElement","isValid","this","props","personalDetailsRequired","state","formatData","_object_spread_props","_object_spread","data","paymentMethod","type","componentToRender","reference","h","EcontextVoucherResult","totalAmount","expiresAt","paymentMethodType","maskedTelephoneNumber","instructionsUrl","alternativeReference","collectionInstitutionNumber","onActionHandled","EcontextInput","setComponentRef","showPayButton","onChange","setState","payButton","_define_property","TxVariants","econtext","txVariants","econtext_atm","econtext_online","econtext_seven_eleven","econtext_stores","defaultProps"],"mappings":"8xBAOO,MAAMA,UAAwBC,EAcjC,WAAIC,GACA,OAAKC,KAAKC,MAAMC,2BAGPF,KAAKG,MAAMJ,OACxB,CAKAK,UAAAA,GACI,OAAOC,oUAAAC,CAAA,CAAA,EACAN,KAAKG,MAAMI,MAAI,CAClBC,cAAe,CACXC,KAAMT,KAAKS,OAGvB,CAEmBC,iBAAAA,GACf,OAAOV,KAAKC,MAAMU,UACdC,EAACC,EAAAA,CACGF,UAAWX,KAAKC,MAAMU,UACtBG,YAAad,KAAKC,MAAMa,YACxBC,UAAWf,KAAKC,MAAMc,UACtBC,kBAAmBhB,KAAKC,MAAMe,kBAC9BC,sBAAuBjB,KAAKC,MAAMgB,sBAClCC,gBAAiBlB,KAAKC,MAAMiB,gBAC5BC,qBAAsBnB,KAAKC,MAAMkB,qBACjCC,4BAA6BpB,KAAKC,MAAMmB,4BACxCC,gBAAiBrB,KAAKqB,kBAG1BT,EAACU,EAAAA,CACGC,gBAAiBvB,KAAKuB,gBACtBhB,KAAMP,KAAKC,MAAMM,KACjBL,wBAAyBF,KAAKC,MAAMC,wBACpCsB,cAAexB,KAAKC,MAAMuB,cAC1BC,SAAUzB,KAAK0B,SACfC,UAAW3B,KAAK2B,WAG5B,EAvDAC,EADS/B,EACcY,OAAOoB,EAAWC,UACzCF,EAFS/B,EAEckC,aAAa,CAChCF,EAAWC,SACXD,EAAWG,aACXH,EAAWI,gBACXJ,EAAWK,sBACXL,EAAWM,kBAGfP,EAVS/B,EAUiBuC,eAAe,CACrClC,yBAAyB"}
1
+ {"version":3,"file":"Econtext.js","sources":["../../../../src/components/Econtext/Econtext.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport EcontextInput from './components/EcontextInput';\nimport EcontextVoucherResult from './components/EcontextVoucherResult';\nimport { TxVariants } from '../tx-variants';\nimport { EcontextConfiguration } from './types';\n\nexport class EcontextElement extends UIElement<EcontextConfiguration> {\n public static readonly type = TxVariants.econtext;\n public static readonly txVariants = [\n TxVariants.econtext,\n TxVariants.econtext_atm,\n TxVariants.econtext_online,\n TxVariants.econtext_seven_eleven,\n TxVariants.econtext_stores\n ];\n\n protected static readonly defaultProps = {\n personalDetailsRequired: true\n };\n\n get isValid() {\n if (!this.props.personalDetailsRequired) {\n return true;\n }\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n ...this.state.data,\n paymentMethod: {\n type: this.type\n }\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.reference ? (\n <EcontextVoucherResult\n reference={this.props.reference}\n totalAmount={this.props.totalAmount}\n expiresAt={this.props.expiresAt}\n paymentMethodType={this.props.paymentMethodType}\n maskedTelephoneNumber={this.props.maskedTelephoneNumber}\n instructionsUrl={this.props.instructionsUrl}\n alternativeReference={this.props.alternativeReference}\n collectionInstitutionNumber={this.props.collectionInstitutionNumber}\n onActionHandled={this.onActionHandled}\n />\n ) : (\n <EcontextInput\n setComponentRef={this.setComponentRef}\n data={this.props.data}\n personalDetailsRequired={this.props.personalDetailsRequired}\n onChange={this.setState}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default EcontextElement;\n"],"names":["EcontextElement","UIElement","isValid","this","props","personalDetailsRequired","state","formatData","_object_spread_props","_object_spread","data","paymentMethod","type","componentToRender","reference","h","EcontextVoucherResult","totalAmount","expiresAt","paymentMethodType","maskedTelephoneNumber","instructionsUrl","alternativeReference","collectionInstitutionNumber","onActionHandled","EcontextInput","setComponentRef","onChange","setState","payButton","_define_property","TxVariants","econtext","txVariants","econtext_atm","econtext_online","econtext_seven_eleven","econtext_stores","defaultProps"],"mappings":"8xBAOO,MAAMA,UAAwBC,EAcjC,WAAIC,GACA,OAAKC,KAAKC,MAAMC,2BAGPF,KAAKG,MAAMJ,OACxB,CAKAK,UAAAA,GACI,OAAOC,oUAAAC,CAAA,CAAA,EACAN,KAAKG,MAAMI,MAAI,CAClBC,cAAe,CACXC,KAAMT,KAAKS,OAGvB,CAEmBC,iBAAAA,GACf,OAAOV,KAAKC,MAAMU,UACdC,EAACC,EAAAA,CACGF,UAAWX,KAAKC,MAAMU,UACtBG,YAAad,KAAKC,MAAMa,YACxBC,UAAWf,KAAKC,MAAMc,UACtBC,kBAAmBhB,KAAKC,MAAMe,kBAC9BC,sBAAuBjB,KAAKC,MAAMgB,sBAClCC,gBAAiBlB,KAAKC,MAAMiB,gBAC5BC,qBAAsBnB,KAAKC,MAAMkB,qBACjCC,4BAA6BpB,KAAKC,MAAMmB,4BACxCC,gBAAiBrB,KAAKqB,kBAG1BT,EAACU,EAAAA,CACGC,gBAAiBvB,KAAKuB,gBACtBhB,KAAMP,KAAKC,MAAMM,KACjBL,wBAAyBF,KAAKC,MAAMC,wBACpCsB,SAAUxB,KAAKyB,SACfC,UAAW1B,KAAK0B,WAG5B,EAtDAC,EADS9B,EACcY,OAAOmB,EAAWC,UACzCF,EAFS9B,EAEciC,aAAa,CAChCF,EAAWC,SACXD,EAAWG,aACXH,EAAWI,gBACXJ,EAAWK,sBACXL,EAAWM,kBAGfP,EAVS9B,EAUiBsC,eAAe,CACrCjC,yBAAyB"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as t}from"../../../../external/preact/dist/preact.js";import{useState as r,useRef as a,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import n from"../../../internal/PersonalDetails/PersonalDetails.js";import{useCoreContext as s}from"../../../../core/Context/CoreProvider.js";import{econtextValidationRules as i}from"../../validate.js";import l from"../../../internal/FormInstruction/FormInstruction.js";function u({data:u,onChange:m,showPayButton:c,payButton:d,setComponentRef:p,personalDetailsRequired:f=!0}){const{i18n:h}=s(),[v,x]=r("ready"),j=a({setStatus:x});o(()=>{p(j.current)},[p]);const C=a(null);return e("div",{className:"adyen-checkout__econtext-input__field"},f&&e(t,null,e(l,null),e(n,{data:u,requiredFields:["firstName","lastName","telephoneNumber","shopperEmail"],onChange:m,namePrefix:"econtext",setComponentRef:e=>{var t;C.current=e,j.current={setStatus:null===(t=j.current)||void 0===t?void 0:t.setStatus,showValidation:e.showValidation},p(j.current)},validationRules:i})),c&&d({status:v,label:h.get("confirmPurchase")}))}export{u as default};
1
+ import{createElement as e,Fragment as t}from"../../../../external/preact/dist/preact.js";import{useState as r,useRef as a,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import n from"../../../internal/PersonalDetails/PersonalDetails.js";import{useCoreContext as s}from"../../../../core/Context/CoreProvider.js";import{econtextValidationRules as i}from"../../validate.js";import l from"../../../internal/FormInstruction/FormInstruction.js";function u({data:u,onChange:m,payButton:c,setComponentRef:d,personalDetailsRequired:p=!0}){const{i18n:f}=s(),[h,v]=r("ready"),x=a({setStatus:v});o(()=>{d(x.current)},[d]);const j=a(null);return e("div",{className:"adyen-checkout__econtext-input__field"},p&&e(t,null,e(l,null),e(n,{data:u,requiredFields:["firstName","lastName","telephoneNumber","shopperEmail"],onChange:m,namePrefix:"econtext",setComponentRef:e=>{var t;j.current=e,x.current={setStatus:null===(t=x.current)||void 0===t?void 0:t.setStatus,showValidation:e.showValidation},d(x.current)},validationRules:i})),c({status:h,label:f.get("confirmPurchase")}))}export{u as default};
2
2
  //# sourceMappingURL=EcontextInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EcontextInput.js","sources":["../../../../../../src/components/Econtext/components/EcontextInput/EcontextInput.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useEffect, 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 FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport './EcontextInput.scss';\nimport { ValidationRuleResult } from '../../../../utils/Validator/ValidationRuleResult';\n\ninterface EcontextInputProps {\n setComponentRef: (ref: ComponentMethodsRef) => void;\n personalDetailsRequired?: boolean;\n data?: PersonalDetailsSchema;\n showPayButton: boolean;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n onChange: (props: {\n data: {\n telephoneNumber: string;\n shopperEmail: string;\n dateOfBirth: string;\n shopperName: {\n lastName: string;\n firstName: string;\n };\n };\n errors: { [p: string]: ValidationRuleResult };\n valid: { [p: string]: boolean };\n isValid: boolean;\n }) => void;\n}\n\nexport default function EcontextInput({\n data,\n onChange,\n showPayButton,\n payButton,\n setComponentRef,\n personalDetailsRequired = true\n}: Readonly<EcontextInputProps>) {\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState('ready');\n\n const econtextRef = useRef<ComponentMethodsRef>({\n setStatus\n });\n\n useEffect(() => {\n setComponentRef(econtextRef.current);\n }, [setComponentRef]);\n\n const personalDetailsRef = useRef<ComponentMethodsRef | null>(null);\n const setPersonalDetailsRef = (ref: ComponentMethodsRef) => {\n personalDetailsRef.current = ref;\n econtextRef.current = {\n setStatus: econtextRef.current?.setStatus,\n showValidation: ref.showValidation\n };\n setComponentRef(econtextRef.current);\n };\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","data","onChange","showPayButton","payButton","setComponentRef","personalDetailsRequired","i18n","useCoreContext","status","setStatus","useState","econtextRef","useRef","useEffect","current","personalDetailsRef","h","div","className","Fragment","FormInstruction","PersonalDetails","requiredFields","namePrefix","ref","showValidation","validationRules","econtextValidationRules","label","get"],"mappings":"6cAkCe,SAASA,GAAcC,KAClCA,EAAIC,SACJA,EAAQC,cACRA,EAAaC,UACbA,EAASC,gBACTA,EAAeC,wBACfA,GAA0B,IAE1B,MAAMC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAAS,SAE/BC,EAAcC,EAA4B,CAC5CH,cAGJI,EAAU,KACNT,EAAgBO,EAAYG,UAC7B,CAACV,IAEJ,MAAMW,EAAqBH,EAAmC,MAU9D,OACII,EAACC,MAAAA,CAAIC,UAAU,yCACVb,GACGW,EAACG,EAAAA,KACGH,EAACI,EAAAA,MACDJ,EAACK,EAAAA,CACGrB,KAAMA,EACNsB,eAAgB,CAAC,YAAa,WAAY,kBAAmB,gBAC7DrB,SAAUA,EACVsB,WAAW,WACXnB,gBAnBWoB,IAGZb,IAAAA,EAFfI,EAAmBD,QAAUU,EAC7Bb,EAAYG,QAAU,CAClBL,UAA8B,QAAnBE,EAAAA,EAAYG,eAAZH,IAAAA,SAAAA,EAAqBF,UAChCgB,eAAgBD,EAAIC,gBAExBrB,EAAgBO,EAAYG,UAcZY,gBAAiBC,KAI5BzB,GAAiBC,EAAU,CAAEK,SAAQoB,MAAOtB,EAAKuB,IAAI,qBAGlE"}
1
+ {"version":3,"file":"EcontextInput.js","sources":["../../../../../../src/components/Econtext/components/EcontextInput/EcontextInput.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useEffect, 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 FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport './EcontextInput.scss';\nimport { ValidationRuleResult } from '../../../../utils/Validator/ValidationRuleResult';\n\ninterface EcontextInputProps {\n setComponentRef: (ref: ComponentMethodsRef) => void;\n personalDetailsRequired?: boolean;\n data?: PersonalDetailsSchema;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n onChange: (props: {\n data: {\n telephoneNumber: string;\n shopperEmail: string;\n dateOfBirth: string;\n shopperName: {\n lastName: string;\n firstName: string;\n };\n };\n errors: { [p: string]: ValidationRuleResult };\n valid: { [p: string]: boolean };\n isValid: boolean;\n }) => void;\n}\n\nexport default function EcontextInput({ data, onChange, payButton, setComponentRef, personalDetailsRequired = true }: Readonly<EcontextInputProps>) {\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState('ready');\n\n const econtextRef = useRef<ComponentMethodsRef>({\n setStatus\n });\n\n useEffect(() => {\n setComponentRef(econtextRef.current);\n }, [setComponentRef]);\n\n const personalDetailsRef = useRef<ComponentMethodsRef | null>(null);\n const setPersonalDetailsRef = (ref: ComponentMethodsRef) => {\n personalDetailsRef.current = ref;\n econtextRef.current = {\n setStatus: econtextRef.current?.setStatus,\n showValidation: ref.showValidation\n };\n setComponentRef(econtextRef.current);\n };\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 {payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n"],"names":["EcontextInput","data","onChange","payButton","setComponentRef","personalDetailsRequired","i18n","useCoreContext","status","setStatus","useState","econtextRef","useRef","useEffect","current","personalDetailsRef","h","div","className","Fragment","FormInstruction","PersonalDetails","requiredFields","namePrefix","ref","showValidation","validationRules","econtextValidationRules","label","get"],"mappings":"6cAiCe,SAASA,GAAcC,KAAEA,EAAIC,SAAEA,EAAQC,UAAEA,EAASC,gBAAEA,EAAeC,wBAAEA,GAA0B,IAC1G,MAAMC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAAS,SAE/BC,EAAcC,EAA4B,CAC5CH,cAGJI,EAAU,KACNT,EAAgBO,EAAYG,UAC7B,CAACV,IAEJ,MAAMW,EAAqBH,EAAmC,MAU9D,OACII,EAACC,MAAAA,CAAIC,UAAU,yCACVb,GACGW,EAACG,EAAAA,KACGH,EAACI,EAAAA,MACDJ,EAACK,EAAAA,CACGpB,KAAMA,EACNqB,eAAgB,CAAC,YAAa,WAAY,kBAAmB,gBAC7DpB,SAAUA,EACVqB,WAAW,WACXnB,gBAnBWoB,IAGZb,IAAAA,EAFfI,EAAmBD,QAAUU,EAC7Bb,EAAYG,QAAU,CAClBL,UAA8B,QAAnBE,EAAAA,EAAYG,eAAZH,IAAAA,SAAAA,EAAqBF,UAChCgB,eAAgBD,EAAIC,gBAExBrB,EAAgBO,EAAYG,UAcZY,gBAAiBC,KAI5BxB,EAAU,CAAEK,SAAQoB,MAAOtB,EAAKuB,IAAI,qBAGjD"}
@@ -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 n from"../internal/PayButton/PayButton.js";import o from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as i}from"../tx-variants.js";function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(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){s(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 a({},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}setBalanceCheckError(e){var t,r;null===(r=this.componentRef)||void 0===r||null===(t=r.setBalanceCheckErrors)||void 0===t||t.call(r,e)}balanceCheck(){return this.onBalanceCheck()}submit(){this.balanceCheck()}makeSubmitCall(){super.submit()}componentToRender(){return e(r,c(a({ref:e=>{this.componentRef=e}},this.props),{handleKeyDown:this.handleKeyDown,showPayButton:this.props.showPayButton,onChange:this.setState,makeBalanceCheck:()=>this.onBalanceCheck(),makePayment:()=>this.makeSubmitCall(),payButton:this.payButton,onSubmitAnalytics:this.submitAnalytics}))}constructor(...t){super(...t),s(this,"componentRef",void 0),s(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),s(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),s(this,"onBalanceCheck",()=>{if(!this.isValid)return void this.showValidation();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(this.setBalanceCheckError(null),!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.props.amount.value>e.value||this.props.amount.value>t.value?this.props.order?this.executePaymentsCall():this.onOrderRequest(this.data).then(e=>(this.setState({order:{orderData:e.orderData,pspReference:e.pspReference}}),this.executePaymentsCall())):this.handleOnRequiringConfirmation(e,t)}).catch(e=>{this.setBalanceCheckError(null==e?void 0:e.message),e instanceof o?this.handleError(e):this.handleError(new o("ERROR",e))})}),s(this,"handleOnRequiringConfirmation",(e,t)=>{if(this.componentRef.setBalance({balance:e,transactionLimit:t}),this.setStatus("ready"),!this.props.showPayButton){if(!this.props.onRequiringConfirmation)throw new o("IMPLEMENTATION_ERROR","onRequiringConfirmation must be provided");return new Promise((e,t)=>{this.props.onRequiringConfirmation(e,t)}).then(()=>this.makeSubmitCall()).catch(()=>{})}}),s(this,"payButton",t=>{var r;return e(n,c(a({},t),{showReview:null!==(r=t.showReview)&&void 0!==r?r:!!this.props.onReview}))})}}s(h,"type",i.giftcard),s(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 n from"../internal/PayButton/PayButton.js";import o from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as s}from"../tx-variants.js";function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(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){i(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 p extends t{formatProps(e){return a({},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}setBalanceCheckError(e){var t,r;null===(r=this.componentRef)||void 0===r||null===(t=r.setBalanceCheckErrors)||void 0===t||t.call(r,e)}balanceCheck(){return this.onBalanceCheck()}submit(){this.balanceCheck()}makeSubmitCall(){super.submit()}componentToRender(){return e(r,c(a({ref:e=>{this.componentRef=e}},this.props),{handleKeyDown:this.handleKeyDown,onChange:this.setState,makeBalanceCheck:()=>this.onBalanceCheck(),makePayment:()=>this.makeSubmitCall(),payButton:this.payButton,onSubmitAnalytics:this.submitAnalytics}))}constructor(...t){super(...t),i(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),i(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),i(this,"onBalanceCheck",()=>{if(!this.isValid)return void this.showValidation();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(this.setBalanceCheckError(null),!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.props.amount.value>e.value||this.props.amount.value>t.value?this.props.order?this.executePaymentsCall():this.onOrderRequest(this.data).then(e=>(this.setState({order:{orderData:e.orderData,pspReference:e.pspReference}}),this.executePaymentsCall())):this.handleOnRequiringConfirmation(e,t)}).catch(e=>{this.setBalanceCheckError(null==e?void 0:e.message),e instanceof o?this.handleError(e):this.handleError(new o("ERROR",e))})}),i(this,"handleOnRequiringConfirmation",(e,t)=>{if(this.componentRef.setBalance({balance:e,transactionLimit:t}),this.setStatus("ready"),!this.props.showPayButton){if(!this.props.onRequiringConfirmation)throw new o("IMPLEMENTATION_ERROR","onRequiringConfirmation must be provided");return new Promise((e,t)=>{this.props.onRequiringConfirmation(e,t)}).then(()=>this.makeSubmitCall()).catch(()=>{})}}),i(this,"payButton",t=>{var r;return e(n,c(a({},t),{showPayButton:this.props.showPayButton,disclaimerMessage:this.props.disclaimerMessage,showReview:null!==(r=t.showReview)&&void 0!==r?r:!!this.props.onReview}))})}}i(p,"type",s.giftcard),i(p,"defaultProps",{brandsConfiguration:{}});export{p as GiftcardElement,p 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 PayButton from '../internal/PayButton';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { PaymentAmount } from '../../types/global-types';\nimport { GiftCardElementData, GiftCardConfiguration, balanceCheckResponseType, GiftCardBalanceCheckErrorType } from './types';\nimport { TxVariants } from '../tx-variants';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\n\nexport class GiftcardElement extends UIElement<GiftCardConfiguration> {\n public static readonly type: TxVariants = TxVariants.giftcard;\n\n protected componentRef: GiftcardComponent | undefined;\n\n protected static readonly 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 setBalanceCheckError(errorMessage: GiftCardBalanceCheckErrorType | null): void {\n this.componentRef?.setBalanceCheckErrors?.(errorMessage);\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 if (!this.isValid) {\n this.showValidation();\n return;\n }\n\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 // Clear any previous balance check errors on success\n this.setBalanceCheckError(null);\n\n // We still need to throw these errors, otherwise it would be a breaking changing\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 if (this.props.amount.value > balance.value || this.props.amount.value > transactionLimit.value) {\n if (this.props.order) {\n return this.executePaymentsCall();\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 this.executePaymentsCall();\n });\n } else {\n return this.handleOnRequiringConfirmation(balance, transactionLimit);\n }\n })\n .catch(error => {\n // Simply pass the raw error message to setBalanceCheckError\n this.setBalanceCheckError(error?.message);\n\n // Still call handleError for other side effects (analytics, onError callback)\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n });\n };\n\n /**\n * Check if it should call onRequiringConfirmation\n */\n private handleOnRequiringConfirmation = (balance: PaymentAmount, transactionLimit: PaymentAmount): Promise<void> | void => {\n this.componentRef.setBalance({ balance, transactionLimit });\n this.setStatus('ready');\n\n // 1. if we show pay button we don't need to ask for confirmation\n if (this.props.showPayButton) {\n return;\n }\n // 2. there's no callback, we throw error\n if (!this.props.onRequiringConfirmation) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'onRequiringConfirmation must be provided');\n }\n // 3. success case if in case of custom pay button\n return (\n new Promise<void>((resolve, reject) => {\n void this.props.onRequiringConfirmation(resolve, reject);\n })\n //when this resolve passed to onRequiringConfirmation gets resolved make payments call\n .then(() => this.makeSubmitCall())\n //when it gets rejected handle cancellation\n .catch(() => {})\n );\n };\n\n public submit() {\n // for simplicity of the merchant we always only expose .submit()\n // however to make the actual payment call we call makeSubmitCall\n this.balanceCheck();\n }\n\n // this makes the payment, as .submit is used by the merchant to trigger the payButton action\n private makeSubmitCall() {\n super.submit();\n }\n\n // Giftcards override the regular payButton flow\n protected override payButton = (props: PayButtonProps) => {\n return <PayButton {...props} showReview={props.showReview ?? !!this.props.onReview} />;\n };\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <GiftcardComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n handleKeyDown={this.handleKeyDown}\n showPayButton={this.props.showPayButton}\n onChange={this.setState}\n makeBalanceCheck={() => this.onBalanceCheck()}\n makePayment={() => this.makeSubmitCall()}\n payButton={this.payButton}\n onSubmitAnalytics={this.submitAnalytics}\n />\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","setBalanceCheckError","errorMessage","_this_componentRef_setBalanceCheckErrors","_this_componentRef","componentRef","setBalanceCheckErrors","call","balanceCheck","onBalanceCheck","submit","makeSubmitCall","super","componentToRender","h","GiftcardComponent","ref","handleKeyDown","showPayButton","onChange","setState","makeBalanceCheck","makePayment","payButton","onSubmitAnalytics","submitAnalytics","args","_define_property","handleBalanceCheck","Promise","resolve","reject","session","checkBalance","onOrderRequest","createOrder","showValidation","setStatus","then","balance","transactionLimit","_this_props_amount","Error","currency","amount","value","order","executePaymentsCall","orderData","pspReference","handleOnRequiringConfirmation","catch","error","message","AdyenCheckoutError","handleError","setBalance","onRequiringConfirmation","PayButton","showReview","onReview","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 PayButton from '../internal/PayButton';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { PaymentAmount } from '../../types/global-types';\nimport { GiftCardElementData, GiftCardConfiguration, balanceCheckResponseType, GiftCardBalanceCheckErrorType } from './types';\nimport { TxVariants } from '../tx-variants';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\n\nexport class GiftcardElement extends UIElement<GiftCardConfiguration> {\n public static readonly type: TxVariants = TxVariants.giftcard;\n\n declare protected componentRef: GiftcardComponent | undefined;\n\n protected static readonly 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 setBalanceCheckError(errorMessage: GiftCardBalanceCheckErrorType | null): void {\n this.componentRef?.setBalanceCheckErrors?.(errorMessage);\n }\n\n private readonly 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 readonly 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 readonly onBalanceCheck = (): void => {\n if (!this.isValid) {\n this.showValidation();\n return;\n }\n\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 // Clear any previous balance check errors on success\n this.setBalanceCheckError(null);\n\n // We still need to throw these errors, otherwise it would be a breaking changing\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 if (this.props.amount.value > balance.value || this.props.amount.value > transactionLimit.value) {\n if (this.props.order) {\n return this.executePaymentsCall();\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 this.executePaymentsCall();\n });\n } else {\n return this.handleOnRequiringConfirmation(balance, transactionLimit);\n }\n })\n .catch(error => {\n // Simply pass the raw error message to setBalanceCheckError\n this.setBalanceCheckError(error?.message);\n\n // Still call handleError for other side effects (analytics, onError callback)\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n });\n };\n\n /**\n * Check if it should call onRequiringConfirmation\n */\n private readonly handleOnRequiringConfirmation = (balance: PaymentAmount, transactionLimit: PaymentAmount): Promise<void> | void => {\n this.componentRef.setBalance({ balance, transactionLimit });\n this.setStatus('ready');\n\n // 1. if we show pay button we don't need to ask for confirmation\n if (this.props.showPayButton) {\n return;\n }\n // 2. there's no callback, we throw error\n if (!this.props.onRequiringConfirmation) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'onRequiringConfirmation must be provided');\n }\n // 3. success case if in case of custom pay button\n return (\n new Promise<void>((resolve, reject) => {\n void this.props.onRequiringConfirmation(resolve, reject);\n })\n //when this resolve passed to onRequiringConfirmation gets resolved make payments call\n .then(() => this.makeSubmitCall())\n //when it gets rejected handle cancellation\n .catch(() => {})\n );\n };\n\n public submit() {\n // for simplicity of the merchant we always only expose .submit()\n // however to make the actual payment call we call makeSubmitCall\n this.balanceCheck();\n }\n\n // this makes the payment, as .submit is used by the merchant to trigger the payButton action\n private makeSubmitCall() {\n super.submit();\n }\n\n // Giftcards override the regular payButton flow\n protected override payButton = (props: PayButtonProps) => {\n return (\n <PayButton\n {...props}\n showPayButton={this.props.showPayButton}\n disclaimerMessage={this.props.disclaimerMessage}\n showReview={props.showReview ?? !!this.props.onReview}\n />\n );\n };\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <GiftcardComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n handleKeyDown={this.handleKeyDown}\n onChange={this.setState}\n makeBalanceCheck={() => this.onBalanceCheck()}\n makePayment={() => this.makeSubmitCall()}\n payButton={this.payButton}\n onSubmitAnalytics={this.submitAnalytics}\n />\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","setBalanceCheckError","errorMessage","_this_componentRef_setBalanceCheckErrors","_this_componentRef","componentRef","setBalanceCheckErrors","call","balanceCheck","onBalanceCheck","submit","makeSubmitCall","super","componentToRender","h","GiftcardComponent","ref","handleKeyDown","onChange","setState","makeBalanceCheck","makePayment","payButton","onSubmitAnalytics","submitAnalytics","args","_define_property","handleBalanceCheck","Promise","resolve","reject","session","checkBalance","onOrderRequest","createOrder","showValidation","setStatus","then","balance","transactionLimit","_this_props_amount","Error","currency","amount","value","order","executePaymentsCall","orderData","pspReference","handleOnRequiringConfirmation","catch","error","message","AdyenCheckoutError","handleError","setBalance","showPayButton","onRequiringConfirmation","PayButton","disclaimerMessage","showReview","onReview","TxVariants","giftcard","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Component as t,createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import s from"../../internal/Alert/Alert.js";import o from"./GiftcardResult.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";import{GIFT_CARD as n}from"../../internal/SecuredFields/lib/constants.js";import{GiftCardFields as i}from"./GiftcardFields.js";import{useSRPanelForGiftcardErrors as c}from"./useSRPanelForGiftcardErrors.js";import{useAmount as l}from"../../../core/Context/AmountProvider.js";function u(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function p(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),s.forEach(function(e){u(t,e,r[e])})}return t}function d(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class h extends t{generateBalanceCheckErrors(t){const e={};return null===t||(e.encryptedCardNumber={isValid:!1,errorMessage:`error.giftcard.${t}`,error:t}),e}isBalanceCheckError(t){return["no-balance","card-error","currency-error"].includes(t)}render(t,{focusedElement:i,balance:u,transactionLimit:h,isValidating:m,transformedErrors:f}){const{i18n:y}=a(),{amount:b}=l();c({errors:f,isValidating:m,setIsValidating:this.setIsValidating,sfp:this.sfp});const g=(null==h?void 0:h.value)<(null==u?void 0:u.value)?h:u,C=(null==g?void 0:g.value)>=(null==b?void 0:b.value);if(g&&C)return e(o,{balance:u,transactionLimit:h,makePayment:t.makePayment,status:this.state.status,makeBalanceCheck:t.makeBalanceCheck,showPayButton:this.props.showPayButton,payButton:this.props.payButton});const O=t=>t.errors.encryptedCardNumber?y.get(t.errors.encryptedCardNumber):f.encryptedCardNumber?y.get(f.encryptedCardNumber.errorMessage):null;return e("div",{className:"adyen-checkout__giftcard"},"error"===this.state.status&&e(s,{icon:"cross"},y.get("error.message.unknown")),e(r,d(p({},this.props),{clientKey:this.props.clientKey,loadingContext:this.props.loadingContext,ref:t=>{this.sfp=t},onChange:this.onChange,onFocus:this.handleFocus,onSubmitAnalytics:t.onSubmitAnalytics,type:n,componentType:t.type,render:({setRootNode:t,setFocusOn:e},r)=>this.props.fieldsLayoutComponent({i18n:y,pinRequired:this.props.pinRequired,focusedElement:i,getCardErrorMessage:O,setRootNode:t,setFocusOn:e,sfpState:r})})),this.props.showPayButton&&this.props.payButton({status:this.state.status,onClick:this.props.makeBalanceCheck,label:y.get("applyGiftcard"),showReview:!1}))}constructor(...t){super(...t),u(this,"state",{status:"ready",data:{},balance:null,transactionLimit:null,focusedElement:!1,isValid:!1,sfpState:{},isValidating:!1,transformedErrors:{}}),u(this,"sfp",void 0),u(this,"mapErrorsToValidationObjects",()=>this.sfp?this.sfp.mapErrorsToValidationRuleResult():{}),u(this,"updateTransformedErrors",t=>{const e=p({},this.mapErrorsToValidationObjects(),t);this.setState({transformedErrors:e})}),u(this,"onChange",t=>{this.setState({sfpState:t},()=>this.updateTransformedErrors()),this.props.onChange({data:t.data,isValid:t.isSfpValid})}),u(this,"handleFocus",t=>{this.setState({focusedElement:t.currentFocusObject});!0===t.focus?this.props.onFocus(t):this.props.onBlur(t)}),u(this,"setBalance",({balance:t,transactionLimit:e})=>{this.setState({balance:t,transactionLimit:e})}),u(this,"setBalanceCheckErrors",t=>{if(this.isBalanceCheckError(t)){const e=this.generateBalanceCheckErrors(t);this.updateTransformedErrors(e)}}),u(this,"showValidation",()=>{var t;this.setState({isValidating:!0}),null===(t=this.sfp)||void 0===t||t.showValidation()}),u(this,"setIsValidating",t=>{this.setState({isValidating:t})})}}u(h,"defaultProps",{pinRequired:!0,expiryDateRequired:!1,onChange:()=>{},onFocus:()=>{},onBlur:()=>{},fieldsLayoutComponent:i});export{h as default};
1
+ import{Component as t,createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import s from"../../internal/Alert/Alert.js";import a from"./GiftcardResult.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";import{GIFT_CARD as n}from"../../internal/SecuredFields/lib/constants.js";import{GiftCardFields as i}from"./GiftcardFields.js";import{useSRPanelForGiftcardErrors as c}from"./useSRPanelForGiftcardErrors.js";import{useAmount as l}from"../../../core/Context/AmountProvider.js";function u(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function p(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),s.forEach(function(e){u(t,e,r[e])})}return t}function d(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class h extends t{generateBalanceCheckErrors(t){const e={};return null===t||(e.encryptedCardNumber={isValid:!1,errorMessage:`error.giftcard.${t}`,error:t}),e}isBalanceCheckError(t){return["no-balance","card-error","currency-error"].includes(t)}render(t,{focusedElement:i,balance:u,transactionLimit:h,isValidating:m,transformedErrors:f}){const{i18n:y}=o(),{amount:b}=l();c({errors:f,isValidating:m,setIsValidating:this.setIsValidating,sfp:this.sfp});const g=(null==h?void 0:h.value)<(null==u?void 0:u.value)?h:u,C=(null==g?void 0:g.value)>=(null==b?void 0:b.value);if(g&&C)return e(a,{balance:u,transactionLimit:h,makePayment:t.makePayment,status:this.state.status,makeBalanceCheck:t.makeBalanceCheck,payButton:this.props.payButton});const O=t=>t.errors.encryptedCardNumber?y.get(t.errors.encryptedCardNumber):f.encryptedCardNumber?y.get(f.encryptedCardNumber.errorMessage):null;return e("div",{className:"adyen-checkout__giftcard"},"error"===this.state.status&&e(s,{icon:"cross"},y.get("error.message.unknown")),e(r,d(p({},this.props),{clientKey:this.props.clientKey,loadingContext:this.props.loadingContext,ref:t=>{this.sfp=t},onChange:this.onChange,onFocus:this.handleFocus,onSubmitAnalytics:t.onSubmitAnalytics,type:n,componentType:t.type,render:({setRootNode:t,setFocusOn:e},r)=>this.props.fieldsLayoutComponent({i18n:y,pinRequired:this.props.pinRequired,focusedElement:i,getCardErrorMessage:O,setRootNode:t,setFocusOn:e,sfpState:r})})),this.props.payButton({status:this.state.status,onClick:this.props.makeBalanceCheck,label:y.get("applyGiftcard"),showReview:!1}))}constructor(...t){super(...t),u(this,"state",{status:"ready",data:{},balance:null,transactionLimit:null,focusedElement:!1,isValid:!1,sfpState:{},isValidating:!1,transformedErrors:{}}),u(this,"sfp",void 0),u(this,"mapErrorsToValidationObjects",()=>this.sfp?this.sfp.mapErrorsToValidationRuleResult():{}),u(this,"updateTransformedErrors",t=>{const e=p({},this.mapErrorsToValidationObjects(),t);this.setState({transformedErrors:e})}),u(this,"onChange",t=>{this.setState({sfpState:t},()=>this.updateTransformedErrors()),this.props.onChange({data:t.data,isValid:t.isSfpValid})}),u(this,"handleFocus",t=>{this.setState({focusedElement:t.currentFocusObject});!0===t.focus?this.props.onFocus(t):this.props.onBlur(t)}),u(this,"setBalance",({balance:t,transactionLimit:e})=>{this.setState({balance:t,transactionLimit:e})}),u(this,"setBalanceCheckErrors",t=>{if(this.isBalanceCheckError(t)){const e=this.generateBalanceCheckErrors(t);this.updateTransformedErrors(e)}}),u(this,"showValidation",()=>{var t;this.setState({isValidating:!0}),null===(t=this.sfp)||void 0===t||t.showValidation()}),u(this,"setIsValidating",t=>{this.setState({isValidating:t})}),u(this,"setStatus",t=>{this.setState({status:t})})}}u(h,"defaultProps",{pinRequired:!0,expiryDateRequired:!1,onChange:()=>{},onFocus:()=>{},onBlur:()=>{},fieldsLayoutComponent:i});export{h as default};
2
2
  //# sourceMappingURL=GiftcardComponent.js.map