@adyen/adyen-web 6.30.0 → 6.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/dist/cjs/adyen.css +2 -2
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +557 -484
  6. package/dist/es/adyen.css +2 -2
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  9. package/dist/es/components/Ach/Ach.js +1 -1
  10. package/dist/es/components/Ach/Ach.js.map +1 -1
  11. package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -1
  12. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  13. package/dist/es/components/Affirm/Affirm.js.map +1 -1
  14. package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
  15. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  16. package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
  17. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  18. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  19. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  20. package/dist/es/components/AmazonPay/components/OrderButton.js +1 -1
  21. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  22. package/dist/es/components/AmazonPay/utils.js +1 -1
  23. package/dist/es/components/AmazonPay/utils.js.map +1 -1
  24. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  25. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  26. package/dist/es/components/ApplePay/services/ApplePayService.js +1 -1
  27. package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
  28. package/dist/es/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
  29. package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -1
  30. package/dist/es/components/Atome/Atome.js.map +1 -1
  31. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  32. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  33. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  34. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  35. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  36. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  37. package/dist/es/components/Blik/Blik.js +1 -1
  38. package/dist/es/components/Blik/Blik.js.map +1 -1
  39. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  40. package/dist/es/components/Card/Card.js +1 -1
  41. package/dist/es/components/Card/Card.js.map +1 -1
  42. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  43. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  44. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  45. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  46. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  47. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  48. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  49. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  50. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  51. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  52. package/dist/es/components/Card/components/ClickToPayWrapper.js +1 -1
  53. package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
  54. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  55. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  56. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  57. package/dist/es/components/CashAppPay/services/CashAppService.js +1 -1
  58. package/dist/es/components/CashAppPay/services/CashAppService.js.map +1 -1
  59. package/dist/es/components/CashAppPay/services/types.js.map +1 -1
  60. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  61. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  62. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  63. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  64. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  65. package/dist/es/components/Dropin/Dropin.js +1 -1
  66. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  67. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  68. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  69. package/dist/es/components/Dropin/components/DropinSuccessState.js +2 -0
  70. package/dist/es/components/Dropin/components/DropinSuccessState.js.map +1 -0
  71. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  72. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  73. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  74. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  75. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  76. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  77. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  78. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  79. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  80. package/dist/es/components/Iris/Iris.js +1 -1
  81. package/dist/es/components/Iris/Iris.js.map +1 -1
  82. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  83. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  84. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  85. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  86. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  87. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  88. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  89. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
  90. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  91. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  92. package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  93. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  94. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  95. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  96. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  97. package/dist/es/components/PayTo/PayTo.js +1 -1
  98. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  99. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  100. package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
  101. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  102. package/dist/es/components/PersonalDetails/PersonalDetails.js.map +1 -1
  103. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  104. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  105. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  106. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  107. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  108. package/dist/es/components/Twint/Twint.js +1 -1
  109. package/dist/es/components/Twint/Twint.js.map +1 -1
  110. package/dist/es/components/UPI/UPI.js +1 -1
  111. package/dist/es/components/UPI/UPI.js.map +1 -1
  112. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  113. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  114. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  115. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  116. package/dist/es/components/internal/Address/Specifications.js.map +1 -1
  117. package/dist/es/components/internal/Await/Await.js +1 -1
  118. package/dist/es/components/internal/Await/Await.js.map +1 -1
  119. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  120. package/dist/es/components/internal/Button/Button.js +1 -1
  121. package/dist/es/components/internal/Button/Button.js.map +1 -1
  122. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  123. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  124. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  125. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  126. package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
  127. package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
  128. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
  129. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  130. package/dist/es/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  131. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  132. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  133. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  134. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  135. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  136. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  137. package/dist/es/components/internal/FormFields/InputBase.js +1 -1
  138. package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
  139. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  140. package/dist/es/components/internal/PayButton/PayButton.js +1 -1
  141. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  142. package/dist/es/components/internal/PayButton/utils.js +1 -1
  143. package/dist/es/components/internal/PayButton/utils.js.map +1 -1
  144. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  145. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  146. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  147. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  148. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  149. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  150. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  151. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  152. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  153. package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
  154. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  155. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  156. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  157. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  158. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  159. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  160. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  161. package/dist/es/core/Analytics/AnalyticsService.js.map +1 -1
  162. package/dist/es/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
  163. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  164. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  165. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  166. package/dist/es/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  167. package/dist/es/core/Analytics/utils.js +1 -1
  168. package/dist/es/core/Analytics/utils.js.map +1 -1
  169. package/dist/es/core/CheckoutSession/CheckoutSession.js +1 -1
  170. package/dist/es/core/CheckoutSession/CheckoutSession.js.map +1 -1
  171. package/dist/es/core/Context/AmountProvider.js +2 -0
  172. package/dist/es/core/Context/AmountProvider.js.map +1 -0
  173. package/dist/es/core/Context/Resources.js.map +1 -1
  174. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  175. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  176. package/dist/es/core/config.js +1 -1
  177. package/dist/es/core/core.js +1 -1
  178. package/dist/es/core/core.js.map +1 -1
  179. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  180. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  181. package/dist/es/external/preact/dist/preact.js +1 -1
  182. package/dist/es/external/preact/dist/preact.js.map +1 -1
  183. package/dist/es/external/preact/hooks/dist/hooks.js +1 -1
  184. package/dist/es/external/preact/hooks/dist/hooks.js.map +1 -1
  185. package/dist/es/index.d.ts +557 -484
  186. package/dist/es/language/Language.js.map +1 -1
  187. package/dist/es/utils/Script.js.map +1 -1
  188. package/dist/es/utils/Storage.js +1 -1
  189. package/dist/es/utils/Storage.js.map +1 -1
  190. package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
  191. package/dist/es/utils/Validator/Validator.js.map +1 -1
  192. package/dist/es/utils/amount-util.js +1 -1
  193. package/dist/es/utils/amount-util.js.map +1 -1
  194. package/dist/es/utils/browserInfo.js +1 -1
  195. package/dist/es/utils/browserInfo.js.map +1 -1
  196. package/dist/es/utils/constants/currency-minor-units.js.map +1 -1
  197. package/dist/es/utils/createSdkData.js.map +1 -1
  198. package/dist/es/utils/getErrorMessage.js.map +1 -1
  199. package/dist/es/utils/getProp.js +1 -1
  200. package/dist/es/utils/getProp.js.map +1 -1
  201. package/dist/es/utils/hasOwnProperty.js.map +1 -1
  202. package/dist/es/utils/isValidURL.js.map +1 -1
  203. package/dist/es/utils/listenerUtils.js.map +1 -1
  204. package/dist/es/utils/promiseTimeout.js.map +1 -1
  205. package/dist/es/utils/textUtils.js.map +1 -1
  206. package/dist/es/utils/validator-utils.js.map +1 -1
  207. package/dist/es-legacy/adyen.css +2 -2
  208. package/dist/es-legacy/adyen.css.map +1 -1
  209. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  210. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  211. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  212. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -1
  213. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  214. package/dist/es-legacy/components/Affirm/Affirm.js.map +1 -1
  215. package/dist/es-legacy/components/AfterPay/AfterPay.js.map +1 -1
  216. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  217. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
  218. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  219. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  220. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  221. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js +1 -1
  222. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  223. package/dist/es-legacy/components/AmazonPay/utils.js +1 -1
  224. package/dist/es-legacy/components/AmazonPay/utils.js.map +1 -1
  225. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  226. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  227. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js +1 -1
  228. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
  229. package/dist/es-legacy/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
  230. package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
  231. package/dist/es-legacy/components/Atome/Atome.js.map +1 -1
  232. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  233. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  234. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  235. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  236. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  237. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  238. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  239. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  240. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  241. package/dist/es-legacy/components/Card/Card.js +1 -1
  242. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  243. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  244. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  245. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  246. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  247. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  248. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  249. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  250. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  251. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  252. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  253. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  254. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  255. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  256. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js +1 -1
  257. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  258. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  259. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  260. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  261. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  262. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js +1 -1
  263. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js.map +1 -1
  264. package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
  265. package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
  266. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  267. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  268. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  269. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  270. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  271. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  272. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  273. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  274. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  275. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js +2 -0
  276. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js.map +1 -0
  277. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  278. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  279. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  280. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  281. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  282. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  283. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  284. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  285. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  286. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  287. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  288. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  289. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  290. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  291. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  292. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  293. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  294. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  295. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  296. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  297. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  298. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
  299. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
  300. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  301. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  302. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  303. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  304. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  305. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  306. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  307. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  308. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  309. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  310. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  311. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
  312. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  313. package/dist/es-legacy/components/PersonalDetails/PersonalDetails.js.map +1 -1
  314. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  315. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  316. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  317. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  318. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  319. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  320. package/dist/es-legacy/components/Twint/Twint.js +1 -1
  321. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  322. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  323. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  324. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  325. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  326. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  327. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  328. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  329. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  330. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  331. package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
  332. package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
  333. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  334. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  335. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  336. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  337. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  338. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
  339. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  340. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  341. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  342. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  343. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js.map +1 -1
  344. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  345. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
  346. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
  347. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
  348. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  349. package/dist/es-legacy/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  350. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  351. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  352. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  353. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  354. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  355. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  356. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  357. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  358. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  359. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  360. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  361. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  362. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  363. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  364. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  365. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  366. package/dist/es-legacy/components/internal/PayButton/utils.js +1 -1
  367. package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
  368. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  369. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  370. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  371. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  372. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  373. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  374. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  375. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  376. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  377. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  378. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  379. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  380. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  381. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  382. package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
  383. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  384. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  385. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  386. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  387. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
  388. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  389. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  390. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  391. package/dist/es-legacy/core/Analytics/AnalyticsService.js.map +1 -1
  392. package/dist/es-legacy/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
  393. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  394. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  395. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  396. package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  397. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  398. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  399. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js +1 -1
  400. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js.map +1 -1
  401. package/dist/es-legacy/core/Context/AmountProvider.js +2 -0
  402. package/dist/es-legacy/core/Context/AmountProvider.js.map +1 -0
  403. package/dist/es-legacy/core/Context/Resources.js.map +1 -1
  404. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  405. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  406. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  407. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/utils.js.map +1 -1
  408. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  409. package/dist/es-legacy/core/Services/http.js.map +1 -1
  410. package/dist/es-legacy/core/config.js +1 -1
  411. package/dist/es-legacy/core/core.js +1 -1
  412. package/dist/es-legacy/core/core.js.map +1 -1
  413. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  414. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  415. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  416. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  417. package/dist/es-legacy/external/preact/hooks/dist/hooks.js +1 -1
  418. package/dist/es-legacy/external/preact/hooks/dist/hooks.js.map +1 -1
  419. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  420. package/dist/es-legacy/language/Language.js.map +1 -1
  421. package/dist/es-legacy/utils/Script.js.map +1 -1
  422. package/dist/es-legacy/utils/Storage.js +1 -1
  423. package/dist/es-legacy/utils/Storage.js.map +1 -1
  424. package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
  425. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  426. package/dist/es-legacy/utils/amount-util.js +1 -1
  427. package/dist/es-legacy/utils/amount-util.js.map +1 -1
  428. package/dist/es-legacy/utils/browserInfo.js +1 -1
  429. package/dist/es-legacy/utils/browserInfo.js.map +1 -1
  430. package/dist/es-legacy/utils/constants/currency-minor-units.js.map +1 -1
  431. package/dist/es-legacy/utils/createSdkData.js.map +1 -1
  432. package/dist/es-legacy/utils/getConsentUrl.js.map +1 -1
  433. package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
  434. package/dist/es-legacy/utils/getProp.js +1 -1
  435. package/dist/es-legacy/utils/getProp.js.map +1 -1
  436. package/dist/es-legacy/utils/hasOwnProperty.js.map +1 -1
  437. package/dist/es-legacy/utils/isValidURL.js.map +1 -1
  438. package/dist/es-legacy/utils/listenerUtils.js.map +1 -1
  439. package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
  440. package/dist/es-legacy/utils/textUtils.js.map +1 -1
  441. package/dist/es-legacy/utils/useAutoFocus.js.map +1 -1
  442. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  443. package/dist/es-legacy/utils/validator-utils.js.map +1 -1
  444. package/package.json +11 -11
  445. package/styles/adyen.css +2 -2
@@ -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 n}from"../../internal/SecuredFields/lib/constants.js";import{GiftCardFields as i}from"./GiftcardFields.js";import{useSRPanelForGiftcardErrors as c}from"./useSRPanelForGiftcardErrors.js";import{useAmount as l}from"../../../core/Context/AmountProvider.js";function 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:i,balance:d,transactionLimit:u,isValidating:p,transformedErrors:h}){const{i18n:m}=o(),{amount:f}=l();c({errors:h,isValidating:p,sfp:this.sfp});const y=u?.value<d?.value?u:d;if(y&&y?.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 C=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:n,componentType:t.type,render:({setRootNode:t,setFocusOn:e},r)=>this.props.fieldsLayoutComponent({i18n:m,pinRequired:this.props.pinRequired,focusedElement:i,getCardErrorMessage:C,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(u,"defaultProps",{pinRequired:!0,expiryDateRequired:!1,onChange:()=>{},onFocus:()=>{},onBlur:()=>{},fieldsLayoutComponent:i});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 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 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","sfp","this","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","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 +1 @@
1
- {"version":3,"file":"GooglePayService.js","sources":["../../../../src/components/GooglePay/GooglePayService.ts"],"sourcesContent":["import { isReadyToPayRequest, initiatePaymentRequest } from './requests';\nimport { resolveEnvironment } from './utils';\nimport Script from '../../utils/Script';\nimport config from './config';\nimport type { GooglePayConfiguration } from './types';\nimport type { IAnalytics } from '../../core/Analytics/Analytics';\n\nclass GooglePayService {\n private readonly analytics: IAnalytics;\n\n public readonly paymentsClient: Promise<google.payments.api.PaymentsClient>;\n\n constructor(environment: string, analytics: IAnalytics, paymentDataCallbacks: google.payments.api.PaymentDataCallbacks) {\n const googlePayEnvironment = resolveEnvironment(environment);\n\n this.analytics = analytics;\n this.paymentsClient = this.getGooglePaymentsClient({\n environment: googlePayEnvironment,\n paymentDataCallbacks\n });\n }\n\n /**\n * Initialize a Google Pay API client\n *\n * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}\n * @returns Google Pay API client\n */\n async getGooglePaymentsClient(paymentOptions: google.payments.api.PaymentOptions): Promise<google.payments.api.PaymentsClient> {\n if (!window.google?.payments) {\n const script = new Script({ src: config.URL, component: 'googlepay', analytics: this.analytics });\n await script.load();\n }\n\n return new google.payments.api.PaymentsClient(paymentOptions);\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n * @see {@link https://developers.google.com/pay/api/web/reference/client#isReadyToPay|isReadyToPay}\n */\n isReadyToPay(props): Promise<google.payments.api.IsReadyToPayResponse> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) return Promise.reject(new Error('Google Pay is not available'));\n\n return this.paymentsClient.then(client => client.isReadyToPay(isReadyToPayRequest(props)));\n }\n\n prefetchPaymentData(props: GooglePayConfiguration, countryCode: string): void {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) throw new Error('Google Pay is not available');\n\n const paymentDataRequest = initiatePaymentRequest(props, countryCode);\n void this.paymentsClient.then(client => client.prefetchPaymentData(paymentDataRequest));\n }\n\n /**\n * Show Google Pay payment sheet when Google Pay payment button is clicked\n * @returns paymentData response from Google Pay API after user approves payment\n * @see {@link https://developers.google.com/pay/api/web/reference/object#PaymentData|PaymentData object reference}\n */\n initiatePayment(props: GooglePayConfiguration, countryCode: string): Promise<google.payments.api.PaymentData> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) throw new Error('Google Pay is not available');\n\n const paymentDataRequest = initiatePaymentRequest(props, countryCode);\n return this.paymentsClient.then(client => client.loadPaymentData(paymentDataRequest));\n }\n}\n\nexport default GooglePayService;\n"],"names":["GooglePayService","getGooglePaymentsClient","paymentOptions","window","google","payments","script","Script","src","config","URL","component","analytics","this","load","api","PaymentsClient","isReadyToPay","props","paymentsClient","then","client","isReadyToPayRequest","Promise","reject","Error","prefetchPaymentData","countryCode","paymentDataRequest","initiatePaymentRequest","initiatePayment","loadPaymentData","constructor","environment","paymentDataCallbacks","_define_property","googlePayEnvironment","resolveEnvironment"],"mappings":"wTAOA,MAAMA,EAqBF,6BAAMC,CAAwBC,GAC1B,IAAKC,OAAOC,QAAQC,SAAU,CAC1B,MAAMC,EAAS,IAAIC,EAAO,CAAEC,IAAKC,EAAOC,IAAKC,UAAW,YAAaC,UAAWC,KAAKD,kBAC/EN,EAAOQ,MACjB,CAEA,OAAO,IAAIV,OAAOC,SAASU,IAAIC,eAAed,EAClD,CAMAe,YAAAA,CAAaC,GAET,OAAKL,KAAKM,eAEHN,KAAKM,eAAeC,KAAKC,GAAUA,EAAOJ,aAAaK,EAAoBJ,KAFjDK,QAAQC,OAAO,IAAIC,MAAM,+BAG9D,CAEAC,mBAAAA,CAAoBR,EAA+BS,GAE/C,IAAKd,KAAKM,eAAgB,MAAM,IAAIM,MAAM,+BAE1C,MAAMG,EAAqBC,EAAuBX,EAAOS,GACpDd,KAAKM,eAAeC,KAAKC,GAAUA,EAAOK,oBAAoBE,GACvE,CAOAE,eAAAA,CAAgBZ,EAA+BS,GAE3C,IAAKd,KAAKM,eAAgB,MAAM,IAAIM,MAAM,+BAE1C,MAAMG,EAAqBC,EAAuBX,EAAOS,GACzD,OAAOd,KAAKM,eAAeC,KAAKC,GAAUA,EAAOU,gBAAgBH,GACrE,CAvDA,WAAAI,CAAYC,EAAqBrB,EAAuBsB,GAJxDC,EAAAtB,KAAiBD,iBAAjB,GAEAuB,EAAAtB,KAAgBM,sBAAhB,GAGI,MAAMiB,EAAuBC,EAAmBJ,GAEhDpB,KAAKD,UAAYA,EACjBC,KAAKM,eAAiBN,KAAKZ,wBAAwB,CAC/CgC,YAAaG,EACbF,wBAER"}
1
+ {"version":3,"file":"GooglePayService.js","sources":["../../../../src/components/GooglePay/GooglePayService.ts"],"sourcesContent":["import { isReadyToPayRequest, initiatePaymentRequest } from './requests';\nimport { resolveEnvironment } from './utils';\nimport Script from '../../utils/Script';\nimport config from './config';\nimport type { GooglePayConfiguration } from './types';\nimport type { IAnalytics } from '../../core/Analytics/Analytics';\n\nclass GooglePayService {\n private readonly analytics: IAnalytics;\n\n public readonly paymentsClient: Promise<google.payments.api.PaymentsClient>;\n\n constructor(environment: string, analytics: IAnalytics, paymentDataCallbacks: google.payments.api.PaymentDataCallbacks) {\n const googlePayEnvironment = resolveEnvironment(environment);\n\n this.analytics = analytics;\n this.paymentsClient = this.getGooglePaymentsClient({\n environment: googlePayEnvironment,\n paymentDataCallbacks\n });\n }\n\n /**\n * Initialize a Google Pay API client\n *\n * @see {@link https://developers.google.com/pay/api/web/reference/client#PaymentsClient|PaymentsClient constructor}\n * @returns Google Pay API client\n */\n async getGooglePaymentsClient(paymentOptions: google.payments.api.PaymentOptions): Promise<google.payments.api.PaymentsClient> {\n if (!window.google?.payments) {\n const script = new Script({ src: config.URL, component: 'googlepay', analytics: this.analytics });\n await script.load();\n }\n\n return new google.payments.api.PaymentsClient(paymentOptions);\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n * @see {@link https://developers.google.com/pay/api/web/reference/client#isReadyToPay|isReadyToPay}\n */\n isReadyToPay(props): Promise<google.payments.api.IsReadyToPayResponse> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) return Promise.reject(new Error('Google Pay is not available'));\n\n return this.paymentsClient.then(client => client.isReadyToPay(isReadyToPayRequest(props)));\n }\n\n prefetchPaymentData(props: GooglePayConfiguration, countryCode: string): void {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) throw new Error('Google Pay is not available');\n\n const paymentDataRequest = initiatePaymentRequest(props, countryCode);\n void this.paymentsClient.then(client => client.prefetchPaymentData(paymentDataRequest));\n }\n\n /**\n * Show Google Pay payment sheet when Google Pay payment button is clicked\n * @returns paymentData response from Google Pay API after user approves payment\n * @see {@link https://developers.google.com/pay/api/web/reference/object#PaymentData|PaymentData object reference}\n */\n initiatePayment(props: GooglePayConfiguration, countryCode: string): Promise<google.payments.api.PaymentData> {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.paymentsClient) throw new Error('Google Pay is not available');\n\n const paymentDataRequest = initiatePaymentRequest(props, countryCode);\n return this.paymentsClient.then(client => client.loadPaymentData(paymentDataRequest));\n }\n}\n\nexport default GooglePayService;\n"],"names":["GooglePayService","getGooglePaymentsClient","paymentOptions","window","google","payments","script","Script","src","config","URL","component","analytics","this","load","api","PaymentsClient","isReadyToPay","props","paymentsClient","then","client","isReadyToPayRequest","Promise","reject","Error","prefetchPaymentData","countryCode","paymentDataRequest","initiatePaymentRequest","initiatePayment","loadPaymentData","constructor","environment","paymentDataCallbacks","_define_property","googlePayEnvironment","resolveEnvironment"],"mappings":"wTAOA,MAAMA,EAqBF,6BAAMC,CAAwBC,GAC1B,IAAKC,OAAOC,QAAQC,SAAU,CAC1B,MAAMC,EAAS,IAAIC,EAAO,CAAEC,IAAKC,EAAOC,IAAKC,UAAW,YAAaC,UAAWC,KAAKD,kBAC/EN,EAAOQ,MACjB,CAEA,OAAO,IAAIV,OAAOC,SAASU,IAAIC,eAAed,EAClD,CAMAe,YAAAA,CAAaC,GAET,OAAKL,KAAKM,eAEHN,KAAKM,eAAeC,KAAKC,GAAUA,EAAOJ,aAAaK,EAAoBJ,KAFjDK,QAAQC,OAAO,IAAIC,MAAM,+BAG9D,CAEAC,mBAAAA,CAAoBR,EAA+BS,GAE/C,IAAKd,KAAKM,eAAgB,MAAM,IAAIM,MAAM,+BAE1C,MAAMG,EAAqBC,EAAuBX,EAAOS,GACpDd,KAAKM,eAAeC,KAAKC,GAAUA,EAAOK,oBAAoBE,GACvE,CAOAE,eAAAA,CAAgBZ,EAA+BS,GAE3C,IAAKd,KAAKM,eAAgB,MAAM,IAAIM,MAAM,+BAE1C,MAAMG,EAAqBC,EAAuBX,EAAOS,GACzD,OAAOd,KAAKM,eAAeC,KAAKC,GAAUA,EAAOU,gBAAgBH,GACrE,CAvDA,WAAAI,CAAYC,EAAqBrB,EAAuBsB,GAJxDC,EAAAtB,KAAiBD,oBAEjBuB,EAAAtB,KAAgBM,yBAGZ,MAAMiB,EAAuBC,EAAmBJ,GAEhDpB,KAAKD,UAAYA,EACjBC,KAAKM,eAAiBN,KAAKZ,wBAAwB,CAC/CgC,YAAaG,EACbF,wBAER"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import o from"../../utils/isMobile.js";import e from"../helpers/IssuerListContainer/IssuerListContainer.js";import{QRLoader as r}from"../internal/QRLoader/QRLoader.js";import"../../core/Context/CoreProvider.js";import"../../external/preact/hooks/dist/hooks.js";import"../../core/Errors/AdyenCheckoutError.js";import"../../core/Errors/SRPanelContext.js";import"../internal/Button/Button.js";import"../internal/QRLoader/QRLoaderDetailsProvider.js";import{TxVariants as s}from"../tx-variants.js";import n from"./components/IrisComponent.js";import{IrisQrCodeInstructions as i}from"./components/IrisQrCodeInstructions.js";import{IrisMode as p}from"./types.js";import{DEFAULT_IRIS_COUNTDOWN_TIME as a}from"./constants.js";function m(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}class d extends e{renderIssuerList(){return super.componentToRender()}formatData(){return this.mode===p.BANK_LIST?{paymentMethod:{type:this.type,issuer:this.state?.data?.issuer}}:{paymentMethod:{type:this.type}}}formatProps(t){return{...super.formatProps(t),countdownTime:t.countdownTime??a}}get isValid(){return this.mode!==p.BANK_LIST||super.isValid}componentToRender(){return"qrCode"===this.props.type?t(r,{type:s.iris,brandLogo:this.icon,clientKey:this.props.clientKey,qrCodeData:this.props.qrCodeData?encodeURIComponent(this.props.qrCodeData):null,countdownTime:this.props.countdownTime,paymentData:this.props.paymentData,amount:this.props.amount,delay:this.props.delay,onActionHandled:this.onActionHandled,onError:this.props.onError,onComplete:this.onComplete,introduction:i,showAmount:!0,copyBtn:!1}):t(n,{setComponentRef:this.setComponentRef,defaultMode:this.mode,onUpdateMode:this.onUpdateMode,issuerListUI:this.renderIssuerList(),showPayButton:this.props.showPayButton,payButton:this.payButton,issuers:this.props.issuers})}constructor(t,e){super(t,e),m(this,"mode",void 0),m(this,"onUpdateMode",t=>{this.mode=t}),this.mode=o()?p.BANK_LIST:p.QR_CODE}}m(d,"type",s.iris);export{d as Iris,d as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import o from"../../utils/isMobile.js";import e from"../helpers/IssuerListContainer/IssuerListContainer.js";import{QRLoader as r}from"../internal/QRLoader/QRLoader.js";import"../../core/Context/CoreProvider.js";import"../../external/preact/hooks/dist/hooks.js";import"../../core/Errors/AdyenCheckoutError.js";import"../../core/Errors/SRPanelContext.js";import"../internal/Button/Button.js";import"../internal/QRLoader/QRLoaderDetailsProvider.js";import{TxVariants as s}from"../tx-variants.js";import n from"./components/IrisComponent.js";import{IrisQrCodeInstructions as i}from"./components/IrisQrCodeInstructions.js";import{IrisMode as p}from"./types.js";import{DEFAULT_IRIS_COUNTDOWN_TIME as a}from"./constants.js";function d(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}class m extends e{renderIssuerList(){return super.componentToRender()}formatData(){return this.mode===p.BANK_LIST?{paymentMethod:{type:this.type,issuer:this.state?.data?.issuer}}:{paymentMethod:{type:this.type}}}formatProps(t){return{...super.formatProps(t),countdownTime:t.countdownTime??a}}get isValid(){return this.mode!==p.BANK_LIST||super.isValid}componentToRender(){return"qrCode"===this.props.type?t(r,{type:s.iris,brandLogo:this.icon,clientKey:this.props.clientKey,qrCodeData:this.props.qrCodeData?encodeURIComponent(this.props.qrCodeData):null,countdownTime:this.props.countdownTime,paymentData:this.props.paymentData,delay:this.props.delay,onActionHandled:this.onActionHandled,onError:this.props.onError,onComplete:this.onComplete,introduction:i,showAmount:!0,copyBtn:!1}):t(n,{setComponentRef:this.setComponentRef,defaultMode:this.mode,onUpdateMode:this.onUpdateMode,issuerListUI:this.renderIssuerList(),showPayButton:this.props.showPayButton,payButton:this.payButton,issuers:this.props.issuers})}constructor(t,e){super(t,e),d(this,"mode",void 0),d(this,"onUpdateMode",t=>{this.mode=t}),this.mode=o()?p.BANK_LIST:p.QR_CODE}}d(m,"type",s.iris);export{m as Iris,m as default};
2
2
  //# sourceMappingURL=Iris.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Iris.js","sources":["../../../../src/components/Iris/Iris.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { ICore } from '../../types';\nimport isMobile from '../../utils/isMobile';\nimport IssuerListContainer from '../helpers/IssuerListContainer/IssuerListContainer';\nimport { QRLoader } from '../internal/QRLoader';\nimport { TxVariants } from '../tx-variants';\nimport IrisComponent from './components/IrisComponent';\nimport { IrisQrCodeInstructions } from './components/IrisQrCodeInstructions';\nimport { IrisConfiguration, IrisData, IrisMode } from './types';\nimport { DEFAULT_IRIS_COUNTDOWN_TIME } from './constants';\n\nexport class Iris extends IssuerListContainer<IrisConfiguration, IrisData> {\n public static readonly type = TxVariants.iris;\n\n private mode: IrisMode;\n\n constructor(checkout: ICore, props: IrisConfiguration) {\n super(checkout, props);\n this.mode = isMobile() ? IrisMode.BANK_LIST : IrisMode.QR_CODE;\n }\n\n private readonly onUpdateMode = (mode: IrisMode): void => {\n this.mode = mode;\n };\n\n private renderIssuerList(): h.JSX.Element {\n return super.componentToRender();\n }\n\n formatData(): IrisData {\n if (this.mode === IrisMode.BANK_LIST) {\n return {\n paymentMethod: {\n type: this.type,\n issuer: this.state?.data?.issuer\n }\n };\n }\n\n return {\n paymentMethod: {\n type: this.type\n }\n };\n }\n\n formatProps(props: IrisConfiguration): IrisConfiguration {\n return {\n ...super.formatProps(props),\n countdownTime: props.countdownTime ?? DEFAULT_IRIS_COUNTDOWN_TIME\n };\n }\n\n get isValid() {\n if (this.mode === IrisMode.BANK_LIST) {\n return super.isValid;\n }\n\n return true;\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.type === 'qrCode') {\n return (\n <QRLoader\n type={TxVariants.iris}\n brandLogo={this.icon}\n clientKey={this.props.clientKey}\n qrCodeData={this.props.qrCodeData ? encodeURIComponent(this.props.qrCodeData) : null}\n countdownTime={this.props.countdownTime}\n paymentData={this.props.paymentData}\n amount={this.props.amount}\n delay={this.props.delay}\n onActionHandled={this.onActionHandled}\n onError={this.props.onError}\n onComplete={this.onComplete}\n introduction={IrisQrCodeInstructions}\n showAmount\n copyBtn={false}\n />\n );\n }\n\n return (\n <IrisComponent\n setComponentRef={this.setComponentRef}\n defaultMode={this.mode}\n onUpdateMode={this.onUpdateMode}\n issuerListUI={this.renderIssuerList()}\n showPayButton={this.props.showPayButton}\n payButton={this.payButton}\n issuers={this.props.issuers}\n />\n );\n }\n}\n\nexport default Iris;\n"],"names":["Iris","IssuerListContainer","renderIssuerList","super","componentToRender","formatData","this","mode","IrisMode","BANK_LIST","paymentMethod","type","issuer","state","data","formatProps","props","countdownTime","DEFAULT_IRIS_COUNTDOWN_TIME","isValid","h","QRLoader","TxVariants","iris","brandLogo","icon","clientKey","qrCodeData","encodeURIComponent","paymentData","amount","delay","onActionHandled","onError","onComplete","introduction","IrisQrCodeInstructions","showAmount","copyBtn","IrisComponent","setComponentRef","defaultMode","onUpdateMode","issuerListUI","showPayButton","payButton","issuers","constructor","checkout","_define_property","isMobile","QR_CODE"],"mappings":"04BAWO,MAAMA,UAAaC,EAcdC,gBAAAA,GACJ,OAAOC,MAAMC,mBACjB,CAEAC,UAAAA,GACI,OAAIC,KAAKC,OAASC,EAASC,UAChB,CACHC,cAAe,CACXC,KAAML,KAAKK,KACXC,OAAQN,KAAKO,OAAOC,MAAMF,SAK/B,CACHF,cAAe,CACXC,KAAML,KAAKK,MAGvB,CAEAI,WAAAA,CAAYC,GACR,MAAO,IACAb,MAAMY,YAAYC,GACrBC,cAAeD,EAAMC,eAAiBC,EAE9C,CAEA,WAAIC,GACA,OAAIb,KAAKC,OAASC,EAASC,WAChBN,MAAMgB,OAIrB,CAEmBf,iBAAAA,GACf,MAAwB,WAApBE,KAAKU,MAAML,KAEPS,EAACC,EAAAA,CACGV,KAAMW,EAAWC,KACjBC,UAAWlB,KAAKmB,KAChBC,UAAWpB,KAAKU,MAAMU,UACtBC,WAAYrB,KAAKU,MAAMW,WAAaC,mBAAmBtB,KAAKU,MAAMW,YAAc,KAChFV,cAAeX,KAAKU,MAAMC,cAC1BY,YAAavB,KAAKU,MAAMa,YACxBC,OAAQxB,KAAKU,MAAMc,OACnBC,MAAOzB,KAAKU,MAAMe,MAClBC,gBAAiB1B,KAAK0B,gBACtBC,QAAS3B,KAAKU,MAAMiB,QACpBC,WAAY5B,KAAK4B,WACjBC,aAAcC,EACdC,YAAAA,EACAC,SAAS,IAMjBlB,EAACmB,EAAAA,CACGC,gBAAiBlC,KAAKkC,gBACtBC,YAAanC,KAAKC,KAClBmC,aAAcpC,KAAKoC,aACnBC,aAAcrC,KAAKJ,mBACnB0C,cAAetC,KAAKU,MAAM4B,cAC1BC,UAAWvC,KAAKuC,UAChBC,QAASxC,KAAKU,MAAM8B,SAGhC,CA9EA,WAAAC,CAAYC,EAAiBhC,GACzBb,MAAM6C,EAAUhC,GAHpBiC,EAAA3C,KAAQC,YAAR,GAOA0C,EAAA3C,KAAiBoC,eAAgBnC,IAC7BD,KAAKC,KAAOA,IAJZD,KAAKC,KAAO2C,IAAa1C,EAASC,UAAYD,EAAS2C,OAC3D,EAPAF,EADSjD,EACcW,OAAOW,EAAWC"}
1
+ {"version":3,"file":"Iris.js","sources":["../../../../src/components/Iris/Iris.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { ICore } from '../../types';\nimport isMobile from '../../utils/isMobile';\nimport IssuerListContainer from '../helpers/IssuerListContainer/IssuerListContainer';\nimport { QRLoader } from '../internal/QRLoader';\nimport { TxVariants } from '../tx-variants';\nimport IrisComponent from './components/IrisComponent';\nimport { IrisQrCodeInstructions } from './components/IrisQrCodeInstructions';\nimport { IrisConfiguration, IrisData, IrisMode } from './types';\nimport { DEFAULT_IRIS_COUNTDOWN_TIME } from './constants';\n\nexport class Iris extends IssuerListContainer<IrisConfiguration, IrisData> {\n public static readonly type = TxVariants.iris;\n\n private mode: IrisMode;\n\n constructor(checkout: ICore, props: IrisConfiguration) {\n super(checkout, props);\n this.mode = isMobile() ? IrisMode.BANK_LIST : IrisMode.QR_CODE;\n }\n\n private readonly onUpdateMode = (mode: IrisMode): void => {\n this.mode = mode;\n };\n\n private renderIssuerList(): h.JSX.Element {\n return super.componentToRender();\n }\n\n formatData(): IrisData {\n if (this.mode === IrisMode.BANK_LIST) {\n return {\n paymentMethod: {\n type: this.type,\n issuer: this.state?.data?.issuer\n }\n };\n }\n\n return {\n paymentMethod: {\n type: this.type\n }\n };\n }\n\n formatProps(props: IrisConfiguration): IrisConfiguration {\n return {\n ...super.formatProps(props),\n countdownTime: props.countdownTime ?? DEFAULT_IRIS_COUNTDOWN_TIME\n };\n }\n\n get isValid() {\n if (this.mode === IrisMode.BANK_LIST) {\n return super.isValid;\n }\n\n return true;\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.type === 'qrCode') {\n return (\n <QRLoader\n type={TxVariants.iris}\n brandLogo={this.icon}\n clientKey={this.props.clientKey}\n qrCodeData={this.props.qrCodeData ? encodeURIComponent(this.props.qrCodeData) : null}\n countdownTime={this.props.countdownTime}\n paymentData={this.props.paymentData}\n delay={this.props.delay}\n onActionHandled={this.onActionHandled}\n onError={this.props.onError}\n onComplete={this.onComplete}\n introduction={IrisQrCodeInstructions}\n showAmount\n copyBtn={false}\n />\n );\n }\n\n return (\n <IrisComponent\n setComponentRef={this.setComponentRef}\n defaultMode={this.mode}\n onUpdateMode={this.onUpdateMode}\n issuerListUI={this.renderIssuerList()}\n showPayButton={this.props.showPayButton}\n payButton={this.payButton}\n issuers={this.props.issuers}\n />\n );\n }\n}\n\nexport default Iris;\n"],"names":["Iris","IssuerListContainer","renderIssuerList","super","componentToRender","formatData","this","mode","IrisMode","BANK_LIST","paymentMethod","type","issuer","state","data","formatProps","props","countdownTime","DEFAULT_IRIS_COUNTDOWN_TIME","isValid","h","QRLoader","TxVariants","iris","brandLogo","icon","clientKey","qrCodeData","encodeURIComponent","paymentData","delay","onActionHandled","onError","onComplete","introduction","IrisQrCodeInstructions","showAmount","copyBtn","IrisComponent","setComponentRef","defaultMode","onUpdateMode","issuerListUI","showPayButton","payButton","issuers","constructor","checkout","_define_property","isMobile","QR_CODE"],"mappings":"04BAWO,MAAMA,UAAaC,EAcdC,gBAAAA,GACJ,OAAOC,MAAMC,mBACjB,CAEAC,UAAAA,GACI,OAAIC,KAAKC,OAASC,EAASC,UAChB,CACHC,cAAe,CACXC,KAAML,KAAKK,KACXC,OAAQN,KAAKO,OAAOC,MAAMF,SAK/B,CACHF,cAAe,CACXC,KAAML,KAAKK,MAGvB,CAEAI,WAAAA,CAAYC,GACR,MAAO,IACAb,MAAMY,YAAYC,GACrBC,cAAeD,EAAMC,eAAiBC,EAE9C,CAEA,WAAIC,GACA,OAAIb,KAAKC,OAASC,EAASC,WAChBN,MAAMgB,OAIrB,CAEmBf,iBAAAA,GACf,MAAwB,WAApBE,KAAKU,MAAML,KAEPS,EAACC,EAAAA,CACGV,KAAMW,EAAWC,KACjBC,UAAWlB,KAAKmB,KAChBC,UAAWpB,KAAKU,MAAMU,UACtBC,WAAYrB,KAAKU,MAAMW,WAAaC,mBAAmBtB,KAAKU,MAAMW,YAAc,KAChFV,cAAeX,KAAKU,MAAMC,cAC1BY,YAAavB,KAAKU,MAAMa,YACxBC,MAAOxB,KAAKU,MAAMc,MAClBC,gBAAiBzB,KAAKyB,gBACtBC,QAAS1B,KAAKU,MAAMgB,QACpBC,WAAY3B,KAAK2B,WACjBC,aAAcC,EACdC,YAAAA,EACAC,SAAS,IAMjBjB,EAACkB,EAAAA,CACGC,gBAAiBjC,KAAKiC,gBACtBC,YAAalC,KAAKC,KAClBkC,aAAcnC,KAAKmC,aACnBC,aAAcpC,KAAKJ,mBACnByC,cAAerC,KAAKU,MAAM2B,cAC1BC,UAAWtC,KAAKsC,UAChBC,QAASvC,KAAKU,MAAM6B,SAGhC,CA7EA,WAAAC,CAAYC,EAAiB/B,GACzBb,MAAM4C,EAAU/B,GAHpBgC,EAAA1C,KAAQC,YAAR,GAOAyC,EAAA1C,KAAiBmC,eAAgBlC,IAC7BD,KAAKC,KAAOA,IAJZD,KAAKC,KAAO0C,IAAazC,EAASC,UAAYD,EAAS0C,OAC3D,EAPAF,EADShD,EACcW,OAAOW,EAAWC"}
@@ -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"../internal/PayButton/PayButton.js";import{KlarnaContainer as o}from"./components/KlarnaContainer/KlarnaContainer.js";import{TxVariants as i}from"../tx-variants.js";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}class s extends e{get isValid(){return!0}formatData(){return{paymentMethod:{type:this.type,...this.props.useKlarnaWidget?{subtype:"sdk"}:{}}}}handleAction(t,e={}){if("sdk"!==t.type)return super.handleAction(t,e);this.updateWithAction(t)}updateWithAction(t){if(t.paymentMethodType!==this.type)throw new Error("Invalid Action");this.componentRef.setAction(t)}onLoaded(){this.setElementStatus("ready")}activate(){this.componentRef.reinitializeWidget()}onComplete(t){this.handleAdditionalDetails(t)}componentToRender(){return t(o,{...this.props,setComponentRef:this.setComponentRef,displayName:this.displayName,onComplete:this.onComplete,onError:this.props.onError,payButton:this.payButton,onLoaded:this.onLoaded,showPayButton:this.props.showPayButton,onActionHandled:this.onActionHandled,type:this.props.type})}constructor(e,o){super(e,o),a(this,"componentRef",void 0),a(this,"payButton",e=>t(n,{amount:this.props.amount,onClick:this.submit,...e})),this.onComplete=this.onComplete.bind(this),this.updateWithAction=this.updateWithAction.bind(this),this.submit=this.submit.bind(this),this.onLoaded=this.onLoaded.bind(this)}}a(s,"type",i.klarna),a(s,"txVariants",[i.klarna,i.klarna_account,i.klarna_paynow,i.klarna_b2b]),a(s,"defaultProps",{useKlarnaWidget:!1});export{s 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"../internal/PayButton/PayButton.js";import{KlarnaContainer as o}from"./components/KlarnaContainer/KlarnaContainer.js";import{TxVariants as i}from"../tx-variants.js";function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}class s extends e{get isValid(){return!0}formatData(){return{paymentMethod:{type:this.type,...this.props.useKlarnaWidget?{subtype:"sdk"}:{}}}}handleAction(t,e={}){if("sdk"!==t.type)return super.handleAction(t,e);this.updateWithAction(t)}updateWithAction(t){if(t.paymentMethodType!==this.type)throw new Error("Invalid Action");this.componentRef.setAction(t)}onLoaded(){this.setElementStatus("ready")}activate(){this.componentRef.reinitializeWidget()}onComplete(t){this.handleAdditionalDetails(t)}componentToRender(){return t(o,{...this.props,setComponentRef:this.setComponentRef,displayName:this.displayName,onComplete:this.onComplete,onError:this.props.onError,payButton:this.payButton,onLoaded:this.onLoaded,showPayButton:this.props.showPayButton,onActionHandled:this.onActionHandled,type:this.props.type})}constructor(e,o){super(e,o),a(this,"componentRef",void 0),a(this,"payButton",e=>t(n,{onClick:this.submit,...e})),this.onComplete=this.onComplete.bind(this),this.updateWithAction=this.updateWithAction.bind(this),this.submit=this.submit.bind(this),this.onLoaded=this.onLoaded.bind(this)}}a(s,"type",i.klarna),a(s,"txVariants",[i.klarna,i.klarna_account,i.klarna_paynow,i.klarna_b2b]),a(s,"defaultProps",{useKlarnaWidget:!1});export{s as default};
2
2
  //# sourceMappingURL=KlarnaPayments.js.map