@adyen/adyen-web 6.45.1 → 6.46.0-alpha.7c7199d

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 (344) 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 +136 -71
  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/Blik/Blik.js +1 -1
  27. package/dist/es/components/Blik/Blik.js.map +1 -1
  28. package/dist/es/components/Blik/components/BlikInput.js +1 -1
  29. package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
  30. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js +1 -1
  31. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  32. package/dist/es/components/Card/Card.js +1 -1
  33. package/dist/es/components/Card/Card.js.map +1 -1
  34. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  35. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  36. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  37. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  38. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  39. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  40. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  41. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  42. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  43. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  44. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  45. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  46. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  47. package/dist/es/components/Doku/components/DokuInput/DokuInput.js +1 -1
  48. package/dist/es/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  49. package/dist/es/components/Dragonpay/Dragonpay.js +1 -1
  50. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  51. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  52. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  53. package/dist/es/components/Dropin/Dropin.js +1 -1
  54. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  55. package/dist/es/components/Econtext/Econtext.js +1 -1
  56. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  57. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js +1 -1
  58. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  59. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  60. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  61. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  62. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  63. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  64. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  65. package/dist/es/components/Giropay/Giropay.js +1 -1
  66. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  67. package/dist/es/components/Iris/Iris.js +1 -1
  68. package/dist/es/components/Iris/Iris.js.map +1 -1
  69. package/dist/es/components/Iris/components/IrisComponent.js +1 -1
  70. package/dist/es/components/Iris/components/IrisComponent.js.map +1 -1
  71. package/dist/es/components/Iris/components/IrisGenerateQRCode.js +1 -1
  72. package/dist/es/components/Iris/components/IrisGenerateQRCode.js.map +1 -1
  73. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  74. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  75. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +1 -1
  76. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  77. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  78. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  79. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  80. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  81. package/dist/es/components/Oxxo/Oxxo.js +1 -1
  82. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  83. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  84. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  85. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js +1 -1
  86. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  87. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  88. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  89. package/dist/es/components/PayPal/Paypal.js +1 -1
  90. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  91. package/dist/es/components/PayPalFastlane/Fastlane.js +1 -1
  92. package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -1
  93. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js +1 -1
  94. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  95. package/dist/es/components/PayTo/PayTo.js +1 -1
  96. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  97. package/dist/es/components/PayTo/components/PayToComponent.js +1 -1
  98. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  99. package/dist/es/components/Pix/Pix.js +1 -1
  100. package/dist/es/components/Pix/Pix.js.map +1 -1
  101. package/dist/es/components/Pix/components/PixInput/PixInput.js +1 -1
  102. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -1
  103. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  104. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  105. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
  106. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  107. package/dist/es/components/Redirect/Redirect.js +1 -1
  108. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  109. package/dist/es/components/Trustly/Trustly.js +1 -1
  110. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  111. package/dist/es/components/UPI/UPI.js +1 -1
  112. package/dist/es/components/UPI/UPI.js.map +1 -1
  113. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  114. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  115. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  116. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  117. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  118. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  119. package/dist/es/components/internal/Address/components/CountryField.js.map +1 -1
  120. package/dist/es/components/internal/Address/components/FieldContainer.js +1 -1
  121. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  122. package/dist/es/components/internal/Address/components/StateField.js.map +1 -1
  123. package/dist/es/components/internal/Address/constants.js +1 -1
  124. package/dist/es/components/internal/Address/constants.js.map +1 -1
  125. package/dist/es/components/internal/Address/validate.formats.js +1 -1
  126. package/dist/es/components/internal/Address/validate.formats.js.map +1 -1
  127. package/dist/es/components/internal/Address/validate.js +1 -1
  128. package/dist/es/components/internal/Address/validate.js.map +1 -1
  129. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  130. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  131. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  132. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  133. package/dist/es/components/internal/DisclaimerMessage/utils.js +2 -0
  134. package/dist/es/components/internal/DisclaimerMessage/utils.js.map +1 -0
  135. package/dist/es/components/internal/FormFields/utils.js +1 -1
  136. package/dist/es/components/internal/FormFields/utils.js.map +1 -1
  137. package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
  138. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  139. package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
  140. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  141. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  142. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  143. package/dist/es/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
  144. package/dist/es/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js.map +1 -1
  145. package/dist/es/components/internal/PayButton/PayButton.js +1 -1
  146. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  147. package/dist/es/components/internal/PhoneInput/usePhonePrefixes.js.map +1 -1
  148. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  149. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  150. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  151. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  152. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  153. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  154. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  155. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  156. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  157. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  158. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  159. package/dist/es/core/Errors/SRPanelProvider.js.map +1 -1
  160. package/dist/es/core/RiskModule/RiskModule.js +1 -1
  161. package/dist/es/core/RiskModule/RiskModule.js.map +1 -1
  162. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  163. package/dist/es/core/Services/get-dataset.js.map +1 -1
  164. package/dist/es/core/Services/http.js +1 -1
  165. package/dist/es/core/Services/http.js.map +1 -1
  166. package/dist/es/core/config.js +1 -1
  167. package/dist/es/core/config.js.map +1 -1
  168. package/dist/es/core/core.js.map +1 -1
  169. package/dist/es/core/core.registry.js +1 -1
  170. package/dist/es/core/core.registry.js.map +1 -1
  171. package/dist/es/core/utils.js +1 -1
  172. package/dist/es/core/utils.js.map +1 -1
  173. package/dist/es/index.d.ts +136 -71
  174. package/dist/es/packages/server/translations/en-US.json.js +1 -1
  175. package/dist/es-legacy/adyen.css +7 -7
  176. package/dist/es-legacy/adyen.css.map +1 -1
  177. package/dist/es-legacy/components/ANCV/ANCV.js +1 -1
  178. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  179. package/dist/es-legacy/components/ANCV/components/ANCVInput.js +1 -1
  180. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  181. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  182. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  183. package/dist/es-legacy/components/Ach/components/AchComponent.js +1 -1
  184. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  185. package/dist/es-legacy/components/Ach/components/useSRPanelForACHErrors.js.map +1 -1
  186. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  187. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  188. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  189. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  190. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  191. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  192. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  193. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  194. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  195. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  196. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  197. package/dist/es-legacy/components/Blik/components/BlikInput.js +1 -1
  198. package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
  199. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js +1 -1
  200. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  201. package/dist/es-legacy/components/Card/Card.js +1 -1
  202. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  203. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  204. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  205. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  206. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  207. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  208. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  209. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  210. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  211. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  212. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  213. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  214. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  215. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  216. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js +1 -1
  217. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  218. package/dist/es-legacy/components/Dragonpay/Dragonpay.js +1 -1
  219. package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
  220. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  221. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  222. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  223. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  224. package/dist/es-legacy/components/Econtext/Econtext.js +1 -1
  225. package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
  226. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js +1 -1
  227. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  228. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  229. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  230. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  231. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  232. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  233. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  234. package/dist/es-legacy/components/Giropay/Giropay.js +1 -1
  235. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  236. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  237. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  238. package/dist/es-legacy/components/Iris/components/IrisComponent.js +1 -1
  239. package/dist/es-legacy/components/Iris/components/IrisComponent.js.map +1 -1
  240. package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.js +1 -1
  241. package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.js.map +1 -1
  242. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  243. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  244. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +1 -1
  245. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  246. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  247. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  248. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  249. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  250. package/dist/es-legacy/components/Oxxo/Oxxo.js +1 -1
  251. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  252. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  253. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  254. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js +1 -1
  255. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -1
  256. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  257. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  258. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  259. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  260. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js +1 -1
  261. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -1
  262. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js +1 -1
  263. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  264. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  265. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  266. package/dist/es-legacy/components/PayTo/components/PayToComponent.js +1 -1
  267. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  268. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  269. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  270. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js +1 -1
  271. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -1
  272. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  273. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  274. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
  275. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  276. package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
  277. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  278. package/dist/es-legacy/components/Trustly/Trustly.js +1 -1
  279. package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
  280. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  281. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  282. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  283. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  284. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  285. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  286. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  287. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  288. package/dist/es-legacy/components/internal/Address/components/CountryField.js.map +1 -1
  289. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js +1 -1
  290. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  291. package/dist/es-legacy/components/internal/Address/components/StateField.js.map +1 -1
  292. package/dist/es-legacy/components/internal/Address/constants.js +1 -1
  293. package/dist/es-legacy/components/internal/Address/constants.js.map +1 -1
  294. package/dist/es-legacy/components/internal/Address/validate.formats.js +1 -1
  295. package/dist/es-legacy/components/internal/Address/validate.formats.js.map +1 -1
  296. package/dist/es-legacy/components/internal/Address/validate.js +1 -1
  297. package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
  298. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  299. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  300. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  301. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  302. package/dist/es-legacy/components/internal/DisclaimerMessage/utils.js +2 -0
  303. package/dist/es-legacy/components/internal/DisclaimerMessage/utils.js.map +1 -0
  304. package/dist/es-legacy/components/internal/FormFields/utils.js +1 -1
  305. package/dist/es-legacy/components/internal/FormFields/utils.js.map +1 -1
  306. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js +1 -1
  307. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  308. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
  309. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  310. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  311. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  312. package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
  313. package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js.map +1 -1
  314. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  315. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  316. package/dist/es-legacy/components/internal/PhoneInput/usePhonePrefixes.js.map +1 -1
  317. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  318. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  319. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  320. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  321. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  322. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  323. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  324. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  325. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  326. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  327. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js.map +1 -1
  328. package/dist/es-legacy/core/Errors/SRPanelProvider.js.map +1 -1
  329. package/dist/es-legacy/core/RiskModule/RiskModule.js +1 -1
  330. package/dist/es-legacy/core/RiskModule/RiskModule.js.map +1 -1
  331. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  332. package/dist/es-legacy/core/Services/get-dataset.js.map +1 -1
  333. package/dist/es-legacy/core/Services/http.js +1 -1
  334. package/dist/es-legacy/core/Services/http.js.map +1 -1
  335. package/dist/es-legacy/core/config.js +1 -1
  336. package/dist/es-legacy/core/config.js.map +1 -1
  337. package/dist/es-legacy/core/core.js.map +1 -1
  338. package/dist/es-legacy/core/core.registry.js +1 -1
  339. package/dist/es-legacy/core/core.registry.js.map +1 -1
  340. package/dist/es-legacy/core/utils.js +1 -1
  341. package/dist/es-legacy/core/utils.js.map +1 -1
  342. package/dist/es-legacy/packages/server/translations/en-US.json.js +1 -1
  343. package/package.json +11 -11
  344. package/styles/adyen.css +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"CashAppPay.js","sources":["../../../../src/components/CashAppPay/CashAppPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CashAppComponent } from './components/CashAppComponent';\nimport CashAppService from './services/CashAppService';\nimport { CashAppSdkLoader } from './services/CashAppSdkLoader';\nimport { CashAppPayElementData, CashAppPayConfiguration, CashAppPayEventData } from './types';\nimport { ICashAppService } from './services/types';\nimport defaultProps from './defaultProps';\nimport RedirectButton from '../internal/RedirectButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\nimport { TxVariants } from '../tx-variants';\nimport type { ICore } from '../../core/types';\nimport { PREFIX } from '../internal/Icon/constants';\n\nexport class CashAppPay extends UIElement<CashAppPayConfiguration> {\n public static readonly type = TxVariants.cashapp;\n\n private readonly cashAppService: ICashAppService | undefined;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: CashAppPayConfiguration) {\n super(checkout, props);\n\n if (this.props.enableStoreDetails && this.props.storePaymentMethod) {\n console.warn(\n 'CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior.'\n );\n }\n\n if (this.props.storedPaymentMethodId) {\n return;\n }\n\n const sdkLoader = new CashAppSdkLoader({\n environment: this.props.environment,\n analytics: this.analytics\n });\n\n this.cashAppService = new CashAppService(sdkLoader, {\n storePaymentMethod: this.props.storePaymentMethod,\n useCashAppButtonUi: this.props.showPayButton,\n environment: this.props.environment,\n redirectURL: this.props.redirectURL,\n clientId: this.props.configuration?.clientId,\n scopeId: this.props.configuration?.scopeId,\n button: this.props.button,\n referenceId: this.props.referenceId\n });\n }\n\n public formatProps(props: CashAppPayConfiguration) {\n return {\n ...props,\n enableStoreDetails: props.session?.configuration?.enableStoreDetails || props.enableStoreDetails\n };\n }\n\n public formatData(): CashAppPayElementData {\n const { shopperWantsToStore, grantId, onFileGrantId, cashTag, customerId } = this.state.data || {};\n const { storePaymentMethod: storePaymentMethodSetByMerchant, storedPaymentMethodId } = this.props;\n\n /**\n * We include 'storePaymentMethod' flag if we either Display the Checkbox OR if it is non-sessions flow AND the merchant wants to store the payment method\n */\n const includeStorePaymentMethod = this.props.enableStoreDetails || (!this.props.session && storePaymentMethodSetByMerchant);\n\n if (storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: CashAppPay.type,\n storedPaymentMethodId\n }\n };\n }\n\n const shouldAddOnFileProperties = onFileGrantId && cashTag;\n\n return {\n paymentMethod: {\n type: CashAppPay.type,\n ...(grantId && { grantId }),\n ...(customerId && { customerId }),\n ...(shouldAddOnFileProperties && { onFileGrantId, cashtag: cashTag })\n },\n ...(includeStorePaymentMethod && { storePaymentMethod: storePaymentMethodSetByMerchant || shopperWantsToStore })\n };\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.cashtag) {\n return this.props.cashtag;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? 'Cash App Pay' : '';\n }\n\n public submit = () => {\n const { onClick, storedPaymentMethodId } = this.props;\n\n if (storedPaymentMethodId) {\n super.submit();\n return;\n }\n\n let onClickPromiseRejected = false;\n\n new Promise<void>((resolve, reject) => onClick({ resolve, reject }))\n .catch(() => {\n onClickPromiseRejected = true;\n throw new Error('onClick rejected');\n })\n .then(() => {\n return this.cashAppService.createCustomerRequest(this.props.amount);\n })\n .then(() => {\n this.cashAppService.begin();\n })\n .catch(error => {\n if (onClickPromiseRejected) {\n // Swallow exception triggered by onClick reject\n return;\n }\n this.handleError(error);\n });\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n private readonly handleOnChangeStoreDetails = (storePayment: boolean) => {\n const data = { ...this.state.data, shopperWantsToStore: storePayment };\n this.setState({ data });\n };\n\n private readonly handleAuthorize = (cashAppPaymentData: CashAppPayEventData): void => {\n const data = { ...this.state.data, ...cashAppPaymentData };\n this.setState({ data, valid: {}, errors: {}, isValid: true });\n super.submit();\n };\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n icon={this.resources?.getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n setComponentRef={this.setComponentRef}\n />\n ) : (\n <CashAppComponent\n setComponentRef={this.setComponentRef}\n enableStoreDetails={this.props.enableStoreDetails}\n cashAppService={this.cashAppService}\n onChangeStoreDetails={this.handleOnChangeStoreDetails}\n onError={this.handleError}\n onClick={this.submit}\n onAuthorize={this.handleAuthorize}\n />\n );\n }\n}\n\nexport default CashAppPay;\n"],"names":["CashAppPay","UIElement","formatProps","props","_object_spread_props","_object_spread","enableStoreDetails","session","configuration","formatData","shopperWantsToStore","grantId","onFileGrantId","cashTag","customerId","this","state","data","storePaymentMethod","storePaymentMethodSetByMerchant","storedPaymentMethodId","includeStorePaymentMethod","paymentMethod","type","cashtag","displayName","name","additionalInfo","isValid","componentToRender","_this_resources","h","RedirectButton","showPayButton","label","payAmountLabel","i18n","amount","icon","resources","getImage","imageFolder","PREFIX","payButton","onSubmit","submit","setComponentRef","CashAppComponent","cashAppService","onChangeStoreDetails","handleOnChangeStoreDetails","onError","handleError","onClick","onAuthorize","handleAuthorize","constructor","checkout","_this_props_configuration","_this_props_configuration1","super","_define_property","onClickPromiseRejected","Promise","resolve","reject","catch","Error","then","createCustomerRequest","begin","error","storePayment","setState","cashAppPaymentData","valid","errors","console","warn","sdkLoader","CashAppSdkLoader","environment","analytics","CashAppService","useCashAppButtonUi","redirectURL","clientId","scopeId","button","referenceId","TxVariants","cashapp","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"CashAppPay.js","sources":["../../../../src/components/CashAppPay/CashAppPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CashAppComponent } from './components/CashAppComponent';\nimport CashAppService from './services/CashAppService';\nimport { CashAppSdkLoader } from './services/CashAppSdkLoader';\nimport { CashAppPayElementData, CashAppPayConfiguration, CashAppPayEventData } from './types';\nimport { ICashAppService } from './services/types';\nimport defaultProps from './defaultProps';\nimport RedirectButton from '../internal/RedirectButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\nimport { TxVariants } from '../tx-variants';\nimport type { ICore } from '../../core/types';\nimport { PREFIX } from '../internal/Icon/constants';\n\nexport class CashAppPay extends UIElement<CashAppPayConfiguration> {\n public static readonly type = TxVariants.cashapp;\n\n private readonly cashAppService: ICashAppService | undefined;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: CashAppPayConfiguration) {\n super(checkout, props);\n\n if (this.props.enableStoreDetails && this.props.storePaymentMethod) {\n console.warn(\n 'CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior.'\n );\n }\n\n if (this.props.storedPaymentMethodId) {\n return;\n }\n\n const sdkLoader = new CashAppSdkLoader({\n environment: this.props.environment,\n analytics: this.analytics\n });\n\n this.cashAppService = new CashAppService(sdkLoader, {\n storePaymentMethod: this.props.storePaymentMethod,\n useCashAppButtonUi: this.props.showPayButton,\n environment: this.props.environment,\n redirectURL: this.props.redirectURL,\n clientId: this.props.configuration?.clientId,\n scopeId: this.props.configuration?.scopeId,\n button: this.props.button,\n referenceId: this.props.referenceId\n });\n }\n\n public formatProps(props: CashAppPayConfiguration) {\n return {\n ...props,\n enableStoreDetails: props.session?.configuration?.enableStoreDetails || props.enableStoreDetails\n };\n }\n\n public formatData(): CashAppPayElementData {\n const { shopperWantsToStore, grantId, onFileGrantId, cashTag, customerId } = this.state.data || {};\n const { storePaymentMethod: storePaymentMethodSetByMerchant, storedPaymentMethodId } = this.props;\n\n /**\n * We include 'storePaymentMethod' flag if we either Display the Checkbox OR if it is non-sessions flow AND the merchant wants to store the payment method\n */\n const includeStorePaymentMethod = this.props.enableStoreDetails || (!this.props.session && storePaymentMethodSetByMerchant);\n\n if (storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: CashAppPay.type,\n storedPaymentMethodId\n }\n };\n }\n\n const shouldAddOnFileProperties = onFileGrantId && cashTag;\n\n return {\n paymentMethod: {\n type: CashAppPay.type,\n ...(grantId && { grantId }),\n ...(customerId && { customerId }),\n ...(shouldAddOnFileProperties && { onFileGrantId, cashtag: cashTag })\n },\n ...(includeStorePaymentMethod && { storePaymentMethod: storePaymentMethodSetByMerchant || shopperWantsToStore })\n };\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.cashtag) {\n return this.props.cashtag;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? 'Cash App Pay' : '';\n }\n\n public submit = () => {\n const { onClick, storedPaymentMethodId } = this.props;\n\n if (storedPaymentMethodId) {\n super.submit();\n return;\n }\n\n let onClickPromiseRejected = false;\n\n new Promise<void>((resolve, reject) => onClick({ resolve, reject }))\n .catch(() => {\n onClickPromiseRejected = true;\n throw new Error('onClick rejected');\n })\n .then(() => {\n return this.cashAppService.createCustomerRequest(this.props.amount);\n })\n .then(() => {\n this.cashAppService.begin();\n })\n .catch(error => {\n if (onClickPromiseRejected) {\n // Swallow exception triggered by onClick reject\n return;\n }\n this.handleError(error);\n });\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n private readonly handleOnChangeStoreDetails = (storePayment: boolean) => {\n const data = { ...this.state.data, shopperWantsToStore: storePayment };\n this.setState({ data });\n };\n\n private readonly handleAuthorize = (cashAppPaymentData: CashAppPayEventData): void => {\n const data = { ...this.state.data, ...cashAppPaymentData };\n this.setState({ data, valid: {}, errors: {}, isValid: true });\n super.submit();\n };\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n icon={this.resources?.getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n setComponentRef={this.setComponentRef}\n />\n ) : (\n <CashAppComponent\n setComponentRef={this.setComponentRef}\n enableStoreDetails={this.props.enableStoreDetails}\n cashAppService={this.cashAppService}\n onChangeStoreDetails={this.handleOnChangeStoreDetails}\n onError={this.handleError}\n onClick={this.submit}\n onAuthorize={this.handleAuthorize}\n />\n );\n }\n}\n\nexport default CashAppPay;\n"],"names":["CashAppPay","UIElement","formatProps","props","_object_spread_props","_object_spread","enableStoreDetails","session","configuration","formatData","shopperWantsToStore","grantId","onFileGrantId","cashTag","customerId","this","state","data","storePaymentMethod","storePaymentMethodSetByMerchant","storedPaymentMethodId","includeStorePaymentMethod","paymentMethod","type","cashtag","displayName","name","additionalInfo","isValid","componentToRender","_this_resources","h","RedirectButton","label","payAmountLabel","i18n","amount","icon","resources","getImage","imageFolder","PREFIX","payButton","onSubmit","submit","setComponentRef","CashAppComponent","cashAppService","onChangeStoreDetails","handleOnChangeStoreDetails","onError","handleError","onClick","onAuthorize","handleAuthorize","constructor","checkout","_this_props_configuration","_this_props_configuration1","super","_define_property","onClickPromiseRejected","Promise","resolve","reject","catch","Error","then","createCustomerRequest","begin","error","storePayment","setState","cashAppPaymentData","valid","errors","console","warn","sdkLoader","CashAppSdkLoader","environment","analytics","CashAppService","useCashAppButtonUi","showPayButton","redirectURL","clientId","scopeId","button","referenceId","TxVariants","cashapp","defaultProps"],"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 n from"./CustomCardInput/CustomCardInput.js";import o from"../../utils/browserInfo.js";import{triggerBinLookUp as r}from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{getCardImageUrl as s,fieldTypeToSnakeCase as i}from"../internal/SecuredFields/utils.js";import{TxVariants as a}from"../tx-variants.js";import{AnalyticsInfoEvent as u,InfoEventType as d}from"../../core/Analytics/events/AnalyticsInfoEvent.js";import{DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM as p}from"../Card/constants.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 c(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 m(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}class h extends t{formatProps(e){return m(c({},e),{type:a.customCard})}formatData(){const e=this.state.selectedBrandValue;return{paymentMethod:c({type:"scheme"},this.state.data,e&&{brand:e}),browserInfo:this.browserInfo,origin:!!window&&window.location.origin}}updateStyles(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.updateStyles)&&this.componentRef.updateStyles(e),this}setFocusOn(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.setFocusOn)&&this.componentRef.setFocusOn(e),this}processBinLookupResponse(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.processBinLookupResponse)&&this.componentRef.processBinLookupResponse(e),this}dualBrandingChangeHandler(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.dualBrandingChangeHandler)&&this.componentRef.dualBrandingChangeHandler(e),this}handleUnsupportedCard(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.handleUnsupportedCard)&&this.componentRef.handleUnsupportedCard(e),this}onBinLookup(e){const t=c({},e);if(t.rootNode=this._node,!t.isReset){var n,o;t.supportedBrandsRaw=null===(n=e.supportedBrandsRaw)||void 0===n?void 0:n.map(e=>{var t,n;return e.brandImageUrl=null!==(t=null===(n=this.props.brandsConfiguration[e.brand])||void 0===n?void 0:n.icon)&&void 0!==t?t:s(e.brand,this.resources),e});let r=!1,i=!1;(null===(o=e.supportedBrandsRaw)||void 0===o?void 0:o.length)>1&&(r=!0,i=e.detectedBrands.some(e=>p.includes(e))),t.dualBrandingType=null,r&&(t.dualBrandingType=i?"Dual Branded (Selectable): Regulation mandates that you must provide a brand selection mechanism":"Dual Branded (Display-only): No selection mechanism required")}this.props.onBinLookup(t)}get isValid(){return!!this.state.isValid}get browserInfo(){return o()}componentToRender(){return e(n,m(c({ref:e=>{this.componentRef=e}},this.props,this.state),{handleKeyDown:this.handleKeyDown,rootNode:this._node,onChange:this.setState,onBinValue:this.onBinValue,implementationType:"custom",resources:this.resources,brand:this.brand,onFocus:this.onFocus,onSubmitAnalytics:this.submitAnalytics}))}constructor(...e){super(...e),l(this,"componentRef",void 0),l(this,"brand",a.card),l(this,"onBinValue",r(this)),l(this,"onFocus",e=>{var t,n;const o=new u({component:this.type,type:!0===e.focus?d.focus:d.unfocus,target:i(e.fieldType)});this.submitAnalytics(o),null===(t=(n=this.props).onFocus)||void 0===t||t.call(n,e)}),l(this,"onEnterKeyPressed",(e,t)=>{var n,o;null===(n=(o=this.props).onEnterKeyPressed)||void 0===n||n.call(o,e,t)})}}l(h,"type",a.customCard),l(h,"defaultProps",{onBinLookup:()=>{},brandsConfiguration:{}});export{h as CustomCard,h 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"./CustomCardInput/CustomCardInput.js";import o from"../../utils/browserInfo.js";import{triggerBinLookUp as r}from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{getCardImageUrl as s,fieldTypeToSnakeCase as i}from"../internal/SecuredFields/utils.js";import{TxVariants as a}from"../tx-variants.js";import{AnalyticsInfoEvent as u,InfoEventType as d}from"../../core/Analytics/events/AnalyticsInfoEvent.js";import{DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM as l}from"../Card/constants.js";function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(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){p(e,t,n[t])})}return e}function m(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}class h extends t{formatProps(e){return m(c({},e),{type:a.customCard})}formatData(){const e=this.state.selectedBrandValue;return{paymentMethod:c({type:"scheme"},this.state.data,e&&{brand:e}),browserInfo:this.browserInfo,origin:!!window&&window.location.origin}}updateStyles(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.updateStyles)&&this.componentRef.updateStyles(e),this}setFocusOn(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.setFocusOn)&&this.componentRef.setFocusOn(e),this}processBinLookupResponse(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.processBinLookupResponse)&&this.componentRef.processBinLookupResponse(e),this}dualBrandingChangeHandler(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.dualBrandingChangeHandler)&&this.componentRef.dualBrandingChangeHandler(e),this}handleUnsupportedCard(e){var t;return(null===(t=this.componentRef)||void 0===t?void 0:t.handleUnsupportedCard)&&this.componentRef.handleUnsupportedCard(e),this}onBinLookup(e){const t=c({},e);if(t.rootNode=this._node,!t.isReset){var n,o;t.supportedBrandsRaw=null===(n=e.supportedBrandsRaw)||void 0===n?void 0:n.map(e=>{var t,n;return e.brandImageUrl=null!==(t=null===(n=this.props.brandsConfiguration[e.brand])||void 0===n?void 0:n.icon)&&void 0!==t?t:s(e.brand,this.resources),e});let r=!1,i=!1;(null===(o=e.supportedBrandsRaw)||void 0===o?void 0:o.length)>1&&(r=!0,i=e.detectedBrands.some(e=>l.includes(e))),t.dualBrandingType=null,r&&(t.dualBrandingType=i?"Dual Branded (Selectable): Regulation mandates that you must provide a brand selection mechanism":"Dual Branded (Display-only): No selection mechanism required")}this.props.onBinLookup(t)}get isValid(){return!!this.state.isValid}get browserInfo(){return o()}componentToRender(){return e(n,m(c({ref:e=>{this.componentRef=e}},this.props,this.state),{handleKeyDown:this.handleKeyDown,rootNode:this._node,onChange:this.setState,onBinValue:this.onBinValue,implementationType:"custom",resources:this.resources,brand:this.brand,onFocus:this.onFocus,onSubmitAnalytics:this.submitAnalytics}))}constructor(...e){super(...e),p(this,"brand",a.card),p(this,"onBinValue",r(this)),p(this,"onFocus",e=>{var t,n;const o=new u({component:this.type,type:!0===e.focus?d.focus:d.unfocus,target:i(e.fieldType)});this.submitAnalytics(o),null===(t=(n=this.props).onFocus)||void 0===t||t.call(n,e)}),p(this,"onEnterKeyPressed",(e,t)=>{var n,o;null===(n=(o=this.props).onEnterKeyPressed)||void 0===n||n.call(o,e,t)})}}p(h,"type",a.customCard),p(h,"defaultProps",{onBinLookup:()=>{},brandsConfiguration:{}});export{h as CustomCard,h as default};
2
2
  //# sourceMappingURL=CustomCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCard.js","sources":["../../../../src/components/CustomCard/CustomCard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport CustomCardInput from './CustomCardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { triggerBinLookUp } from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { BrandObject } from '../Card/types';\nimport { getCardImageUrl, fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { TxVariants } from '../tx-variants';\nimport { CustomCardConfiguration } from './types';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM } from '../Card/constants';\nimport type { CustomCardInputRef } from './CustomCardInput';\n\nconst SELECTABLE_DUAL_BRANDED_SCENARIO = 'Dual Branded (Selectable): Regulation mandates that you must provide a brand selection mechanism';\nconst DISPLAY_ONLY_DUAL_BRANDED_SCENARIO = 'Dual Branded (Display-only): No selection mechanism required';\n\nexport class CustomCard extends UIElement<CustomCardConfiguration> {\n public static readonly type = TxVariants.customCard;\n\n protected componentRef: CustomCardInputRef | undefined;\n\n protected static readonly defaultProps = {\n onBinLookup: () => {},\n brandsConfiguration: {}\n };\n\n private readonly brand = TxVariants.card;\n\n formatProps(props: CustomCardConfiguration) {\n return {\n ...props,\n type: TxVariants.customCard\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const sfBrand = this.state.selectedBrandValue;\n const securedFieldsData = this.state.data as Record<string, string>;\n return {\n paymentMethod: {\n type: 'scheme',\n ...securedFieldsData,\n ...(sfBrand && { brand: sfBrand })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(frame) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(frame);\n return this;\n }\n\n processBinLookupResponse(binLookupResponse) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse);\n return this;\n }\n\n dualBrandingChangeHandler(e: Event | string) {\n if (this.componentRef?.dualBrandingChangeHandler) this.componentRef.dualBrandingChangeHandler(e);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n onBinLookup(obj: CardBinLookupData) {\n const nuObj = { ...obj };\n nuObj.rootNode = this._node;\n\n if (!nuObj.isReset) {\n // Add brandImage urls, first checking if the merchant has configured their own one for the brand\n nuObj.supportedBrandsRaw = obj.supportedBrandsRaw?.map((item: BrandObject) => {\n item.brandImageUrl = this.props.brandsConfiguration[item.brand]?.icon ?? getCardImageUrl(item.brand, this.resources);\n return item;\n });\n\n // Check for dual branded scenario and, if so, discern which type\n let isDualBrandedScenario = false;\n let isSelectableDualBrandedScenario = false;\n\n if (obj.supportedBrandsRaw?.length > 1) {\n isDualBrandedScenario = true;\n isSelectableDualBrandedScenario = obj.detectedBrands.some(item =>\n (DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM as readonly string[]).includes(item)\n );\n }\n\n // Set the dual branding type\n nuObj.dualBrandingType = null;\n\n if (isDualBrandedScenario) {\n nuObj.dualBrandingType = isSelectableDualBrandedScenario ? SELECTABLE_DUAL_BRANDED_SCENARIO : DISPLAY_ONLY_DUAL_BRANDED_SCENARIO;\n }\n }\n\n this.props.onBinLookup(nuObj);\n }\n\n public onBinValue = triggerBinLookUp(this);\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n private readonly onFocus = (obj: CardFocusData) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: obj.focus === true ? InfoEventType.focus : InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n this.props.onFocus?.(obj);\n };\n\n protected onEnterKeyPressed = (activeElement: Element, component: UIElement) => {\n this.props.onEnterKeyPressed?.(activeElement, component);\n };\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <CustomCardInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n {...this.state}\n handleKeyDown={this.handleKeyDown}\n rootNode={this._node}\n onChange={this.setState}\n onBinValue={this.onBinValue}\n implementationType={'custom'}\n resources={this.resources}\n brand={this.brand}\n onFocus={this.onFocus}\n onSubmitAnalytics={this.submitAnalytics}\n />\n );\n }\n}\n\nexport default CustomCard;\n"],"names":["CustomCard","UIElement","formatProps","props","_object_spread_props","_object_spread","type","TxVariants","customCard","formatData","sfBrand","this","state","selectedBrandValue","paymentMethod","data","brand","browserInfo","origin","window","location","updateStyles","stylesObj","_this_componentRef","componentRef","setFocusOn","frame","processBinLookupResponse","binLookupResponse","dualBrandingChangeHandler","e","handleUnsupportedCard","errObj","onBinLookup","obj","nuObj","rootNode","_node","isReset","supportedBrandsRaw","map","item","_this_props_brandsConfiguration_item_brand","brandImageUrl","brandsConfiguration","icon","_ref","getCardImageUrl","resources","isDualBrandedScenario","isSelectableDualBrandedScenario","length","detectedBrands","some","DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM","includes","dualBrandingType","isValid","collectBrowserInfo","componentToRender","h","CustomCardInput","ref","handleKeyDown","onChange","setState","onBinValue","implementationType","onFocus","onSubmitAnalytics","submitAnalytics","super","args","_define_property","card","triggerBinLookUp","_this_props_onFocus","_this_props","event","AnalyticsInfoEvent","component","focus","InfoEventType","unfocus","target","fieldTypeToSnakeCase","fieldType","call","onEnterKeyPressed","activeElement","_this_props_onEnterKeyPressed","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"CustomCard.js","sources":["../../../../src/components/CustomCard/CustomCard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport CustomCardInput from './CustomCardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { triggerBinLookUp } from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { BrandObject } from '../Card/types';\nimport { getCardImageUrl, fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { TxVariants } from '../tx-variants';\nimport { CustomCardConfiguration } from './types';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM } from '../Card/constants';\nimport type { CustomCardInputRef } from './CustomCardInput';\n\nconst SELECTABLE_DUAL_BRANDED_SCENARIO = 'Dual Branded (Selectable): Regulation mandates that you must provide a brand selection mechanism';\nconst DISPLAY_ONLY_DUAL_BRANDED_SCENARIO = 'Dual Branded (Display-only): No selection mechanism required';\n\nexport class CustomCard extends UIElement<CustomCardConfiguration> {\n public static readonly type = TxVariants.customCard;\n\n declare protected componentRef: CustomCardInputRef | undefined;\n\n protected static readonly defaultProps = {\n onBinLookup: () => {},\n brandsConfiguration: {}\n };\n\n private readonly brand = TxVariants.card;\n\n formatProps(props: CustomCardConfiguration) {\n return {\n ...props,\n type: TxVariants.customCard\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const sfBrand = this.state.selectedBrandValue;\n const securedFieldsData = this.state.data as Record<string, string>;\n return {\n paymentMethod: {\n type: 'scheme',\n ...securedFieldsData,\n ...(sfBrand && { brand: sfBrand })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(frame) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(frame);\n return this;\n }\n\n processBinLookupResponse(binLookupResponse) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse);\n return this;\n }\n\n dualBrandingChangeHandler(e: Event | string) {\n if (this.componentRef?.dualBrandingChangeHandler) this.componentRef.dualBrandingChangeHandler(e);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n onBinLookup(obj: CardBinLookupData) {\n const nuObj = { ...obj };\n nuObj.rootNode = this._node;\n\n if (!nuObj.isReset) {\n // Add brandImage urls, first checking if the merchant has configured their own one for the brand\n nuObj.supportedBrandsRaw = obj.supportedBrandsRaw?.map((item: BrandObject) => {\n item.brandImageUrl = this.props.brandsConfiguration[item.brand]?.icon ?? getCardImageUrl(item.brand, this.resources);\n return item;\n });\n\n // Check for dual branded scenario and, if so, discern which type\n let isDualBrandedScenario = false;\n let isSelectableDualBrandedScenario = false;\n\n if (obj.supportedBrandsRaw?.length > 1) {\n isDualBrandedScenario = true;\n isSelectableDualBrandedScenario = obj.detectedBrands.some(item =>\n (DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM as readonly string[]).includes(item)\n );\n }\n\n // Set the dual branding type\n nuObj.dualBrandingType = null;\n\n if (isDualBrandedScenario) {\n nuObj.dualBrandingType = isSelectableDualBrandedScenario ? SELECTABLE_DUAL_BRANDED_SCENARIO : DISPLAY_ONLY_DUAL_BRANDED_SCENARIO;\n }\n }\n\n this.props.onBinLookup(nuObj);\n }\n\n public onBinValue = triggerBinLookUp(this);\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n private readonly onFocus = (obj: CardFocusData) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: obj.focus === true ? InfoEventType.focus : InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n this.props.onFocus?.(obj);\n };\n\n protected onEnterKeyPressed = (activeElement: Element, component: UIElement) => {\n this.props.onEnterKeyPressed?.(activeElement, component);\n };\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <CustomCardInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n {...this.state}\n handleKeyDown={this.handleKeyDown}\n rootNode={this._node}\n onChange={this.setState}\n onBinValue={this.onBinValue}\n implementationType={'custom'}\n resources={this.resources}\n brand={this.brand}\n onFocus={this.onFocus}\n onSubmitAnalytics={this.submitAnalytics}\n />\n );\n }\n}\n\nexport default CustomCard;\n"],"names":["CustomCard","UIElement","formatProps","props","_object_spread_props","_object_spread","type","TxVariants","customCard","formatData","sfBrand","this","state","selectedBrandValue","paymentMethod","data","brand","browserInfo","origin","window","location","updateStyles","stylesObj","_this_componentRef","componentRef","setFocusOn","frame","processBinLookupResponse","binLookupResponse","dualBrandingChangeHandler","e","handleUnsupportedCard","errObj","onBinLookup","obj","nuObj","rootNode","_node","isReset","supportedBrandsRaw","map","item","_this_props_brandsConfiguration_item_brand","brandImageUrl","brandsConfiguration","icon","_ref","getCardImageUrl","resources","isDualBrandedScenario","isSelectableDualBrandedScenario","length","detectedBrands","some","DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM","includes","dualBrandingType","isValid","collectBrowserInfo","componentToRender","h","CustomCardInput","ref","handleKeyDown","onChange","setState","onBinValue","implementationType","onFocus","onSubmitAnalytics","submitAnalytics","super","args","_define_property","card","triggerBinLookUp","_this_props_onFocus","_this_props","event","AnalyticsInfoEvent","component","focus","InfoEventType","unfocus","target","fieldTypeToSnakeCase","fieldType","call","onEnterKeyPressed","activeElement","_this_props_onEnterKeyPressed","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useRef as t,useState as r}from"../../../../external/preact/hooks/dist/hooks.js";import o from"../../../internal/PersonalDetails/PersonalDetails.js";import{useCoreContext as a}from"../../../../core/Context/CoreProvider.js";import n from"../../../internal/FormInstruction/FormInstruction.js";function s(s){const i=t(null),{i18n:l}=a(),[u,c]=r("ready"),m=t({});var d;Object.keys(m.current).length||(null===(d=s.setComponentRef)||void 0===d||d.call(s,m.current));return m.current.showValidation=()=>{var e;null===(e=i.current)||void 0===e||e.showValidation()},m.current.setStatus=c,e("div",{className:"adyen-checkout__doku-input__field"},e(n,null),e(o,{data:s.data,requiredFields:["firstName","lastName","shopperEmail"],onChange:s.onChange,namePrefix:"doku",setComponentRef:e=>{i.current=e}}),s.showPayButton&&s.payButton({status:u,label:l.get("confirmPurchase")}))}export{s as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useRef as t,useState as r}from"../../../../external/preact/hooks/dist/hooks.js";import a from"../../../internal/PersonalDetails/PersonalDetails.js";import{useCoreContext as n}from"../../../../core/Context/CoreProvider.js";import o from"../../../internal/FormInstruction/FormInstruction.js";function s(s){const i=t(null),{i18n:l}=n(),[u,c]=r("ready"),m=t({});var d;Object.keys(m.current).length||(null===(d=s.setComponentRef)||void 0===d||d.call(s,m.current));return m.current.showValidation=()=>{var e;null===(e=i.current)||void 0===e||e.showValidation()},m.current.setStatus=c,e("div",{className:"adyen-checkout__doku-input__field"},e(o,null),e(a,{data:s.data,requiredFields:["firstName","lastName","shopperEmail"],onChange:s.onChange,namePrefix:"doku",setComponentRef:e=>{i.current=e}}),s.payButton({status:u,label:l.get("confirmPurchase")}))}export{s as default};
2
2
  //# sourceMappingURL=DokuInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DokuInput.js","sources":["../../../../../../src/components/Doku/components/DokuInput/DokuInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef, useState } from 'preact/hooks';\nimport PersonalDetails from '../../../internal/PersonalDetails/PersonalDetails';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nexport default function DokuInput(props) {\n const personalDetailsRef = useRef(null);\n const setPersonalDetailsRef = ref => {\n personalDetailsRef.current = ref;\n };\n\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState('ready');\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const dokuRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(dokuRef.current).length) {\n props.setComponentRef?.(dokuRef.current);\n }\n\n dokuRef.current.showValidation = () => {\n personalDetailsRef.current?.showValidation();\n };\n\n dokuRef.current.setStatus = setStatus;\n\n return (\n <div className=\"adyen-checkout__doku-input__field\">\n <FormInstruction />\n\n <PersonalDetails\n data={props.data}\n requiredFields={['firstName', 'lastName', 'shopperEmail']}\n onChange={props.onChange}\n namePrefix=\"doku\"\n setComponentRef={setPersonalDetailsRef}\n />\n\n {props.showPayButton && props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n"],"names":["DokuInput","props","personalDetailsRef","useRef","i18n","useCoreContext","status","setStatus","useState","dokuRef","Object","keys","current","length","setComponentRef","showValidation","h","div","className","FormInstruction","PersonalDetails","data","requiredFields","onChange","namePrefix","ref","showPayButton","payButton","label","get"],"mappings":"oXAOe,SAASA,EAAUC,GAC9B,MAAMC,EAAqBC,EAAO,OAK5BC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAAS,SAG/BC,EAAUN,EAA4B,IAGxCF,IAAAA,EADCS,OAAOC,KAAKF,EAAQG,SAASC,SACT,QAArBZ,EAAAA,EAAMa,2BAANb,GAAAA,EAAAA,KAAAA,EAAwBQ,EAAQG,UASpC,OANAH,EAAQG,QAAQG,eAAiB,KAC7Bb,IAAAA,EAA0B,QAA1BA,EAAAA,EAAmBU,mBAAnBV,GAAAA,EAA4Ba,kBAGhCN,EAAQG,QAAQL,UAAYA,EAGxBS,EAACC,MAAAA,CAAIC,UAAU,qCACXF,EAACG,QAEDH,EAACI,EAAAA,CACGC,KAAMpB,EAAMoB,KACZC,eAAgB,CAAC,YAAa,WAAY,gBAC1CC,SAAUtB,EAAMsB,SAChBC,WAAW,OACXV,gBA9BkBW,IAC1BvB,EAAmBU,QAAUa,KAgCxBxB,EAAMyB,eAAiBzB,EAAM0B,UAAU,CAAErB,SAAQsB,MAAOxB,EAAKyB,IAAI,qBAG9E"}
1
+ {"version":3,"file":"DokuInput.js","sources":["../../../../../../src/components/Doku/components/DokuInput/DokuInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef, useState } from 'preact/hooks';\nimport PersonalDetails from '../../../internal/PersonalDetails/PersonalDetails';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nexport default function DokuInput(props) {\n const personalDetailsRef = useRef(null);\n const setPersonalDetailsRef = ref => {\n personalDetailsRef.current = ref;\n };\n\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState('ready');\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const dokuRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(dokuRef.current).length) {\n props.setComponentRef?.(dokuRef.current);\n }\n\n dokuRef.current.showValidation = () => {\n personalDetailsRef.current?.showValidation();\n };\n\n dokuRef.current.setStatus = setStatus;\n\n return (\n <div className=\"adyen-checkout__doku-input__field\">\n <FormInstruction />\n\n <PersonalDetails\n data={props.data}\n requiredFields={['firstName', 'lastName', 'shopperEmail']}\n onChange={props.onChange}\n namePrefix=\"doku\"\n setComponentRef={setPersonalDetailsRef}\n />\n\n {props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n"],"names":["DokuInput","props","personalDetailsRef","useRef","i18n","useCoreContext","status","setStatus","useState","dokuRef","Object","keys","current","length","setComponentRef","showValidation","h","div","className","FormInstruction","PersonalDetails","data","requiredFields","onChange","namePrefix","ref","payButton","label","get"],"mappings":"oXAOe,SAASA,EAAUC,GAC9B,MAAMC,EAAqBC,EAAO,OAK5BC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAAS,SAG/BC,EAAUN,EAA4B,IAGxCF,IAAAA,EADCS,OAAOC,KAAKF,EAAQG,SAASC,SACT,QAArBZ,EAAAA,EAAMa,2BAANb,GAAAA,EAAAA,KAAAA,EAAwBQ,EAAQG,UASpC,OANAH,EAAQG,QAAQG,eAAiB,KAC7Bb,IAAAA,EAA0B,QAA1BA,EAAAA,EAAmBU,mBAAnBV,GAAAA,EAA4Ba,kBAGhCN,EAAQG,QAAQL,UAAYA,EAGxBS,EAACC,MAAAA,CAAIC,UAAU,qCACXF,EAACG,QAEDH,EAACI,EAAAA,CACGC,KAAMpB,EAAMoB,KACZC,eAAgB,CAAC,YAAa,WAAY,gBAC1CC,SAAUtB,EAAMsB,SAChBC,WAAW,OACXV,gBA9BkBW,IAC1BvB,EAAmBU,QAAUa,KAgCxBxB,EAAMyB,UAAU,CAAEpB,SAAQqB,MAAOvB,EAAKwB,IAAI,qBAGvD"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/DragonpayInput/DragonpayInput.js";import n from"./components/DragonpayVoucherResult/DragonpayVoucherResult.js";import{TxVariants as o}from"../tx-variants.js";function s(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function i(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){s(t,e,r[e])})}return t}function a(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 p extends e{get isValid(){return!!this.state.isValid}formatData(){const{issuer:t,shopperEmail:e}=this.state.data;return a(i({},e&&{shopperEmail:e}),{paymentMethod:a(i({},t&&{issuer:t}),{type:this.type})})}formatProps(t){var e,r,n;return a(i({},t),{issuers:null!==(e=null===(n=t.details)||void 0===n||null===(r=n.find(t=>"issuer"===t.key))||void 0===r?void 0:r.items)&&void 0!==e?e:t.issuers})}componentToRender(){return this.props.reference?t(n,a(i({icon:this.icon},this.props),{onActionHandled:this.onActionHandled})):t(r,a(i({setComponentRef:this.setComponentRef,items:this.props.issuers},this.props),{showPayButton:this.props.showPayButton,onChange:this.setState,onSubmit:this.submit,payButton:this.payButton}))}}s(p,"type",o.dragonpay),s(p,"txVariants",[o.dragonpay,o.dragonpay_ebanking,o.dragonpay_otc_banking,o.dragonpay_otc_non_banking,o.dragonpay_otc_philippines]);export{p as DragonpayElement,p as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/DragonpayInput/DragonpayInput.js";import n from"./components/DragonpayVoucherResult/DragonpayVoucherResult.js";import{TxVariants as o}from"../tx-variants.js";function s(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function i(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),n.forEach(function(e){s(t,e,r[e])})}return t}function a(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 p extends e{get isValid(){return!!this.state.isValid}formatData(){const{issuer:t,shopperEmail:e}=this.state.data;return a(i({},e&&{shopperEmail:e}),{paymentMethod:a(i({},t&&{issuer:t}),{type:this.type})})}formatProps(t){var e,r,n;return a(i({},t),{issuers:null!==(e=null===(n=t.details)||void 0===n||null===(r=n.find(t=>"issuer"===t.key))||void 0===r?void 0:r.items)&&void 0!==e?e:t.issuers})}componentToRender(){return this.props.reference?t(n,a(i({icon:this.icon},this.props),{onActionHandled:this.onActionHandled})):t(r,a(i({setComponentRef:this.setComponentRef,items:this.props.issuers},this.props),{onChange:this.setState,onSubmit:this.submit,payButton:this.payButton}))}}s(p,"type",o.dragonpay),s(p,"txVariants",[o.dragonpay,o.dragonpay_ebanking,o.dragonpay_otc_banking,o.dragonpay_otc_non_banking,o.dragonpay_otc_philippines]);export{p as DragonpayElement,p as default};
2
2
  //# sourceMappingURL=Dragonpay.js.map
@@ -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 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,"elementRef",void 0),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};
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';\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 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
+ {"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,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 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 <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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"}