@adyen/adyen-web 6.30.0 → 6.31.1

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 (498) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/adyen.css +2 -2
  3. package/dist/cjs/adyen.css.map +1 -1
  4. package/dist/cjs/index.cjs +2 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.cts +802 -714
  7. package/dist/es/adyen.css +2 -2
  8. package/dist/es/adyen.css.map +1 -1
  9. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  10. package/dist/es/components/Ach/Ach.js +1 -1
  11. package/dist/es/components/Ach/Ach.js.map +1 -1
  12. package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -1
  13. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  14. package/dist/es/components/Affirm/Affirm.js.map +1 -1
  15. package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
  16. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  17. package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
  18. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  19. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  20. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  21. package/dist/es/components/AmazonPay/components/OrderButton.js +1 -1
  22. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  23. package/dist/es/components/AmazonPay/utils.js +1 -1
  24. package/dist/es/components/AmazonPay/utils.js.map +1 -1
  25. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  26. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  27. package/dist/es/components/ApplePay/services/ApplePayService.js +1 -1
  28. package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
  29. package/dist/es/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
  30. package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -1
  31. package/dist/es/components/Atome/Atome.js.map +1 -1
  32. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  33. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  34. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  35. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  36. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  37. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  38. package/dist/es/components/Blik/Blik.js +1 -1
  39. package/dist/es/components/Blik/Blik.js.map +1 -1
  40. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  41. package/dist/es/components/Card/Card.js +1 -1
  42. package/dist/es/components/Card/Card.js.map +1 -1
  43. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  44. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  45. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  46. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  47. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  48. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  49. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  50. package/dist/es/components/Card/components/CardInput/handlers.js +1 -1
  51. package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
  52. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  53. package/dist/es/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  54. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  55. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  56. package/dist/es/components/Card/components/ClickToPayWrapper.js +1 -1
  57. package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
  58. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  59. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  60. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  61. package/dist/es/components/CashAppPay/services/CashAppService.js +1 -1
  62. package/dist/es/components/CashAppPay/services/CashAppService.js.map +1 -1
  63. package/dist/es/components/CashAppPay/services/types.js.map +1 -1
  64. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  65. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  66. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  67. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  68. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  69. package/dist/es/components/Dropin/Dropin.js +1 -1
  70. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  71. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  72. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  73. package/dist/es/components/Dropin/components/DropinSuccessState.js +2 -0
  74. package/dist/es/components/Dropin/components/DropinSuccessState.js.map +1 -0
  75. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  76. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  77. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  78. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  79. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  80. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  81. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  82. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  83. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
  84. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  85. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  86. package/dist/es/components/Iris/Iris.js +1 -1
  87. package/dist/es/components/Iris/Iris.js.map +1 -1
  88. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  89. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  90. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  91. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  92. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  93. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  94. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  95. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
  96. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  97. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  98. package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  99. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  100. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  101. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  102. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  103. package/dist/es/components/PayTo/PayTo.js +1 -1
  104. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  105. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  106. package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
  107. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  108. package/dist/es/components/PersonalDetails/PersonalDetails.js.map +1 -1
  109. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  110. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  111. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  112. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  113. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  114. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  115. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  116. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  117. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  118. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  119. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  120. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  121. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  122. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  123. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  124. package/dist/es/components/Twint/Twint.js +1 -1
  125. package/dist/es/components/Twint/Twint.js.map +1 -1
  126. package/dist/es/components/UPI/UPI.js +1 -1
  127. package/dist/es/components/UPI/UPI.js.map +1 -1
  128. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  129. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  130. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  131. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  132. package/dist/es/components/internal/Address/Specifications.js.map +1 -1
  133. package/dist/es/components/internal/Await/Await.js +1 -1
  134. package/dist/es/components/internal/Await/Await.js.map +1 -1
  135. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  136. package/dist/es/components/internal/Button/Button.js +1 -1
  137. package/dist/es/components/internal/Button/Button.js.map +1 -1
  138. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  139. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  140. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  141. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  142. package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
  143. package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
  144. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
  145. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  146. package/dist/es/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  147. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  148. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  149. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  150. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  151. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  152. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  153. package/dist/es/components/internal/FormFields/InputBase.js +1 -1
  154. package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
  155. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  156. package/dist/es/components/internal/PayButton/PayButton.js +1 -1
  157. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  158. package/dist/es/components/internal/PayButton/utils.js +1 -1
  159. package/dist/es/components/internal/PayButton/utils.js.map +1 -1
  160. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  161. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  162. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  163. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  164. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  165. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  166. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  167. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  168. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  169. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  170. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  171. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  172. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  173. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  174. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  175. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  176. package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
  177. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  178. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  179. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  180. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  181. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  182. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  183. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  184. package/dist/es/core/Analytics/AnalyticsService.js.map +1 -1
  185. package/dist/es/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
  186. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  187. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  188. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  189. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  190. package/dist/es/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  191. package/dist/es/core/Analytics/utils.js +1 -1
  192. package/dist/es/core/Analytics/utils.js.map +1 -1
  193. package/dist/es/core/CheckoutSession/CheckoutSession.js +1 -1
  194. package/dist/es/core/CheckoutSession/CheckoutSession.js.map +1 -1
  195. package/dist/es/core/Context/AmountProvider.js +2 -0
  196. package/dist/es/core/Context/AmountProvider.js.map +1 -0
  197. package/dist/es/core/Context/Resources.js.map +1 -1
  198. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  199. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  200. package/dist/es/core/config.js +1 -1
  201. package/dist/es/core/core.js +1 -1
  202. package/dist/es/core/core.js.map +1 -1
  203. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  204. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  205. package/dist/es/external/preact/dist/preact.js +1 -1
  206. package/dist/es/external/preact/dist/preact.js.map +1 -1
  207. package/dist/es/external/preact/hooks/dist/hooks.js +1 -1
  208. package/dist/es/external/preact/hooks/dist/hooks.js.map +1 -1
  209. package/dist/es/index.d.ts +802 -714
  210. package/dist/es/language/Language.js.map +1 -1
  211. package/dist/es/utils/Script.js.map +1 -1
  212. package/dist/es/utils/Storage.js +1 -1
  213. package/dist/es/utils/Storage.js.map +1 -1
  214. package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
  215. package/dist/es/utils/Validator/Validator.js.map +1 -1
  216. package/dist/es/utils/amount-util.js +1 -1
  217. package/dist/es/utils/amount-util.js.map +1 -1
  218. package/dist/es/utils/browserInfo.js +1 -1
  219. package/dist/es/utils/browserInfo.js.map +1 -1
  220. package/dist/es/utils/constants/currency-minor-units.js.map +1 -1
  221. package/dist/es/utils/createSdkData.js.map +1 -1
  222. package/dist/es/utils/getErrorMessage.js.map +1 -1
  223. package/dist/es/utils/getProp.js +1 -1
  224. package/dist/es/utils/getProp.js.map +1 -1
  225. package/dist/es/utils/hasOwnProperty.js.map +1 -1
  226. package/dist/es/utils/isValidURL.js.map +1 -1
  227. package/dist/es/utils/listenerUtils.js.map +1 -1
  228. package/dist/es/utils/promiseTimeout.js.map +1 -1
  229. package/dist/es/utils/setFocus.js +1 -1
  230. package/dist/es/utils/setFocus.js.map +1 -1
  231. package/dist/es/utils/textUtils.js.map +1 -1
  232. package/dist/es/utils/validator-utils.js.map +1 -1
  233. package/dist/es/utils/windowScrollTo.js +2 -0
  234. package/dist/es/utils/windowScrollTo.js.map +1 -0
  235. package/dist/es-legacy/adyen.css +2 -2
  236. package/dist/es-legacy/adyen.css.map +1 -1
  237. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  238. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  239. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  240. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -1
  241. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  242. package/dist/es-legacy/components/Affirm/Affirm.js.map +1 -1
  243. package/dist/es-legacy/components/AfterPay/AfterPay.js.map +1 -1
  244. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  245. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
  246. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  247. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  248. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  249. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js +1 -1
  250. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  251. package/dist/es-legacy/components/AmazonPay/utils.js +1 -1
  252. package/dist/es-legacy/components/AmazonPay/utils.js.map +1 -1
  253. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  254. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  255. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js +1 -1
  256. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
  257. package/dist/es-legacy/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
  258. package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
  259. package/dist/es-legacy/components/Atome/Atome.js.map +1 -1
  260. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  261. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  262. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  263. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  264. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  265. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  266. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  267. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  268. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  269. package/dist/es-legacy/components/Card/Card.js +1 -1
  270. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  271. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  272. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  273. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  274. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  275. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  276. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  277. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  278. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  279. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  280. package/dist/es-legacy/components/Card/components/CardInput/handlers.js +1 -1
  281. package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
  282. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  283. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  284. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  285. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  286. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js +1 -1
  287. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  288. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  289. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  290. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  291. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  292. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js +1 -1
  293. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js.map +1 -1
  294. package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
  295. package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
  296. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  297. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  298. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  299. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  300. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  301. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  302. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  303. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  304. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  305. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js +2 -0
  306. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js.map +1 -0
  307. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  308. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  309. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  310. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  311. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  312. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  313. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  314. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  315. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
  316. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  317. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  318. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  319. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  320. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  321. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  322. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  323. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  324. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  325. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  326. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  327. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  328. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  329. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  330. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
  331. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
  332. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  333. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  334. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  335. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  336. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  337. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  338. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  339. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  340. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  341. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  342. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  343. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
  344. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  345. package/dist/es-legacy/components/PersonalDetails/PersonalDetails.js.map +1 -1
  346. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  347. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  348. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  349. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  350. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  351. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  352. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  353. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  354. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  355. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  356. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  357. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  358. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  359. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  360. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  361. package/dist/es-legacy/components/Twint/Twint.js +1 -1
  362. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  363. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  364. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  365. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  366. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  367. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  368. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  369. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  370. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  371. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  372. package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
  373. package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
  374. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  375. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  376. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  377. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  378. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  379. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
  380. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  381. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  382. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  383. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  384. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js.map +1 -1
  385. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  386. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
  387. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
  388. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
  389. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  390. package/dist/es-legacy/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  391. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  392. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  393. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  394. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  395. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  396. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  397. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  398. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  399. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  400. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  401. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  402. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  403. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  404. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  405. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  406. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  407. package/dist/es-legacy/components/internal/PayButton/utils.js +1 -1
  408. package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
  409. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  410. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  411. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  412. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  413. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  414. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  415. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  416. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  417. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  418. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  419. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  420. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  421. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  422. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  423. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  424. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  425. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  426. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  427. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  428. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  429. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  430. package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
  431. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  432. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  433. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  434. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  435. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
  436. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  437. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  438. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  439. package/dist/es-legacy/core/Analytics/AnalyticsService.js.map +1 -1
  440. package/dist/es-legacy/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
  441. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  442. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  443. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  444. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  445. package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  446. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  447. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  448. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js +1 -1
  449. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js.map +1 -1
  450. package/dist/es-legacy/core/Context/AmountProvider.js +2 -0
  451. package/dist/es-legacy/core/Context/AmountProvider.js.map +1 -0
  452. package/dist/es-legacy/core/Context/Resources.js.map +1 -1
  453. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  454. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  455. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  456. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/utils.js.map +1 -1
  457. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  458. package/dist/es-legacy/core/Services/http.js.map +1 -1
  459. package/dist/es-legacy/core/config.js +1 -1
  460. package/dist/es-legacy/core/core.js +1 -1
  461. package/dist/es-legacy/core/core.js.map +1 -1
  462. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  463. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  464. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  465. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  466. package/dist/es-legacy/external/preact/hooks/dist/hooks.js +1 -1
  467. package/dist/es-legacy/external/preact/hooks/dist/hooks.js.map +1 -1
  468. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  469. package/dist/es-legacy/language/Language.js.map +1 -1
  470. package/dist/es-legacy/utils/Script.js.map +1 -1
  471. package/dist/es-legacy/utils/Storage.js +1 -1
  472. package/dist/es-legacy/utils/Storage.js.map +1 -1
  473. package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
  474. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  475. package/dist/es-legacy/utils/amount-util.js +1 -1
  476. package/dist/es-legacy/utils/amount-util.js.map +1 -1
  477. package/dist/es-legacy/utils/browserInfo.js +1 -1
  478. package/dist/es-legacy/utils/browserInfo.js.map +1 -1
  479. package/dist/es-legacy/utils/constants/currency-minor-units.js.map +1 -1
  480. package/dist/es-legacy/utils/createSdkData.js.map +1 -1
  481. package/dist/es-legacy/utils/getConsentUrl.js.map +1 -1
  482. package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
  483. package/dist/es-legacy/utils/getProp.js +1 -1
  484. package/dist/es-legacy/utils/getProp.js.map +1 -1
  485. package/dist/es-legacy/utils/hasOwnProperty.js.map +1 -1
  486. package/dist/es-legacy/utils/isValidURL.js.map +1 -1
  487. package/dist/es-legacy/utils/listenerUtils.js.map +1 -1
  488. package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
  489. package/dist/es-legacy/utils/setFocus.js +1 -1
  490. package/dist/es-legacy/utils/setFocus.js.map +1 -1
  491. package/dist/es-legacy/utils/textUtils.js.map +1 -1
  492. package/dist/es-legacy/utils/useAutoFocus.js.map +1 -1
  493. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  494. package/dist/es-legacy/utils/validator-utils.js.map +1 -1
  495. package/dist/es-legacy/utils/windowScrollTo.js +2 -0
  496. package/dist/es-legacy/utils/windowScrollTo.js.map +1 -0
  497. package/package.json +11 -11
  498. package/styles/adyen.css +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"DragonpayInput.js","sources":["../../../../../../src/components/Dragonpay/components/DragonpayInput/DragonpayInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, 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';\n\nexport default function DragonpayInput(props: 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.indexOf(props.type) > -1;\n };\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 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 const [status, setStatus] = useState('ready');\n this.setStatus = setStatus;\n this.showValidation = triggerValidation;\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 />\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","indexOf","type","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","rules","issuer","validate","modes","shopperEmail","validationRules","emailRule","getIssuerIcon","getIssuerImageUrl","items","map","item","icon","id","toLowerCase","useEffect","onChange","status","setStatus","useState","this","showValidation","h","div","className","Field","label","get","errorMessage","getErrorMessage","name","InputEmail","autoCorrect","value","spellCheck","onInput","onBlur","Select","selectedValue","showPayButton","payButton","defaultProps"],"mappings":"mtBAae,SAASA,EAAeC,GACnC,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IACXC,EAAmB,IACS,CAAC,qBAAsB,wBAAyB,6BACjDC,QAAQN,EAAMO,OAAQ,GAGjDC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,IAAKV,IAAqB,CAAC,UAAY,GAAK,gBACpDW,MAAO,CACHC,OAAQ,CACJC,SAAUD,GAAUZ,OAAwBY,EAC5CE,MAAO,CAAC,QAAS,SAErBC,aAAcC,EAAgBC,aAIhCC,EAAgBC,EAAkB,CAAA,EAAIxB,EAAMO,KAAMJ,GAClDsB,EAAQzB,EAAMyB,MAAMC,IACrBC,QACMA,EACHC,KAAML,EAAcI,EAAKE,IAAMF,EAAKE,GAAGC,kBAW/CC,EAAU,KACN/B,EAAMgC,SAAS,CAAEnB,UAASH,OAAMC,QAAOC,YACxC,CAACC,EAASH,EAAMC,EAAOC,IAE1B,MAAOqB,EAAQC,GAAaC,EAAS,SAIrC,OAHAC,KAAKF,UAAYA,EACjBE,KAAKC,eAAiB5B,EAGlB6B,EAACC,MAAAA,CAAIC,UAAU,0CACXF,EAACG,EAAAA,CACGC,MAAOzC,EAAK0C,IAAI,gBAChBC,aAAcC,EAAgB5C,EAAMW,EAAOQ,aAAcnB,EAAK0C,IAAI,iBAClEG,KAAM,0BAENR,EAACS,EAAAA,CACGD,KAAM,yBACNE,YAAa,MACbC,MAAOvC,EAAKU,aACZoB,UAAW,+BACXU,YAAY,EACZC,QAAS3C,EAAgB,eAAgB,SACzC4C,OAAQ5C,EAAgB,eAAgB,WAI/CH,KACGiC,EAACG,EAAAA,CAAMC,MAAOzC,EAAK0C,KAlCCpC,EAkC2BP,EAAMO,KAjChD,8BAATA,EACO,sDAEJ,qDA8B8DqC,eAAgBhC,EAAOK,OAAQ6B,KAAM,UAC9FR,EAACe,EAAAA,CACG5B,MAAOA,EACP6B,cAAe5C,EAAKO,OACpB6B,KAAM,SACNN,UAAW,wEACXR,SAAUxB,EAAgB,aAKrCR,EAAMuD,eAAiBvD,EAAMwD,UAAU,CAAEvB,SAAQS,MAAOzC,EAAK0C,IAAI,sBA7C1CpC,IAAAA,CAgDpC,CAEAR,EAAe0D,aAAe,CAC1B/C,KAAM,CAAA,EACNe,MAAO,GACPO,SAAU"}
1
+ {"version":3,"file":"DragonpayInput.js","sources":["../../../../../../src/components/Dragonpay/components/DragonpayInput/DragonpayInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, 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';\n\nexport default function DragonpayInput(props: 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.indexOf(props.type) > -1;\n };\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 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 const [status, setStatus] = useState('ready');\n this.setStatus = setStatus;\n this.showValidation = triggerValidation;\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 />\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","indexOf","type","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","rules","issuer","validate","modes","shopperEmail","validationRules","emailRule","getIssuerIcon","getIssuerImageUrl","items","map","item","icon","id","toLowerCase","useEffect","onChange","status","setStatus","useState","this","showValidation","h","div","className","Field","label","get","errorMessage","getErrorMessage","name","InputEmail","autoCorrect","value","spellcheck","onInput","onBlur","Select","selectedValue","showPayButton","payButton","defaultProps"],"mappings":"mtBAae,SAASA,EAAeC,GACnC,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IACXC,EAAmB,IACS,CAAC,qBAAsB,wBAAyB,6BACjDC,QAAQN,EAAMO,OAAQ,GAGjDC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,IAAKV,IAAqB,CAAC,UAAY,GAAK,gBACpDW,MAAO,CACHC,OAAQ,CACJC,SAAUD,GAAUZ,OAAwBY,EAC5CE,MAAO,CAAC,QAAS,SAErBC,aAAcC,EAAgBC,aAIhCC,EAAgBC,EAAkB,CAAA,EAAIxB,EAAMO,KAAMJ,GAClDsB,EAAQzB,EAAMyB,MAAMC,IACrBC,QACMA,EACHC,KAAML,EAAcI,EAAKE,IAAMF,EAAKE,GAAGC,kBAW/CC,EAAU,KACN/B,EAAMgC,SAAS,CAAEnB,UAASH,OAAMC,QAAOC,YACxC,CAACC,EAASH,EAAMC,EAAOC,IAE1B,MAAOqB,EAAQC,GAAaC,EAAS,SAIrC,OAHAC,KAAKF,UAAYA,EACjBE,KAAKC,eAAiB5B,EAGlB6B,EAACC,MAAAA,CAAIC,UAAU,0CACXF,EAACG,EAAAA,CACGC,MAAOzC,EAAK0C,IAAI,gBAChBC,aAAcC,EAAgB5C,EAAMW,EAAOQ,aAAcnB,EAAK0C,IAAI,iBAClEG,KAAM,0BAENR,EAACS,EAAAA,CACGD,KAAM,yBACNE,YAAa,MACbC,MAAOvC,EAAKU,aACZoB,UAAW,+BACXU,YAAY,EACZC,QAAS3C,EAAgB,eAAgB,SACzC4C,OAAQ5C,EAAgB,eAAgB,WAI/CH,KACGiC,EAACG,EAAAA,CAAMC,MAAOzC,EAAK0C,KAlCCpC,EAkC2BP,EAAMO,KAjChD,8BAATA,EACO,sDAEJ,qDA8B8DqC,eAAgBhC,EAAOK,OAAQ6B,KAAM,UAC9FR,EAACe,EAAAA,CACG5B,MAAOA,EACP6B,cAAe5C,EAAKO,OACpB6B,KAAM,SACNN,UAAW,wEACXR,SAAUxB,EAAgB,aAKrCR,EAAMuD,eAAiBvD,EAAMwD,UAAU,CAAEvB,SAAQS,MAAOzC,EAAK0C,IAAI,sBA7C1CpC,IAAAA,CAgDpC,CAEAR,EAAe0D,aAAe,CAC1B/C,KAAM,CAAA,EACNe,MAAO,GACPO,SAAU"}
@@ -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 n from"./defaultProps.js";import{DropinComponent as o}from"./components/DropinComponent.js";import i from"./elements/createElements.js";import s from"./elements/createStoredElements.js";import r 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 m(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const p=["paywithgoogle","googlepay","applepay"];class c extends e{reportIntegrationFlavor(){this.analytics.sendFlavor("dropin")}storeElementRefOnCore(){this.core.storeElementReference(this)}formatProps(t){return{...super.formatProps(t),instantPaymentTypes:Array.from(new Set(t.instantPaymentTypes)).filter(t=>p.includes(t))}}get isValid(){return!!this.dropinRef&&!!this.dropinRef.state.activePaymentMethod&&!!this.dropinRef.state.activePaymentMethod.isValid}showValidation(){return this.dropinRef.state.activePaymentMethod&&this.dropinRef.state.activePaymentMethod.showValidation(),this}setStatus(t,e={}){return this.dropinRef?.setStatus(t,e),this}get activePaymentMethod(){return this.dropinRef?.state||this.dropinRef?.state.activePaymentMethod?this.dropinRef.state.activePaymentMethod:null}get data(){return this.activePaymentMethod?this.dropinRef.state.activePaymentMethod.data:null}displayFinalAnimation(t){this.props.disableFinalAnimation||this.dropinRef?.setStatus(t)}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()}handleAction(t,e={}){if(!t||!t.type){if(a(t,"action")&&a(t,"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"!==t.type&&this.activePaymentMethod?.updateWithAction)return this.activePaymentMethod.updateWithAction(t);this.elementRef instanceof c&&(e={...this.elementRef.activePaymentMethod?.props,...e});const n=this.core.createFromAction(t,{...e,elementRef:this.elementRef,isDropin:!0});return n?(this.setStatus(n.props.statusType,{component:n}),this.componentFromAction=n,this):null}closeActivePaymentMethod(){this.dropinRef.closeActivePaymentMethod()}handleKeyPress(t){if("Enter"===t.key||"Enter"===t.code){if("radio"===document?.activeElement?.getAttribute("role"))return;super.handleKeyPress(t)}}onEnterKeyPressed(t,e){const n=this.activePaymentMethod??e;this.activePaymentMethod?.onEnterKeyPressed(t,n)}componentToRender(){return t(o,{...this.props,core:this.core,elementRef:this.elementRef,onCreateElements:this.handleCreate,ref:t=>{this.dropinRef=t}})}constructor(t,e){super(t,e),m(this,"dropinRef",null),m(this,"paymentMethodsConfiguration",void 0),m(this,"componentFromAction",void 0),m(this,"handleCreate",()=>{const{paymentMethodsConfiguration:t,showStoredPaymentMethods:e,showPaymentMethods:n,instantPaymentTypes:o}=this.props,{paymentMethods:a,storedPaymentMethods:d,instantPaymentMethods:m,fastlanePaymentMethod:p}=h(this.core.paymentMethodsResponse,o),c={elementRef:this.elementRef,isDropin:!0},l=n?i(a,t,c,this.core):[],y=r(m,t,c,this.core);return[e?s(this.props.filterStoredPaymentMethods?.(d)??d,t,c,this.core):[],l,y,p?i([p],t,c,this.core):[]]}),m(this,"handleOrder",({order:t})=>{this.updateParent({order:t})}),this.submit=this.submit.bind(this),this.handleAction=this.handleAction.bind(this),this.props.paymentMethodComponents.forEach(t=>this.core.register(t)),this.paymentMethodsConfiguration=this.props.paymentMethodsConfiguration||{}}}m(c,"type",d.dropin),m(c,"defaultProps",n);export{c as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import n from"./defaultProps.js";import{DropinComponent as o}from"./components/DropinComponent.js";import s from"./elements/createElements.js";import i from"./elements/createStoredElements.js";import a from"./elements/createInstantPaymentElements.js";import{hasOwnProperty as r}from"../../utils/hasOwnProperty.js";import h from"./elements/splitPaymentMethods.js";import{TxVariants as d}from"../tx-variants.js";function m(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}const p=["paywithgoogle","googlepay","applepay"];class l extends e{reportIntegrationFlavor(){this.analytics.sendFlavor("dropin")}storeElementRefOnCore(){this.core.storeElementReference(this)}formatProps(t){return{...super.formatProps(t),instantPaymentTypes:Array.from(new Set(t.instantPaymentTypes)).filter(t=>p.includes(t))}}get isValid(){return!!this.dropinRef&&!!this.dropinRef.state.activePaymentMethod&&!!this.dropinRef.state.activePaymentMethod.isValid}showValidation(){return this.dropinRef.state.activePaymentMethod&&this.dropinRef.state.activePaymentMethod.showValidation(),this}setStatus(t,e={}){return this.dropinRef?.setStatus(t,e),this}get activePaymentMethod(){return this.dropinRef?.state||this.dropinRef?.state.activePaymentMethod?this.dropinRef.state.activePaymentMethod:null}get data(){return this.activePaymentMethod?this.dropinRef.state.activePaymentMethod.data:null}displayFinalAnimation(t){this.props.disableFinalAnimation||this.dropinRef?.setStatus(t)}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(t,e){this.props={...this.props,...t&&{amount:t},...e&&{secondaryAmount:e}},this.amountProviderRef.current?.update(t,e),this.paymentMethodElements.forEach(n=>{n.updateAmount(t,e)})}handleElementsCreated(t){t&&0!==t.length||(this.paymentMethodElements=[]),this.paymentMethodElements=t}handleAction(t,e={}){if(!t||!t.type){if(r(t,"action")&&r(t,"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"!==t.type&&this.activePaymentMethod?.updateWithAction)return this.activePaymentMethod.updateWithAction(t);this.elementRef instanceof l&&(e={...this.elementRef.activePaymentMethod?.props,...e});const n=this.core.createFromAction(t,{...e,elementRef:this.elementRef,isDropin:!0});return n?(this.setStatus(n.props.statusType,{component:n}),this.componentFromAction=n,this):null}closeActivePaymentMethod(){this.dropinRef.closeActivePaymentMethod()}handleKeyPress(t){if("Enter"===t.key||"Enter"===t.code){if("radio"===document?.activeElement?.getAttribute("role"))return;super.handleKeyPress(t)}}onEnterKeyPressed(t,e){const n=this.activePaymentMethod??e;this.activePaymentMethod?.onEnterKeyPressed(t,n)}componentToRender(){return t(o,{...this.props,core:this.core,elementRef:this.elementRef,onCreateElements:this.handleCreate,onElementsCreated:this.handleElementsCreated,ref:t=>{this.dropinRef=t}})}constructor(t,e){super(t,e),m(this,"dropinRef",null),m(this,"paymentMethodsConfiguration",void 0),m(this,"componentFromAction",void 0),m(this,"paymentMethodElements",[]),m(this,"handleCreate",()=>{const{paymentMethodsConfiguration:t,showStoredPaymentMethods:e,showPaymentMethods:n,instantPaymentTypes:o}=this.props,{paymentMethods:r,storedPaymentMethods:d,instantPaymentMethods:m,fastlanePaymentMethod:p}=h(this.core.paymentMethodsResponse,o),l={elementRef:this.elementRef,isDropin:!0},c=n?s(r,t,l,this.core):[],y=a(m,t,l,this.core);return[e?i(this.props.filterStoredPaymentMethods?.(d)??d,t,l,this.core):[],c,y,p?s([p],t,l,this.core):[]]}),m(this,"handleOrder",({order:t})=>{this.updateParent({order:t})}),this.submit=this.submit.bind(this),this.handleAction=this.handleAction.bind(this),this.handleElementsCreated=this.handleElementsCreated.bind(this),this.props.paymentMethodComponents.forEach(t=>this.core.register(t)),this.paymentMethodsConfiguration=this.props.paymentMethodsConfiguration||{}}}m(l,"type",d.dropin),m(l,"defaultProps",n);export{l 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 } 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 { DropinConfiguration, InstantPaymentTypes, PaymentMethodsConfiguration } from './types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { ICore } from '../../core/types';\nimport type { IDropin } from './types';\n\nconst SUPPORTED_INSTANT_PAYMENTS = ['paywithgoogle', 'googlepay', 'applepay'];\n\nclass DropinElement extends UIElement<DropinConfiguration> implements IDropin {\n public static type = TxVariants.dropin;\n\n protected static defaultProps = defaultProps;\n\n public dropinRef = null;\n\n private paymentMethodsConfiguration: PaymentMethodsConfiguration;\n /**\n * Reference to the component created from `handleAction` (Ex.: ThreeDS2Challenge)\n */\n public componentFromAction?: UIElement;\n\n constructor(checkout: ICore, props?: DropinConfiguration) {\n super(checkout, props);\n this.submit = this.submit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n\n this.props.paymentMethodComponents.forEach(PaymentMethod => this.core.register(PaymentMethod));\n this.paymentMethodsConfiguration = this.props.paymentMethodsConfiguration || {};\n }\n\n protected override reportIntegrationFlavor(): void {\n void this.analytics.sendFlavor('dropin');\n }\n\n protected override storeElementRefOnCore() {\n this.core.storeElementReference(this);\n }\n\n formatProps(props) {\n return {\n ...super.formatProps(props),\n instantPaymentTypes: Array.from<InstantPaymentTypes>(new Set(props.instantPaymentTypes)).filter(value =>\n SUPPORTED_INSTANT_PAYMENTS.includes(value)\n )\n };\n }\n\n get isValid() {\n return !!this.dropinRef && !!this.dropinRef.state.activePaymentMethod && !!this.dropinRef.state.activePaymentMethod.isValid;\n }\n\n showValidation() {\n if (this.dropinRef.state.activePaymentMethod) {\n this.dropinRef.state.activePaymentMethod.showValidation();\n }\n\n return this;\n }\n\n public setStatus(status, props = {}): this {\n this.dropinRef?.setStatus(status, props);\n return this;\n }\n\n get activePaymentMethod() {\n if (!this.dropinRef?.state && !this.dropinRef?.state.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod;\n }\n\n get data() {\n if (!this.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod.data;\n }\n\n public displayFinalAnimation(type: 'success' | 'error') {\n if (this.props.disableFinalAnimation) return;\n\n this.dropinRef?.setStatus(type);\n }\n\n /**\n * Calls the onSubmit event with the state of the activePaymentMethod\n */\n public override submit(): void {\n if (!this.activePaymentMethod) {\n throw new Error('No active payment method.');\n }\n\n if (!this.activePaymentMethod.isValid) {\n this.activePaymentMethod.showValidation();\n }\n\n if (this.activePaymentMethod.isInstantPayment) {\n this.closeActivePaymentMethod();\n }\n\n this.activePaymentMethod.submit();\n }\n\n /**\n * Creates the Drop-in elements\n */\n private handleCreate = () => {\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 ? createElements(paymentMethods, paymentMethodsConfiguration, dropinProps, this.core) : [];\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 : [];\n const fastlanePaymentElement = fastlanePaymentMethod\n ? createElements([fastlanePaymentMethod], paymentMethodsConfiguration, dropinProps, this.core)\n : [];\n\n return [storedElements, elements, instantPaymentElements, fastlanePaymentElement];\n };\n\n public handleAction(action: PaymentAction, props = {}): this | null {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'handleAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('handleAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n if (action.type !== 'redirect' && this.activePaymentMethod?.updateWithAction) {\n return this.activePaymentMethod.updateWithAction(action);\n }\n\n if (this.elementRef instanceof DropinElement) {\n props = {\n ...this.elementRef.activePaymentMethod?.props,\n ...props\n };\n }\n\n const paymentAction: UIElement = this.core.createFromAction(action, {\n ...props,\n elementRef: this.elementRef, // maintain elementRef for 3DS2 flow\n isDropin: true\n });\n\n if (paymentAction) {\n this.setStatus(paymentAction.props.statusType, { component: paymentAction });\n this.componentFromAction = paymentAction;\n return this;\n }\n\n return null;\n }\n\n /**\n * handleOrder is implemented so we don't trigger a callback like in the components\n * @param response - PaymentResponse\n */\n protected handleOrder = ({ order }: PaymentResponseData): void => {\n void this.updateParent({ order });\n };\n\n closeActivePaymentMethod() {\n this.dropinRef.closeActivePaymentMethod();\n }\n\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement> | KeyboardEvent) {\n if (e.key === 'Enter' || e.code === 'Enter') {\n // If the active element has role=\"radio\", we're on a header in the PMList, in which case we don't want to validate the form, or, prevent the default behaviour\n const isPMHeader = document?.activeElement?.getAttribute('role') === 'radio';\n if (isPMHeader) {\n return;\n }\n super.handleKeyPress(e);\n }\n }\n\n protected onEnterKeyPressed(activeElement: Element, component: UIElement) {\n // We want to have a ref to the activePM, if we can; not a ref to the Dropin\n const pmComponent = this.activePaymentMethod ?? component;\n this.activePaymentMethod?.onEnterKeyPressed(activeElement, pmComponent);\n }\n\n 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 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","super","instantPaymentTypes","Array","from","Set","filter","value","includes","isValid","dropinRef","state","activePaymentMethod","showValidation","setStatus","status","data","displayFinalAnimation","type","disableFinalAnimation","submit","Error","isInstantPayment","closeActivePaymentMethod","handleAction","action","hasOwnProperty","updateWithAction","elementRef","paymentAction","createFromAction","isDropin","statusType","component","componentFromAction","handleKeyPress","e","key","code","document","activeElement","getAttribute","onEnterKeyPressed","pmComponent","componentToRender","h","DropinComponent","onCreateElements","handleCreate","ref","constructor","checkout","_define_property","paymentMethodsConfiguration","showStoredPaymentMethods","showPaymentMethods","paymentMethods","storedPaymentMethods","instantPaymentMethods","fastlanePaymentMethod","splitPaymentMethods","paymentMethodsResponse","dropinProps","elements","createElements","instantPaymentElements","createInstantPaymentElements","createStoredElements","filterStoredPaymentMethods","handleOrder","order","updateParent","bind","paymentMethodComponents","forEach","PaymentMethod","register","TxVariants","dropin","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Dropin.js","sources":["../../../../src/components/Dropin/Dropin.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport defaultProps from './defaultProps';\nimport DropinComponent from '../../components/Dropin/components/DropinComponent';\nimport { 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 { DropinConfiguration, InstantPaymentTypes, PaymentMethodsConfiguration } from './types';\nimport type { PaymentAction, PaymentAmount, PaymentResponseData } from '../../types/global-types';\nimport type { ICore } from '../../core/types';\nimport type { IDropin } from './types';\n\nconst SUPPORTED_INSTANT_PAYMENTS = ['paywithgoogle', 'googlepay', 'applepay'];\n\nclass DropinElement extends UIElement<DropinConfiguration> implements IDropin {\n public static type = TxVariants.dropin;\n\n protected static defaultProps = defaultProps;\n\n public dropinRef = null;\n\n private paymentMethodsConfiguration: PaymentMethodsConfiguration;\n /**\n * Reference to the component created from `handleAction` (Ex.: ThreeDS2Challenge)\n */\n public componentFromAction?: UIElement;\n\n /**\n * Reference to all payment method elements being rendered by Drop-in\n */\n public paymentMethodElements: UIElement[] = [];\n\n constructor(checkout: ICore, props?: DropinConfiguration) {\n super(checkout, props);\n this.submit = this.submit.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleElementsCreated = this.handleElementsCreated.bind(this);\n\n this.props.paymentMethodComponents.forEach(PaymentMethod => this.core.register(PaymentMethod));\n this.paymentMethodsConfiguration = this.props.paymentMethodsConfiguration || {};\n }\n\n protected override reportIntegrationFlavor(): void {\n void this.analytics.sendFlavor('dropin');\n }\n\n protected override storeElementRefOnCore() {\n this.core.storeElementReference(this);\n }\n\n formatProps(props) {\n return {\n ...super.formatProps(props),\n instantPaymentTypes: Array.from<InstantPaymentTypes>(new Set(props.instantPaymentTypes)).filter(value =>\n SUPPORTED_INSTANT_PAYMENTS.includes(value)\n )\n };\n }\n\n get isValid() {\n return !!this.dropinRef && !!this.dropinRef.state.activePaymentMethod && !!this.dropinRef.state.activePaymentMethod.isValid;\n }\n\n showValidation() {\n if (this.dropinRef.state.activePaymentMethod) {\n this.dropinRef.state.activePaymentMethod.showValidation();\n }\n\n return this;\n }\n\n public setStatus(status, props = {}): this {\n this.dropinRef?.setStatus(status, props);\n return this;\n }\n\n get activePaymentMethod() {\n if (!this.dropinRef?.state && !this.dropinRef?.state.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod;\n }\n\n get data() {\n if (!this.activePaymentMethod) {\n return null;\n }\n\n return this.dropinRef.state.activePaymentMethod.data;\n }\n\n public displayFinalAnimation(type: 'success' | 'error') {\n if (this.props.disableFinalAnimation) return;\n\n this.dropinRef?.setStatus(type);\n }\n\n /**\n * Calls the onSubmit event with the state of the activePaymentMethod\n */\n public override submit(): void {\n if (!this.activePaymentMethod) {\n throw new Error('No active payment method.');\n }\n\n if (!this.activePaymentMethod.isValid) {\n this.activePaymentMethod.showValidation();\n }\n\n if (this.activePaymentMethod.isInstantPayment) {\n this.closeActivePaymentMethod();\n }\n\n this.activePaymentMethod.submit();\n }\n\n /**\n * Updates the amount in the props and propagates it to the AmountProvider. That way the children components can use the updated amount.\n *\n * This method **overrides** the parent one to specifically propagate the changes to all payment method elements.\n *\n * @param amount - Primary payment amount object\n * @param secondaryAmount - Optional secondary amount for display purposes (e.g., converted currency)\n * @internal\n */\n public override updateAmount(amount: PaymentAmount, secondaryAmount?: PaymentAmount): void {\n this.props = {\n ...this.props,\n ...(amount && { amount }),\n ...(secondaryAmount && { secondaryAmount })\n };\n\n this.amountProviderRef.current?.update(amount, secondaryAmount);\n\n this.paymentMethodElements.forEach(element => {\n element.updateAmount(amount, secondaryAmount);\n });\n }\n\n /**\n * Assign all elements created in the Component to the paymentMethodElements property\n * @param elements\n */\n private handleElementsCreated(elements: UIElement[]) {\n if (!elements || elements.length === 0) this.paymentMethodElements = [];\n this.paymentMethodElements = elements;\n }\n\n /**\n * Creates the Drop-in elements\n */\n private handleCreate = () => {\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 ? createElements(paymentMethods, paymentMethodsConfiguration, dropinProps, this.core) : [];\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 : [];\n const fastlanePaymentElement = fastlanePaymentMethod\n ? createElements([fastlanePaymentMethod], paymentMethodsConfiguration, dropinProps, this.core)\n : [];\n\n return [storedElements, elements, instantPaymentElements, fastlanePaymentElement];\n };\n\n public handleAction(action: PaymentAction, props = {}): this | null {\n if (!action || !action.type) {\n if (hasOwnProperty(action, 'action') && hasOwnProperty(action, 'resultCode')) {\n throw new Error(\n 'handleAction::Invalid Action - the passed action object itself has an \"action\" property and ' +\n 'a \"resultCode\": have you passed in the whole response object by mistake?'\n );\n }\n throw new Error('handleAction::Invalid Action - the passed action object does not have a \"type\" property');\n }\n\n if (action.type !== 'redirect' && this.activePaymentMethod?.updateWithAction) {\n return this.activePaymentMethod.updateWithAction(action);\n }\n\n if (this.elementRef instanceof DropinElement) {\n props = {\n ...this.elementRef.activePaymentMethod?.props,\n ...props\n };\n }\n\n const paymentAction: UIElement = this.core.createFromAction(action, {\n ...props,\n elementRef: this.elementRef, // maintain elementRef for 3DS2 flow\n isDropin: true\n });\n\n if (paymentAction) {\n this.setStatus(paymentAction.props.statusType, { component: paymentAction });\n this.componentFromAction = paymentAction;\n return this;\n }\n\n return null;\n }\n\n /**\n * handleOrder is implemented so we don't trigger a callback like in the components\n * @param response - PaymentResponse\n */\n protected handleOrder = ({ order }: PaymentResponseData): void => {\n void this.updateParent({ order });\n };\n\n closeActivePaymentMethod() {\n this.dropinRef.closeActivePaymentMethod();\n }\n\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement> | KeyboardEvent) {\n if (e.key === 'Enter' || e.code === 'Enter') {\n // If the active element has role=\"radio\", we're on a header in the PMList, in which case we don't want to validate the form, or, prevent the default behaviour\n const isPMHeader = document?.activeElement?.getAttribute('role') === 'radio';\n if (isPMHeader) {\n return;\n }\n super.handleKeyPress(e);\n }\n }\n\n protected onEnterKeyPressed(activeElement: Element, component: UIElement) {\n // We want to have a ref to the activePM, if we can; not a ref to the Dropin\n const pmComponent = this.activePaymentMethod ?? component;\n this.activePaymentMethod?.onEnterKeyPressed(activeElement, pmComponent);\n }\n\n 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","super","instantPaymentTypes","Array","from","Set","filter","value","includes","isValid","dropinRef","state","activePaymentMethod","showValidation","setStatus","status","data","displayFinalAnimation","type","disableFinalAnimation","submit","Error","isInstantPayment","closeActivePaymentMethod","updateAmount","amount","secondaryAmount","amountProviderRef","current","update","paymentMethodElements","forEach","element","handleElementsCreated","elements","length","handleAction","action","hasOwnProperty","updateWithAction","elementRef","paymentAction","createFromAction","isDropin","statusType","component","componentFromAction","handleKeyPress","e","key","code","document","activeElement","getAttribute","onEnterKeyPressed","pmComponent","componentToRender","h","DropinComponent","onCreateElements","handleCreate","onElementsCreated","ref","constructor","checkout","_define_property","paymentMethodsConfiguration","showStoredPaymentMethods","showPaymentMethods","paymentMethods","storedPaymentMethods","instantPaymentMethods","fastlanePaymentMethod","splitPaymentMethods","paymentMethodsResponse","dropinProps","createElements","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{Component as t,createElement as e,Fragment as s}from"../../../external/preact/dist/preact.js";import n from"./PaymentMethod/PaymentMethodList.js";import o from"./status/index.js";import a from"../../../core/Services/order-status.js";import{sanitizeOrder as r}from"../../internal/UIElement/utils.js";import i from"../../../core/Errors/AdyenCheckoutError.js";import h from"../../internal/Button/Button.js";import{AnalyticsInfoEvent as d,UiTarget as m,InfoEventType as p}from"../../../core/Analytics/events/AnalyticsInfoEvent.js";function l(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}class c extends t{componentDidMount(){this.prepareDropinData()}componentDidUpdate(t,e){e.status.type!==this.state.status.type&&this.state.activePaymentMethod&&this.state.activePaymentMethod.setStatus(this.state.status.type),"ready"===this.state.status.type&&"ready"!==e.status.type&&this.props.onReady&&this.props.onReady()}closeActivePaymentMethod(){this.setState({activePaymentMethod:null})}render(){const{elements:t,fastlanePaymentElement:a,instantPaymentElements:r,storedPaymentElements:i,status:d,activePaymentMethod:m,showDefaultPaymentMethodList:p}=this.state,l="loading"===d.type,c="redirect"===d.type,y=!!(t?.length||r?.length||i?.length);switch(d.type){case"success":return e(o.Success,{message:0===this.props?.amount?.value?"resultMessages.preauthorized":d.props?.message});case"error":return e(o.Error,{message:d.props?.message});case"custom":return d.props?.component?.render();default:return e("div",{className:`adyen-checkout__dropin adyen-checkout__dropin--${d.type}`},c&&d.props.component&&d.props.component.render(),l&&d.props&&d.props.component&&d.props.component.render(),!p&&e(s,null,e(n,{isLoading:l,paymentMethods:a,activePaymentMethod:m,onSelect:this.handleOnSelectPaymentMethod,openFirstPaymentMethod:!0,showRadioButton:this.props.showRadioButton}),y&&e(h,{classNameModifiers:["dropin-show-paymentmethods"],variant:"link",inline:!0,label:"Other payment methods",onClick:this.onShowDefaultPaymentMethodListClick})),y&&p&&e(n,{isLoading:l||c,isDisablingPaymentMethod:this.state.isDisabling,paymentMethods:t,instantPaymentMethods:r,storedPaymentMethods:i,activePaymentMethod:m,order:this.props.order,orderStatus:this.state.orderStatus,onOrderCancel:this.onOrderCancel,onSelect:this.handleOnSelectPaymentMethod,openPaymentMethod:this.props.openPaymentMethod,openFirstPaymentMethod:this.props.openFirstPaymentMethod,openFirstStoredPaymentMethod:this.props.openFirstStoredPaymentMethod,onDisableStoredPaymentMethod:this.handleDisableStoredPaymentMethod,showRemovePaymentMethodButton:this.props.showRemovePaymentMethodButton,showRadioButton:this.props.showRadioButton}))}}constructor(...t){super(...t),l(this,"state",{elements:[],fastlanePaymentElement:[],instantPaymentElements:[],storedPaymentElements:[],orderStatus:null,isDisabling:!1,status:{type:"loading",props:void 0},activePaymentMethod:null,cachedPaymentMethods:{},showDefaultPaymentMethodList:!0}),l(this,"prepareDropinData",()=>{const{order:t,clientKey:e,loadingContext:s}=this.props,[n,o,r,i]=this.props.onCreateElements(),h=t?a({clientKey:e,loadingContext:s},t):null;Promise.all([n,o,r,i,h]).then(([t,e,s,n,o])=>{this.setState({orderStatus:o,elements:e,instantPaymentElements:s,storedPaymentElements:t,fastlanePaymentElement:n,showDefaultPaymentMethodList:0===n.length}),this.setStatus("ready")}),this.onOrderCancel=this.getOnOrderCancel()}),l(this,"setStatus",(t,e={})=>{this.setState({status:{type:t,props:e}})}),l(this,"setActivePaymentMethod",t=>{t!==this.state.activePaymentMethod&&(this.setState(e=>({activePaymentMethod:t,cachedPaymentMethods:{...e.cachedPaymentMethods,[t._id]:!0}})),this.state.cachedPaymentMethods[t._id]&&t.activate())}),l(this,"handleOnSelectPaymentMethod",t=>{const{activePaymentMethod:e}=this.state;this.setActivePaymentMethod(t),(e&&e._id!==t._id||!e)&&this.props.onSelect?.(t)}),l(this,"handleDisableStoredPaymentMethod",t=>{this.setState({isDisabling:!0}),new Promise((e,s)=>this.props.onDisableStoredPaymentMethod(t.props.storedPaymentMethodId,e,s)).then(()=>{this.setState(e=>({storedPaymentElements:e.storedPaymentElements.filter(e=>e._id!==t._id)})),this.setState({isDisabling:!1})}).catch(()=>{this.setState({isDisabling:!1})})}),l(this,"onShowDefaultPaymentMethodListClick",()=>{this.setState({showDefaultPaymentMethodList:!0});const t=new d({type:p.clicked,target:m.otherPaymentMethodButton,component:"dropin"});this.props.modules?.analytics.sendAnalytics(t)}),l(this,"getOnOrderCancel",()=>this.props.onOrderCancel?t=>{const e=r(t.order);new Promise((t,s)=>{this.props.onOrderCancel({order:e},{resolve:t,reject:s})}).then(({amount:t})=>this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null,t)).catch(t=>{throw new i("NETWORK_ERROR",t)})}:this.props.session?t=>this.props.session.cancelOrder(t).then(()=>this.props.core.update({order:null})).catch(t=>{console.error(t),this.setStatus(t?.message||"error")}):null),l(this,"onOrderCancel",void 0)}}export{c as DropinComponent,c as default};
1
+ import{Component as t,createElement as e,Fragment as s}from"../../../external/preact/dist/preact.js";import n from"./PaymentMethod/PaymentMethodList.js";import o from"./status/index.js";import a from"../../../core/Services/order-status.js";import{sanitizeOrder as r}from"../../internal/UIElement/utils.js";import i from"../../../core/Errors/AdyenCheckoutError.js";import h from"../../internal/Button/Button.js";import{AnalyticsInfoEvent as d,UiTarget as m,InfoEventType as p}from"../../../core/Analytics/events/AnalyticsInfoEvent.js";import{DropinSuccessState as l}from"./DropinSuccessState.js";function c(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}class y extends t{componentDidMount(){this.prepareDropinData()}componentDidUpdate(t,e){e.status.type!==this.state.status.type&&this.state.activePaymentMethod&&this.state.activePaymentMethod.setStatus(this.state.status.type),"ready"===this.state.status.type&&"ready"!==e.status.type&&this.props.onReady&&this.props.onReady()}closeActivePaymentMethod(){this.setState({activePaymentMethod:null})}render(){const{elements:t,fastlanePaymentElement:a,instantPaymentElements:r,storedPaymentElements:i,status:d,activePaymentMethod:m,showDefaultPaymentMethodList:p}=this.state,c="loading"===d.type,y="redirect"===d.type,u=!!(t?.length||r?.length||i?.length);switch(d.type){case"success":return e(l,{message:d.props?.message});case"error":return e(o.Error,{message:d.props?.message});case"custom":return d.props?.component?.render();default:return e("div",{className:`adyen-checkout__dropin adyen-checkout__dropin--${d.type}`},y&&d.props.component&&d.props.component.render(),c&&d.props&&d.props.component&&d.props.component.render(),!p&&e(s,null,e(n,{isLoading:c,paymentMethods:a,activePaymentMethod:m,onSelect:this.handleOnSelectPaymentMethod,openFirstPaymentMethod:!0,showRadioButton:this.props.showRadioButton}),u&&e(h,{classNameModifiers:["dropin-show-paymentmethods"],variant:"link",inline:!0,label:"Other payment methods",onClick:this.onShowDefaultPaymentMethodListClick})),u&&p&&e(n,{isLoading:c||y,isDisablingPaymentMethod:this.state.isDisabling,paymentMethods:t,instantPaymentMethods:r,storedPaymentMethods:i,activePaymentMethod:m,order:this.props.order,orderStatus:this.state.orderStatus,onOrderCancel:this.onOrderCancel,onSelect:this.handleOnSelectPaymentMethod,openPaymentMethod:this.props.openPaymentMethod,openFirstPaymentMethod:this.props.openFirstPaymentMethod,openFirstStoredPaymentMethod:this.props.openFirstStoredPaymentMethod,onDisableStoredPaymentMethod:this.handleDisableStoredPaymentMethod,showRemovePaymentMethodButton:this.props.showRemovePaymentMethodButton,showRadioButton:this.props.showRadioButton}))}}constructor(...t){super(...t),c(this,"state",{elements:[],fastlanePaymentElement:[],instantPaymentElements:[],storedPaymentElements:[],orderStatus:null,isDisabling:!1,status:{type:"loading",props:void 0},activePaymentMethod:null,cachedPaymentMethods:{},showDefaultPaymentMethodList:!0}),c(this,"prepareDropinData",()=>{const{order:t,clientKey:e,loadingContext:s}=this.props,[n,o,r,i]=this.props.onCreateElements(),h=t?a({clientKey:e,loadingContext:s},t):null;Promise.all([n,o,r,i,h]).then(([t,e,s,n,o])=>{this.setState({orderStatus:o,elements:e,instantPaymentElements:s,storedPaymentElements:t,fastlanePaymentElement:n,showDefaultPaymentMethodList:0===n.length}),this.setStatus("ready"),this.props.onElementsCreated([...s,...t,...e,...n])}),this.onOrderCancel=this.getOnOrderCancel()}),c(this,"setStatus",(t,e={})=>{this.setState({status:{type:t,props:e}})}),c(this,"setActivePaymentMethod",t=>{t!==this.state.activePaymentMethod&&(this.setState(e=>({activePaymentMethod:t,cachedPaymentMethods:{...e.cachedPaymentMethods,[t._id]:!0}})),this.state.cachedPaymentMethods[t._id]&&t.activate())}),c(this,"handleOnSelectPaymentMethod",t=>{const{activePaymentMethod:e}=this.state;this.setActivePaymentMethod(t),(e&&e._id!==t._id||!e)&&this.props.onSelect?.(t)}),c(this,"handleDisableStoredPaymentMethod",t=>{this.setState({isDisabling:!0}),new Promise((e,s)=>this.props.onDisableStoredPaymentMethod(t.props.storedPaymentMethodId,e,s)).then(()=>{this.setState(e=>({storedPaymentElements:e.storedPaymentElements.filter(e=>e._id!==t._id)})),this.setState({isDisabling:!1})}).catch(()=>{this.setState({isDisabling:!1})})}),c(this,"onShowDefaultPaymentMethodListClick",()=>{this.setState({showDefaultPaymentMethodList:!0});const t=new d({type:p.clicked,target:m.otherPaymentMethodButton,component:"dropin"});this.props.modules?.analytics.sendAnalytics(t)}),c(this,"getOnOrderCancel",()=>this.props.onOrderCancel?t=>{const e=r(t.order);new Promise((t,s)=>{this.props.onOrderCancel({order:e},{resolve:t,reject:s})}).then(({amount:t})=>this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null,t)).catch(t=>{throw new i("NETWORK_ERROR",t)})}:this.props.session?t=>this.props.session.cancelOrder(t).then(()=>this.props.core.update({order:null})).catch(t=>{console.error(t),this.setStatus(t?.message||"error")}):null),c(this,"onOrderCancel",void 0)}}export{y as DropinComponent,y as default};
2
2
  //# sourceMappingURL=DropinComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, Fragment, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport './DropinComponent.scss';\nimport { sanitizeOrder } from '../../internal/UIElement/utils';\nimport { PaymentAmount } from '../../../types/global-types';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Button from '../../internal/Button';\nimport type { DropinComponentProps, DropinComponentState, DropinStatus, DropinStatusProps, onOrderCancelData } from '../types';\nimport UIElement from '../../internal/UIElement';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../../core/Analytics/events/AnalyticsInfoEvent';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n fastlanePaymentElement: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {},\n showDefaultPaymentMethodList: true\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise, orderStatusPromise]).then(\n ([storedPaymentElements, elements, instantPaymentElements, fastlanePaymentElement, orderStatus]) => {\n this.setState({\n orderStatus,\n elements,\n instantPaymentElements,\n storedPaymentElements,\n fastlanePaymentElement,\n showDefaultPaymentMethodList: fastlanePaymentElement.length === 0\n });\n\n this.setStatus('ready');\n }\n );\n\n this.onOrderCancel = this.getOnOrderCancel();\n };\n\n public setStatus = (status: DropinStatus['type'], props: DropinStatusProps = {}) => {\n this.setState({ status: { type: status, props } });\n };\n\n private setActivePaymentMethod = (paymentMethod: UIElement): void => {\n if (paymentMethod === this.state.activePaymentMethod) {\n return;\n }\n\n this.setState(prevState => ({\n activePaymentMethod: paymentMethod,\n cachedPaymentMethods: { ...prevState.cachedPaymentMethods, [paymentMethod._id]: true }\n }));\n\n if (this.state.cachedPaymentMethods[paymentMethod._id]) {\n paymentMethod.activate();\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status.type !== this.state.status.type && this.state.activePaymentMethod) {\n // @ts-ignore TODO: Drop-in has its own 'status' values ('custom' for ex) which differs from regular UIElementStatus. Need to investigate best way to define/use this status variable\n this.state.activePaymentMethod.setStatus(this.state.status.type);\n }\n\n if (this.state.status.type === 'ready' && prevState.status.type !== 'ready' && this.props.onReady) {\n this.props.onReady();\n }\n }\n\n private handleOnSelectPaymentMethod = paymentMethod => {\n const { activePaymentMethod } = this.state;\n\n this.setActivePaymentMethod(paymentMethod);\n\n if ((activePaymentMethod && activePaymentMethod._id !== paymentMethod._id) || !activePaymentMethod) {\n this.props.onSelect?.(paymentMethod);\n }\n };\n\n private handleDisableStoredPaymentMethod = storedPaymentMethod => {\n this.setState({ isDisabling: true });\n\n new Promise((resolve, reject) => this.props.onDisableStoredPaymentMethod(storedPaymentMethod.props.storedPaymentMethodId, resolve, reject))\n .then(() => {\n this.setState(prevState => ({\n storedPaymentElements: prevState.storedPaymentElements.filter(pm => pm._id !== storedPaymentMethod._id)\n }));\n this.setState({ isDisabling: false });\n })\n .catch(() => {\n this.setState({ isDisabling: false });\n });\n };\n\n private readonly onShowDefaultPaymentMethodListClick = () => {\n this.setState({\n showDefaultPaymentMethodList: true\n });\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.clicked,\n target: UiTarget.otherPaymentMethodButton,\n component: 'dropin'\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n };\n\n closeActivePaymentMethod() {\n this.setState({ activePaymentMethod: null });\n }\n\n /**\n * getOnOrderCancel decides which onOrderCancel logic should be used, manual or sessions\n */\n private getOnOrderCancel = () => {\n if (this.props.onOrderCancel) {\n return (data: onOrderCancelData) => {\n const order = sanitizeOrder(data.order);\n new Promise<{ amount: PaymentAmount }>((resolve, reject) => {\n this.props.onOrderCancel({ order }, { resolve, reject });\n })\n .then(({ amount }) => this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null, amount))\n .catch(error => {\n throw new AdyenCheckoutError('NETWORK_ERROR', error);\n });\n };\n }\n if (this.props.session) {\n return (data: onOrderCancelData) =>\n this.props.session\n .cancelOrder(data)\n .then(() => this.props.core.update({ order: null }))\n .catch(error => {\n console.error(error);\n this.setStatus(error?.message || 'error');\n });\n }\n return null;\n };\n\n private onOrderCancel: (data: onOrderCancelData) => void;\n\n render() {\n const {\n elements,\n fastlanePaymentElement,\n instantPaymentElements,\n storedPaymentElements,\n status,\n activePaymentMethod,\n showDefaultPaymentMethodList\n } = this.state;\n\n const isLoading = status.type === 'loading';\n const isRedirecting = status.type === 'redirect';\n const hasPaymentMethodsToBeDisplayed = !!(elements?.length || instantPaymentElements?.length || storedPaymentElements?.length);\n\n switch (status.type) {\n case 'success':\n return <Status.Success message={this.props?.amount?.value === 0 ? 'resultMessages.preauthorized' : status.props?.message} />;\n\n case 'error':\n return <Status.Error message={status.props?.message} />;\n\n case 'custom':\n return status.props?.component?.render();\n\n default:\n return (\n <div className={`adyen-checkout__dropin adyen-checkout__dropin--${status.type}`}>\n {isRedirecting && status.props.component && status.props.component.render()}\n {isLoading && status.props && status.props.component && status.props.component.render()}\n\n {!showDefaultPaymentMethodList && (\n <Fragment>\n <PaymentMethodList\n isLoading={isLoading}\n paymentMethods={fastlanePaymentElement}\n activePaymentMethod={activePaymentMethod}\n onSelect={this.handleOnSelectPaymentMethod}\n openFirstPaymentMethod\n showRadioButton={this.props.showRadioButton}\n />\n\n {hasPaymentMethodsToBeDisplayed && (\n <Button\n classNameModifiers={['dropin-show-paymentmethods']}\n variant=\"link\"\n inline\n label=\"Other payment methods\"\n onClick={this.onShowDefaultPaymentMethodListClick}\n />\n )}\n </Fragment>\n )}\n\n {hasPaymentMethodsToBeDisplayed && showDefaultPaymentMethodList && (\n <PaymentMethodList\n isLoading={isLoading || isRedirecting}\n isDisablingPaymentMethod={this.state.isDisabling}\n paymentMethods={elements}\n instantPaymentMethods={instantPaymentElements}\n storedPaymentMethods={storedPaymentElements}\n activePaymentMethod={activePaymentMethod}\n order={this.props.order}\n orderStatus={this.state.orderStatus}\n onOrderCancel={this.onOrderCancel}\n onSelect={this.handleOnSelectPaymentMethod}\n openPaymentMethod={this.props.openPaymentMethod}\n openFirstPaymentMethod={this.props.openFirstPaymentMethod}\n openFirstStoredPaymentMethod={this.props.openFirstStoredPaymentMethod}\n onDisableStoredPaymentMethod={this.handleDisableStoredPaymentMethod}\n showRemovePaymentMethodButton={this.props.showRemovePaymentMethodButton}\n showRadioButton={this.props.showRadioButton}\n />\n )}\n </div>\n );\n }\n }\n}\n\nexport default DropinComponent;\n"],"names":["DropinComponent","Component","componentDidMount","this","prepareDropinData","componentDidUpdate","prevProps","prevState","status","type","state","activePaymentMethod","setStatus","props","onReady","closeActivePaymentMethod","setState","render","elements","fastlanePaymentElement","instantPaymentElements","storedPaymentElements","showDefaultPaymentMethodList","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","h","Status","Success","message","amount","value","Error","component","div","className","Fragment","PaymentMethodList","paymentMethods","onSelect","handleOnSelectPaymentMethod","openFirstPaymentMethod","showRadioButton","Button","classNameModifiers","variant","inline","label","onClick","onShowDefaultPaymentMethodListClick","isDisablingPaymentMethod","isDisabling","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","openPaymentMethod","openFirstStoredPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","super","args","_define_property","undefined","cachedPaymentMethods","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","fastlanePaymentElementPromise","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","getOnOrderCancel","setActivePaymentMethod","paymentMethod","_id","activate","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","catch","event","AnalyticsInfoEvent","InfoEventType","clicked","target","UiTarget","otherPaymentMethodButton","modules","analytics","sendAnalytics","data","sanitizeOrder","elementRef","handleAdvanceFlowPaymentMethodsUpdate","error","AdyenCheckoutError","session","cancelOrder","core","update","console"],"mappings":"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"}
1
+ {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, Fragment, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport './DropinComponent.scss';\nimport { sanitizeOrder } from '../../internal/UIElement/utils';\nimport type { PaymentAmount } from '../../../types/global-types';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Button from '../../internal/Button';\nimport type { DropinComponentProps, DropinComponentState, DropinStatus, DropinStatusProps, onOrderCancelData } from '../types';\nimport UIElement from '../../internal/UIElement';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../../core/Analytics/events/AnalyticsInfoEvent';\nimport { DropinSuccessState } from './DropinSuccessState';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n fastlanePaymentElement: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {},\n showDefaultPaymentMethodList: true\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise, orderStatusPromise]).then(\n ([storedPaymentElements, elements, instantPaymentElements, fastlanePaymentElement, orderStatus]) => {\n this.setState({\n orderStatus,\n elements,\n instantPaymentElements,\n storedPaymentElements,\n fastlanePaymentElement,\n showDefaultPaymentMethodList: fastlanePaymentElement.length === 0\n });\n this.setStatus('ready');\n\n this.props.onElementsCreated([...instantPaymentElements, ...storedPaymentElements, ...elements, ...fastlanePaymentElement]);\n }\n );\n\n this.onOrderCancel = this.getOnOrderCancel();\n };\n\n public setStatus = (status: DropinStatus['type'], props: DropinStatusProps = {}) => {\n this.setState({ status: { type: status, props } });\n };\n\n private setActivePaymentMethod = (paymentMethod: UIElement): void => {\n if (paymentMethod === this.state.activePaymentMethod) {\n return;\n }\n\n this.setState(prevState => ({\n activePaymentMethod: paymentMethod,\n cachedPaymentMethods: { ...prevState.cachedPaymentMethods, [paymentMethod._id]: true }\n }));\n\n if (this.state.cachedPaymentMethods[paymentMethod._id]) {\n paymentMethod.activate();\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status.type !== this.state.status.type && this.state.activePaymentMethod) {\n // @ts-ignore TODO: Drop-in has its own 'status' values ('custom' for ex) which differs from regular UIElementStatus. Need to investigate best way to define/use this status variable\n this.state.activePaymentMethod.setStatus(this.state.status.type);\n }\n\n if (this.state.status.type === 'ready' && prevState.status.type !== 'ready' && this.props.onReady) {\n this.props.onReady();\n }\n }\n\n private handleOnSelectPaymentMethod = paymentMethod => {\n const { activePaymentMethod } = this.state;\n\n this.setActivePaymentMethod(paymentMethod);\n\n if ((activePaymentMethod && activePaymentMethod._id !== paymentMethod._id) || !activePaymentMethod) {\n this.props.onSelect?.(paymentMethod);\n }\n };\n\n private handleDisableStoredPaymentMethod = storedPaymentMethod => {\n this.setState({ isDisabling: true });\n\n new Promise((resolve, reject) => this.props.onDisableStoredPaymentMethod(storedPaymentMethod.props.storedPaymentMethodId, resolve, reject))\n .then(() => {\n this.setState(prevState => ({\n storedPaymentElements: prevState.storedPaymentElements.filter(pm => pm._id !== storedPaymentMethod._id)\n }));\n this.setState({ isDisabling: false });\n })\n .catch(() => {\n this.setState({ isDisabling: false });\n });\n };\n\n private readonly onShowDefaultPaymentMethodListClick = () => {\n this.setState({\n showDefaultPaymentMethodList: true\n });\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.clicked,\n target: UiTarget.otherPaymentMethodButton,\n component: 'dropin'\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n };\n\n closeActivePaymentMethod() {\n this.setState({ activePaymentMethod: null });\n }\n\n /**\n * getOnOrderCancel decides which onOrderCancel logic should be used, manual or sessions\n */\n private getOnOrderCancel = () => {\n if (this.props.onOrderCancel) {\n return (data: onOrderCancelData) => {\n const order = sanitizeOrder(data.order);\n new Promise<{ amount: PaymentAmount }>((resolve, reject) => {\n this.props.onOrderCancel({ order }, { resolve, reject });\n })\n .then(({ amount }) => this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null, amount))\n .catch(error => {\n throw new AdyenCheckoutError('NETWORK_ERROR', error);\n });\n };\n }\n if (this.props.session) {\n return (data: onOrderCancelData) =>\n this.props.session\n .cancelOrder(data)\n .then(() => this.props.core.update({ order: null }))\n .catch(error => {\n console.error(error);\n this.setStatus(error?.message || 'error');\n });\n }\n return null;\n };\n\n private onOrderCancel: (data: onOrderCancelData) => void;\n\n render() {\n const {\n elements,\n fastlanePaymentElement,\n instantPaymentElements,\n storedPaymentElements,\n status,\n activePaymentMethod,\n showDefaultPaymentMethodList\n } = this.state;\n\n const isLoading = status.type === 'loading';\n const isRedirecting = status.type === 'redirect';\n const hasPaymentMethodsToBeDisplayed = !!(elements?.length || instantPaymentElements?.length || storedPaymentElements?.length);\n\n switch (status.type) {\n case 'success':\n return <DropinSuccessState message={status.props?.message} />;\n\n case 'error':\n return <Status.Error message={status.props?.message} />;\n\n case 'custom':\n return status.props?.component?.render();\n\n default:\n return (\n <div className={`adyen-checkout__dropin adyen-checkout__dropin--${status.type}`}>\n {isRedirecting && status.props.component && status.props.component.render()}\n {isLoading && status.props && status.props.component && status.props.component.render()}\n\n {!showDefaultPaymentMethodList && (\n <Fragment>\n <PaymentMethodList\n isLoading={isLoading}\n paymentMethods={fastlanePaymentElement}\n activePaymentMethod={activePaymentMethod}\n onSelect={this.handleOnSelectPaymentMethod}\n openFirstPaymentMethod\n showRadioButton={this.props.showRadioButton}\n />\n\n {hasPaymentMethodsToBeDisplayed && (\n <Button\n classNameModifiers={['dropin-show-paymentmethods']}\n variant=\"link\"\n inline\n label=\"Other payment methods\"\n onClick={this.onShowDefaultPaymentMethodListClick}\n />\n )}\n </Fragment>\n )}\n\n {hasPaymentMethodsToBeDisplayed && showDefaultPaymentMethodList && (\n <PaymentMethodList\n isLoading={isLoading || isRedirecting}\n isDisablingPaymentMethod={this.state.isDisabling}\n paymentMethods={elements}\n instantPaymentMethods={instantPaymentElements}\n storedPaymentMethods={storedPaymentElements}\n activePaymentMethod={activePaymentMethod}\n order={this.props.order}\n orderStatus={this.state.orderStatus}\n onOrderCancel={this.onOrderCancel}\n onSelect={this.handleOnSelectPaymentMethod}\n openPaymentMethod={this.props.openPaymentMethod}\n openFirstPaymentMethod={this.props.openFirstPaymentMethod}\n openFirstStoredPaymentMethod={this.props.openFirstStoredPaymentMethod}\n onDisableStoredPaymentMethod={this.handleDisableStoredPaymentMethod}\n showRemovePaymentMethodButton={this.props.showRemovePaymentMethodButton}\n showRadioButton={this.props.showRadioButton}\n />\n )}\n </div>\n );\n }\n }\n}\n\nexport default DropinComponent;\n"],"names":["DropinComponent","Component","componentDidMount","this","prepareDropinData","componentDidUpdate","prevProps","prevState","status","type","state","activePaymentMethod","setStatus","props","onReady","closeActivePaymentMethod","setState","render","elements","fastlanePaymentElement","instantPaymentElements","storedPaymentElements","showDefaultPaymentMethodList","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","h","DropinSuccessState","message","Status","Error","component","div","className","Fragment","PaymentMethodList","paymentMethods","onSelect","handleOnSelectPaymentMethod","openFirstPaymentMethod","showRadioButton","Button","classNameModifiers","variant","inline","label","onClick","onShowDefaultPaymentMethodListClick","isDisablingPaymentMethod","isDisabling","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","openPaymentMethod","openFirstStoredPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","super","args","_define_property","undefined","cachedPaymentMethods","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","fastlanePaymentElementPromise","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","onElementsCreated","getOnOrderCancel","setActivePaymentMethod","paymentMethod","_id","activate","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","catch","event","AnalyticsInfoEvent","InfoEventType","clicked","target","UiTarget","otherPaymentMethodButton","modules","analytics","sendAnalytics","data","sanitizeOrder","amount","elementRef","handleAdvanceFlowPaymentMethodsUpdate","error","AdyenCheckoutError","session","cancelOrder","core","update","console"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useAmount as t}from"../../../core/Context/AmountProvider.js";import r from"./status/index.js";const s=({message:s})=>{const{amount:o}=t();return e(r.Success,{message:0===o?.value?"resultMessages.preauthorized":s})};export{s as DropinSuccessState};
2
+ //# sourceMappingURL=DropinSuccessState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropinSuccessState.js","sources":["../../../../../src/components/Dropin/components/DropinSuccessState.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useAmount } from '../../../core/Context/AmountProvider';\nimport Status from './status';\n\ninterface Props {\n message?: string;\n}\n\nconst DropinSuccessState = ({ message }: Props) => {\n const { amount } = useAmount();\n return <Status.Success message={amount?.value === 0 ? 'resultMessages.preauthorized' : message} />;\n};\n\nexport { DropinSuccessState };\n"],"names":["DropinSuccessState","message","amount","useAmount","h","Status","Success","value"],"mappings":"6KAQA,MAAMA,EAAqB,EAAGC,cAC1B,MAAMC,OAAEA,GAAWC,IACnB,OAAOC,EAACC,EAAOC,QAAO,CAACL,QAA2B,IAAlBC,GAAQK,MAAc,+BAAiCN"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import t from"./PaymentMethodItem/PaymentMethodItem.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";import{useMemo as a}from"../../../../external/preact/hooks/dist/hooks.js";import n from"../../../../utils/uuid.js";import s from"../../../../_virtual/index.js";function i({label:i,classNameModifiers:d=[],paymentMethods:m=[],activePaymentMethod:l=null,isLoading:r=!1,isDisablingPaymentMethod:c=!1,showRemovePaymentMethodButton:h,onDisableStoredPaymentMethod:y=()=>{},onSelect:p,showRadioButton:u}){const{i18n:M}=o(),_=a(()=>`select-${n()}`,[]),P=s(["adyen-checkout__payment-methods-list",{"adyen-checkout__payment-methods-list--loading":r},...d.map(e=>`adyen-checkout__payment-methods-list--${e}`)]),b=1===m.length;return e("div",{className:"adyen-checkout-payment-methods-container"},!!i&&e("label",{htmlFor:_,className:"adyen-checkout-payment-methods-list-label"},i),e("div",{id:_,className:P,role:b?void 0:"radiogroup","aria-label":b?void 0:M.get("paymentMethodsList.aria.label"),required:!0},m.map((o,a,n)=>{const i=l&&l._id===o._id,d=l&&n[a+1]&&l._id===n[a+1]._id;return e(t,{className:s({"adyen-checkout__payment-method--next-selected":d}),standalone:b,paymentMethod:o,isSelected:i,isDisablingPaymentMethod:i&&c,isLoading:r,onSelect:p,key:o._id,showRemovePaymentMethodButton:h,showRadioButton:u,onDisableStoredPaymentMethod:y})})))}export{i as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import t from"./PaymentMethodItem/PaymentMethodItem.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";import{useMemo as a}from"../../../../external/preact/hooks/dist/hooks.js";import n from"../../../../utils/uuid.js";import s from"../../../../_virtual/index.js";function i({label:i,classNameModifiers:d=[],paymentMethods:m=[],activePaymentMethod:l=null,isLoading:r=!1,isDisablingPaymentMethod:c=!1,showRemovePaymentMethodButton:h,onDisableStoredPaymentMethod:y=()=>{},onSelect:p,showRadioButton:u}){const{i18n:M}=o(),_=a(()=>`select-${n()}`,[]),P=s(["adyen-checkout__payment-methods-list",{"adyen-checkout__payment-methods-list--loading":r},...d.map(e=>`adyen-checkout__payment-methods-list--${e}`)]),b=1===m.length;return e("div",{className:"adyen-checkout-payment-methods-container"},!!i&&e("label",{htmlFor:_,className:"adyen-checkout-payment-methods-list-label"},i),e("div",{id:_,className:P,role:b?void 0:"radiogroup","aria-label":b?void 0:M.get("paymentMethodsList.aria.label")},m.map((o,a,n)=>{const i=l&&l._id===o._id,d=l&&n[a+1]&&l._id===n[a+1]._id;return e(t,{className:s({"adyen-checkout__payment-method--next-selected":d}),standalone:b,paymentMethod:o,isSelected:i,isDisablingPaymentMethod:i&&c,isLoading:r,onSelect:p,key:o._id,showRemovePaymentMethodButton:h,showRadioButton:u,onDisableStoredPaymentMethod:y})})))}export{i as default};
2
2
  //# sourceMappingURL=PaymentMethodsContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentMethodsContainer.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport PaymentMethodItem from './PaymentMethodItem/PaymentMethodItem';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { useMemo } from 'preact/hooks';\nimport uuid from '../../../../utils/uuid';\nimport classNames from 'classnames';\nimport UIElement from '../../../internal/UIElement';\n\nexport interface PaymentMethodsContainerProps {\n label?: string;\n classNameModifiers?: string[];\n paymentMethods: UIElement[];\n activePaymentMethod?: UIElement;\n showRemovePaymentMethodButton?: boolean;\n onSelect?: (paymentMethod: UIElement) => void;\n onDisableStoredPaymentMethod?: (storedPaymentMethod) => void;\n isDisablingPaymentMethod?: boolean;\n isLoading: boolean;\n showRadioButton?: boolean;\n}\n\nfunction PaymentMethodsContainer({\n label,\n classNameModifiers = [],\n paymentMethods = [],\n activePaymentMethod = null,\n isLoading = false,\n isDisablingPaymentMethod = false,\n showRemovePaymentMethodButton,\n onDisableStoredPaymentMethod = () => {},\n onSelect,\n showRadioButton\n}: Readonly<PaymentMethodsContainerProps>) {\n const { i18n } = useCoreContext();\n const selectListId: string = useMemo(() => `select-${uuid()}`, []);\n const paymentMethodListClassnames = classNames([\n 'adyen-checkout__payment-methods-list',\n { 'adyen-checkout__payment-methods-list--loading': isLoading },\n ...classNameModifiers.map(m => `adyen-checkout__payment-methods-list--${m}`)\n ]);\n\n const standalone = paymentMethods.length === 1;\n\n return (\n <div className=\"adyen-checkout-payment-methods-container\">\n {!!label && (\n <label htmlFor={selectListId} className=\"adyen-checkout-payment-methods-list-label\">\n {label}\n </label>\n )}\n <div\n id={selectListId}\n className={paymentMethodListClassnames}\n role={standalone ? undefined : 'radiogroup'}\n aria-label={standalone ? undefined : i18n.get('paymentMethodsList.aria.label')}\n required\n >\n {paymentMethods.map((paymentMethod, index, paymentMethodsCollection) => {\n const isSelected = activePaymentMethod && activePaymentMethod._id === paymentMethod._id;\n const isNextOneSelected =\n activePaymentMethod &&\n paymentMethodsCollection[index + 1] &&\n activePaymentMethod._id === paymentMethodsCollection[index + 1]._id;\n\n return (\n <PaymentMethodItem\n className={classNames({ 'adyen-checkout__payment-method--next-selected': isNextOneSelected })}\n standalone={standalone}\n paymentMethod={paymentMethod}\n isSelected={isSelected}\n isDisablingPaymentMethod={isSelected && isDisablingPaymentMethod}\n isLoading={isLoading}\n onSelect={onSelect}\n key={paymentMethod._id}\n showRemovePaymentMethodButton={showRemovePaymentMethodButton}\n showRadioButton={showRadioButton}\n onDisableStoredPaymentMethod={onDisableStoredPaymentMethod}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nexport default PaymentMethodsContainer;\n"],"names":["PaymentMethodsContainer","label","classNameModifiers","paymentMethods","activePaymentMethod","isLoading","isDisablingPaymentMethod","showRemovePaymentMethodButton","onDisableStoredPaymentMethod","onSelect","showRadioButton","i18n","useCoreContext","selectListId","useMemo","uuid","paymentMethodListClassnames","classNames","map","m","standalone","length","h","div","className","htmlFor","id","role","undefined","aria-label","get","required","paymentMethod","index","paymentMethodsCollection","isSelected","_id","isNextOneSelected","PaymentMethodItem","key"],"mappings":"6WAqBA,SAASA,GAAwBC,MAC7BA,EAAKC,mBACLA,EAAqB,GAAEC,eACvBA,EAAiB,GAAEC,oBACnBA,EAAsB,KAAIC,UAC1BA,GAAY,EAAKC,yBACjBA,GAA2B,EAAKC,8BAChCA,EAA6BC,6BAC7BA,EAA+B,OAAQC,SACvCA,EAAQC,gBACRA,IAEA,MAAMC,KAAEA,GAASC,IACXC,EAAuBC,EAAQ,IAAM,UAAUC,MAAU,IACzDC,EAA8BC,EAAW,CAC3C,uCACA,CAAE,gDAAiDZ,MAChDH,EAAmBgB,IAAIC,GAAK,yCAAyCA,OAGtEC,EAAuC,IAA1BjB,EAAekB,OAElC,OACIC,EAACC,MAAAA,CAAIC,UAAU,8CACRvB,GACCqB,EAACrB,QAAAA,CAAMwB,QAASZ,EAAcW,UAAU,6CACnCvB,GAGTqB,EAACC,MAAAA,CACGG,GAAIb,EACJW,UAAWR,EACXW,KAAMP,OAAaQ,EAAY,aAC/BC,aAAYT,OAAaQ,EAAYjB,EAAKmB,IAAI,iCAC9CC,UAAAA,GAEC5B,EAAee,IAAI,CAACc,EAAeC,EAAOC,KACvC,MAAMC,EAAa/B,GAAuBA,EAAoBgC,MAAQJ,EAAcI,IAC9EC,EACFjC,GACA8B,EAAyBD,EAAQ,IACjC7B,EAAoBgC,MAAQF,EAAyBD,EAAQ,GAAGG,IAEpE,OACId,EAACgB,EAAAA,CACGd,UAAWP,EAAW,CAAE,gDAAiDoB,IACzEjB,WAAYA,EACZY,cAAeA,EACfG,WAAYA,EACZ7B,yBAA0B6B,GAAc7B,EACxCD,UAAWA,EACXI,SAAUA,EACV8B,IAAKP,EAAcI,IACnB7B,8BAA+BA,EAC/BG,gBAAiBA,EACjBF,6BAA8BA,OAO1D"}
1
+ {"version":3,"file":"PaymentMethodsContainer.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport PaymentMethodItem from './PaymentMethodItem/PaymentMethodItem';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { useMemo } from 'preact/hooks';\nimport uuid from '../../../../utils/uuid';\nimport classNames from 'classnames';\nimport UIElement from '../../../internal/UIElement';\n\nexport interface PaymentMethodsContainerProps {\n label?: string;\n classNameModifiers?: string[];\n paymentMethods: UIElement[];\n activePaymentMethod?: UIElement;\n showRemovePaymentMethodButton?: boolean;\n onSelect?: (paymentMethod: UIElement) => void;\n onDisableStoredPaymentMethod?: (storedPaymentMethod) => void;\n isDisablingPaymentMethod?: boolean;\n isLoading: boolean;\n showRadioButton?: boolean;\n}\n\nfunction PaymentMethodsContainer({\n label,\n classNameModifiers = [],\n paymentMethods = [],\n activePaymentMethod = null,\n isLoading = false,\n isDisablingPaymentMethod = false,\n showRemovePaymentMethodButton,\n onDisableStoredPaymentMethod = () => {},\n onSelect,\n showRadioButton\n}: Readonly<PaymentMethodsContainerProps>) {\n const { i18n } = useCoreContext();\n const selectListId: string = useMemo(() => `select-${uuid()}`, []);\n const paymentMethodListClassnames = classNames([\n 'adyen-checkout__payment-methods-list',\n { 'adyen-checkout__payment-methods-list--loading': isLoading },\n ...classNameModifiers.map(m => `adyen-checkout__payment-methods-list--${m}`)\n ]);\n\n const standalone = paymentMethods.length === 1;\n\n return (\n <div className=\"adyen-checkout-payment-methods-container\">\n {!!label && (\n <label htmlFor={selectListId} className=\"adyen-checkout-payment-methods-list-label\">\n {label}\n </label>\n )}\n <div\n id={selectListId}\n className={paymentMethodListClassnames}\n role={standalone ? undefined : 'radiogroup'}\n aria-label={standalone ? undefined : i18n.get('paymentMethodsList.aria.label')}\n >\n {paymentMethods.map((paymentMethod, index, paymentMethodsCollection) => {\n const isSelected = activePaymentMethod && activePaymentMethod._id === paymentMethod._id;\n const isNextOneSelected =\n activePaymentMethod &&\n paymentMethodsCollection[index + 1] &&\n activePaymentMethod._id === paymentMethodsCollection[index + 1]._id;\n\n return (\n <PaymentMethodItem\n className={classNames({ 'adyen-checkout__payment-method--next-selected': isNextOneSelected })}\n standalone={standalone}\n paymentMethod={paymentMethod}\n isSelected={isSelected}\n isDisablingPaymentMethod={isSelected && isDisablingPaymentMethod}\n isLoading={isLoading}\n onSelect={onSelect}\n key={paymentMethod._id}\n showRemovePaymentMethodButton={showRemovePaymentMethodButton}\n showRadioButton={showRadioButton}\n onDisableStoredPaymentMethod={onDisableStoredPaymentMethod}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nexport default PaymentMethodsContainer;\n"],"names":["PaymentMethodsContainer","label","classNameModifiers","paymentMethods","activePaymentMethod","isLoading","isDisablingPaymentMethod","showRemovePaymentMethodButton","onDisableStoredPaymentMethod","onSelect","showRadioButton","i18n","useCoreContext","selectListId","useMemo","uuid","paymentMethodListClassnames","classNames","map","m","standalone","length","h","div","className","htmlFor","id","role","undefined","aria-label","get","paymentMethod","index","paymentMethodsCollection","isSelected","_id","isNextOneSelected","PaymentMethodItem","key"],"mappings":"6WAqBA,SAASA,GAAwBC,MAC7BA,EAAKC,mBACLA,EAAqB,GAAEC,eACvBA,EAAiB,GAAEC,oBACnBA,EAAsB,KAAIC,UAC1BA,GAAY,EAAKC,yBACjBA,GAA2B,EAAKC,8BAChCA,EAA6BC,6BAC7BA,EAA+B,OAAQC,SACvCA,EAAQC,gBACRA,IAEA,MAAMC,KAAEA,GAASC,IACXC,EAAuBC,EAAQ,IAAM,UAAUC,MAAU,IACzDC,EAA8BC,EAAW,CAC3C,uCACA,CAAE,gDAAiDZ,MAChDH,EAAmBgB,IAAIC,GAAK,yCAAyCA,OAGtEC,EAAuC,IAA1BjB,EAAekB,OAElC,OACIC,EAACC,MAAAA,CAAIC,UAAU,8CACRvB,GACCqB,EAACrB,QAAAA,CAAMwB,QAASZ,EAAcW,UAAU,6CACnCvB,GAGTqB,EAACC,MAAAA,CACGG,GAAIb,EACJW,UAAWR,EACXW,KAAMP,OAAaQ,EAAY,aAC/BC,aAAYT,OAAaQ,EAAYjB,EAAKmB,IAAI,kCAE7C3B,EAAee,IAAI,CAACa,EAAeC,EAAOC,KACvC,MAAMC,EAAa9B,GAAuBA,EAAoB+B,MAAQJ,EAAcI,IAC9EC,EACFhC,GACA6B,EAAyBD,EAAQ,IACjC5B,EAAoB+B,MAAQF,EAAyBD,EAAQ,GAAGG,IAEpE,OACIb,EAACe,EAAAA,CACGb,UAAWP,EAAW,CAAE,gDAAiDmB,IACzEhB,WAAYA,EACZW,cAAeA,EACfG,WAAYA,EACZ5B,yBAA0B4B,GAAc5B,EACxCD,UAAWA,EACXI,SAAUA,EACV6B,IAAKP,EAAcI,IACnB5B,8BAA+BA,EAC/BG,gBAAiBA,EACjBF,6BAA8BA,OAO1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"EcontextInput.js","sources":["../../../../../../src/components/Econtext/components/EcontextInput/EcontextInput.tsx"],"sourcesContent":["import { Fragment, h, VNode } 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 './EcontextInput.scss';\n\ninterface EcontextInputProps {\n setComponentRef: (ref: ComponentMethodsRef) => void;\n personalDetailsRequired?: boolean;\n data?: PersonalDetailsSchema;\n showPayButton: boolean;\n payButton(config: any): VNode;\n onChange?(data: any): void;\n onSubmit?(state: any, component: any): void;\n}\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":"6cAoBe,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,IAC3BT,EAAmBD,QAAUU,EAC7Bb,EAAYG,QAAU,CAClBL,UAAWE,EAAYG,SAASL,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';\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?(data: any): void;\n onSubmit?(state: any, component: any): 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":"6cAqBe,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,IAC3BT,EAAmBD,QAAUU,EAC7Bb,EAAYG,QAAU,CAClBL,UAAWE,EAAYG,SAASL,UAChCgB,eAAgBD,EAAIC,gBAExBrB,EAAgBO,EAAYG,UAcZY,gBAAiBC,KAI5BzB,GAAiBC,EAAU,CAAEK,SAAQoB,MAAOtB,EAAKuB,IAAI,qBAGlE"}
@@ -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';\n\nexport class GiftcardElement extends UIElement<GiftCardConfiguration> {\n public static type = TxVariants.giftcard;\n\n protected componentRef: GiftcardComponent | undefined;\n\n protected static defaultProps = {\n brandsConfiguration: {}\n };\n\n formatProps(props) {\n return {\n ...props?.configuration,\n ...props\n };\n }\n\n formatData(): GiftCardElementData {\n return {\n paymentMethod: {\n type: this.constructor['type'],\n brand: this.props.brand,\n encryptedCardNumber: this.state.data?.encryptedCardNumber,\n encryptedSecurityCode: this.state.data?.encryptedSecurityCode\n }\n };\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.brandsConfiguration[this.props.brand]?.icon || this.props.icon || this.resources.getImage()(this.props.brand);\n }\n\n get displayName() {\n return this.props.brandsConfiguration[this.props.brand]?.name || this.props.name;\n }\n\n private setBalanceCheckError(errorMessage: GiftCardBalanceCheckErrorType | null): void {\n this.componentRef?.setBalanceCheckErrors?.(errorMessage);\n }\n\n private handleBalanceCheck = (data: GiftCardElementData): Promise<balanceCheckResponseType> => {\n if (this.props.onBalanceCheck) {\n return new Promise((resolve, reject) => {\n void this.props.onBalanceCheck(resolve, reject, data);\n });\n }\n\n if (this.props.session) {\n return this.props.session.checkBalance(data);\n }\n };\n\n private onOrderRequest = data => {\n if (this.props.onOrderRequest)\n return new Promise((resolve, reject) => {\n void this.props.onOrderRequest(resolve, reject, data);\n });\n if (this.props.session) {\n return this.props.session.createOrder();\n }\n };\n\n public balanceCheck() {\n return this.onBalanceCheck();\n }\n\n private onBalanceCheck = (): void => {\n if (!this.isValid) {\n this.showValidation();\n return;\n }\n\n // skip balance check if no onBalanceCheck event has been defined\n const hasBalanceCheck = this.props.session || this.props.onBalanceCheck;\n if (!hasBalanceCheck) return super.submit();\n\n this.setStatus('loading');\n\n this.handleBalanceCheck(this.formatData())\n .then(({ balance, transactionLimit = {} as PaymentAmount }) => {\n // Clear any previous balance check errors on success\n this.setBalanceCheckError(null);\n\n // We still need to throw these errors, otherwise it would be a breaking changing\n if (!balance) throw new Error('card-error'); // card doesn't exist\n if (balance?.currency !== this.props.amount?.currency) throw new Error('currency-error');\n if (balance?.value <= 0) throw new Error('no-balance');\n\n if (this.props.amount.value > balance.value || this.props.amount.value > transactionLimit.value) {\n if (this.props.order) {\n return this.makeSubmitCall();\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.makeSubmitCall();\n });\n } else {\n return this.handleOnRequiringConfirmation(balance, transactionLimit);\n }\n })\n .catch(error => {\n // Simply pass the raw error message to setBalanceCheckError\n this.setBalanceCheckError(error?.message);\n\n // Still call handleError for other side effects (analytics, onError callback)\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n });\n };\n\n /**\n * Check if it should call onRequiringConfirmation\n */\n private handleOnRequiringConfirmation = (balance, transactionLimit): Promise<any> => {\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 public payButton = props => {\n return <PayButton {...props} />;\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 handleKeyPress={this.handleKeyPress}\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","configuration","formatData","paymentMethod","type","this","constructor","brand","encryptedCardNumber","state","data","encryptedSecurityCode","isValid","icon","brandsConfiguration","resources","getImage","displayName","name","setBalanceCheckError","errorMessage","componentRef","setBalanceCheckErrors","balanceCheck","onBalanceCheck","submit","makeSubmitCall","super","componentToRender","h","GiftcardComponent","ref","handleKeyPress","showPayButton","onChange","setState","makeBalanceCheck","makePayment","payButton","onSubmitAnalytics","submitAnalytics","args","_define_property","handleBalanceCheck","Promise","resolve","reject","session","checkBalance","onOrderRequest","createOrder","showValidation","setStatus","then","balance","transactionLimit","Error","currency","amount","value","order","orderData","pspReference","handleOnRequiringConfirmation","catch","error","message","AdyenCheckoutError","handleError","setBalance","onRequiringConfirmation","PayButton","TxVariants","giftcard","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Giftcard.js","sources":["../../../../src/components/Giftcard/Giftcard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GiftcardComponent from './components/GiftcardComponent';\nimport 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 type = TxVariants.giftcard;\n\n protected componentRef: GiftcardComponent | undefined;\n\n protected static defaultProps = {\n brandsConfiguration: {}\n };\n\n formatProps(props) {\n return {\n ...props?.configuration,\n ...props\n };\n }\n\n formatData(): GiftCardElementData {\n return {\n paymentMethod: {\n type: this.constructor['type'],\n brand: this.props.brand,\n encryptedCardNumber: this.state.data?.encryptedCardNumber,\n encryptedSecurityCode: this.state.data?.encryptedSecurityCode\n }\n };\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.brandsConfiguration[this.props.brand]?.icon || this.props.icon || this.resources.getImage()(this.props.brand);\n }\n\n get displayName() {\n return this.props.brandsConfiguration[this.props.brand]?.name || this.props.name;\n }\n\n private setBalanceCheckError(errorMessage: GiftCardBalanceCheckErrorType | null): void {\n this.componentRef?.setBalanceCheckErrors?.(errorMessage);\n }\n\n private handleBalanceCheck = (data: GiftCardElementData): Promise<balanceCheckResponseType> => {\n if (this.props.onBalanceCheck) {\n return new Promise((resolve, reject) => {\n void this.props.onBalanceCheck(resolve, reject, data);\n });\n }\n\n if (this.props.session) {\n return this.props.session.checkBalance(data);\n }\n };\n\n private onOrderRequest = data => {\n if (this.props.onOrderRequest)\n return new Promise((resolve, reject) => {\n void this.props.onOrderRequest(resolve, reject, data);\n });\n if (this.props.session) {\n return this.props.session.createOrder();\n }\n };\n\n public balanceCheck() {\n return this.onBalanceCheck();\n }\n\n private onBalanceCheck = (): void => {\n if (!this.isValid) {\n this.showValidation();\n return;\n }\n\n // skip balance check if no onBalanceCheck event has been defined\n const hasBalanceCheck = this.props.session || this.props.onBalanceCheck;\n if (!hasBalanceCheck) return super.submit();\n\n this.setStatus('loading');\n\n this.handleBalanceCheck(this.formatData())\n .then(({ balance, transactionLimit = {} as PaymentAmount }) => {\n // Clear any previous balance check errors on success\n this.setBalanceCheckError(null);\n\n // We still need to throw these errors, otherwise it would be a breaking changing\n if (!balance) throw new Error('card-error'); // card doesn't exist\n if (balance?.currency !== this.props.amount?.currency) throw new Error('currency-error');\n if (balance?.value <= 0) throw new Error('no-balance');\n\n if (this.props.amount.value > balance.value || this.props.amount.value > transactionLimit.value) {\n if (this.props.order) {\n return this.makeSubmitCall();\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.makeSubmitCall();\n });\n } else {\n return this.handleOnRequiringConfirmation(balance, transactionLimit);\n }\n })\n .catch(error => {\n // Simply pass the raw error message to setBalanceCheckError\n this.setBalanceCheckError(error?.message);\n\n // Still call handleError for other side effects (analytics, onError callback)\n if (error instanceof AdyenCheckoutError) {\n this.handleError(error);\n } else {\n this.handleError(new AdyenCheckoutError('ERROR', error));\n }\n });\n };\n\n /**\n * Check if it should call onRequiringConfirmation\n */\n private handleOnRequiringConfirmation = (balance, transactionLimit): Promise<any> => {\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} />;\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 handleKeyPress={this.handleKeyPress}\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","configuration","formatData","paymentMethod","type","this","constructor","brand","encryptedCardNumber","state","data","encryptedSecurityCode","isValid","icon","brandsConfiguration","resources","getImage","displayName","name","setBalanceCheckError","errorMessage","componentRef","setBalanceCheckErrors","balanceCheck","onBalanceCheck","submit","makeSubmitCall","super","componentToRender","h","GiftcardComponent","ref","handleKeyPress","showPayButton","onChange","setState","makeBalanceCheck","makePayment","payButton","onSubmitAnalytics","submitAnalytics","args","_define_property","handleBalanceCheck","Promise","resolve","reject","session","checkBalance","onOrderRequest","createOrder","showValidation","setStatus","then","balance","transactionLimit","Error","currency","amount","value","order","orderData","pspReference","handleOnRequiringConfirmation","catch","error","message","AdyenCheckoutError","handleError","setBalance","onRequiringConfirmation","PayButton","TxVariants","giftcard","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Component as t,createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import s from"../../internal/Alert/Alert.js";import a from"./GiftcardResult.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";import{GIFT_CARD as n}from"../../internal/SecuredFields/lib/constants.js";import{GiftCardFields as i}from"./GiftcardFields.js";import{useSRPanelForGiftcardErrors as c}from"./useSRPanelForGiftcardErrors.js";function l(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class u extends t{generateBalanceCheckErrors(t){const e={};return null===t||(e.encryptedCardNumber={isValid:!1,errorMessage:`error.giftcard.${t}`,error:t}),e}isBalanceCheckError(t){return["no-balance","card-error","currency-error"].includes(t)}render(t,{focusedElement:i,balance:l,transactionLimit:u,isValidating:d,transformedErrors:p}){const{i18n:h}=o();c({errors:p,isValidating:d,sfp:this.sfp});const m=u?.value<l?.value?u:l,f=m?.value>=this.props.amount?.value;if(m&&f)return e(a,{amount:this.props.amount,balance:l,transactionLimit:u,makePayment:t.makePayment,status:this.state.status,makeBalanceCheck:t.makeBalanceCheck,showPayButton:this.props.showPayButton,payButton:this.props.payButton});const y=t=>t.errors.encryptedCardNumber?h.get(t.errors.encryptedCardNumber):p.encryptedCardNumber?h.get(p.encryptedCardNumber.errorMessage):null;return e("div",{className:"adyen-checkout__giftcard"},"error"===this.state.status&&e(s,{icon:"cross"},h.get("error.message.unknown")),e(r,{...this.props,ref:t=>{this.sfp=t},onChange:this.onChange,onFocus:this.handleFocus,onSubmitAnalytics:t.onSubmitAnalytics,type:n,componentType:t.type,render:({setRootNode:t,setFocusOn:e},r)=>this.props.fieldsLayoutComponent({i18n:h,pinRequired:this.props.pinRequired,focusedElement:i,getCardErrorMessage:y,setRootNode:t,setFocusOn:e,sfpState:r})}),this.props.showPayButton&&this.props.payButton({status:this.state.status,onClick:this.props.makeBalanceCheck,label:h.get("applyGiftcard")}))}constructor(...t){super(...t),l(this,"state",{status:"ready",data:{},balance:null,transactionLimit:null,focusedElement:!1,isValid:!1,sfpState:{},isValidating:!1,transformedErrors:{}}),l(this,"sfp",void 0),l(this,"mapErrorsToValidationObjects",()=>this.sfp?this.sfp.mapErrorsToValidationRuleResult():{}),l(this,"updateTransformedErrors",t=>{const e={...this.mapErrorsToValidationObjects(),...t};this.setState({transformedErrors:e})}),l(this,"onChange",t=>{this.setState({sfpState:t},()=>this.updateTransformedErrors()),this.props.onChange({data:t.data,isValid:t.isSfpValid})}),l(this,"handleFocus",t=>{this.setState({focusedElement:t.currentFocusObject});!0===t.focus?this.props.onFocus(t):this.props.onBlur(t)}),l(this,"setBalance",({balance:t,transactionLimit:e})=>{this.setState({balance:t,transactionLimit:e})}),l(this,"setBalanceCheckErrors",t=>{if(this.isBalanceCheckError(t)){const e=this.generateBalanceCheckErrors(t);this.updateTransformedErrors(e)}}),l(this,"showValidation",()=>{this.setState({isValidating:!0}),this.sfp?.showValidation()})}}l(u,"defaultProps",{pinRequired:!0,expiryDateRequired:!1,onChange:()=>{},onFocus:()=>{},onBlur:()=>{},fieldsLayoutComponent:i});export{u as default};
1
+ import{Component as t,createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import s from"../../internal/Alert/Alert.js";import a from"./GiftcardResult.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";import{GIFT_CARD as i}from"../../internal/SecuredFields/lib/constants.js";import{GiftCardFields as n}from"./GiftcardFields.js";import{useSRPanelForGiftcardErrors as c}from"./useSRPanelForGiftcardErrors.js";import{useAmount as l}from"../../../core/Context/AmountProvider.js";function d(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class u extends t{generateBalanceCheckErrors(t){const e={};return null===t||(e.encryptedCardNumber={isValid:!1,errorMessage:`error.giftcard.${t}`,error:t}),e}isBalanceCheckError(t){return["no-balance","card-error","currency-error"].includes(t)}render(t,{focusedElement:n,balance:d,transactionLimit:u,isValidating:p,transformedErrors:h}){const{i18n:m}=o(),{amount:f}=l();c({errors:h,isValidating:p,setIsValidating:this.setIsValidating,sfp:this.sfp});const g=u?.value<d?.value?u:d;if(g&&g?.value>=f?.value)return e(a,{balance:d,transactionLimit:u,makePayment:t.makePayment,status:this.state.status,makeBalanceCheck:t.makeBalanceCheck,showPayButton:this.props.showPayButton,payButton:this.props.payButton});const y=t=>t.errors.encryptedCardNumber?m.get(t.errors.encryptedCardNumber):h.encryptedCardNumber?m.get(h.encryptedCardNumber.errorMessage):null;return e("div",{className:"adyen-checkout__giftcard"},"error"===this.state.status&&e(s,{icon:"cross"},m.get("error.message.unknown")),e(r,{...this.props,ref:t=>{this.sfp=t},onChange:this.onChange,onFocus:this.handleFocus,onSubmitAnalytics:t.onSubmitAnalytics,type:i,componentType:t.type,render:({setRootNode:t,setFocusOn:e},r)=>this.props.fieldsLayoutComponent({i18n:m,pinRequired:this.props.pinRequired,focusedElement:n,getCardErrorMessage:y,setRootNode:t,setFocusOn:e,sfpState:r})}),this.props.showPayButton&&this.props.payButton({status:this.state.status,onClick:this.props.makeBalanceCheck,label:m.get("applyGiftcard")}))}constructor(...t){super(...t),d(this,"state",{status:"ready",data:{},balance:null,transactionLimit:null,focusedElement:!1,isValid:!1,sfpState:{},isValidating:!1,transformedErrors:{}}),d(this,"sfp",void 0),d(this,"mapErrorsToValidationObjects",()=>this.sfp?this.sfp.mapErrorsToValidationRuleResult():{}),d(this,"updateTransformedErrors",t=>{const e={...this.mapErrorsToValidationObjects(),...t};this.setState({transformedErrors:e})}),d(this,"onChange",t=>{this.setState({sfpState:t},()=>this.updateTransformedErrors()),this.props.onChange({data:t.data,isValid:t.isSfpValid})}),d(this,"handleFocus",t=>{this.setState({focusedElement:t.currentFocusObject});!0===t.focus?this.props.onFocus(t):this.props.onBlur(t)}),d(this,"setBalance",({balance:t,transactionLimit:e})=>{this.setState({balance:t,transactionLimit:e})}),d(this,"setBalanceCheckErrors",t=>{if(this.isBalanceCheckError(t)){const e=this.generateBalanceCheckErrors(t);this.updateTransformedErrors(e)}}),d(this,"showValidation",()=>{this.setState({isValidating:!0}),this.sfp?.showValidation()}),d(this,"setIsValidating",t=>{this.setState({isValidating:t})})}}d(u,"defaultProps",{pinRequired:!0,expiryDateRequired:!1,onChange:()=>{},onFocus:()=>{},onBlur:()=>{},fieldsLayoutComponent:n});export{u as default};
2
2
  //# sourceMappingURL=GiftcardComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GiftcardComponent.js","sources":["../../../../../src/components/Giftcard/components/GiftcardComponent.tsx"],"sourcesContent":["import { Component, FunctionComponent, h } from 'preact';\nimport SecuredFieldsProvider from '../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport Alert from '../../internal/Alert';\nimport GiftcardResult from './GiftcardResult';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { GIFT_CARD } from '../../internal/SecuredFields/lib/constants';\nimport { GiftCardFields } from './GiftcardFields';\nimport { GiftcardFieldsProps, Placeholders } from './types';\nimport { useSRPanelForGiftcardErrors } from './useSRPanelForGiftcardErrors';\nimport { GiftCardBalanceCheckErrorType } from '../types';\nimport type { AbstractAnalyticsEvent } from '../../../core/Analytics/events/AbstractAnalyticsEvent';\n\ninterface GiftcardComponentProps {\n onChange: (state) => void;\n onFocus: (event) => void;\n onBlur: (event) => void;\n\n makeBalanceCheck: (event) => void;\n makePayment: (event) => void;\n\n amount?: PaymentAmount;\n showPayButton: boolean;\n payButton: (config) => any;\n\n pinRequired: boolean;\n expiryDateRequired?: boolean;\n fieldsLayoutComponent: FunctionComponent<GiftcardFieldsProps>;\n placeholders?: Placeholders;\n handleKeyPress?: (o: KeyboardEvent) => void;\n onSubmitAnalytics?: (event: AbstractAnalyticsEvent) => void;\n}\n\nclass Giftcard extends Component<GiftcardComponentProps> {\n public state = {\n status: 'ready',\n data: {},\n balance: null,\n transactionLimit: null,\n focusedElement: false,\n isValid: false,\n sfpState: {},\n isValidating: false,\n transformedErrors: {}\n };\n\n public static defaultProps = {\n pinRequired: true,\n expiryDateRequired: false,\n onChange: () => {},\n onFocus: () => {},\n onBlur: () => {},\n fieldsLayoutComponent: GiftCardFields\n };\n\n public sfp: SecuredFieldsProvider;\n\n /**\n * Maps string error codes from SecuredFields to validation rule objects\n */\n public mapErrorsToValidationObjects = () => {\n // Use the sfp reference to call mapErrorsToValidationRuleResult\n if (!this.sfp) return {};\n return this.sfp.mapErrorsToValidationRuleResult();\n };\n\n private updateTransformedErrors = (balanceCheckErrors?: Record<string, any>) => {\n const transformedErrors = this.mapErrorsToValidationObjects();\n\n const mergedErrors = { ...transformedErrors, ...balanceCheckErrors };\n\n this.setState({ transformedErrors: mergedErrors });\n };\n\n public onChange = sfpState => {\n this.setState({ sfpState }, () => this.updateTransformedErrors());\n\n this.props.onChange({\n data: sfpState.data,\n isValid: sfpState.isSfpValid\n });\n };\n\n public handleFocus = e => {\n this.setState({ focusedElement: e.currentFocusObject });\n\n const isFocused = e.focus === true;\n if (isFocused) {\n this.props.onFocus(e);\n } else {\n this.props.onBlur(e);\n }\n };\n\n public setBalance = ({ balance, transactionLimit }) => {\n this.setState({ balance, transactionLimit });\n };\n\n /**\n * Generates balance check errors in the same format as SFP errors\n * Compatible with the transformedErrors structure\n */\n private generateBalanceCheckErrors(errorType?: GiftCardBalanceCheckErrorType | null): Record<string, any> {\n const balanceCheckErrors: Record<string, any> = {};\n\n // This is the field that the error is associated with, only used for SR logic\n const fieldToAnnounce = 'encryptedCardNumber';\n\n // If errorType is null, clear errors\n if (errorType === null) {\n return balanceCheckErrors;\n }\n\n // Create error in the same format as SFP errors for consistency\n balanceCheckErrors[fieldToAnnounce] = {\n isValid: false,\n errorMessage: `error.giftcard.${errorType}`,\n error: errorType\n };\n\n return balanceCheckErrors;\n }\n\n /**\n * Checks if a status represents a balance check error\n */\n private isBalanceCheckError(status: string): boolean {\n return ['no-balance', 'card-error', 'currency-error'].includes(status);\n }\n\n /**\n * Method called by GiftcardElement to set balance check errors only\n */\n public setBalanceCheckErrors = (errorType: GiftCardBalanceCheckErrorType | null): void => {\n // Check if the errors should be displayed\n if (this.isBalanceCheckError(errorType)) {\n // Generate balance check errors in the style of useForm\n // This is usefull because then we can use the same logic for SF and balance check errors\n // Also we can use the same logic for SRPanel errors\n const balanceCheckErrors = this.generateBalanceCheckErrors(errorType);\n this.updateTransformedErrors(balanceCheckErrors);\n }\n };\n\n public showValidation = () => {\n this.setState({ isValidating: true });\n\n // Validate SecuredFields\n this.sfp?.showValidation();\n };\n\n render(props, { focusedElement, balance, transactionLimit, isValidating, transformedErrors }) {\n const { i18n } = useCoreContext();\n\n // Handle SRPanel errors in render with transformed error objects\n useSRPanelForGiftcardErrors({\n errors: transformedErrors,\n isValidating,\n sfp: this.sfp\n });\n\n const transactionAmount = transactionLimit?.value < balance?.value ? transactionLimit : balance;\n const hasEnoughBalance = transactionAmount?.value >= this.props.amount?.value;\n\n if (transactionAmount && hasEnoughBalance) {\n return (\n <GiftcardResult\n amount={this.props.amount}\n balance={balance}\n transactionLimit={transactionLimit}\n makePayment={props.makePayment}\n status={this.state.status}\n makeBalanceCheck={props.makeBalanceCheck}\n showPayButton={this.props.showPayButton}\n payButton={this.props.payButton}\n />\n );\n }\n\n const getCardErrorMessage = sfpState => {\n if (sfpState.errors.encryptedCardNumber) return i18n.get(sfpState.errors.encryptedCardNumber);\n\n // This logic is a bit of a hack, but it's the only way to get the error message for balance check errors\n // In the future we should move this logic to useForm\n if (transformedErrors.encryptedCardNumber) {\n return i18n.get(transformedErrors.encryptedCardNumber.errorMessage);\n }\n\n return null;\n };\n\n return (\n <div className=\"adyen-checkout__giftcard\">\n {this.state.status === 'error' && <Alert icon={'cross'}>{i18n.get('error.message.unknown')}</Alert>}\n\n <SecuredFieldsProvider\n {...this.props}\n ref={ref => {\n this.sfp = ref;\n }}\n onChange={this.onChange}\n onFocus={this.handleFocus}\n onSubmitAnalytics={props.onSubmitAnalytics}\n type={GIFT_CARD}\n componentType={props.type}\n render={({ setRootNode, setFocusOn }, sfpState) =>\n this.props.fieldsLayoutComponent({\n i18n: i18n,\n pinRequired: this.props.pinRequired,\n focusedElement: focusedElement,\n getCardErrorMessage: getCardErrorMessage,\n setRootNode: setRootNode,\n setFocusOn: setFocusOn,\n sfpState: sfpState\n })\n }\n />\n\n {this.props.showPayButton &&\n this.props.payButton({\n status: this.state.status,\n onClick: this.props.makeBalanceCheck,\n label: i18n.get('applyGiftcard')\n })}\n </div>\n );\n }\n}\n\nexport default Giftcard;\n"],"names":["Giftcard","Component","generateBalanceCheckErrors","errorType","balanceCheckErrors","isValid","errorMessage","error","isBalanceCheckError","status","includes","render","props","focusedElement","balance","transactionLimit","isValidating","transformedErrors","i18n","useCoreContext","useSRPanelForGiftcardErrors","errors","sfp","this","transactionAmount","value","hasEnoughBalance","amount","h","GiftcardResult","makePayment","state","makeBalanceCheck","showPayButton","payButton","getCardErrorMessage","sfpState","encryptedCardNumber","get","div","className","Alert","icon","SecuredFieldsProvider","ref","onChange","onFocus","handleFocus","onSubmitAnalytics","type","GIFT_CARD","componentType","setRootNode","setFocusOn","fieldsLayoutComponent","pinRequired","onClick","label","super","args","_define_property","data","mapErrorsToValidationObjects","mapErrorsToValidationRuleResult","updateTransformedErrors","mergedErrors","setState","isSfpValid","e","currentFocusObject","focus","onBlur","setBalance","setBalanceCheckErrors","showValidation","defaultProps","expiryDateRequired","GiftCardFields"],"mappings":"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"}
1
+ {"version":3,"file":"GiftcardComponent.js","sources":["../../../../../src/components/Giftcard/components/GiftcardComponent.tsx"],"sourcesContent":["import { Component, FunctionComponent, h } from 'preact';\nimport SecuredFieldsProvider from '../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport Alert from '../../internal/Alert';\nimport GiftcardResult from './GiftcardResult';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { GIFT_CARD } from '../../internal/SecuredFields/lib/constants';\nimport { GiftCardFields } from './GiftcardFields';\nimport { GiftcardFieldsProps, Placeholders } from './types';\nimport { useSRPanelForGiftcardErrors } from './useSRPanelForGiftcardErrors';\nimport { GiftCardBalanceCheckErrorType } from '../types';\nimport { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport { useAmount } from '../../../core/Context/AmountProvider';\nimport type { AbstractAnalyticsEvent } from '../../../core/Analytics/events/AbstractAnalyticsEvent';\n\ninterface GiftcardComponentProps {\n onChange: (state) => void;\n onFocus: (event) => void;\n onBlur: (event) => void;\n makeBalanceCheck: (event) => void;\n makePayment: (event) => void;\n showPayButton: boolean;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n pinRequired: boolean;\n expiryDateRequired?: boolean;\n fieldsLayoutComponent: FunctionComponent<GiftcardFieldsProps>;\n placeholders?: Placeholders;\n handleKeyPress?: (o: KeyboardEvent) => void;\n onSubmitAnalytics?: (event: AbstractAnalyticsEvent) => void;\n}\n\nclass Giftcard extends Component<GiftcardComponentProps> {\n public state = {\n status: 'ready',\n data: {},\n balance: null,\n transactionLimit: null,\n focusedElement: false,\n isValid: false,\n sfpState: {},\n isValidating: false,\n transformedErrors: {}\n };\n\n public static defaultProps = {\n pinRequired: true,\n expiryDateRequired: false,\n onChange: () => {},\n onFocus: () => {},\n onBlur: () => {},\n fieldsLayoutComponent: GiftCardFields\n };\n\n public sfp: SecuredFieldsProvider;\n\n /**\n * Maps string error codes from SecuredFields to validation rule objects\n */\n public mapErrorsToValidationObjects = () => {\n // Use the sfp reference to call mapErrorsToValidationRuleResult\n if (!this.sfp) return {};\n return this.sfp.mapErrorsToValidationRuleResult();\n };\n\n private updateTransformedErrors = (balanceCheckErrors?: Record<string, any>) => {\n const transformedErrors = this.mapErrorsToValidationObjects();\n\n const mergedErrors = { ...transformedErrors, ...balanceCheckErrors };\n\n this.setState({ transformedErrors: mergedErrors });\n };\n\n public onChange = sfpState => {\n this.setState({ sfpState }, () => this.updateTransformedErrors());\n\n this.props.onChange({\n data: sfpState.data,\n isValid: sfpState.isSfpValid\n });\n };\n\n public handleFocus = e => {\n this.setState({ focusedElement: e.currentFocusObject });\n\n const isFocused = e.focus === true;\n if (isFocused) {\n this.props.onFocus(e);\n } else {\n this.props.onBlur(e);\n }\n };\n\n public setBalance = ({ balance, transactionLimit }) => {\n this.setState({ balance, transactionLimit });\n };\n\n /**\n * Generates balance check errors in the same format as SFP errors\n * Compatible with the transformedErrors structure\n */\n private generateBalanceCheckErrors(errorType?: GiftCardBalanceCheckErrorType | null): Record<string, any> {\n const balanceCheckErrors: Record<string, any> = {};\n\n // This is the field that the error is associated with, only used for SR logic\n const fieldToAnnounce = 'encryptedCardNumber';\n\n // If errorType is null, clear errors\n if (errorType === null) {\n return balanceCheckErrors;\n }\n\n // Create error in the same format as SFP errors for consistency\n balanceCheckErrors[fieldToAnnounce] = {\n isValid: false,\n errorMessage: `error.giftcard.${errorType}`,\n error: errorType\n };\n\n return balanceCheckErrors;\n }\n\n /**\n * Checks if a status represents a balance check error\n */\n private isBalanceCheckError(status: string): boolean {\n return ['no-balance', 'card-error', 'currency-error'].includes(status);\n }\n\n /**\n * Method called by GiftcardElement to set balance check errors only\n */\n public setBalanceCheckErrors = (errorType: GiftCardBalanceCheckErrorType | null): void => {\n // Check if the errors should be displayed\n if (this.isBalanceCheckError(errorType)) {\n // Generate balance check errors in the style of useForm\n // This is usefull because then we can use the same logic for SF and balance check errors\n // Also we can use the same logic for SRPanel errors\n const balanceCheckErrors = this.generateBalanceCheckErrors(errorType);\n this.updateTransformedErrors(balanceCheckErrors);\n }\n };\n\n public showValidation = () => {\n this.setState({ isValidating: true });\n\n // Validate SecuredFields\n this.sfp?.showValidation();\n };\n\n public setIsValidating = (val: boolean) => {\n this.setState({ isValidating: val });\n };\n\n render(props, { focusedElement, balance, transactionLimit, isValidating, transformedErrors }) {\n const { i18n } = useCoreContext();\n const { amount } = useAmount();\n\n // Handle SRPanel errors in render with transformed error objects\n useSRPanelForGiftcardErrors({\n errors: transformedErrors,\n isValidating,\n setIsValidating: this.setIsValidating,\n sfp: this.sfp\n });\n\n const transactionAmount = transactionLimit?.value < balance?.value ? transactionLimit : balance;\n const hasEnoughBalance = transactionAmount?.value >= amount?.value;\n\n if (transactionAmount && hasEnoughBalance) {\n return (\n <GiftcardResult\n balance={balance}\n transactionLimit={transactionLimit}\n makePayment={props.makePayment}\n status={this.state.status}\n makeBalanceCheck={props.makeBalanceCheck}\n showPayButton={this.props.showPayButton}\n payButton={this.props.payButton}\n />\n );\n }\n\n const getCardErrorMessage = sfpState => {\n if (sfpState.errors.encryptedCardNumber) return i18n.get(sfpState.errors.encryptedCardNumber);\n\n // This logic is a bit of a hack, but it's the only way to get the error message for balance check errors\n // In the future we should move this logic to useForm\n if (transformedErrors.encryptedCardNumber) {\n return i18n.get(transformedErrors.encryptedCardNumber.errorMessage);\n }\n\n return null;\n };\n\n return (\n <div className=\"adyen-checkout__giftcard\">\n {this.state.status === 'error' && <Alert icon={'cross'}>{i18n.get('error.message.unknown')}</Alert>}\n\n <SecuredFieldsProvider\n {...this.props}\n ref={ref => {\n this.sfp = ref;\n }}\n onChange={this.onChange}\n onFocus={this.handleFocus}\n onSubmitAnalytics={props.onSubmitAnalytics}\n type={GIFT_CARD}\n componentType={props.type}\n render={({ setRootNode, setFocusOn }, sfpState) =>\n this.props.fieldsLayoutComponent({\n i18n: i18n,\n pinRequired: this.props.pinRequired,\n focusedElement: focusedElement,\n getCardErrorMessage: getCardErrorMessage,\n setRootNode: setRootNode,\n setFocusOn: setFocusOn,\n sfpState: sfpState\n })\n }\n />\n\n {this.props.showPayButton &&\n this.props.payButton({\n status: this.state.status,\n onClick: this.props.makeBalanceCheck,\n label: i18n.get('applyGiftcard')\n })}\n </div>\n );\n }\n}\n\nexport default Giftcard;\n"],"names":["Giftcard","Component","generateBalanceCheckErrors","errorType","balanceCheckErrors","isValid","errorMessage","error","isBalanceCheckError","status","includes","render","props","focusedElement","balance","transactionLimit","isValidating","transformedErrors","i18n","useCoreContext","amount","useAmount","useSRPanelForGiftcardErrors","errors","setIsValidating","this","sfp","transactionAmount","value","h","GiftcardResult","makePayment","state","makeBalanceCheck","showPayButton","payButton","getCardErrorMessage","sfpState","encryptedCardNumber","get","div","className","Alert","icon","SecuredFieldsProvider","ref","onChange","onFocus","handleFocus","onSubmitAnalytics","type","GIFT_CARD","componentType","setRootNode","setFocusOn","fieldsLayoutComponent","pinRequired","onClick","label","super","args","_define_property","data","mapErrorsToValidationObjects","mapErrorsToValidationRuleResult","updateTransformedErrors","mergedErrors","setState","isSfpValid","e","currentFocusObject","focus","onBlur","setBalance","setBalanceCheckErrors","showValidation","val","defaultProps","expiryDateRequired","GiftCardFields"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as a}from"../../../external/preact/dist/preact.js";import{useCoreContext as e}from"../../../core/Context/CoreProvider.js";function t({amount:t,balance:c,transactionLimit:n,status:l,makePayment:_,showPayButton:u,payButton:r}){const{i18n:s}=e(),i=t.value>n?.value?n:t,o=c?.value-i?.value;return a("div",{className:"adyen-checkout__giftcard-result"},a("ul",{className:"adyen-checkout__giftcard-result__balance"},a("li",{className:"adyen-checkout__giftcard-result__balance__item"},a("span",{className:"adyen-checkout__giftcard-result__balance__title"},s.get("giftcardBalance")),a("span",{className:"adyen-checkout__giftcard-result__balance__value adyen-checkout__giftcard-result__balance__value--amount"},s.amount(c.value,c.currency))),n&&n.value&&a("li",{className:"adyen-checkout__giftcard-result__balance__item"},a("span",{className:"adyen-checkout__giftcard-result__balance__title adyen-checkout__giftcard-result__balance__title--transactionLimit"},s.get("giftcardTransactionLimit",{values:{amount:s.amount(n.value,n.currency)}})))),u&&r({amount:i,status:l,onClick:_}),a("p",{className:"adyen-checkout__giftcard-result__remaining-balance"},s.get("partialPayment.remainingBalance",{values:{amount:s.amount(o,c.currency)}})))}export{t as default};
1
+ import{createElement as a}from"../../../external/preact/dist/preact.js";import{useCoreContext as e}from"../../../core/Context/CoreProvider.js";import{useAmount as t}from"../../../core/Context/AmountProvider.js";function c({balance:c,transactionLimit:n,status:r,makePayment:l,showPayButton:u,payButton:_}){const{i18n:s}=e(),{amount:i}=t(),o=i.value>n?.value?n:i,m=c?.value-o?.value;return a("div",{className:"adyen-checkout__giftcard-result"},a("ul",{className:"adyen-checkout__giftcard-result__balance"},a("li",{className:"adyen-checkout__giftcard-result__balance__item"},a("span",{className:"adyen-checkout__giftcard-result__balance__title"},s.get("giftcardBalance")),a("span",{className:"adyen-checkout__giftcard-result__balance__value adyen-checkout__giftcard-result__balance__value--amount"},s.amount(c.value,c.currency))),n&&n.value&&a("li",{className:"adyen-checkout__giftcard-result__balance__item"},a("span",{className:"adyen-checkout__giftcard-result__balance__title adyen-checkout__giftcard-result__balance__title--transactionLimit"},s.get("giftcardTransactionLimit",{values:{amount:s.amount(n.value,n.currency)}})))),u&&_({customAmount:o,status:r,onClick:l}),a("p",{className:"adyen-checkout__giftcard-result__remaining-balance"},s.get("partialPayment.remainingBalance",{values:{amount:s.amount(m,c.currency)}})))}export{c as default};
2
2
  //# sourceMappingURL=GiftcardResult.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GiftcardResult.js","sources":["../../../../../src/components/Giftcard/components/GiftcardResult.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './GiftcardResult.scss';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { PayButtonProps } from '../../internal/PayButton/PayButton';\n\ninterface GiftcardResultProps {\n amount: PaymentAmount;\n balance: PaymentAmount;\n transactionLimit: PaymentAmount;\n status: string;\n makePayment: () => void;\n makeBalanceCheck: () => void;\n showPayButton: boolean;\n payButton(props?: PayButtonProps): h.JSX.Element;\n}\n\nfunction GiftcardResult({ amount, balance, transactionLimit, status, makePayment, showPayButton, payButton }: GiftcardResultProps) {\n const { i18n } = useCoreContext();\n // Calculate the transaction amount based on balance and transaction limit\n const transactionAmount = amount.value > transactionLimit?.value ? transactionLimit : amount;\n const remainingBalance = balance?.value - transactionAmount?.value;\n\n return (\n <div className=\"adyen-checkout__giftcard-result\">\n <ul className=\"adyen-checkout__giftcard-result__balance\">\n <li className=\"adyen-checkout__giftcard-result__balance__item\">\n <span className=\"adyen-checkout__giftcard-result__balance__title\">{i18n.get('giftcardBalance')}</span>\n <span className=\"adyen-checkout__giftcard-result__balance__value adyen-checkout__giftcard-result__balance__value--amount\">\n {i18n.amount(balance.value, balance.currency)}\n </span>\n </li>\n {transactionLimit && transactionLimit.value && (\n <li className=\"adyen-checkout__giftcard-result__balance__item\">\n <span className=\"adyen-checkout__giftcard-result__balance__title adyen-checkout__giftcard-result__balance__title--transactionLimit\">\n {i18n.get('giftcardTransactionLimit', {\n values: { amount: i18n.amount(transactionLimit.value, transactionLimit.currency) }\n })}\n </span>\n </li>\n )}\n </ul>\n\n {showPayButton &&\n payButton({\n amount: transactionAmount,\n status: status,\n onClick: makePayment\n })}\n\n <p className=\"adyen-checkout__giftcard-result__remaining-balance\">\n {i18n.get('partialPayment.remainingBalance', {\n values: { amount: i18n.amount(remainingBalance, balance.currency) }\n })}\n </p>\n </div>\n );\n}\n\nexport default GiftcardResult;\n"],"names":["GiftcardResult","amount","balance","transactionLimit","status","makePayment","showPayButton","payButton","i18n","useCoreContext","transactionAmount","value","remainingBalance","h","div","className","ul","li","span","get","currency","values","onClick","p"],"mappings":"+IAiBA,SAASA,GAAeC,OAAEA,EAAMC,QAAEA,EAAOC,iBAAEA,EAAgBC,OAAEA,EAAMC,YAAEA,EAAWC,cAAEA,EAAaC,UAAEA,IAC7F,MAAMC,KAAEA,GAASC,IAEXC,EAAoBT,EAAOU,MAAQR,GAAkBQ,MAAQR,EAAmBF,EAChFW,EAAmBV,GAASS,MAAQD,GAAmBC,MAE7D,OACIE,EAACC,MAAAA,CAAIC,UAAU,mCACXF,EAACG,KAAAA,CAAGD,UAAU,4CACVF,EAACI,KAAAA,CAAGF,UAAU,kDACVF,EAACK,OAAAA,CAAKH,UAAU,mDAAmDP,EAAKW,IAAI,oBAC5EN,EAACK,OAAAA,CAAKH,UAAU,2GACXP,EAAKP,OAAOC,EAAQS,MAAOT,EAAQkB,YAG3CjB,GAAoBA,EAAiBQ,OAClCE,EAACI,KAAAA,CAAGF,UAAU,kDACVF,EAACK,OAAAA,CAAKH,UAAU,qHACXP,EAAKW,IAAI,2BAA4B,CAClCE,OAAQ,CAAEpB,OAAQO,EAAKP,OAAOE,EAAiBQ,MAAOR,EAAiBiB,gBAO1Fd,GACGC,EAAU,CACNN,OAAQS,EACRN,OAAQA,EACRkB,QAASjB,IAGjBQ,EAACU,IAAAA,CAAER,UAAU,sDACRP,EAAKW,IAAI,kCAAmC,CACzCE,OAAQ,CAAEpB,OAAQO,EAAKP,OAAOW,EAAkBV,EAAQkB,cAK5E"}
1
+ {"version":3,"file":"GiftcardResult.js","sources":["../../../../../src/components/Giftcard/components/GiftcardResult.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './GiftcardResult.scss';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\ninterface GiftcardResultProps {\n balance: PaymentAmount;\n transactionLimit: PaymentAmount;\n status: string;\n makePayment: () => void;\n makeBalanceCheck: () => void;\n showPayButton: boolean;\n payButton(props: PayButtonProps): h.JSX.Element;\n}\n\nfunction GiftcardResult({ balance, transactionLimit, status, makePayment, showPayButton, payButton }: GiftcardResultProps) {\n const { i18n } = useCoreContext();\n const { amount } = useAmount();\n\n // Calculate the transaction amount based on balance and transaction limit\n const transactionAmount = amount.value > transactionLimit?.value ? transactionLimit : amount;\n const remainingBalance = balance?.value - transactionAmount?.value;\n\n return (\n <div className=\"adyen-checkout__giftcard-result\">\n <ul className=\"adyen-checkout__giftcard-result__balance\">\n <li className=\"adyen-checkout__giftcard-result__balance__item\">\n <span className=\"adyen-checkout__giftcard-result__balance__title\">{i18n.get('giftcardBalance')}</span>\n <span className=\"adyen-checkout__giftcard-result__balance__value adyen-checkout__giftcard-result__balance__value--amount\">\n {i18n.amount(balance.value, balance.currency)}\n </span>\n </li>\n {transactionLimit && transactionLimit.value && (\n <li className=\"adyen-checkout__giftcard-result__balance__item\">\n <span className=\"adyen-checkout__giftcard-result__balance__title adyen-checkout__giftcard-result__balance__title--transactionLimit\">\n {i18n.get('giftcardTransactionLimit', {\n values: { amount: i18n.amount(transactionLimit.value, transactionLimit.currency) }\n })}\n </span>\n </li>\n )}\n </ul>\n\n {showPayButton &&\n payButton({\n customAmount: transactionAmount,\n status: status,\n onClick: makePayment\n })}\n\n <p className=\"adyen-checkout__giftcard-result__remaining-balance\">\n {i18n.get('partialPayment.remainingBalance', {\n values: { amount: i18n.amount(remainingBalance, balance.currency) }\n })}\n </p>\n </div>\n );\n}\n\nexport default GiftcardResult;\n"],"names":["GiftcardResult","balance","transactionLimit","status","makePayment","showPayButton","payButton","i18n","useCoreContext","amount","useAmount","transactionAmount","value","remainingBalance","h","div","className","ul","li","span","get","currency","values","customAmount","onClick","p"],"mappings":"mNAiBA,SAASA,GAAeC,QAAEA,EAAOC,iBAAEA,EAAgBC,OAAEA,EAAMC,YAAEA,EAAWC,cAAEA,EAAaC,UAAEA,IACrF,MAAMC,KAAEA,GAASC,KACXC,OAAEA,GAAWC,IAGbC,EAAoBF,EAAOG,MAAQV,GAAkBU,MAAQV,EAAmBO,EAChFI,EAAmBZ,GAASW,MAAQD,GAAmBC,MAE7D,OACIE,EAACC,MAAAA,CAAIC,UAAU,mCACXF,EAACG,KAAAA,CAAGD,UAAU,4CACVF,EAACI,KAAAA,CAAGF,UAAU,kDACVF,EAACK,OAAAA,CAAKH,UAAU,mDAAmDT,EAAKa,IAAI,oBAC5EN,EAACK,OAAAA,CAAKH,UAAU,2GACXT,EAAKE,OAAOR,EAAQW,MAAOX,EAAQoB,YAG3CnB,GAAoBA,EAAiBU,OAClCE,EAACI,KAAAA,CAAGF,UAAU,kDACVF,EAACK,OAAAA,CAAKH,UAAU,qHACXT,EAAKa,IAAI,2BAA4B,CAClCE,OAAQ,CAAEb,OAAQF,EAAKE,OAAOP,EAAiBU,MAAOV,EAAiBmB,gBAO1FhB,GACGC,EAAU,CACNiB,aAAcZ,EACdR,OAAQA,EACRqB,QAASpB,IAGjBU,EAACW,IAAAA,CAAET,UAAU,sDACRT,EAAKa,IAAI,kCAAmC,CACzCE,OAAQ,CAAEb,OAAQF,EAAKE,OAAOI,EAAkBZ,EAAQoB,cAK5E"}
@@ -1,2 +1,2 @@
1
- import{useState as s,useEffect as e}from"../../../external/preact/hooks/dist/hooks.js";import r from"../../../core/Errors/useSRPanelContext.js";import{usePrevious as o}from"../../../utils/hookUtils.js";import{ERROR_ACTION_BLUR_SCENARIO as t,ERROR_ACTION_FOCUS_FIELD as a}from"../../../core/Errors/constants.js";import{getArrayDifferences as c}from"../../../utils/arrayUtils.js";const i=({errors:i,isValidating:n,sfp:l})=>{const[u,m]=s(null),p=o(u),{setSRMessagesFromObjects:d,setSRMessagesFromStrings:f,clearSRPanel:y,shouldMoveFocusSR:S}=r(),g=["encryptedCardNumber","encryptedExpiryDate","encryptedSecurityCode"];e(()=>{try{const s=d?.({}),e=s?.({errors:i,isValidating:n,layout:g}),r=e?.currentErrorsSortedByLayout;switch(m(r),e?.action){case a:S&&l?.setFocusOn(e?.fieldToFocus),setTimeout(()=>{"boolean"==typeof n&&(n=!1)},300);break;case t:{const s=c(r,p,"field"),e=s?.[0];if(e){const s=!0?e.errorMessage:null;f(s)}else y();break}}}catch(s){}},[i])};export{i as useSRPanelForGiftcardErrors};
1
+ import{useState as e,useEffect as s}from"../../../external/preact/hooks/dist/hooks.js";import r from"../../../core/Errors/useSRPanelContext.js";import{usePrevious as o}from"../../../utils/hookUtils.js";import{ERROR_ACTION_BLUR_SCENARIO as t,ERROR_ACTION_FOCUS_FIELD as i}from"../../../core/Errors/constants.js";import{getArrayDifferences as a}from"../../../utils/arrayUtils.js";import c from"../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{windowScrollTo as l}from"../../../utils/windowScrollTo.js";const n=({errors:n,isValidating:u,setIsValidating:d,sfp:m})=>{const[f,S]=e(null),p=o(f),{setSRMessagesFromObjects:y,setSRMessagesFromStrings:g,clearSRPanel:j,shouldMoveFocusSR:F}=r(),h=["encryptedCardNumber","encryptedExpiryDate","encryptedSecurityCode"];s(()=>{try{const e=y?.({}),s=e?.({errors:n,isValidating:u,layout:h}),r=s?.currentErrorsSortedByLayout;switch(S(r),s?.action){case i:if(F&&u){if(c.__IS_IOS){const e=m?.getRootNode(),r=e?.querySelector(`[data-id="${s?.fieldToFocus}"]`);l(r)}m?.setFocusOn(s?.fieldToFocus)}setTimeout(()=>{d(!1)},300);break;case t:{const e=a(r,p,"field"),s=e?.[0];if(s){const e=!0?s.errorMessage:null;g(e)}else j();break}}}catch(e){}},[n])};export{n as useSRPanelForGiftcardErrors};
2
2
  //# sourceMappingURL=useSRPanelForGiftcardErrors.js.map