@adyen/adyen-web 6.30.0 → 6.31.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/adyen.css +2 -2
  3. package/dist/cjs/adyen.css.map +1 -1
  4. package/dist/cjs/index.cjs +2 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.cts +802 -714
  7. package/dist/es/adyen.css +2 -2
  8. package/dist/es/adyen.css.map +1 -1
  9. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  10. package/dist/es/components/Ach/Ach.js +1 -1
  11. package/dist/es/components/Ach/Ach.js.map +1 -1
  12. package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -1
  13. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  14. package/dist/es/components/Affirm/Affirm.js.map +1 -1
  15. package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
  16. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  17. package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
  18. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  19. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  20. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  21. package/dist/es/components/AmazonPay/components/OrderButton.js +1 -1
  22. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  23. package/dist/es/components/AmazonPay/utils.js +1 -1
  24. package/dist/es/components/AmazonPay/utils.js.map +1 -1
  25. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  26. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  27. package/dist/es/components/ApplePay/services/ApplePayService.js +1 -1
  28. package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
  29. package/dist/es/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
  30. package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -1
  31. package/dist/es/components/Atome/Atome.js.map +1 -1
  32. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  33. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  34. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  35. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  36. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  37. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  38. package/dist/es/components/Blik/Blik.js +1 -1
  39. package/dist/es/components/Blik/Blik.js.map +1 -1
  40. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  41. package/dist/es/components/Card/Card.js +1 -1
  42. package/dist/es/components/Card/Card.js.map +1 -1
  43. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  44. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  45. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  46. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  47. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  48. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  49. package/dist/es/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  50. package/dist/es/components/Card/components/CardInput/handlers.js +1 -1
  51. package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
  52. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  53. package/dist/es/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  54. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  55. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  56. package/dist/es/components/Card/components/ClickToPayWrapper.js +1 -1
  57. package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
  58. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  59. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  60. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  61. package/dist/es/components/CashAppPay/services/CashAppService.js +1 -1
  62. package/dist/es/components/CashAppPay/services/CashAppService.js.map +1 -1
  63. package/dist/es/components/CashAppPay/services/types.js.map +1 -1
  64. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  65. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  66. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  67. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  68. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  69. package/dist/es/components/Dropin/Dropin.js +1 -1
  70. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  71. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  72. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  73. package/dist/es/components/Dropin/components/DropinSuccessState.js +2 -0
  74. package/dist/es/components/Dropin/components/DropinSuccessState.js.map +1 -0
  75. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  76. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  77. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  78. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  79. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  80. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  81. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  82. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  83. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
  84. package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  85. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  86. package/dist/es/components/Iris/Iris.js +1 -1
  87. package/dist/es/components/Iris/Iris.js.map +1 -1
  88. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  89. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  90. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  91. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  92. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  93. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  94. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  95. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
  96. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  97. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  98. package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  99. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  100. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  101. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  102. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  103. package/dist/es/components/PayTo/PayTo.js +1 -1
  104. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  105. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  106. package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
  107. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  108. package/dist/es/components/PersonalDetails/PersonalDetails.js.map +1 -1
  109. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  110. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  111. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  112. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  113. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  114. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  115. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  116. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  117. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  118. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  119. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  120. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  121. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  122. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  123. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  124. package/dist/es/components/Twint/Twint.js +1 -1
  125. package/dist/es/components/Twint/Twint.js.map +1 -1
  126. package/dist/es/components/UPI/UPI.js +1 -1
  127. package/dist/es/components/UPI/UPI.js.map +1 -1
  128. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  129. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  130. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  131. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  132. package/dist/es/components/internal/Address/Specifications.js.map +1 -1
  133. package/dist/es/components/internal/Await/Await.js +1 -1
  134. package/dist/es/components/internal/Await/Await.js.map +1 -1
  135. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  136. package/dist/es/components/internal/Button/Button.js +1 -1
  137. package/dist/es/components/internal/Button/Button.js.map +1 -1
  138. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  139. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  140. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  141. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  142. package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
  143. package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
  144. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
  145. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  146. package/dist/es/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  147. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  148. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  149. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  150. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  151. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  152. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  153. package/dist/es/components/internal/FormFields/InputBase.js +1 -1
  154. package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
  155. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  156. package/dist/es/components/internal/PayButton/PayButton.js +1 -1
  157. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  158. package/dist/es/components/internal/PayButton/utils.js +1 -1
  159. package/dist/es/components/internal/PayButton/utils.js.map +1 -1
  160. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  161. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  162. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  163. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  164. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  165. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  166. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  167. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  168. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  169. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  170. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  171. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  172. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  173. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  174. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  175. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  176. package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
  177. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  178. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  179. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  180. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  181. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  182. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  183. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  184. package/dist/es/core/Analytics/AnalyticsService.js.map +1 -1
  185. package/dist/es/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
  186. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  187. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  188. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  189. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  190. package/dist/es/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  191. package/dist/es/core/Analytics/utils.js +1 -1
  192. package/dist/es/core/Analytics/utils.js.map +1 -1
  193. package/dist/es/core/CheckoutSession/CheckoutSession.js +1 -1
  194. package/dist/es/core/CheckoutSession/CheckoutSession.js.map +1 -1
  195. package/dist/es/core/Context/AmountProvider.js +2 -0
  196. package/dist/es/core/Context/AmountProvider.js.map +1 -0
  197. package/dist/es/core/Context/Resources.js.map +1 -1
  198. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  199. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  200. package/dist/es/core/config.js +1 -1
  201. package/dist/es/core/core.js +1 -1
  202. package/dist/es/core/core.js.map +1 -1
  203. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  204. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  205. package/dist/es/external/preact/dist/preact.js +1 -1
  206. package/dist/es/external/preact/dist/preact.js.map +1 -1
  207. package/dist/es/external/preact/hooks/dist/hooks.js +1 -1
  208. package/dist/es/external/preact/hooks/dist/hooks.js.map +1 -1
  209. package/dist/es/index.d.ts +802 -714
  210. package/dist/es/language/Language.js.map +1 -1
  211. package/dist/es/utils/Script.js.map +1 -1
  212. package/dist/es/utils/Storage.js +1 -1
  213. package/dist/es/utils/Storage.js.map +1 -1
  214. package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
  215. package/dist/es/utils/Validator/Validator.js.map +1 -1
  216. package/dist/es/utils/amount-util.js +1 -1
  217. package/dist/es/utils/amount-util.js.map +1 -1
  218. package/dist/es/utils/browserInfo.js +1 -1
  219. package/dist/es/utils/browserInfo.js.map +1 -1
  220. package/dist/es/utils/constants/currency-minor-units.js.map +1 -1
  221. package/dist/es/utils/createSdkData.js.map +1 -1
  222. package/dist/es/utils/getErrorMessage.js.map +1 -1
  223. package/dist/es/utils/getProp.js +1 -1
  224. package/dist/es/utils/getProp.js.map +1 -1
  225. package/dist/es/utils/hasOwnProperty.js.map +1 -1
  226. package/dist/es/utils/isValidURL.js.map +1 -1
  227. package/dist/es/utils/listenerUtils.js.map +1 -1
  228. package/dist/es/utils/promiseTimeout.js.map +1 -1
  229. package/dist/es/utils/setFocus.js +1 -1
  230. package/dist/es/utils/setFocus.js.map +1 -1
  231. package/dist/es/utils/textUtils.js.map +1 -1
  232. package/dist/es/utils/validator-utils.js.map +1 -1
  233. package/dist/es/utils/windowScrollTo.js +2 -0
  234. package/dist/es/utils/windowScrollTo.js.map +1 -0
  235. package/dist/es-legacy/adyen.css +2 -2
  236. package/dist/es-legacy/adyen.css.map +1 -1
  237. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  238. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  239. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  240. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -1
  241. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  242. package/dist/es-legacy/components/Affirm/Affirm.js.map +1 -1
  243. package/dist/es-legacy/components/AfterPay/AfterPay.js.map +1 -1
  244. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  245. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
  246. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  247. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  248. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  249. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js +1 -1
  250. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  251. package/dist/es-legacy/components/AmazonPay/utils.js +1 -1
  252. package/dist/es-legacy/components/AmazonPay/utils.js.map +1 -1
  253. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  254. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  255. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js +1 -1
  256. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
  257. package/dist/es-legacy/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
  258. package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
  259. package/dist/es-legacy/components/Atome/Atome.js.map +1 -1
  260. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  261. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  262. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  263. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  264. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  265. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  266. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  267. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  268. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  269. package/dist/es-legacy/components/Card/Card.js +1 -1
  270. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  271. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  272. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  273. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  274. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  275. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  276. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  277. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  278. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  279. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  280. package/dist/es-legacy/components/Card/components/CardInput/handlers.js +1 -1
  281. package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
  282. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  283. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  284. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  285. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  286. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js +1 -1
  287. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  288. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  289. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  290. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  291. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  292. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js +1 -1
  293. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js.map +1 -1
  294. package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
  295. package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
  296. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  297. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  298. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  299. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  300. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  301. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  302. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  303. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  304. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  305. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js +2 -0
  306. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js.map +1 -0
  307. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  308. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  309. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  310. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  311. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  312. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  313. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  314. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  315. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js +1 -1
  316. package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
  317. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  318. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  319. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  320. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  321. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  322. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  323. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  324. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  325. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  326. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  327. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  328. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  329. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  330. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
  331. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
  332. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  333. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  334. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  335. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  336. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  337. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  338. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  339. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  340. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  341. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  342. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  343. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
  344. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  345. package/dist/es-legacy/components/PersonalDetails/PersonalDetails.js.map +1 -1
  346. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  347. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  348. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  349. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  350. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  351. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  352. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  353. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  354. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  355. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  356. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  357. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  358. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  359. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  360. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  361. package/dist/es-legacy/components/Twint/Twint.js +1 -1
  362. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  363. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  364. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  365. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  366. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  367. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  368. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  369. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  370. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  371. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  372. package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
  373. package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
  374. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  375. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  376. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  377. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  378. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  379. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
  380. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  381. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  382. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  383. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  384. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js.map +1 -1
  385. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  386. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
  387. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
  388. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
  389. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  390. package/dist/es-legacy/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  391. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  392. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  393. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  394. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  395. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  396. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  397. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  398. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  399. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  400. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  401. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  402. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  403. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  404. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  405. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  406. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  407. package/dist/es-legacy/components/internal/PayButton/utils.js +1 -1
  408. package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
  409. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  410. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  411. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  412. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  413. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  414. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  415. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  416. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  417. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  418. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  419. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  420. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  421. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  422. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  423. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  424. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  425. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  426. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  427. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  428. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  429. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  430. package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
  431. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  432. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  433. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  434. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  435. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
  436. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  437. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  438. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  439. package/dist/es-legacy/core/Analytics/AnalyticsService.js.map +1 -1
  440. package/dist/es-legacy/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
  441. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  442. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  443. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  444. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  445. package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  446. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  447. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  448. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js +1 -1
  449. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js.map +1 -1
  450. package/dist/es-legacy/core/Context/AmountProvider.js +2 -0
  451. package/dist/es-legacy/core/Context/AmountProvider.js.map +1 -0
  452. package/dist/es-legacy/core/Context/Resources.js.map +1 -1
  453. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  454. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  455. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  456. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/utils.js.map +1 -1
  457. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  458. package/dist/es-legacy/core/Services/http.js.map +1 -1
  459. package/dist/es-legacy/core/config.js +1 -1
  460. package/dist/es-legacy/core/core.js +1 -1
  461. package/dist/es-legacy/core/core.js.map +1 -1
  462. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  463. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  464. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  465. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  466. package/dist/es-legacy/external/preact/hooks/dist/hooks.js +1 -1
  467. package/dist/es-legacy/external/preact/hooks/dist/hooks.js.map +1 -1
  468. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  469. package/dist/es-legacy/language/Language.js.map +1 -1
  470. package/dist/es-legacy/utils/Script.js.map +1 -1
  471. package/dist/es-legacy/utils/Storage.js +1 -1
  472. package/dist/es-legacy/utils/Storage.js.map +1 -1
  473. package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
  474. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  475. package/dist/es-legacy/utils/amount-util.js +1 -1
  476. package/dist/es-legacy/utils/amount-util.js.map +1 -1
  477. package/dist/es-legacy/utils/browserInfo.js +1 -1
  478. package/dist/es-legacy/utils/browserInfo.js.map +1 -1
  479. package/dist/es-legacy/utils/constants/currency-minor-units.js.map +1 -1
  480. package/dist/es-legacy/utils/createSdkData.js.map +1 -1
  481. package/dist/es-legacy/utils/getConsentUrl.js.map +1 -1
  482. package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
  483. package/dist/es-legacy/utils/getProp.js +1 -1
  484. package/dist/es-legacy/utils/getProp.js.map +1 -1
  485. package/dist/es-legacy/utils/hasOwnProperty.js.map +1 -1
  486. package/dist/es-legacy/utils/isValidURL.js.map +1 -1
  487. package/dist/es-legacy/utils/listenerUtils.js.map +1 -1
  488. package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
  489. package/dist/es-legacy/utils/setFocus.js +1 -1
  490. package/dist/es-legacy/utils/setFocus.js.map +1 -1
  491. package/dist/es-legacy/utils/textUtils.js.map +1 -1
  492. package/dist/es-legacy/utils/useAutoFocus.js.map +1 -1
  493. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  494. package/dist/es-legacy/utils/validator-utils.js.map +1 -1
  495. package/dist/es-legacy/utils/windowScrollTo.js +2 -0
  496. package/dist/es-legacy/utils/windowScrollTo.js.map +1 -0
  497. package/package.json +11 -11
  498. package/styles/adyen.css +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"FastlaneSDK.js","sources":["../../../../src/components/PayPalFastlane/FastlaneSDK.ts"],"sourcesContent":["import { resolveEnvironments } from '../../core/Environment';\nimport type { FastlaneTokenData } from './services/request-fastlane-token';\nimport requestFastlaneToken from './services/request-fastlane-token';\nimport { convertAdyenLocaleToFastlaneLocale } from './utils/convert-locale';\nimport Script from '../../utils/Script';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport {\n FastlaneAuthenticatedCustomerResult,\n FastlaneConsentRenderState,\n FastlanePaymentMethodConfiguration,\n FastlaneSDKConfiguration,\n FastlaneShippingAddressSelectorResult,\n FastlaneSignupConfiguration,\n FastlaneWindowInstance\n} from './types';\n\nimport Analytics from '../../core/Analytics';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport type { IAnalytics } from '../../core/Analytics/Analytics';\nimport { AnalyticsEventQueue } from '../../core/Analytics/AnalyticsEventQueue';\nimport { AnalyticsService } from '../../core/Analytics/AnalyticsService';\n\nclass FastlaneSDK {\n private readonly clientKey: string;\n private readonly checkoutShopperURL: string;\n private readonly fastlaneLocale: string;\n private readonly forceConsentDetails: boolean;\n\n private readonly analytics: IAnalytics;\n\n private fastlaneSdk?: FastlaneWindowInstance;\n private latestShopperDetails?: { email: string; customerId: string };\n private fastlaneSessionId?: string;\n\n constructor(configuration: FastlaneSDKConfiguration) {\n if (!configuration?.environment) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'environment' property is required\");\n if (!configuration?.clientKey) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'clientKey' property is required\");\n\n if (configuration.forceConsentDetails && configuration.environment.includes('live'))\n console.warn(\"Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment\");\n\n const { apiUrl, analyticsUrl } = resolveEnvironments(configuration.environment);\n\n this.checkoutShopperURL = apiUrl;\n this.clientKey = configuration.clientKey;\n this.forceConsentDetails = configuration.forceConsentDetails || false;\n this.fastlaneLocale = convertAdyenLocaleToFastlaneLocale(configuration.locale || 'en-US');\n\n this.analytics = new Analytics({\n eventQueue: new AnalyticsEventQueue(),\n service: new AnalyticsService({\n analyticsContext: analyticsUrl,\n clientKey: this.clientKey\n }),\n enabled: configuration.analytics?.enabled\n });\n\n document.addEventListener('visibilitychange', this.handlePageVisibilityChanges);\n }\n\n /**\n * Initializes the Fastlane SDK\n */\n public async initialize(): Promise<FastlaneSDK> {\n void this.analytics.setUp({\n checkoutStage: 'precheckout'\n });\n\n const tokenData = await this.requestClientToken();\n await this.fetchSdk(tokenData.value, tokenData.clientId);\n await this.initializeFastlaneInstance();\n this.trackEvent(InfoEventType.Initialized);\n return this;\n }\n\n public destroy(): void {\n document.removeEventListener('visibilitychange', this.handlePageVisibilityChanges);\n this.analytics.flush();\n }\n\n /**\n * Triggers the authentication for Fastlane using shopper's email.\n * If shopper is recognized, the OTP flow is initialized.\n *\n * @param email\n */\n public async authenticate(email: string): Promise<FastlaneAuthenticatedCustomerResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'authenticate(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.LookupStarted);\n\n try {\n const { customerContextId } = await this.fastlaneSdk.identity.lookupCustomerByEmail(email);\n\n if (customerContextId) {\n this.latestShopperDetails = { email, customerId: customerContextId };\n this.trackEvent(InfoEventType.OtpStarted);\n\n const authResult = await this.fastlaneSdk.identity.triggerAuthenticationFlow(customerContextId);\n this.trackEvent(this.getOtpAnalyticsSubtype(authResult.authenticationState));\n\n return authResult;\n }\n\n this.trackEvent(InfoEventType.LookupUserNotFound);\n return {\n authenticationState: 'not_found',\n profileData: undefined\n };\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred during the authentication flow.', { cause: error });\n }\n }\n\n /**\n * Creates the Component configuration based on the Fastlane authentication result.\n *\n * In case the shopper authenticated successfully, it returns config to be used in the Fastlane component\n * Otherwise, it returns the configuration to be used in the Card component\n *\n * @param authResult\n */\n public async getComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): Promise<FastlanePaymentMethodConfiguration> {\n if (!authResult) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'FastlaneSDK: you must pass the authentication result to get the component configuration'\n );\n }\n\n this.analytics.flush();\n\n const isAuthSuccess = authResult.authenticationState === 'succeeded';\n const hasCardData = !!authResult.profileData?.card;\n const hasShopperDetails = !!this.latestShopperDetails?.email;\n\n if (isAuthSuccess && hasCardData && hasShopperDetails) {\n return this.createFastlaneComponentConfiguration(authResult);\n }\n\n return this.createCardComponentConfiguration();\n }\n\n /**\n * Displays the Fastlane Shipping Address selector UI\n */\n public async showShippingAddressSelector(): Promise<FastlaneShippingAddressSelectorResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'showShippingAddressSelector(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.AddressSelectorClicked);\n\n try {\n const addressSelectorResult = await this.fastlaneSdk.profile.showShippingAddressSelector();\n if (addressSelectorResult.selectionChanged) {\n this.trackEvent(InfoEventType.AddressChanged);\n }\n this.trackEvent(InfoEventType.AddressSelectorClosed);\n\n return addressSelectorResult;\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when showing the shipping address selector', { cause: error });\n }\n }\n\n /**\n * Render the \"Fastlane by PayPal\" logo in the specified HTML container\n */\n public async mountWatermark(container: HTMLElement | string, options = { includeAdditionalInfo: true }): Promise<void> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'mountWatermark(): Fastlane SDK is not initialized');\n }\n\n try {\n const component = await this.fastlaneSdk.FastlaneWatermarkComponent(options);\n component.render(container);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when rendering the watermark', { cause: error });\n }\n }\n\n private requestClientToken(): Promise<FastlaneTokenData> {\n return requestFastlaneToken(this.checkoutShopperURL, this.clientKey);\n }\n\n private async fetchSdk(clientToken: string, clientId: string): Promise<void> {\n const sdkUrl = new URL('https://www.paypal.com/sdk/js');\n sdkUrl.searchParams.set('client-id', clientId);\n sdkUrl.searchParams.set('components', 'buttons,fastlane');\n\n const script = new Script({\n src: sdkUrl.href,\n component: 'fastlane',\n dataAttributes: { sdkClientToken: clientToken },\n analytics: this.analytics\n });\n\n await script.load();\n }\n\n /**\n * Fetch the fastlane session ID used internally by PayPal for Network Token Usage event\n * This ID is not critical for the payment processing part\n *\n * @private\n */\n private async fetchSessionIdAsync(): Promise<void> {\n try {\n const { sessionId } = await this.fastlaneSdk.identity.getSession();\n this.fastlaneSessionId = sessionId;\n } catch (error) {\n console.warn('Fastlane SDK: Failed to fetch session ID', error);\n }\n }\n\n /**\n * Fetch object containing that details that will be used to display the sign-up UI\n * inside the card component\n * @private\n */\n private async fetchConsentDetails(): Promise<FastlaneConsentRenderState> {\n try {\n const consentComponent = await this.fastlaneSdk.ConsentComponent();\n return await consentComponent.getRenderState();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'fetchConsentDetails(): failed to fetch consent details', { cause: error });\n }\n }\n\n private async initializeFastlaneInstance(): Promise<void> {\n try {\n this.fastlaneSdk = await window.paypal.Fastlane({\n intendedExperience: 'externalProcessorCustomConsent',\n ...(this.forceConsentDetails && {\n metadata: {\n geoLocOverride: 'US'\n }\n })\n });\n this.fastlaneSdk.setLocale(this.fastlaneLocale);\n\n void this.fetchSessionIdAsync();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor', {\n cause: error\n });\n }\n }\n\n /**\n * Creates the configuration for the Fastlane component\n *\n * @param authResult\n * @private\n */\n private createFastlaneComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): FastlanePaymentMethodConfiguration {\n return {\n paymentType: 'fastlane',\n configuration: {\n fastlaneSessionId: this.fastlaneSessionId,\n email: this.latestShopperDetails.email,\n tokenId: authResult.profileData.card.id,\n lastFour: authResult.profileData.card.paymentSource.card.lastDigits,\n brand: authResult.profileData.card.paymentSource.card.brand.toLowerCase()\n }\n };\n }\n\n /**\n * Creates the configuration for the Card component, including Fastlane sign-up details if available\n *\n * @private\n */\n private async createCardComponentConfiguration(): Promise<FastlanePaymentMethodConfiguration> {\n const consentDetails = await this.fetchConsentDetails();\n const configuration: { fastlaneConfiguration?: FastlaneSignupConfiguration } = {};\n\n if (consentDetails) {\n configuration.fastlaneConfiguration = {\n fastlaneSessionId: this.fastlaneSessionId,\n ...consentDetails\n };\n }\n\n return {\n paymentType: 'card',\n configuration\n };\n }\n\n private trackEvent(eventType: InfoEventType): void {\n const event = new AnalyticsInfoEvent({ type: eventType, component: 'fastlane' });\n this.analytics.sendAnalytics(event);\n }\n\n private handlePageVisibilityChanges = (): void => {\n if (document.visibilityState === 'hidden') {\n this.analytics.flush();\n }\n };\n\n /**\n * Returns the Info event subtype based on the 'authenticationState'\n * @param authenticationState\n * @private\n */\n private getOtpAnalyticsSubtype(authenticationState: FastlaneAuthenticatedCustomerResult['authenticationState']) {\n switch (authenticationState) {\n case 'succeeded':\n return InfoEventType.OtpSucceeded;\n case 'canceled':\n return InfoEventType.OtpCanceled;\n case 'failed':\n return InfoEventType.OtpFailed;\n case 'not_found':\n return InfoEventType.LookupUserNotFound;\n default:\n return InfoEventType.OtpFailed;\n }\n }\n}\n\nexport default FastlaneSDK;\n"],"names":["FastlaneSDK","initialize","this","analytics","setUp","checkoutStage","tokenData","requestClientToken","fetchSdk","value","clientId","initializeFastlaneInstance","trackEvent","InfoEventType","Initialized","destroy","document","removeEventListener","handlePageVisibilityChanges","flush","authenticate","email","fastlaneSdk","AdyenCheckoutError","LookupStarted","customerContextId","identity","lookupCustomerByEmail","latestShopperDetails","customerId","OtpStarted","authResult","triggerAuthenticationFlow","getOtpAnalyticsSubtype","authenticationState","LookupUserNotFound","profileData","undefined","error","cause","getComponentConfiguration","isAuthSuccess","hasCardData","card","hasShopperDetails","createFastlaneComponentConfiguration","createCardComponentConfiguration","showShippingAddressSelector","AddressSelectorClicked","addressSelectorResult","profile","selectionChanged","AddressChanged","AddressSelectorClosed","mountWatermark","container","options","includeAdditionalInfo","FastlaneWatermarkComponent","render","requestFastlaneToken","checkoutShopperURL","clientKey","clientToken","sdkUrl","URL","searchParams","set","script","Script","src","href","component","dataAttributes","sdkClientToken","load","fetchSessionIdAsync","sessionId","getSession","fastlaneSessionId","console","warn","fetchConsentDetails","consentComponent","ConsentComponent","getRenderState","window","paypal","Fastlane","intendedExperience","forceConsentDetails","metadata","geoLocOverride","setLocale","fastlaneLocale","paymentType","configuration","tokenId","id","lastFour","paymentSource","lastDigits","brand","toLowerCase","consentDetails","fastlaneConfiguration","eventType","event","AnalyticsInfoEvent","type","sendAnalytics","OtpSucceeded","OtpCanceled","OtpFailed","constructor","_define_property","visibilityState","environment","includes","apiUrl","analyticsUrl","resolveEnvironments","convertAdyenLocaleToFastlaneLocale","locale","Analytics","eventQueue","AnalyticsEventQueue","service","AnalyticsService","analyticsContext","enabled","addEventListener"],"mappings":"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"}
1
+ {"version":3,"file":"FastlaneSDK.js","sources":["../../../../src/components/PayPalFastlane/FastlaneSDK.ts"],"sourcesContent":["import { resolveEnvironments } from '../../core/Environment';\nimport type { FastlaneTokenData } from './services/request-fastlane-token';\nimport requestFastlaneToken from './services/request-fastlane-token';\nimport { convertAdyenLocaleToFastlaneLocale } from './utils/convert-locale';\nimport Script from '../../utils/Script';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport {\n FastlaneAuthenticatedCustomerResult,\n FastlaneConsentRenderState,\n FastlanePaymentMethodConfiguration,\n FastlaneSDKConfiguration,\n FastlaneShippingAddressSelectorResult,\n FastlaneSignupConfiguration,\n FastlaneWindowInstance\n} from './types';\n\nimport Analytics from '../../core/Analytics';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport type { IAnalytics } from '../../core/Analytics/Analytics';\nimport { AnalyticsEventQueue } from '../../core/Analytics/AnalyticsEventQueue';\nimport { AnalyticsService } from '../../core/Analytics/AnalyticsService';\n\nclass FastlaneSDK {\n private readonly clientKey: string;\n private readonly checkoutShopperURL: string;\n private readonly fastlaneLocale: string;\n private readonly forceConsentDetails: boolean;\n\n private readonly analytics: IAnalytics;\n\n private fastlaneSdk?: FastlaneWindowInstance;\n private latestShopperDetails?: { email: string; customerId: string };\n private fastlaneSessionId?: string;\n\n constructor(configuration: FastlaneSDKConfiguration) {\n if (!configuration?.environment) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'environment' property is required\");\n if (!configuration?.clientKey) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'clientKey' property is required\");\n\n if (configuration.forceConsentDetails && configuration.environment.includes('live'))\n console.warn(\"Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment\");\n\n const { apiUrl, analyticsUrl } = resolveEnvironments(configuration.environment);\n\n this.checkoutShopperURL = apiUrl;\n this.clientKey = configuration.clientKey;\n this.forceConsentDetails = configuration.forceConsentDetails || false;\n this.fastlaneLocale = convertAdyenLocaleToFastlaneLocale(configuration.locale || 'en-US');\n\n this.analytics = new Analytics({\n eventQueue: new AnalyticsEventQueue(),\n service: new AnalyticsService({\n analyticsContext: analyticsUrl,\n clientKey: this.clientKey\n }),\n enabled: configuration.analytics?.enabled\n });\n\n document.addEventListener('visibilitychange', this.handlePageVisibilityChanges);\n }\n\n /**\n * Initializes the Fastlane SDK\n */\n public async initialize(): Promise<FastlaneSDK> {\n void this.analytics.setUp({\n checkoutStage: 'precheckout'\n });\n\n const tokenData = await this.requestClientToken();\n await this.fetchSdk(tokenData.value, tokenData.clientId);\n await this.initializeFastlaneInstance();\n this.trackEvent(InfoEventType.Initialized);\n return this;\n }\n\n public destroy(): void {\n document.removeEventListener('visibilitychange', this.handlePageVisibilityChanges);\n this.analytics.flush();\n }\n\n /**\n * Triggers the authentication for Fastlane using shopper's email.\n * If shopper is recognized, the OTP flow is initialized.\n *\n * @param email\n */\n public async authenticate(email: string): Promise<FastlaneAuthenticatedCustomerResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'authenticate(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.LookupStarted);\n\n try {\n const { customerContextId } = await this.fastlaneSdk.identity.lookupCustomerByEmail(email);\n\n if (customerContextId) {\n this.latestShopperDetails = { email, customerId: customerContextId };\n this.trackEvent(InfoEventType.OtpStarted);\n\n const authResult = await this.fastlaneSdk.identity.triggerAuthenticationFlow(customerContextId);\n this.trackEvent(this.getOtpAnalyticsSubtype(authResult.authenticationState));\n\n return authResult;\n }\n\n this.trackEvent(InfoEventType.LookupUserNotFound);\n return {\n authenticationState: 'not_found',\n profileData: undefined\n };\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred during the authentication flow.', { cause: error });\n }\n }\n\n /**\n * Creates the Component configuration based on the Fastlane authentication result.\n *\n * In case the shopper authenticated successfully, it returns config to be used in the Fastlane component\n * Otherwise, it returns the configuration to be used in the Card component\n *\n * @param authResult\n */\n public async getComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): Promise<FastlanePaymentMethodConfiguration> {\n if (!authResult) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'FastlaneSDK: you must pass the authentication result to get the component configuration'\n );\n }\n\n this.analytics.flush();\n\n const isAuthSuccess = authResult.authenticationState === 'succeeded';\n const hasCardData = !!authResult.profileData?.card;\n const hasShopperDetails = !!this.latestShopperDetails?.email;\n\n if (isAuthSuccess && hasCardData && hasShopperDetails) {\n return this.createFastlaneComponentConfiguration(authResult);\n }\n\n return this.createCardComponentConfiguration();\n }\n\n /**\n * Displays the Fastlane Shipping Address selector UI\n */\n public async showShippingAddressSelector(): Promise<FastlaneShippingAddressSelectorResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'showShippingAddressSelector(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.AddressSelectorClicked);\n\n try {\n const addressSelectorResult = await this.fastlaneSdk.profile.showShippingAddressSelector();\n if (addressSelectorResult.selectionChanged) {\n this.trackEvent(InfoEventType.AddressChanged);\n }\n this.trackEvent(InfoEventType.AddressSelectorClosed);\n\n return addressSelectorResult;\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when showing the shipping address selector', { cause: error });\n }\n }\n\n /**\n * Render the \"Fastlane by PayPal\" logo in the specified HTML container\n */\n public async mountWatermark(container: HTMLElement | string, options = { includeAdditionalInfo: true }): Promise<void> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'mountWatermark(): Fastlane SDK is not initialized');\n }\n\n try {\n const component = await this.fastlaneSdk.FastlaneWatermarkComponent(options);\n component.render(container);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when rendering the watermark', { cause: error });\n }\n }\n\n private requestClientToken(): Promise<FastlaneTokenData> {\n return requestFastlaneToken(this.checkoutShopperURL, this.clientKey);\n }\n\n private async fetchSdk(clientToken: string, clientId: string): Promise<void> {\n const sdkUrl = new URL('https://www.paypal.com/sdk/js');\n sdkUrl.searchParams.set('client-id', clientId);\n sdkUrl.searchParams.set('components', 'buttons,fastlane');\n\n const script = new Script({\n src: sdkUrl.href,\n component: 'fastlane',\n dataAttributes: { sdkClientToken: clientToken },\n analytics: this.analytics\n });\n\n await script.load();\n }\n\n /**\n * Fetch the fastlane session ID used internally by PayPal for Network Token Usage event\n * This ID is not critical for the payment processing part\n *\n * @private\n */\n private async fetchSessionIdAsync(): Promise<void> {\n try {\n const { sessionId } = await this.fastlaneSdk.identity.getSession();\n this.fastlaneSessionId = sessionId;\n } catch (error) {\n console.warn('Fastlane SDK: Failed to fetch session ID', error);\n }\n }\n\n /**\n * Fetch object containing that details that will be used to display the sign-up UI\n * inside the card component\n * @private\n */\n private async fetchConsentDetails(): Promise<FastlaneConsentRenderState> {\n try {\n const consentComponent = await this.fastlaneSdk.ConsentComponent();\n return await consentComponent.getRenderState();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'fetchConsentDetails(): failed to fetch consent details', { cause: error });\n }\n }\n\n private async initializeFastlaneInstance(): Promise<void> {\n try {\n this.fastlaneSdk = await window.paypal.Fastlane({\n intendedExperience: 'externalProcessorCustomConsent',\n ...(this.forceConsentDetails && {\n metadata: {\n geoLocOverride: 'US'\n }\n })\n });\n this.fastlaneSdk.setLocale(this.fastlaneLocale);\n\n void this.fetchSessionIdAsync();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor', {\n cause: error\n });\n }\n }\n\n /**\n * Creates the configuration for the Fastlane component\n *\n * @param authResult\n * @private\n */\n private createFastlaneComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): FastlanePaymentMethodConfiguration {\n return {\n paymentType: 'fastlane',\n configuration: {\n fastlaneSessionId: this.fastlaneSessionId,\n email: this.latestShopperDetails.email,\n tokenId: authResult.profileData.card.id,\n lastFour: authResult.profileData.card.paymentSource.card.lastDigits,\n brand: authResult.profileData.card.paymentSource.card.brand.toLowerCase()\n }\n };\n }\n\n /**\n * Creates the configuration for the Card component, including Fastlane sign-up details if available\n *\n * @private\n */\n private async createCardComponentConfiguration(): Promise<FastlanePaymentMethodConfiguration> {\n const consentDetails = await this.fetchConsentDetails();\n const configuration: { fastlaneConfiguration?: FastlaneSignupConfiguration } = {};\n\n if (consentDetails) {\n configuration.fastlaneConfiguration = {\n fastlaneSessionId: this.fastlaneSessionId,\n ...consentDetails\n };\n }\n\n return {\n paymentType: 'card',\n configuration\n };\n }\n\n private trackEvent(eventType: InfoEventType): void {\n const event = new AnalyticsInfoEvent({ type: eventType, component: 'fastlane' });\n this.analytics.sendAnalytics(event);\n }\n\n private handlePageVisibilityChanges = (): void => {\n if (document.visibilityState === 'hidden') {\n this.analytics.flush();\n }\n };\n\n /**\n * Returns the Info event subtype based on the 'authenticationState'\n * @param authenticationState\n * @private\n */\n private getOtpAnalyticsSubtype(authenticationState: FastlaneAuthenticatedCustomerResult['authenticationState']) {\n switch (authenticationState) {\n case 'succeeded':\n return InfoEventType.OtpSucceeded;\n case 'canceled':\n return InfoEventType.OtpCanceled;\n case 'failed':\n return InfoEventType.OtpFailed;\n case 'not_found':\n return InfoEventType.LookupUserNotFound;\n default:\n return InfoEventType.OtpFailed;\n }\n }\n}\n\nexport default FastlaneSDK;\n"],"names":["FastlaneSDK","initialize","this","analytics","setUp","checkoutStage","tokenData","requestClientToken","fetchSdk","value","clientId","initializeFastlaneInstance","trackEvent","InfoEventType","Initialized","destroy","document","removeEventListener","handlePageVisibilityChanges","flush","authenticate","email","fastlaneSdk","AdyenCheckoutError","LookupStarted","customerContextId","identity","lookupCustomerByEmail","latestShopperDetails","customerId","OtpStarted","authResult","triggerAuthenticationFlow","getOtpAnalyticsSubtype","authenticationState","LookupUserNotFound","profileData","undefined","error","cause","getComponentConfiguration","isAuthSuccess","hasCardData","card","hasShopperDetails","createFastlaneComponentConfiguration","createCardComponentConfiguration","showShippingAddressSelector","AddressSelectorClicked","addressSelectorResult","profile","selectionChanged","AddressChanged","AddressSelectorClosed","mountWatermark","container","options","includeAdditionalInfo","FastlaneWatermarkComponent","render","requestFastlaneToken","checkoutShopperURL","clientKey","clientToken","sdkUrl","URL","searchParams","set","script","Script","src","href","component","dataAttributes","sdkClientToken","load","fetchSessionIdAsync","sessionId","getSession","fastlaneSessionId","console","warn","fetchConsentDetails","consentComponent","ConsentComponent","getRenderState","window","paypal","Fastlane","intendedExperience","forceConsentDetails","metadata","geoLocOverride","setLocale","fastlaneLocale","paymentType","configuration","tokenId","id","lastFour","paymentSource","lastDigits","brand","toLowerCase","consentDetails","fastlaneConfiguration","eventType","event","AnalyticsInfoEvent","type","sendAnalytics","OtpSucceeded","OtpCanceled","OtpFailed","constructor","_define_property","visibilityState","environment","includes","apiUrl","analyticsUrl","resolveEnvironments","convertAdyenLocaleToFastlaneLocale","locale","Analytics","eventQueue","AnalyticsEventQueue","service","AnalyticsService","analyticsContext","enabled","addEventListener"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FastlaneComponent.js","sources":["../../../../../src/components/PayPalFastlane/components/FastlaneComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport FastlaneCardBrandIcon from './FaslaneCardBrandIcon';\nimport { PREFIX } from '../../internal/Icon/constants';\nimport useImage from '../../../core/Context/useImage';\nimport Img from '../../internal/Img';\nimport type { ComponentMethodsRef, PayButtonFunctionProps, UIElementStatus } from '../../internal/UIElement/types';\n\nimport './Fastlane.scss';\n\ninterface FastlaneComponentProps {\n lastFour: string;\n brand: string;\n showPayButton: boolean;\n setComponentRef(ref: ComponentMethodsRef): void;\n payButton(props?: PayButtonFunctionProps): h.JSX.Element;\n}\n\nconst FastlaneComponent = ({ lastFour, brand, payButton, setComponentRef, showPayButton }: FastlaneComponentProps) => {\n const getImage = useImage();\n const [status, setStatus] = useState<UIElementStatus>('ready');\n const fastlaneRef = useRef({\n setStatus: (status: UIElementStatus) => setStatus(status)\n });\n\n useEffect(() => {\n setComponentRef(fastlaneRef.current);\n }, []);\n\n return (\n <div className=\"adyen-checkout-fastlane\" data-testid=\"payment-method-fastlane\">\n <div className=\"adyen-checkout-fastlane__card-section\">\n <FastlaneCardBrandIcon brand={brand} />\n <span className=\"adyen-checkout-fastlane__card-number\">•••• {lastFour}</span>\n </div>\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`) })}\n\n <div className=\"adyen-checkout-fastlane__brand\">\n <Img src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_gray`)} alt=\"Fastlane logo\" />\n </div>\n </div>\n );\n};\n\nexport default FastlaneComponent;\n"],"names":["FastlaneComponent","lastFour","brand","payButton","setComponentRef","showPayButton","getImage","useImage","status","setStatus","useState","fastlaneRef","useRef","useEffect","current","h","div","className","data-testid","FastlaneCardBrandIcon","span","icon","imageFolder","PREFIX","Img","src","alt"],"mappings":"wWAkBA,MAAMA,EAAoB,EAAGC,WAAUC,QAAOC,YAAWC,kBAAiBC,oBACtE,MAAMC,EAAWC,KACVC,EAAQC,GAAaC,EAA0B,SAChDC,EAAcC,EAAO,CACvBH,UAAYD,GAA4BC,EAAUD,KAOtD,OAJAK,EAAU,KACNT,EAAgBO,EAAYG,UAC7B,IAGCC,EAACC,MAAAA,CAAIC,UAAU,0BAA0BC,cAAY,2BACjDH,EAACC,MAAAA,CAAIC,UAAU,yCACXF,EAACI,EAAAA,CAAsBjB,MAAOA,IAC9Ba,EAACK,OAAAA,CAAKH,UAAU,wCAAuC,QAAMhB,IAGhEI,GAAiBF,EAAU,CAAEK,SAAQa,KAAMf,EAAS,CAAEgB,YAAa,eAAxBhB,CAAyC,GAAGiB,WAExFR,EAACC,MAAAA,CAAIC,UAAU,kCACXF,EAACS,EAAAA,CAAIC,IAAKnB,EAAS,CAAEgB,YAAa,eAAxBhB,CAAyC,wBAAyBoB,IAAI"}
1
+ {"version":3,"file":"FastlaneComponent.js","sources":["../../../../../src/components/PayPalFastlane/components/FastlaneComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport FastlaneCardBrandIcon from './FaslaneCardBrandIcon';\nimport { PREFIX } from '../../internal/Icon/constants';\nimport useImage from '../../../core/Context/useImage';\nimport Img from '../../internal/Img';\nimport type { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\n\nimport './Fastlane.scss';\nimport { PayButtonProps } from '../../internal/PayButton/PayButton';\n\ninterface FastlaneComponentProps {\n lastFour: string;\n brand: string;\n showPayButton: boolean;\n setComponentRef(ref: ComponentMethodsRef): void;\n payButton(props: PayButtonProps): h.JSX.Element;\n}\n\nconst FastlaneComponent = ({ lastFour, brand, payButton, setComponentRef, showPayButton }: FastlaneComponentProps) => {\n const getImage = useImage();\n const [status, setStatus] = useState<UIElementStatus>('ready');\n const fastlaneRef = useRef({\n setStatus: (status: UIElementStatus) => setStatus(status)\n });\n\n useEffect(() => {\n setComponentRef(fastlaneRef.current);\n }, []);\n\n return (\n <div className=\"adyen-checkout-fastlane\" data-testid=\"payment-method-fastlane\">\n <div className=\"adyen-checkout-fastlane__card-section\">\n <FastlaneCardBrandIcon brand={brand} />\n <span className=\"adyen-checkout-fastlane__card-number\">•••• {lastFour}</span>\n </div>\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`) })}\n\n <div className=\"adyen-checkout-fastlane__brand\">\n <Img src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_gray`)} alt=\"Fastlane logo\" />\n </div>\n </div>\n );\n};\n\nexport default FastlaneComponent;\n"],"names":["FastlaneComponent","lastFour","brand","payButton","setComponentRef","showPayButton","getImage","useImage","status","setStatus","useState","fastlaneRef","useRef","useEffect","current","h","div","className","data-testid","FastlaneCardBrandIcon","span","icon","imageFolder","PREFIX","Img","src","alt"],"mappings":"wWAmBA,MAAMA,EAAoB,EAAGC,WAAUC,QAAOC,YAAWC,kBAAiBC,oBACtE,MAAMC,EAAWC,KACVC,EAAQC,GAAaC,EAA0B,SAChDC,EAAcC,EAAO,CACvBH,UAAYD,GAA4BC,EAAUD,KAOtD,OAJAK,EAAU,KACNT,EAAgBO,EAAYG,UAC7B,IAGCC,EAACC,MAAAA,CAAIC,UAAU,0BAA0BC,cAAY,2BACjDH,EAACC,MAAAA,CAAIC,UAAU,yCACXF,EAACI,EAAAA,CAAsBjB,MAAOA,IAC9Ba,EAACK,OAAAA,CAAKH,UAAU,wCAAuC,QAAMhB,IAGhEI,GAAiBF,EAAU,CAAEK,SAAQa,KAAMf,EAAS,CAAEgB,YAAa,eAAxBhB,CAAyC,GAAGiB,WAExFR,EAACC,MAAAA,CAAIC,UAAU,kCACXF,EAACS,EAAAA,CAAIC,IAAKnB,EAAS,CAAEgB,YAAa,eAAxBhB,CAAyC,wBAAyBoB,IAAI"}
@@ -1,2 +1,2 @@
1
- import{createElement as t,Fragment as e}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import{Await as s}from"../internal/Await/Await.js";import{TxVariants as a}from"../tx-variants.js";import{PayToIdentifierEnum as r}from"./components/IdentifierSelector.js";import n from"./components/PayToComponent.js";import{PayToInstructions as p}from"./components/PayToInstructions.js";import i from"./components/MandateSummary.js";import m from"../internal/PayButton/PayButton.js";import{payAmountLabel as h}from"../internal/PayButton/utils.js";function d(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}const l=6e4,u=1e4,c=!1,y=t=>{if("bsb-option"===t.selectedInput)return`${t.bsb}-${t.bankAccountNumber}`;if("payid-option"===t.selectedInput)switch(t.selectedIdentifier){case r.email:return t.email;case r.abn:return t.abn;case r.orgid:return t.orgid;case r.phone:return`${t.phonePrefix}-${t.phoneNumber}`}};class f extends o{formatProps(t){return{...t,data:{...t.data,phonePrefix:"+61"}}}formatData(){return this.props.storedPaymentMethodId?{paymentMethod:{type:f.type,storedPaymentMethodId:this.props.storedPaymentMethodId}}:{paymentMethod:{type:f.type,shopperAccountIdentifier:y(this.state.data)},shopperName:{firstName:this.state.data.firstName,lastName:this.state.data.lastName}}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.name:""}componentToRender(){return this.props.storedPaymentMethodId?t(e,null,this.props.showPayButton&&t(m,{...this.props,classNameModifiers:["standalone"],amount:this.props.amount,label:h(this.props.i18n,this.props.amount),onClick:this.submit})):this.props.paymentData?t(s,{amount:this.props.amount,showAmount:!0,instructions:p,clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.props.onError,onComplete:this.onComplete,brandLogo:this.icon,type:this.constructor.type,messageText:this.props.i18n.get("payto.confirmPayment"),awaitText:this.props.i18n.get("payto.await.waitForConfirmation"),showCountdownTimer:c,throttleTime:l,throttleInterval:u,onActionHandled:this.onActionHandled,endSlot:()=>!!this.props.mandate&&t(i,{mandate:this.props.mandate,payee:this.props.payee,currencyCode:this.props.amount.currency})}):t(n,{data:this.props.data,placeholders:this.props.placeholders,setComponentRef:this.setComponentRef,onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton})}}d(f,"type",a.payto),d(f,"defaultProps",{placeholders:{}});export{f as PayToElement,f as default};
1
+ import{createElement as t,Fragment as e}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import{Await as s}from"../internal/Await/Await.js";import{TxVariants as r}from"../tx-variants.js";import{PayToIdentifierEnum as a}from"./components/IdentifierSelector.js";import n from"./components/PayToComponent.js";import{PayToInstructions as p}from"./components/PayToInstructions.js";import i from"./components/MandateSummary.js";import m from"../internal/PayButton/PayButton.js";import{payAmountLabel as d}from"../internal/PayButton/utils.js";function h(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}const l=6e4,c=1e4,u=!1,y=t=>{if("bsb-option"===t.selectedInput)return`${t.bsb}-${t.bankAccountNumber}`;if("payid-option"===t.selectedInput)switch(t.selectedIdentifier){case a.email:return t.email;case a.abn:return t.abn;case a.orgid:return t.orgid;case a.phone:return`${t.phonePrefix}-${t.phoneNumber}`}};class f extends o{formatProps(t){return{...t,data:{...t.data,phonePrefix:"+61"}}}formatData(){return this.props.storedPaymentMethodId?{paymentMethod:{type:f.type,storedPaymentMethodId:this.props.storedPaymentMethodId}}:{paymentMethod:{type:f.type,shopperAccountIdentifier:y(this.state.data)},shopperName:{firstName:this.state.data.firstName,lastName:this.state.data.lastName}}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.name:""}componentToRender(){return this.props.storedPaymentMethodId?t(e,null,this.props.showPayButton&&t(m,{...this.props,classNameModifiers:["standalone"],label:d(this.props.i18n,this.props.amount),onClick:this.submit})):this.props.paymentData?t(s,{showAmount:!0,instructions:p,clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.props.onError,onComplete:this.onComplete,brandLogo:this.icon,type:this.constructor.type,messageText:this.props.i18n.get("payto.confirmPayment"),awaitText:this.props.i18n.get("payto.await.waitForConfirmation"),showCountdownTimer:u,throttleTime:l,throttleInterval:c,onActionHandled:this.onActionHandled,endSlot:()=>!!this.props.mandate&&t(i,{mandate:this.props.mandate,payee:this.props.payee,currencyCode:this.props.amount.currency})}):t(n,{data:this.props.data,placeholders:this.props.placeholders,setComponentRef:this.setComponentRef,onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton})}}h(f,"type",r.payto),h(f,"defaultProps",{placeholders:{}});export{f as PayToElement,f as default};
2
2
  //# sourceMappingURL=PayTo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayTo.js","sources":["../../../../src/components/PayTo/PayTo.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { Await } from '../../components/internal/Await';\nimport { TxVariants } from '../tx-variants';\nimport { PayToIdentifierEnum } from './components/IdentifierSelector';\nimport PayToComponent from './components/PayToComponent';\nimport { PayToInstructions } from './components/PayToInstructions';\nimport MandateSummary from './components/MandateSummary';\nimport { PayToConfiguration, PayToData } from './types';\nimport PayButton, { payAmountLabel } from '../internal/PayButton';\n\n/*\nAwait Config (previously in its own file)\n */\nconst COUNTDOWN_MINUTES = 15; // min\nconst THROTTLE_TIME = 60000; // ms\nconst THROTTLE_INTERVAL = 10000; // ms\n\nconst config = {\n COUNTDOWN_MINUTES,\n THROTTLE_TIME,\n THROTTLE_INTERVAL,\n showCountdownTimer: false\n};\n\nconst getAccountIdentifier = (state: PayToData) => {\n // if it's BSB Input type merge bankAccount with BSB\n if (state.selectedInput === 'bsb-option') {\n return `${state.bsb}-${state.bankAccountNumber}`;\n } else if (state.selectedInput === 'payid-option') {\n // otherwise use the option in the dropdown\n switch (state.selectedIdentifier) {\n case PayToIdentifierEnum.email:\n return state.email;\n case PayToIdentifierEnum.abn:\n return state.abn;\n case PayToIdentifierEnum.orgid:\n return state.orgid;\n case PayToIdentifierEnum.phone:\n // merge the phone prefix and number - see comment in ticket\n return `${state.phonePrefix}-${state.phoneNumber}`;\n }\n }\n};\n/**\n *\n */\nexport class PayToElement extends UIElement<PayToConfiguration> {\n public static readonly type = TxVariants.payto;\n\n protected static defaultProps = {\n placeholders: {}\n };\n\n formatProps(props: PayToConfiguration) {\n return {\n ...props,\n data: {\n ...props.data,\n phonePrefix: '+61' // hardcode +61\n }\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n if (this.props.storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: PayToElement.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: PayToElement.type,\n shopperAccountIdentifier: getAccountIdentifier(this.state.data)\n },\n shopperName: {\n firstName: this.state.data.firstName,\n lastName: this.state.data.lastName\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.name : '';\n }\n\n protected override componentToRender(): h.JSX.Element {\n // Stored\n if (this.props.storedPaymentMethodId) {\n return (\n <Fragment>\n {this.props.showPayButton && (\n <PayButton\n {...this.props}\n classNameModifiers={['standalone']}\n amount={this.props.amount}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n onClick={this.submit}\n />\n )}\n </Fragment>\n );\n }\n // Await\n if (this.props.paymentData) {\n return (\n <Await\n amount={this.props.amount}\n showAmount={true}\n instructions={PayToInstructions}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={this.constructor['type']}\n messageText={this.props.i18n.get('payto.confirmPayment')}\n awaitText={this.props.i18n.get('payto.await.waitForConfirmation')}\n showCountdownTimer={config.showCountdownTimer}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n endSlot={() =>\n !!this.props.mandate && (\n <MandateSummary mandate={this.props.mandate} payee={this.props.payee} currencyCode={this.props.amount.currency} />\n )\n }\n />\n );\n }\n // Input\n return (\n <PayToComponent\n data={this.props.data}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n />\n );\n }\n}\n\nexport default PayToElement;\n"],"names":["config","getAccountIdentifier","state","selectedInput","bsb","bankAccountNumber","selectedIdentifier","PayToIdentifierEnum","email","abn","orgid","phone","phonePrefix","phoneNumber","PayToElement","UIElement","formatProps","props","data","formatData","this","storedPaymentMethodId","paymentMethod","type","shopperAccountIdentifier","shopperName","firstName","lastName","isValid","displayName","label","name","additionalInfo","componentToRender","h","Fragment","showPayButton","PayButton","classNameModifiers","amount","payAmountLabel","i18n","onClick","submit","paymentData","Await","showAmount","instructions","PayToInstructions","clientKey","onError","onComplete","brandLogo","icon","constructor","messageText","get","awaitText","showCountdownTimer","throttleTime","throttleInterval","onActionHandled","endSlot","mandate","MandateSummary","payee","currencyCode","currency","PayToComponent","placeholders","setComponentRef","onChange","setState","payButton","_define_property","TxVariants","payto","defaultProps"],"mappings":"ysBAeA,MAGMA,EAHgB,IAGhBA,EAFoB,IAEpBA,GAIkB,EAGlBC,EAAwBC,IAE1B,GAA4B,eAAxBA,EAAMC,cACN,MAAO,GAAGD,EAAME,OAAOF,EAAMG,oBAC1B,GAA4B,iBAAxBH,EAAMC,cAEb,OAAQD,EAAMI,oBACV,KAAKC,EAAoBC,MACrB,OAAON,EAAMM,MACjB,KAAKD,EAAoBE,IACrB,OAAOP,EAAMO,IACjB,KAAKF,EAAoBG,MACrB,OAAOR,EAAMQ,MACjB,KAAKH,EAAoBI,MAErB,MAAO,GAAGT,EAAMU,eAAeV,EAAMW,gBAO9C,MAAMC,UAAqBC,EAO9BC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAM,IACCD,EAAMC,KACTN,YAAa,OAGzB,CAKAO,UAAAA,GACI,OAAIC,KAAKH,MAAMI,sBACJ,CACHC,cAAe,CACXC,KAAMT,EAAaS,KACnBF,sBAAuBD,KAAKH,MAAMI,wBAKvC,CACHC,cAAe,CACXC,KAAMT,EAAaS,KACnBC,yBAA0BvB,EAAqBmB,KAAKlB,MAAMgB,OAE9DO,YAAa,CACTC,UAAWN,KAAKlB,MAAMgB,KAAKQ,UAC3BC,SAAUP,KAAKlB,MAAMgB,KAAKS,UAGtC,CAEA,WAAIC,GACA,QAAIR,KAAKH,MAAMI,yBAIND,KAAKlB,MAAM0B,OACxB,CAEA,eAAIC,GACA,OAAIT,KAAKH,MAAMI,uBAAyBD,KAAKH,MAAMa,MACxCV,KAAKH,MAAMa,MAEfV,KAAKH,MAAMc,IACtB,CAEA,kBAAIC,GACA,OAAOZ,KAAKH,MAAMI,sBAAwBD,KAAKH,MAAMc,KAAO,EAChE,CAEmBE,iBAAAA,GAEf,OAAIb,KAAKH,MAAMI,sBAEPa,EAACC,OACIf,KAAKH,MAAMmB,eACRF,EAACG,EAAAA,IACOjB,KAAKH,MACTqB,mBAAoB,CAAC,cACrBC,OAAQnB,KAAKH,MAAMsB,OACnBT,MAAOU,EAAepB,KAAKH,MAAMwB,KAAMrB,KAAKH,MAAMsB,QAClDG,QAAStB,KAAKuB,UAO9BvB,KAAKH,MAAM2B,YAEPV,EAACW,EAAAA,CACGN,OAAQnB,KAAKH,MAAMsB,OACnBO,YAAY,EACZC,aAAcC,EACdC,UAAW7B,KAAKH,MAAMgC,UACtBL,YAAaxB,KAAKH,MAAM2B,YACxBM,QAAS9B,KAAKH,MAAMiC,QACpBC,WAAY/B,KAAK+B,WACjBC,UAAWhC,KAAKiC,KAChB9B,KAAMH,KAAKkC,YAAY,KACvBC,YAAanC,KAAKH,MAAMwB,KAAKe,IAAI,wBACjCC,UAAWrC,KAAKH,MAAMwB,KAAKe,IAAI,mCAC/BE,mBAAoB1D,EACpB2D,aAAc3D,EACd4D,iBAAkB5D,EAClB6D,gBAAiBzC,KAAKyC,gBACtBC,QAAS,MACH1C,KAAKH,MAAM8C,SACT7B,EAAC8B,EAAAA,CAAeD,QAAS3C,KAAKH,MAAM8C,QAASE,MAAO7C,KAAKH,MAAMgD,MAAOC,aAAc9C,KAAKH,MAAMsB,OAAO4B,aAQtHjC,EAACkC,EAAAA,CACGlD,KAAME,KAAKH,MAAMC,KACjBmD,aAAcjD,KAAKH,MAAMoD,aACzBC,gBAAiBlD,KAAKkD,gBACtBC,SAAUnD,KAAKoD,SACfC,UAAWrD,KAAKqD,UAChBrC,cAAehB,KAAKH,MAAMmB,eAGtC,EAnHAsC,EADS5D,EACcS,OAAOoD,EAAWC,OAEzCF,EAHS5D,EAGQ+D,eAAe,CAC5BR,aAAc,CAAA"}
1
+ {"version":3,"file":"PayTo.js","sources":["../../../../src/components/PayTo/PayTo.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { Await } from '../../components/internal/Await';\nimport { TxVariants } from '../tx-variants';\nimport { PayToIdentifierEnum } from './components/IdentifierSelector';\nimport PayToComponent from './components/PayToComponent';\nimport { PayToInstructions } from './components/PayToInstructions';\nimport MandateSummary from './components/MandateSummary';\nimport { PayToConfiguration, PayToData } from './types';\nimport PayButton from '../internal/PayButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\n\n/*\nAwait Config (previously in its own file)\n */\nconst COUNTDOWN_MINUTES = 15; // min\nconst THROTTLE_TIME = 60000; // ms\nconst THROTTLE_INTERVAL = 10000; // ms\n\nconst config = {\n COUNTDOWN_MINUTES,\n THROTTLE_TIME,\n THROTTLE_INTERVAL,\n showCountdownTimer: false\n};\n\nconst getAccountIdentifier = (state: PayToData) => {\n // if it's BSB Input type merge bankAccount with BSB\n if (state.selectedInput === 'bsb-option') {\n return `${state.bsb}-${state.bankAccountNumber}`;\n } else if (state.selectedInput === 'payid-option') {\n // otherwise use the option in the dropdown\n switch (state.selectedIdentifier) {\n case PayToIdentifierEnum.email:\n return state.email;\n case PayToIdentifierEnum.abn:\n return state.abn;\n case PayToIdentifierEnum.orgid:\n return state.orgid;\n case PayToIdentifierEnum.phone:\n // merge the phone prefix and number - see comment in ticket\n return `${state.phonePrefix}-${state.phoneNumber}`;\n }\n }\n};\n/**\n *\n */\nexport class PayToElement extends UIElement<PayToConfiguration> {\n public static readonly type = TxVariants.payto;\n\n protected static defaultProps = {\n placeholders: {}\n };\n\n formatProps(props: PayToConfiguration) {\n return {\n ...props,\n data: {\n ...props.data,\n phonePrefix: '+61' // hardcode +61\n }\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n if (this.props.storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: PayToElement.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: PayToElement.type,\n shopperAccountIdentifier: getAccountIdentifier(this.state.data)\n },\n shopperName: {\n firstName: this.state.data.firstName,\n lastName: this.state.data.lastName\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.name : '';\n }\n\n protected override componentToRender(): h.JSX.Element {\n // Stored\n if (this.props.storedPaymentMethodId) {\n return (\n <Fragment>\n {this.props.showPayButton && (\n <PayButton\n {...this.props}\n classNameModifiers={['standalone']}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n onClick={this.submit}\n />\n )}\n </Fragment>\n );\n }\n // Await\n if (this.props.paymentData) {\n return (\n <Await\n showAmount={true}\n instructions={PayToInstructions}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={this.constructor['type']}\n messageText={this.props.i18n.get('payto.confirmPayment')}\n awaitText={this.props.i18n.get('payto.await.waitForConfirmation')}\n showCountdownTimer={config.showCountdownTimer}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n endSlot={() =>\n !!this.props.mandate && (\n <MandateSummary mandate={this.props.mandate} payee={this.props.payee} currencyCode={this.props.amount.currency} />\n )\n }\n />\n );\n }\n // Input\n return (\n <PayToComponent\n data={this.props.data}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n />\n );\n }\n}\n\nexport default PayToElement;\n"],"names":["config","getAccountIdentifier","state","selectedInput","bsb","bankAccountNumber","selectedIdentifier","PayToIdentifierEnum","email","abn","orgid","phone","phonePrefix","phoneNumber","PayToElement","UIElement","formatProps","props","data","formatData","this","storedPaymentMethodId","paymentMethod","type","shopperAccountIdentifier","shopperName","firstName","lastName","isValid","displayName","label","name","additionalInfo","componentToRender","h","Fragment","showPayButton","PayButton","classNameModifiers","payAmountLabel","i18n","amount","onClick","submit","paymentData","Await","showAmount","instructions","PayToInstructions","clientKey","onError","onComplete","brandLogo","icon","constructor","messageText","get","awaitText","showCountdownTimer","throttleTime","throttleInterval","onActionHandled","endSlot","mandate","MandateSummary","payee","currencyCode","currency","PayToComponent","placeholders","setComponentRef","onChange","setState","payButton","_define_property","TxVariants","payto","defaultProps"],"mappings":"ysBAgBA,MAGMA,EAHgB,IAGhBA,EAFoB,IAEpBA,GAIkB,EAGlBC,EAAwBC,IAE1B,GAA4B,eAAxBA,EAAMC,cACN,MAAO,GAAGD,EAAME,OAAOF,EAAMG,oBAC1B,GAA4B,iBAAxBH,EAAMC,cAEb,OAAQD,EAAMI,oBACV,KAAKC,EAAoBC,MACrB,OAAON,EAAMM,MACjB,KAAKD,EAAoBE,IACrB,OAAOP,EAAMO,IACjB,KAAKF,EAAoBG,MACrB,OAAOR,EAAMQ,MACjB,KAAKH,EAAoBI,MAErB,MAAO,GAAGT,EAAMU,eAAeV,EAAMW,gBAO9C,MAAMC,UAAqBC,EAO9BC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAM,IACCD,EAAMC,KACTN,YAAa,OAGzB,CAKAO,UAAAA,GACI,OAAIC,KAAKH,MAAMI,sBACJ,CACHC,cAAe,CACXC,KAAMT,EAAaS,KACnBF,sBAAuBD,KAAKH,MAAMI,wBAKvC,CACHC,cAAe,CACXC,KAAMT,EAAaS,KACnBC,yBAA0BvB,EAAqBmB,KAAKlB,MAAMgB,OAE9DO,YAAa,CACTC,UAAWN,KAAKlB,MAAMgB,KAAKQ,UAC3BC,SAAUP,KAAKlB,MAAMgB,KAAKS,UAGtC,CAEA,WAAIC,GACA,QAAIR,KAAKH,MAAMI,yBAIND,KAAKlB,MAAM0B,OACxB,CAEA,eAAIC,GACA,OAAIT,KAAKH,MAAMI,uBAAyBD,KAAKH,MAAMa,MACxCV,KAAKH,MAAMa,MAEfV,KAAKH,MAAMc,IACtB,CAEA,kBAAIC,GACA,OAAOZ,KAAKH,MAAMI,sBAAwBD,KAAKH,MAAMc,KAAO,EAChE,CAEmBE,iBAAAA,GAEf,OAAIb,KAAKH,MAAMI,sBAEPa,EAACC,OACIf,KAAKH,MAAMmB,eACRF,EAACG,EAAAA,IACOjB,KAAKH,MACTqB,mBAAoB,CAAC,cACrBR,MAAOS,EAAenB,KAAKH,MAAMuB,KAAMpB,KAAKH,MAAMwB,QAClDC,QAAStB,KAAKuB,UAO9BvB,KAAKH,MAAM2B,YAEPV,EAACW,EAAAA,CACGC,YAAY,EACZC,aAAcC,EACdC,UAAW7B,KAAKH,MAAMgC,UACtBL,YAAaxB,KAAKH,MAAM2B,YACxBM,QAAS9B,KAAKH,MAAMiC,QACpBC,WAAY/B,KAAK+B,WACjBC,UAAWhC,KAAKiC,KAChB9B,KAAMH,KAAKkC,YAAY,KACvBC,YAAanC,KAAKH,MAAMuB,KAAKgB,IAAI,wBACjCC,UAAWrC,KAAKH,MAAMuB,KAAKgB,IAAI,mCAC/BE,mBAAoB1D,EACpB2D,aAAc3D,EACd4D,iBAAkB5D,EAClB6D,gBAAiBzC,KAAKyC,gBACtBC,QAAS,MACH1C,KAAKH,MAAM8C,SACT7B,EAAC8B,EAAAA,CAAeD,QAAS3C,KAAKH,MAAM8C,QAASE,MAAO7C,KAAKH,MAAMgD,MAAOC,aAAc9C,KAAKH,MAAMwB,OAAO0B,aAQtHjC,EAACkC,EAAAA,CACGlD,KAAME,KAAKH,MAAMC,KACjBmD,aAAcjD,KAAKH,MAAMoD,aACzBC,gBAAiBlD,KAAKkD,gBACtBC,SAAUnD,KAAKoD,SACfC,UAAWrD,KAAKqD,UAChBrC,cAAehB,KAAKH,MAAMmB,eAGtC,EAjHAsC,EADS5D,EACcS,OAAOoD,EAAWC,OAEzCF,EAHS5D,EAGQ+D,eAAe,CAC5BR,aAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"PayToComponent.js","sources":["../../../../../src/components/PayTo/components/PayToComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { SegmentedControl } from '../../internal/SegmentedControl';\nimport { useMemo, useState } from 'preact/hooks';\nimport { SegmentedControlOptions } from '../../internal/SegmentedControl/SegmentedControl';\nimport PayIDInput from './PayIDInput';\nimport BSBInput from './BSBInput';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\nimport { PayToData, PayToPlaceholdersType } from '../types';\nimport { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport classNames from 'classnames';\nimport { getUniqueId } from '../../../utils/idGenerator';\nimport './PayToComponent.scss';\n\nexport type PayToInputOption = 'payid-option' | 'bsb-option';\n\nexport type PayToComponentData = { selectedInput: PayToInputOption };\n\nexport interface PayToComponentProps {\n showPayButton: boolean;\n onChange: (e) => void;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n data: PayToData;\n placeholders: PayToPlaceholdersType;\n payButton: (props: Partial<PayButtonProps>) => h.JSX.Element;\n}\n\nexport default function PayToComponent(props: PayToComponentProps) {\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState<UIElementStatus>('ready');\n\n // Generate unique IDs for the input sections\n const payidInputId = useMemo(() => getUniqueId('payid-input'), []);\n const bsbInputId = useMemo(() => getUniqueId('bsb-input'), []);\n\n const inputOptions: SegmentedControlOptions<PayToInputOption> = useMemo(\n () => [\n {\n value: 'payid-option',\n label: 'PayID',\n id: 'payid-option',\n controls: payidInputId\n },\n {\n value: 'bsb-option',\n label: i18n.get('payto.bsb.option.label'),\n id: 'bsb-option',\n controls: bsbInputId\n }\n ],\n [i18n, payidInputId, bsbInputId]\n );\n\n const defaultOption = inputOptions[0].value;\n const [selectedInput, setSelectedInput] = useState<PayToInputOption>(defaultOption);\n\n const onChange = ({ data, valid, errors, isValid }) => {\n // merge selected input to as data, this keep the input layers untouched\n props.onChange({ data: { selectedInput: selectedInput, ...data }, valid, errors, isValid });\n };\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__payto-component': true,\n 'adyen-checkout__payto-component--loading': status === 'loading'\n })}\n >\n <SegmentedControl selectedValue={selectedInput} options={inputOptions} onChange={setSelectedInput} />\n {selectedInput === 'payid-option' && (\n <PayIDInput\n id={payidInputId}\n status={status}\n setStatus={setStatus}\n setComponentRef={props.setComponentRef}\n onChange={onChange}\n defaultData={props.data}\n placeholders={props.placeholders}\n />\n )}\n {selectedInput === 'bsb-option' && (\n <BSBInput\n id={bsbInputId}\n status={status}\n setStatus={setStatus}\n setComponentRef={props.setComponentRef}\n onChange={onChange}\n defaultData={props.data}\n placeholders={props.placeholders}\n />\n )}\n\n {props.showPayButton && props.payButton({ status, label: i18n.get('continue') })}\n </div>\n );\n}\n"],"names":["PayToComponent","props","i18n","useCoreContext","status","setStatus","useState","payidInputId","useMemo","getUniqueId","bsbInputId","inputOptions","value","label","id","controls","get","defaultOption","selectedInput","setSelectedInput","onChange","data","valid","errors","isValid","h","div","className","classNames","SegmentedControl","selectedValue","options","PayIDInput","setComponentRef","defaultData","placeholders","BSBInput","showPayButton","payButton"],"mappings":"6dA2Be,SAASA,EAAeC,GACnC,MAAMC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAA0B,SAGhDC,EAAeC,EAAQ,IAAMC,EAAY,eAAgB,IACzDC,EAAaF,EAAQ,IAAMC,EAAY,aAAc,IAErDE,EAA0DH,EAC5D,IAAM,CACF,CACII,MAAO,eACPC,MAAO,QACPC,GAAI,eACJC,SAAUR,GAEd,CACIK,MAAO,aACPC,MAAOX,EAAKc,IAAI,0BAChBF,GAAI,aACJC,SAAUL,IAGlB,CAACR,EAAMK,EAAcG,IAGnBO,EAAgBN,EAAa,GAAGC,OAC/BM,EAAeC,GAAoBb,EAA2BW,GAE/DG,EAAW,EAAGC,OAAMC,QAAOC,SAAQC,cAErCvB,EAAMmB,SAAS,CAAEC,KAAM,CAAEH,cAAeA,KAAkBG,GAAQC,QAAOC,SAAQC,aAGrF,OACIC,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,mCAAmC,EACnC,2CAAuD,YAAXxB,KAGhDqB,EAACI,EAAAA,CAAiBC,cAAeZ,EAAea,QAASpB,EAAcS,SAAUD,IAC9D,iBAAlBD,GACGO,EAACO,EAAAA,CACGlB,GAAIP,EACJH,OAAQA,EACRC,UAAWA,EACX4B,gBAAiBhC,EAAMgC,gBACvBb,SAAUA,EACVc,YAAajC,EAAMoB,KACnBc,aAAclC,EAAMkC,eAGT,eAAlBjB,GACGO,EAACW,EAAAA,CACGtB,GAAIJ,EACJN,OAAQA,EACRC,UAAWA,EACX4B,gBAAiBhC,EAAMgC,gBACvBb,SAAUA,EACVc,YAAajC,EAAMoB,KACnBc,aAAclC,EAAMkC,eAI3BlC,EAAMoC,eAAiBpC,EAAMqC,UAAU,CAAElC,SAAQS,MAAOX,EAAKc,IAAI,cAG9E"}
1
+ {"version":3,"file":"PayToComponent.js","sources":["../../../../../src/components/PayTo/components/PayToComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { SegmentedControl } from '../../internal/SegmentedControl';\nimport { useMemo, useState } from 'preact/hooks';\nimport { SegmentedControlOptions } from '../../internal/SegmentedControl/SegmentedControl';\nimport PayIDInput from './PayIDInput';\nimport BSBInput from './BSBInput';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\nimport { PayToData, PayToPlaceholdersType } from '../types';\nimport { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport classNames from 'classnames';\nimport { getUniqueId } from '../../../utils/idGenerator';\nimport './PayToComponent.scss';\n\nexport type PayToInputOption = 'payid-option' | 'bsb-option';\n\nexport type PayToComponentData = { selectedInput: PayToInputOption };\n\nexport interface PayToComponentProps {\n showPayButton: boolean;\n onChange: (e) => void;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n data: PayToData;\n placeholders: PayToPlaceholdersType;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n}\n\nexport default function PayToComponent(props: PayToComponentProps) {\n const { i18n } = useCoreContext();\n\n const [status, setStatus] = useState<UIElementStatus>('ready');\n\n // Generate unique IDs for the input sections\n const payidInputId = useMemo(() => getUniqueId('payid-input'), []);\n const bsbInputId = useMemo(() => getUniqueId('bsb-input'), []);\n\n const inputOptions: SegmentedControlOptions<PayToInputOption> = useMemo(\n () => [\n {\n value: 'payid-option',\n label: 'PayID',\n id: 'payid-option',\n controls: payidInputId\n },\n {\n value: 'bsb-option',\n label: i18n.get('payto.bsb.option.label'),\n id: 'bsb-option',\n controls: bsbInputId\n }\n ],\n [i18n, payidInputId, bsbInputId]\n );\n\n const defaultOption = inputOptions[0].value;\n const [selectedInput, setSelectedInput] = useState<PayToInputOption>(defaultOption);\n\n const onChange = ({ data, valid, errors, isValid }) => {\n // merge selected input to as data, this keep the input layers untouched\n props.onChange({ data: { selectedInput: selectedInput, ...data }, valid, errors, isValid });\n };\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__payto-component': true,\n 'adyen-checkout__payto-component--loading': status === 'loading'\n })}\n >\n <SegmentedControl selectedValue={selectedInput} options={inputOptions} onChange={setSelectedInput} />\n {selectedInput === 'payid-option' && (\n <PayIDInput\n id={payidInputId}\n status={status}\n setStatus={setStatus}\n setComponentRef={props.setComponentRef}\n onChange={onChange}\n defaultData={props.data}\n placeholders={props.placeholders}\n />\n )}\n {selectedInput === 'bsb-option' && (\n <BSBInput\n id={bsbInputId}\n status={status}\n setStatus={setStatus}\n setComponentRef={props.setComponentRef}\n onChange={onChange}\n defaultData={props.data}\n placeholders={props.placeholders}\n />\n )}\n\n {props.showPayButton && props.payButton({ status, label: i18n.get('continue') })}\n </div>\n );\n}\n"],"names":["PayToComponent","props","i18n","useCoreContext","status","setStatus","useState","payidInputId","useMemo","getUniqueId","bsbInputId","inputOptions","value","label","id","controls","get","defaultOption","selectedInput","setSelectedInput","onChange","data","valid","errors","isValid","h","div","className","classNames","SegmentedControl","selectedValue","options","PayIDInput","setComponentRef","defaultData","placeholders","BSBInput","showPayButton","payButton"],"mappings":"6dA2Be,SAASA,EAAeC,GACnC,MAAMC,KAAEA,GAASC,KAEVC,EAAQC,GAAaC,EAA0B,SAGhDC,EAAeC,EAAQ,IAAMC,EAAY,eAAgB,IACzDC,EAAaF,EAAQ,IAAMC,EAAY,aAAc,IAErDE,EAA0DH,EAC5D,IAAM,CACF,CACII,MAAO,eACPC,MAAO,QACPC,GAAI,eACJC,SAAUR,GAEd,CACIK,MAAO,aACPC,MAAOX,EAAKc,IAAI,0BAChBF,GAAI,aACJC,SAAUL,IAGlB,CAACR,EAAMK,EAAcG,IAGnBO,EAAgBN,EAAa,GAAGC,OAC/BM,EAAeC,GAAoBb,EAA2BW,GAE/DG,EAAW,EAAGC,OAAMC,QAAOC,SAAQC,cAErCvB,EAAMmB,SAAS,CAAEC,KAAM,CAAEH,cAAeA,KAAkBG,GAAQC,QAAOC,SAAQC,aAGrF,OACIC,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,mCAAmC,EACnC,2CAAuD,YAAXxB,KAGhDqB,EAACI,EAAAA,CAAiBC,cAAeZ,EAAea,QAASpB,EAAcS,SAAUD,IAC9D,iBAAlBD,GACGO,EAACO,EAAAA,CACGlB,GAAIP,EACJH,OAAQA,EACRC,UAAWA,EACX4B,gBAAiBhC,EAAMgC,gBACvBb,SAAUA,EACVc,YAAajC,EAAMoB,KACnBc,aAAclC,EAAMkC,eAGT,eAAlBjB,GACGO,EAACW,EAAAA,CACGtB,GAAIJ,EACJN,OAAQA,EACRC,UAAWA,EACX4B,gBAAiBhC,EAAMgC,gBACvBb,SAAUA,EACVc,YAAajC,EAAMoB,KACnBc,aAAclC,EAAMkC,eAI3BlC,EAAMoC,eAAiBpC,EAAMqC,UAAU,CAAElC,SAAQS,MAAOX,EAAKc,IAAI,cAG9E"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as a}from"../../../external/preact/dist/preact.js";import r from"../../internal/FormFields/Field/Field.js";import{getErrorMessage as s}from"../../../utils/getErrorMessage.js";import t from"../../internal/FormFields/InputText.js";function l({i18n:l,errors:m,data:i,handleChangeFor:o,placeholders:n}){return e(a,null,e(r,{label:l.get("payto.label.firstName"),classNameModifiers:["col-50","firstName"],errorMessage:s(l,m.firstName,l.get("firstName")),name:"firstName",i18n:l},e(t,{name:"firstName",value:i.firstName,classNameModifiers:["firstName"],onInput:o("firstName","input"),onBlur:o("firstName","input"),placeholder:n?.firstName,spellCheck:!1,required:!0})),e(r,{label:l.get("payto.label.lastName"),classNameModifiers:["col-50","lastName"],errorMessage:s(l,m.lastName,l.get("lastName")),name:"lastName",i18n:l},e(t,{name:"lastName",value:i.lastName,classNameModifiers:["lastName"],onInput:o("lastName","input"),onBlur:o("lastName","blur"),placeholder:n?.lastName,spellCheck:!1,required:!0})))}export{l as default};
1
+ import{createElement as e,Fragment as a}from"../../../external/preact/dist/preact.js";import r from"../../internal/FormFields/Field/Field.js";import{getErrorMessage as s}from"../../../utils/getErrorMessage.js";import t from"../../internal/FormFields/InputText.js";function l({i18n:l,errors:m,data:i,handleChangeFor:o,placeholders:n}){return e(a,null,e(r,{label:l.get("payto.label.firstName"),classNameModifiers:["col-50","firstName"],errorMessage:s(l,m.firstName,l.get("firstName")),name:"firstName",i18n:l},e(t,{name:"firstName",value:i.firstName,classNameModifiers:["firstName"],onInput:o("firstName","input"),onBlur:o("firstName","input"),placeholder:n?.firstName,spellcheck:!1,required:!0})),e(r,{label:l.get("payto.label.lastName"),classNameModifiers:["col-50","lastName"],errorMessage:s(l,m.lastName,l.get("lastName")),name:"lastName",i18n:l},e(t,{name:"lastName",value:i.lastName,classNameModifiers:["lastName"],onInput:o("lastName","input"),onBlur:o("lastName","blur"),placeholder:n?.lastName,spellcheck:!1,required:!0})))}export{l as default};
2
2
  //# sourceMappingURL=PayToNameFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayToNameFields.js","sources":["../../../../../src/components/PayTo/components/PayToNameFields.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport Field from '../../internal/FormFields/Field';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport InputText from '../../internal/FormFields/InputText';\nimport Language from '../../../language';\nimport { HandleChangeForModeType } from '../../../utils/useForm/types';\n\nexport interface PayToNameFieldsProps {\n i18n: Language;\n errors: {\n [key: string]: any;\n };\n data: {\n firstName: string;\n lastName: string;\n };\n handleChangeFor: (key: string, mode?: HandleChangeForModeType) => (e: any) => void;\n placeholders: {\n firstName: string;\n lastName: string;\n };\n}\n\nexport default function PayToNameFields({ i18n, errors, data, handleChangeFor, placeholders }: PayToNameFieldsProps) {\n return (\n <Fragment>\n <Field\n label={i18n.get('payto.label.firstName')}\n classNameModifiers={['col-50', 'firstName']}\n errorMessage={getErrorMessage(i18n, errors.firstName, i18n.get('firstName'))}\n name={'firstName'}\n i18n={i18n}\n >\n <InputText\n name={'firstName'}\n value={data.firstName}\n classNameModifiers={['firstName']}\n onInput={handleChangeFor('firstName', 'input')}\n onBlur={handleChangeFor('firstName', 'input')}\n placeholder={placeholders?.firstName}\n spellCheck={false}\n required={true}\n />\n </Field>\n <Field\n label={i18n.get('payto.label.lastName')}\n classNameModifiers={['col-50', 'lastName']}\n errorMessage={getErrorMessage(i18n, errors.lastName, i18n.get('lastName'))}\n name={'lastName'}\n i18n={i18n}\n >\n <InputText\n name={'lastName'}\n value={data.lastName}\n classNameModifiers={['lastName']}\n onInput={handleChangeFor('lastName', 'input')}\n onBlur={handleChangeFor('lastName', 'blur')}\n placeholder={placeholders?.lastName}\n spellCheck={false}\n required={true}\n />\n </Field>\n </Fragment>\n );\n}\n"],"names":["PayToNameFields","i18n","errors","data","handleChangeFor","placeholders","h","Fragment","Field","label","get","classNameModifiers","errorMessage","getErrorMessage","firstName","name","InputText","value","onInput","onBlur","placeholder","spellCheck","required","lastName"],"mappings":"wQAuBe,SAASA,GAAgBC,KAAEA,EAAIC,OAAEA,EAAMC,KAAEA,EAAIC,gBAAEA,EAAeC,aAAEA,IAC3E,OACIC,EAACC,OACGD,EAACE,EAAAA,CACGC,MAAOR,EAAKS,IAAI,yBAChBC,mBAAoB,CAAC,SAAU,aAC/BC,aAAcC,EAAgBZ,EAAMC,EAAOY,UAAWb,EAAKS,IAAI,cAC/DK,KAAM,YACNd,KAAMA,GAENK,EAACU,EAAAA,CACGD,KAAM,YACNE,MAAOd,EAAKW,UACZH,mBAAoB,CAAC,aACrBO,QAASd,EAAgB,YAAa,SACtCe,OAAQf,EAAgB,YAAa,SACrCgB,YAAaf,GAAcS,UAC3BO,YAAY,EACZC,UAAU,KAGlBhB,EAACE,EAAAA,CACGC,MAAOR,EAAKS,IAAI,wBAChBC,mBAAoB,CAAC,SAAU,YAC/BC,aAAcC,EAAgBZ,EAAMC,EAAOqB,SAAUtB,EAAKS,IAAI,aAC9DK,KAAM,WACNd,KAAMA,GAENK,EAACU,EAAAA,CACGD,KAAM,WACNE,MAAOd,EAAKoB,SACZZ,mBAAoB,CAAC,YACrBO,QAASd,EAAgB,WAAY,SACrCe,OAAQf,EAAgB,WAAY,QACpCgB,YAAaf,GAAckB,SAC3BF,YAAY,EACZC,UAAU,KAK9B"}
1
+ {"version":3,"file":"PayToNameFields.js","sources":["../../../../../src/components/PayTo/components/PayToNameFields.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport Field from '../../internal/FormFields/Field';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport InputText from '../../internal/FormFields/InputText';\nimport Language from '../../../language';\nimport { HandleChangeForModeType } from '../../../utils/useForm/types';\n\nexport interface PayToNameFieldsProps {\n i18n: Language;\n errors: {\n [key: string]: any;\n };\n data: {\n firstName: string;\n lastName: string;\n };\n handleChangeFor: (key: string, mode?: HandleChangeForModeType) => (e: any) => void;\n placeholders: {\n firstName: string;\n lastName: string;\n };\n}\n\nexport default function PayToNameFields({ i18n, errors, data, handleChangeFor, placeholders }: PayToNameFieldsProps) {\n return (\n <Fragment>\n <Field\n label={i18n.get('payto.label.firstName')}\n classNameModifiers={['col-50', 'firstName']}\n errorMessage={getErrorMessage(i18n, errors.firstName, i18n.get('firstName'))}\n name={'firstName'}\n i18n={i18n}\n >\n <InputText\n name={'firstName'}\n value={data.firstName}\n classNameModifiers={['firstName']}\n onInput={handleChangeFor('firstName', 'input')}\n onBlur={handleChangeFor('firstName', 'input')}\n placeholder={placeholders?.firstName}\n spellcheck={false}\n required={true}\n />\n </Field>\n <Field\n label={i18n.get('payto.label.lastName')}\n classNameModifiers={['col-50', 'lastName']}\n errorMessage={getErrorMessage(i18n, errors.lastName, i18n.get('lastName'))}\n name={'lastName'}\n i18n={i18n}\n >\n <InputText\n name={'lastName'}\n value={data.lastName}\n classNameModifiers={['lastName']}\n onInput={handleChangeFor('lastName', 'input')}\n onBlur={handleChangeFor('lastName', 'blur')}\n placeholder={placeholders?.lastName}\n spellcheck={false}\n required={true}\n />\n </Field>\n </Fragment>\n );\n}\n"],"names":["PayToNameFields","i18n","errors","data","handleChangeFor","placeholders","h","Fragment","Field","label","get","classNameModifiers","errorMessage","getErrorMessage","firstName","name","InputText","value","onInput","onBlur","placeholder","spellcheck","required","lastName"],"mappings":"wQAuBe,SAASA,GAAgBC,KAAEA,EAAIC,OAAEA,EAAMC,KAAEA,EAAIC,gBAAEA,EAAeC,aAAEA,IAC3E,OACIC,EAACC,OACGD,EAACE,EAAAA,CACGC,MAAOR,EAAKS,IAAI,yBAChBC,mBAAoB,CAAC,SAAU,aAC/BC,aAAcC,EAAgBZ,EAAMC,EAAOY,UAAWb,EAAKS,IAAI,cAC/DK,KAAM,YACNd,KAAMA,GAENK,EAACU,EAAAA,CACGD,KAAM,YACNE,MAAOd,EAAKW,UACZH,mBAAoB,CAAC,aACrBO,QAASd,EAAgB,YAAa,SACtCe,OAAQf,EAAgB,YAAa,SACrCgB,YAAaf,GAAcS,UAC3BO,YAAY,EACZC,UAAU,KAGlBhB,EAACE,EAAAA,CACGC,MAAOR,EAAKS,IAAI,wBAChBC,mBAAoB,CAAC,SAAU,YAC/BC,aAAcC,EAAgBZ,EAAMC,EAAOqB,SAAUtB,EAAKS,IAAI,aAC9DK,KAAM,WACNd,KAAMA,GAENK,EAACU,EAAAA,CACGD,KAAM,WACNE,MAAOd,EAAKoB,SACZZ,mBAAoB,CAAC,YACrBO,QAASd,EAAgB,WAAY,SACrCe,OAAQf,EAAgB,WAAY,QACpCgB,YAAaf,GAAckB,SAC3BF,YAAY,EACZC,UAAU,KAK9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"PersonalDetails.js","sources":["../../../../src/components/PersonalDetails/PersonalDetails.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PersonalDetails from '../internal/PersonalDetails';\nimport { TxVariants } from '../tx-variants';\nimport FormInstruction from '../internal/FormInstruction';\nimport { UIElementProps } from '../internal/UIElement/types';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\ninterface PersonalDetailsConfiguration extends UIElementProps {}\n\nexport class PersonalDetailsElement extends UIElement<PersonalDetailsConfiguration> {\n public static type = TxVariants.personal_details;\n\n protected override beforeRender(configSetByMerchant?: PersonalDetailsConfiguration): void {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: configSetByMerchant\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n get data() {\n return this.state.data;\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <Fragment>\n <FormInstruction />\n <PersonalDetails\n setComponentRef={this.setComponentRef}\n {...this.props}\n onChange={this.setState}\n {...(process.env.NODE_ENV !== 'production' && { payButton: this.payButton })}\n />\n </Fragment>\n );\n }\n}\n\nexport default PersonalDetailsElement;\n"],"names":["PersonalDetailsElement","UIElement","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","type","InfoEventType","rendered","component","this","configData","analytics","sendAnalytics","data","state","isValid","componentToRender","h","Fragment","FormInstruction","PersonalDetails","setComponentRef","props","onChange","setState","TxVariants","personal_details"],"mappings":"uaAUO,MAAMA,UAA+BC,EAGrBC,YAAAA,CAAaC,GAC5B,MAAMC,EAAQ,IAAIC,EAAmB,CACjCC,KAAMC,EAAcC,SACpBC,UAAWC,KAAKJ,KAChBK,WAAYR,IAGhBO,KAAKE,UAAUC,cAAcT,EACjC,CAEA,QAAIU,GACA,OAAOJ,KAAKK,MAAMD,IACtB,CAEA,WAAIE,GACA,QAASN,KAAKK,MAAMC,OACxB,CAEmBC,iBAAAA,GACf,OACIC,EAACC,EAAAA,KACGD,EAACE,EAAAA,MACDF,EAACG,EAAAA,CACGC,gBAAiBZ,KAAKY,mBAClBZ,KAAKa,MACTC,SAAUd,KAAKe,WAK/B,cAjCSzB,IACKM,SAAOoB,EAAWC"}
1
+ {"version":3,"file":"PersonalDetails.js","sources":["../../../../src/components/PersonalDetails/PersonalDetails.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PersonalDetails from '../internal/PersonalDetails';\nimport { TxVariants } from '../tx-variants';\nimport FormInstruction from '../internal/FormInstruction';\nimport { UIElementProps } from '../internal/UIElement/types';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\ninterface PersonalDetailsConfiguration extends UIElementProps {}\n\nexport class PersonalDetailsElement extends UIElement<PersonalDetailsConfiguration> {\n public static readonly type = TxVariants.personal_details;\n\n protected override beforeRender(configSetByMerchant?: PersonalDetailsConfiguration): void {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: configSetByMerchant\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n get data() {\n return this.state.data;\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <Fragment>\n <FormInstruction />\n <PersonalDetails\n setComponentRef={this.setComponentRef}\n {...this.props}\n onChange={this.setState}\n {...(process.env.NODE_ENV !== 'production' && { payButton: this.payButton })}\n />\n </Fragment>\n );\n }\n}\n\nexport default PersonalDetailsElement;\n"],"names":["PersonalDetailsElement","UIElement","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","type","InfoEventType","rendered","component","this","configData","analytics","sendAnalytics","data","state","isValid","componentToRender","h","Fragment","FormInstruction","PersonalDetails","setComponentRef","props","onChange","setState","TxVariants","personal_details"],"mappings":"uaAUO,MAAMA,UAA+BC,EAGrBC,YAAAA,CAAaC,GAC5B,MAAMC,EAAQ,IAAIC,EAAmB,CACjCC,KAAMC,EAAcC,SACpBC,UAAWC,KAAKJ,KAChBK,WAAYR,IAGhBO,KAAKE,UAAUC,cAAcT,EACjC,CAEA,QAAIU,GACA,OAAOJ,KAAKK,MAAMD,IACtB,CAEA,WAAIE,GACA,QAASN,KAAKK,MAAMC,OACxB,CAEmBC,iBAAAA,GACf,OACIC,EAACC,EAAAA,KACGD,EAACE,EAAAA,MACDF,EAACG,EAAAA,CACGC,gBAAiBZ,KAAKY,mBAClBZ,KAAKa,MACTC,SAAUd,KAAKe,WAK/B,cAjCSzB,IACcM,SAAOoB,EAAWC"}
@@ -1,2 +1,2 @@
1
- import{createElement as t,Fragment as e}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import{TxVariants as s}from"../tx-variants.js";import a from"./components/PreAuthorizedDebitCanadaComponent.js";import{SettlementInfo as n}from"./components/SettlementInfo.js";import r from"../internal/RedirectButton/RedirectButton.js";import"../internal/Button/Button.js";import"../../core/Context/CoreProvider.js";import{payAmountLabel as i}from"../internal/PayButton/utils.js";class p extends o{formatData(){return!!this.props.storedPaymentMethodId?{paymentMethod:{type:p.type,storedPaymentMethodId:this.props.storedPaymentMethodId}}:{paymentMethod:{type:p.type,ownerName:this.state.data.ownerName,bankAccountNumber:this.state.data.bankAccountNumber,bankCode:this.state.data.bankCode,bankLocationId:this.state.data.bankLocationId},...this.state.storePaymentMethod&&{storePaymentMethod:this.state.storePaymentMethod}}}formatProps(t){return{enableStoreDetails:t.session?.configuration?.enableStoreDetails??t.enableStoreDetails,...t}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.lastFour?`•••• ${this.props.lastFour}`:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.label:""}componentToRender(){return this.props.storedPaymentMethodId?t(e,null,t(n,null),t(r,{showPayButton:this.props.showPayButton,icon:this.resources?.getImage({imageFolder:"components/"})("bento_lock"),label:i(this.props.i18n,this.props.amount),name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}})):t(a,{onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton,placeholders:this.props.placeholders,setComponentRef:this.setComponentRef,showContextualElement:this.props.showContextualElement,enableStoreDetails:this.props.enableStoreDetails})}}var m,d,h;m=p,d="type",h=s.eft_directdebit_CA,d in m?Object.defineProperty(m,d,{value:h,enumerable:!0,configurable:!0,writable:!0}):m[d]=h;export{p as PreAuthorizedDebitCanada,p as default};
1
+ import{createElement as t,Fragment as e}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import{TxVariants as s}from"../tx-variants.js";import a from"./components/PreAuthorizedDebitCanadaComponent.js";import{SettlementInfo as n}from"./components/SettlementInfo.js";import r from"../internal/RedirectButton/RedirectButton.js";import{payAmountLabel as i}from"../internal/PayButton/utils.js";class p extends o{formatData(){return!!this.props.storedPaymentMethodId?{paymentMethod:{type:p.type,storedPaymentMethodId:this.props.storedPaymentMethodId}}:{paymentMethod:{type:p.type,ownerName:this.state.data.ownerName,bankAccountNumber:this.state.data.bankAccountNumber,bankCode:this.state.data.bankCode,bankLocationId:this.state.data.bankLocationId},...this.state.storePaymentMethod&&{storePaymentMethod:this.state.storePaymentMethod}}}formatProps(t){return{enableStoreDetails:t.session?.configuration?.enableStoreDetails??t.enableStoreDetails,...t}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.lastFour?`•••• ${this.props.lastFour}`:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.label:""}componentToRender(){return this.props.storedPaymentMethodId?t(e,null,t(n,null),t(r,{showPayButton:this.props.showPayButton,icon:this.resources?.getImage({imageFolder:"components/"})("bento_lock"),label:i(this.props.i18n,this.props.amount),name:this.displayName,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}})):t(a,{onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton,placeholders:this.props.placeholders,setComponentRef:this.setComponentRef,showContextualElement:this.props.showContextualElement,enableStoreDetails:this.props.enableStoreDetails})}}var m,d,h;m=p,d="type",h=s.eft_directdebit_CA,d in m?Object.defineProperty(m,d,{value:h,enumerable:!0,configurable:!0,writable:!0}):m[d]=h;export{p as PreAuthorizedDebitCanada,p as default};
2
2
  //# sourceMappingURL=PreAuthorizedDebitCanada.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreAuthorizedDebitCanada.js","sources":["../../../../src/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { TxVariants } from '../tx-variants';\nimport PreAuthorizedDebitCanadaComponent from './components/PreAuthorizedDebitCanadaComponent';\nimport { SettlementInfo } from './components/SettlementInfo';\nimport RedirectButton from '../internal/RedirectButton';\nimport { payAmountLabel } from '../internal/PayButton';\n\nimport type { PreAuthorizedDebitCanadaConfiguration } from './types';\n\nexport class PreAuthorizedDebitCanada extends UIElement<PreAuthorizedDebitCanadaConfiguration> {\n public static type = TxVariants.eft_directdebit_CA;\n\n public override formatData() {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n if (recurringPayment) {\n return {\n paymentMethod: {\n type: PreAuthorizedDebitCanada.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: PreAuthorizedDebitCanada.type,\n ownerName: this.state.data.ownerName,\n bankAccountNumber: this.state.data.bankAccountNumber,\n bankCode: this.state.data.bankCode,\n bankLocationId: this.state.data.bankLocationId\n },\n ...(this.state.storePaymentMethod && { storePaymentMethod: this.state.storePaymentMethod })\n };\n }\n\n public override formatProps(props: PreAuthorizedDebitCanadaConfiguration): PreAuthorizedDebitCanadaConfiguration {\n return {\n enableStoreDetails: props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails,\n ...props\n };\n }\n\n public override get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n public override get displayName(): string {\n if (this.props.storedPaymentMethodId && this.props.lastFour) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name;\n }\n\n public override get additionalInfo(): string {\n return this.props.storedPaymentMethodId ? this.props.label : '';\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n <Fragment>\n <SettlementInfo />\n <RedirectButton\n showPayButton={this.props.showPayButton}\n icon={this.resources?.getImage({ imageFolder: 'components/' })(`bento_lock`)}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n name={this.displayName}\n amount={this.props.amount}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </Fragment>\n ) : (\n <PreAuthorizedDebitCanadaComponent\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n showContextualElement={this.props.showContextualElement}\n enableStoreDetails={this.props.enableStoreDetails}\n />\n );\n }\n}\n\nexport default PreAuthorizedDebitCanada;\n"],"names":["PreAuthorizedDebitCanada","UIElement","formatData","this","props","storedPaymentMethodId","paymentMethod","type","ownerName","state","data","bankAccountNumber","bankCode","bankLocationId","storePaymentMethod","formatProps","enableStoreDetails","session","configuration","isValid","displayName","lastFour","name","additionalInfo","label","componentToRender","h","Fragment","SettlementInfo","RedirectButton","showPayButton","icon","resources","getImage","imageFolder","payAmountLabel","i18n","amount","payButton","onSubmit","submit","ref","componentRef","PreAuthorizedDebitCanadaComponent","onChange","setState","placeholders","setComponentRef","showContextualElement","TxVariants","eft_directdebit_CA"],"mappings":"8gBAUO,MAAMA,UAAiCC,EAG1BC,UAAAA,GAGZ,QAF2BC,KAAKC,MAAMC,sBAG3B,CACHC,cAAe,CACXC,KAAMP,EAAyBO,KAC/BF,sBAAuBF,KAAKC,MAAMC,wBAKvC,CACHC,cAAe,CACXC,KAAMP,EAAyBO,KAC/BC,UAAWL,KAAKM,MAAMC,KAAKF,UAC3BG,kBAAmBR,KAAKM,MAAMC,KAAKC,kBACnCC,SAAUT,KAAKM,MAAMC,KAAKE,SAC1BC,eAAgBV,KAAKM,MAAMC,KAAKG,mBAEhCV,KAAKM,MAAMK,oBAAsB,CAAEA,mBAAoBX,KAAKM,MAAMK,oBAE9E,CAEgBC,WAAAA,CAAYX,GACxB,MAAO,CACHY,mBAAoBZ,EAAMa,SAASC,eAAeF,oBAAsBZ,EAAMY,sBAC3EZ,EAEX,CAEA,WAAoBe,GAChB,QAAIhB,KAAKC,MAAMC,yBAINF,KAAKM,MAAMU,OACxB,CAEA,eAAoBC,GAChB,OAAIjB,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMiB,SACxC,QAAQlB,KAAKC,MAAMiB,WAGvBlB,KAAKC,MAAMkB,IACtB,CAEA,kBAAoBC,GAChB,OAAOpB,KAAKC,MAAMC,sBAAwBF,KAAKC,MAAMoB,MAAQ,EACjE,CAEmBC,iBAAAA,GACf,OAAOtB,KAAKC,MAAMC,sBACdqB,EAACC,EAAAA,KACGD,EAACE,EAAAA,MACDF,EAACG,EAAAA,CACGC,cAAe3B,KAAKC,MAAM0B,cAC1BC,KAAM5B,KAAK6B,WAAWC,SAAS,CAAEC,YAAa,eAAxC/B,CAAyD,cAC/DqB,MAAOW,EAAehC,KAAKC,MAAMgC,KAAMjC,KAAKC,MAAMiC,QAClDf,KAAMnB,KAAKiB,YACXiB,OAAQlC,KAAKC,MAAMiC,OACnBC,UAAWnC,KAAKmC,UAChBC,SAAUpC,KAAKqC,OACfC,IAAKA,IACDtC,KAAKuC,aAAeD,MAKhCf,EAACiB,EAAAA,CACGC,SAAUzC,KAAK0C,SACfP,UAAWnC,KAAKmC,UAChBR,cAAe3B,KAAKC,MAAM0B,cAC1BgB,aAAc3C,KAAKC,MAAM0C,aACzBC,gBAAiB5C,KAAK4C,gBACtBC,sBAAuB7C,KAAKC,MAAM4C,sBAClChC,mBAAoBb,KAAKC,MAAMY,oBAG3C,cAlFShB,IACKO,SAAO0C,EAAWC"}
1
+ {"version":3,"file":"PreAuthorizedDebitCanada.js","sources":["../../../../src/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { TxVariants } from '../tx-variants';\nimport PreAuthorizedDebitCanadaComponent from './components/PreAuthorizedDebitCanadaComponent';\nimport { SettlementInfo } from './components/SettlementInfo';\nimport RedirectButton from '../internal/RedirectButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\n\nimport type { PreAuthorizedDebitCanadaConfiguration } from './types';\n\nexport class PreAuthorizedDebitCanada extends UIElement<PreAuthorizedDebitCanadaConfiguration> {\n public static type = TxVariants.eft_directdebit_CA;\n\n public override formatData() {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n if (recurringPayment) {\n return {\n paymentMethod: {\n type: PreAuthorizedDebitCanada.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: PreAuthorizedDebitCanada.type,\n ownerName: this.state.data.ownerName,\n bankAccountNumber: this.state.data.bankAccountNumber,\n bankCode: this.state.data.bankCode,\n bankLocationId: this.state.data.bankLocationId\n },\n ...(this.state.storePaymentMethod && { storePaymentMethod: this.state.storePaymentMethod })\n };\n }\n\n public override formatProps(props: PreAuthorizedDebitCanadaConfiguration): PreAuthorizedDebitCanadaConfiguration {\n return {\n enableStoreDetails: props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails,\n ...props\n };\n }\n\n public override get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n public override get displayName(): string {\n if (this.props.storedPaymentMethodId && this.props.lastFour) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name;\n }\n\n public override get additionalInfo(): string {\n return this.props.storedPaymentMethodId ? this.props.label : '';\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n <Fragment>\n <SettlementInfo />\n <RedirectButton\n showPayButton={this.props.showPayButton}\n icon={this.resources?.getImage({ imageFolder: 'components/' })(`bento_lock`)}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </Fragment>\n ) : (\n <PreAuthorizedDebitCanadaComponent\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n showContextualElement={this.props.showContextualElement}\n enableStoreDetails={this.props.enableStoreDetails}\n />\n );\n }\n}\n\nexport default PreAuthorizedDebitCanada;\n"],"names":["PreAuthorizedDebitCanada","UIElement","formatData","this","props","storedPaymentMethodId","paymentMethod","type","ownerName","state","data","bankAccountNumber","bankCode","bankLocationId","storePaymentMethod","formatProps","enableStoreDetails","session","configuration","isValid","displayName","lastFour","name","additionalInfo","label","componentToRender","h","Fragment","SettlementInfo","RedirectButton","showPayButton","icon","resources","getImage","imageFolder","payAmountLabel","i18n","amount","payButton","onSubmit","submit","ref","componentRef","PreAuthorizedDebitCanadaComponent","onChange","setState","placeholders","setComponentRef","showContextualElement","TxVariants","eft_directdebit_CA"],"mappings":"8bAUO,MAAMA,UAAiCC,EAG1BC,UAAAA,GAGZ,QAF2BC,KAAKC,MAAMC,sBAG3B,CACHC,cAAe,CACXC,KAAMP,EAAyBO,KAC/BF,sBAAuBF,KAAKC,MAAMC,wBAKvC,CACHC,cAAe,CACXC,KAAMP,EAAyBO,KAC/BC,UAAWL,KAAKM,MAAMC,KAAKF,UAC3BG,kBAAmBR,KAAKM,MAAMC,KAAKC,kBACnCC,SAAUT,KAAKM,MAAMC,KAAKE,SAC1BC,eAAgBV,KAAKM,MAAMC,KAAKG,mBAEhCV,KAAKM,MAAMK,oBAAsB,CAAEA,mBAAoBX,KAAKM,MAAMK,oBAE9E,CAEgBC,WAAAA,CAAYX,GACxB,MAAO,CACHY,mBAAoBZ,EAAMa,SAASC,eAAeF,oBAAsBZ,EAAMY,sBAC3EZ,EAEX,CAEA,WAAoBe,GAChB,QAAIhB,KAAKC,MAAMC,yBAINF,KAAKM,MAAMU,OACxB,CAEA,eAAoBC,GAChB,OAAIjB,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMiB,SACxC,QAAQlB,KAAKC,MAAMiB,WAGvBlB,KAAKC,MAAMkB,IACtB,CAEA,kBAAoBC,GAChB,OAAOpB,KAAKC,MAAMC,sBAAwBF,KAAKC,MAAMoB,MAAQ,EACjE,CAEmBC,iBAAAA,GACf,OAAOtB,KAAKC,MAAMC,sBACdqB,EAACC,EAAAA,KACGD,EAACE,EAAAA,MACDF,EAACG,EAAAA,CACGC,cAAe3B,KAAKC,MAAM0B,cAC1BC,KAAM5B,KAAK6B,WAAWC,SAAS,CAAEC,YAAa,eAAxC/B,CAAyD,cAC/DqB,MAAOW,EAAehC,KAAKC,MAAMgC,KAAMjC,KAAKC,MAAMiC,QAClDf,KAAMnB,KAAKiB,YACXkB,UAAWnC,KAAKmC,UAChBC,SAAUpC,KAAKqC,OACfC,IAAKA,IACDtC,KAAKuC,aAAeD,MAKhCf,EAACiB,EAAAA,CACGC,SAAUzC,KAAK0C,SACfP,UAAWnC,KAAKmC,UAChBR,cAAe3B,KAAKC,MAAM0B,cAC1BgB,aAAc3C,KAAKC,MAAM0C,aACzBC,gBAAiB5C,KAAK4C,gBACtBC,sBAAuB7C,KAAKC,MAAM4C,sBAClChC,mBAAoBb,KAAKC,MAAMY,oBAG3C,cAjFShB,IACKO,SAAO0C,EAAWC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PreAuthorizedDebitCanadaComponent.js","sources":["../../../../../src/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport FormInstruction from '../../internal/FormInstruction';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { preAuthorizedDebitCanadaFormatters, preAuthorizedDebitCanadaValidationRules } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\nimport useImage from '../../../core/Context/useImage';\nimport { SettlementInfo } from './SettlementInfo';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { PreAuthorizedDebitCanadaPlaceholders } from '../types';\n\nimport './PreAuthorizedDebitCanada.scss';\n\ninterface PreAuthorizedDebitCanadaForm {\n ownerName: string;\n bankAccountNumber: string;\n bankCode: string;\n bankLocationId: string;\n}\n\ninterface PreAuthorizedDebitCanadaComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: PreAuthorizedDebitCanadaForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: any };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: Partial<PayButtonProps>) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n showContextualElement?: boolean;\n placeholders?: PreAuthorizedDebitCanadaPlaceholders;\n}\n\nfunction PreAuthorizedDebitCanadaComponent({\n onChange,\n payButton,\n showPayButton,\n placeholders,\n setComponentRef,\n enableStoreDetails,\n showContextualElement = true\n}: Readonly<PreAuthorizedDebitCanadaComponentProps>) {\n const getImage = useImage();\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<PreAuthorizedDebitCanadaForm>({\n schema: ['ownerName', 'bankAccountNumber', 'bankCode', 'bankLocationId'],\n rules: preAuthorizedDebitCanadaValidationRules,\n formatters: preAuthorizedDebitCanadaFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n\n const isFormDisabled = status === 'loading';\n\n const componentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(componentRef.current);\n }, [setComponentRef, componentRef.current]);\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n return (\n <div className=\"adyen-checkout__eftpad-canada\">\n <FormInstruction />\n\n <Fieldset>\n <Field\n label={i18n.get('eftpad-canada.input.accountHolderName.label')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n data-testid={'owner-name'}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.accountNumber.label')}\n errorMessage={!!errors.bankAccountNumber && i18n.get(errors.bankAccountNumber.errorMessage)}\n name={'bankAccountNumber'}\n isValid={!!valid.bankAccountNumber}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.accountNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankAccountNumber'}\n placeholder={placeholders?.bankAccountNumber}\n value={data.bankAccountNumber}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n required={true}\n maxlength={12}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.institutionNumber.label')}\n classNameModifiers={['col-50']}\n errorMessage={!!errors.bankCode && i18n.get(errors.bankCode.errorMessage)}\n isValid={!!valid.bankCode}\n name={'bankCode'}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.institutionNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankCode'}\n placeholder={placeholders?.bankCode}\n value={data.bankCode}\n onInput={handleChangeFor('bankCode', 'input')}\n onBlur={handleChangeFor('bankCode', 'blur')}\n required={true}\n maxlength={3}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.transitNumber.label')}\n classNameModifiers={['col-50']}\n errorMessage={!!errors.bankLocationId && i18n.get(errors.bankLocationId.errorMessage)}\n name={'bankLocationId'}\n isValid={!!valid.bankLocationId}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.transitNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankLocationId'}\n placeholder={placeholders?.bankLocationId}\n value={data.bankLocationId}\n onInput={handleChangeFor('bankLocationId', 'input')}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n required={true}\n maxlength={5}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && (\n <StoreDetails className={'adyen-checkout_eftpad-canada-store-details'} disabled={isFormDisabled} onChange={setStorePaymentMethod} />\n )}\n\n <SettlementInfo />\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })('bento_lock') })}\n </div>\n );\n}\n\nexport default PreAuthorizedDebitCanadaComponent;\n"],"names":["PreAuthorizedDebitCanadaComponent","onChange","payButton","showPayButton","placeholders","setComponentRef","enableStoreDetails","showContextualElement","getImage","useImage","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","data","errors","valid","isValid","useForm","schema","rules","preAuthorizedDebitCanadaValidationRules","formatters","preAuthorizedDebitCanadaFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","componentRef","useRef","showValidation","useEffect","current","h","div","className","FormInstruction","Fieldset","Field","label","get","errorMessage","ownerName","name","InputText","disabled","placeholder","value","onInput","onBlur","required","data-testid","bankAccountNumber","contextualText","maxlength","classNameModifiers","bankCode","bankLocationId","StoreDetails","SettlementInfo","icon","imageFolder"],"mappings":"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"}
1
+ {"version":3,"file":"PreAuthorizedDebitCanadaComponent.js","sources":["../../../../../src/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport FormInstruction from '../../internal/FormInstruction';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { preAuthorizedDebitCanadaFormatters, preAuthorizedDebitCanadaValidationRules } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\nimport useImage from '../../../core/Context/useImage';\nimport { SettlementInfo } from './SettlementInfo';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { PreAuthorizedDebitCanadaPlaceholders } from '../types';\n\nimport './PreAuthorizedDebitCanada.scss';\n\ninterface PreAuthorizedDebitCanadaForm {\n ownerName: string;\n bankAccountNumber: string;\n bankCode: string;\n bankLocationId: string;\n}\n\ninterface PreAuthorizedDebitCanadaComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: PreAuthorizedDebitCanadaForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: any };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n showContextualElement?: boolean;\n placeholders?: PreAuthorizedDebitCanadaPlaceholders;\n}\n\nfunction PreAuthorizedDebitCanadaComponent({\n onChange,\n payButton,\n showPayButton,\n placeholders,\n setComponentRef,\n enableStoreDetails,\n showContextualElement = true\n}: Readonly<PreAuthorizedDebitCanadaComponentProps>) {\n const getImage = useImage();\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<PreAuthorizedDebitCanadaForm>({\n schema: ['ownerName', 'bankAccountNumber', 'bankCode', 'bankLocationId'],\n rules: preAuthorizedDebitCanadaValidationRules,\n formatters: preAuthorizedDebitCanadaFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n\n const isFormDisabled = status === 'loading';\n\n const componentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(componentRef.current);\n }, [setComponentRef, componentRef.current]);\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n return (\n <div className=\"adyen-checkout__eftpad-canada\">\n <FormInstruction />\n\n <Fieldset>\n <Field\n label={i18n.get('eftpad-canada.input.accountHolderName.label')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n data-testid={'owner-name'}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.accountNumber.label')}\n errorMessage={!!errors.bankAccountNumber && i18n.get(errors.bankAccountNumber.errorMessage)}\n name={'bankAccountNumber'}\n isValid={!!valid.bankAccountNumber}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.accountNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankAccountNumber'}\n placeholder={placeholders?.bankAccountNumber}\n value={data.bankAccountNumber}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n required={true}\n maxlength={12}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.institutionNumber.label')}\n classNameModifiers={['col-50']}\n errorMessage={!!errors.bankCode && i18n.get(errors.bankCode.errorMessage)}\n isValid={!!valid.bankCode}\n name={'bankCode'}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.institutionNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankCode'}\n placeholder={placeholders?.bankCode}\n value={data.bankCode}\n onInput={handleChangeFor('bankCode', 'input')}\n onBlur={handleChangeFor('bankCode', 'blur')}\n required={true}\n maxlength={3}\n />\n </Field>\n\n <Field\n label={i18n.get('eftpad-canada.input.transitNumber.label')}\n classNameModifiers={['col-50']}\n errorMessage={!!errors.bankLocationId && i18n.get(errors.bankLocationId.errorMessage)}\n name={'bankLocationId'}\n isValid={!!valid.bankLocationId}\n showContextualElement={showContextualElement}\n contextualText={i18n.get('eftpad-canada.input.transitNumber.contextualText')}\n >\n <InputText\n disabled={isFormDisabled}\n name={'bankLocationId'}\n placeholder={placeholders?.bankLocationId}\n value={data.bankLocationId}\n onInput={handleChangeFor('bankLocationId', 'input')}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n required={true}\n maxlength={5}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && (\n <StoreDetails className={'adyen-checkout_eftpad-canada-store-details'} disabled={isFormDisabled} onChange={setStorePaymentMethod} />\n )}\n\n <SettlementInfo />\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })('bento_lock') })}\n </div>\n );\n}\n\nexport default PreAuthorizedDebitCanadaComponent;\n"],"names":["PreAuthorizedDebitCanadaComponent","onChange","payButton","showPayButton","placeholders","setComponentRef","enableStoreDetails","showContextualElement","getImage","useImage","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","data","errors","valid","isValid","useForm","schema","rules","preAuthorizedDebitCanadaValidationRules","formatters","preAuthorizedDebitCanadaFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","componentRef","useRef","showValidation","useEffect","current","h","div","className","FormInstruction","Fieldset","Field","label","get","errorMessage","ownerName","name","InputText","disabled","placeholder","value","onInput","onBlur","required","data-testid","bankAccountNumber","contextualText","maxlength","classNameModifiers","bankCode","bankLocationId","StoreDetails","SettlementInfo","icon","imageFolder"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectShopper.js","sources":["../../../../../../src/components/Redirect/components/RedirectShopper/RedirectShopper.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport detectInIframeInSameOrigin from '../../../../utils/detectInIframeInSameOrigin';\nimport { ActionHandledReturnObject } from '../../../../types/global-types';\n\ninterface RedirectShopperProps {\n beforeRedirect: (resolve, reject, url) => Promise<void>;\n url: string;\n method: 'GET' | 'POST';\n data?: any;\n redirectFromTopWhenInIframe?: boolean;\n paymentMethodType?: string;\n onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;\n onRedirectError?: () => void;\n}\n\nclass RedirectShopper extends Component<RedirectShopperProps> {\n private postForm;\n public static defaultProps = {\n beforeRedirect: resolve => resolve(),\n onRedirectError: () => {},\n method: 'GET'\n };\n\n componentDidMount() {\n const doRedirect = () => {\n // call callback\n this.props.onActionHandled?.({\n componentType: this.props.paymentMethodType,\n actionDescription: 'performing-redirect'\n });\n\n // perform redirect\n if (this.postForm) {\n this.postForm.submit();\n } else {\n if (this.props.redirectFromTopWhenInIframe && detectInIframeInSameOrigin()) {\n // if in an iframe and the config prop allows it - try to redirect from the top level window\n window.top.location.assign?.(this.props.url);\n } else {\n window.location.assign(this.props.url);\n }\n }\n };\n\n const dispatchEvent = new Promise(\n (resolve, reject) =>\n void this.props.beforeRedirect(resolve, reject, {\n url: this.props.url,\n method: this.props.method,\n ...(this.props.data ? { data: this.props.data } : {})\n })\n );\n\n dispatchEvent.then(doRedirect).catch(() => {\n this.props.onRedirectError();\n });\n }\n\n render({ url, method, data = {} }) {\n if (method === 'POST') {\n return (\n <form\n method=\"post\"\n data-testid=\"redirect-shopper-form\"\n action={url}\n style={{ display: 'none' }}\n ref={ref => {\n this.postForm = ref;\n }}\n {...(this.props.redirectFromTopWhenInIframe && detectInIframeInSameOrigin() && { target: '_top' })}\n >\n {Object.keys(data).map(key => (\n <input type=\"hidden\" name={key} key={key} value={data[key]} />\n ))}\n </form>\n );\n }\n\n return null;\n }\n}\n\nexport default RedirectShopper;\n"],"names":["RedirectShopper","Component","componentDidMount","Promise","resolve","reject","this","props","beforeRedirect","url","method","data","then","onActionHandled","componentType","paymentMethodType","actionDescription","postForm","submit","redirectFromTopWhenInIframe","detectInIframeInSameOrigin","window","top","location","assign","catch","onRedirectError","render","h","form","data-testid","action","style","display","ref","target","Object","keys","map","key","input","type","name","value","super","args","_define_property","defaultProps"],"mappings":"iRAeA,MAAMA,UAAwBC,EAQ1BC,iBAAAA,GAqB0B,IAAIC,QACtB,CAACC,EAASC,KACDC,KAAKC,MAAMC,eAAeJ,EAASC,EAAQ,CAC5CI,IAAKH,KAAKC,MAAME,IAChBC,OAAQJ,KAAKC,MAAMG,UACfJ,KAAKC,MAAMI,KAAO,CAAEA,KAAML,KAAKC,MAAMI,MAAS,CAAA,MAIhDC,KA7BK,KAEfN,KAAKC,MAAMM,kBAAkB,CACzBC,cAAeR,KAAKC,MAAMQ,kBAC1BC,kBAAmB,wBAInBV,KAAKW,SACLX,KAAKW,SAASC,SAEVZ,KAAKC,MAAMY,6BAA+BC,IAE1CC,OAAOC,IAAIC,SAASC,SAASlB,KAAKC,MAAME,KAExCY,OAAOE,SAASC,OAAOlB,KAAKC,MAAME,OAcfgB,MAAM,KACjCnB,KAAKC,MAAMmB,mBAEnB,CAEAC,MAAAA,EAAOlB,IAAEA,EAAGC,OAAEA,EAAMC,KAAEA,EAAO,CAAA,IACzB,MAAe,SAAXD,EAEIkB,EAACC,OAAAA,CACGnB,OAAO,OACPoB,cAAY,wBACZC,OAAQtB,EACRuB,MAAO,CAAEC,QAAS,QAClBC,IAAKA,IACD5B,KAAKW,SAAWiB,MAEf5B,KAAKC,MAAMY,6BAA+BC,KAAgC,CAAEe,OAAQ,SAExFC,OAAOC,KAAK1B,GAAM2B,IAAIC,GACnBX,EAACY,QAAAA,CAAMC,KAAK,SAASC,KAAMH,EAAKA,IAAKA,EAAKI,MAAOhC,EAAK4B,OAM/D,IACX,mBAhEJK,SAAAC,GACIC,EAAAxC,KAAQW,gBAAR,IACA6B,EAFE9C,EAEY+C,eAAe,CACzBvC,eAAgBJ,GAAWA,IAC3BsB,gBAAiB,OACjBhB,OAAQ"}
1
+ {"version":3,"file":"RedirectShopper.js","sources":["../../../../../../src/components/Redirect/components/RedirectShopper/RedirectShopper.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport detectInIframeInSameOrigin from '../../../../utils/detectInIframeInSameOrigin';\nimport { ActionHandledReturnObject } from '../../../../types/global-types';\n\ninterface RedirectShopperProps {\n beforeRedirect: (resolve, reject, url) => Promise<void>;\n url: string;\n method: 'GET' | 'POST';\n data?: any;\n redirectFromTopWhenInIframe?: boolean;\n paymentMethodType?: string;\n onActionHandled?: (rtnObj: ActionHandledReturnObject) => void;\n onRedirectError?: () => void;\n}\n\nclass RedirectShopper extends Component<RedirectShopperProps> {\n private postForm;\n public static defaultProps = {\n beforeRedirect: resolve => resolve(),\n onRedirectError: () => {},\n method: 'GET'\n };\n\n componentDidMount() {\n const doRedirect = () => {\n // call callback\n this.props.onActionHandled?.({\n componentType: this.props.paymentMethodType,\n actionDescription: 'performing-redirect'\n });\n\n // perform redirect\n if (this.postForm) {\n this.postForm.submit();\n } else {\n if (this.props.redirectFromTopWhenInIframe && detectInIframeInSameOrigin()) {\n // if in an iframe and the config prop allows it - try to redirect from the top level window\n window.top.location.assign?.(this.props.url);\n } else {\n window.location.assign(this.props.url);\n }\n }\n };\n\n const dispatchEvent = new Promise(\n (resolve, reject) =>\n void this.props.beforeRedirect(resolve, reject, {\n url: this.props.url,\n method: this.props.method,\n ...(this.props.data ? { data: this.props.data } : {})\n })\n );\n\n dispatchEvent.then(doRedirect).catch(() => {\n this.props.onRedirectError();\n });\n }\n\n render({ url, method, data = {} }) {\n if (method === 'POST') {\n return (\n <form\n method=\"post\"\n data-testid=\"redirect-shopper-form\"\n action={url}\n style={{ display: 'none' }}\n ref={ref => {\n this.postForm = ref;\n }}\n {...(this.props.redirectFromTopWhenInIframe && detectInIframeInSameOrigin() && { target: '_top' })}\n >\n {Object.keys(data).map(key => (\n <input type=\"hidden\" name={key} key={key} value={data[key]} />\n ))}\n </form>\n );\n }\n\n return null;\n }\n}\n\nexport default RedirectShopper;\n"],"names":["RedirectShopper","Component","componentDidMount","Promise","resolve","reject","this","props","beforeRedirect","url","method","data","then","onActionHandled","componentType","paymentMethodType","actionDescription","postForm","submit","redirectFromTopWhenInIframe","detectInIframeInSameOrigin","window","top","location","assign","catch","onRedirectError","render","h","form","data-testid","action","style","display","ref","target","Object","keys","map","key","input","type","name","value","super","args","_define_property","defaultProps"],"mappings":"iRAeA,MAAMA,UAAwBC,EAQ1BC,iBAAAA,GAqB0B,IAAIC,QACtB,CAACC,EAASC,KACDC,KAAKC,MAAMC,eAAeJ,EAASC,EAAQ,CAC5CI,IAAKH,KAAKC,MAAME,IAChBC,OAAQJ,KAAKC,MAAMG,UACfJ,KAAKC,MAAMI,KAAO,CAAEA,KAAML,KAAKC,MAAMI,MAAS,CAAA,MAIhDC,KA7BK,KAEfN,KAAKC,MAAMM,kBAAkB,CACzBC,cAAeR,KAAKC,MAAMQ,kBAC1BC,kBAAmB,wBAInBV,KAAKW,SACLX,KAAKW,SAASC,SAEVZ,KAAKC,MAAMY,6BAA+BC,IAE1CC,OAAOC,IAAIC,SAASC,SAASlB,KAAKC,MAAME,KAExCY,OAAOE,SAASC,OAAOlB,KAAKC,MAAME,OAcfgB,MAAM,KACjCnB,KAAKC,MAAMmB,mBAEnB,CAEAC,MAAAA,EAAOlB,IAAEA,EAAGC,OAAEA,EAAMC,KAAEA,EAAO,CAAA,IACzB,MAAe,SAAXD,EAEIkB,EAACC,OAAAA,CACGnB,OAAO,OACPoB,cAAY,wBACZC,OAAQtB,EACRuB,MAAO,CAAEC,QAAS,QAClBC,IAAKA,IACD5B,KAAKW,SAAWiB,MAEf5B,KAAKC,MAAMY,6BAA+BC,KAAgC,CAAEe,OAAQ,SAExFC,OAAOC,KAAK1B,GAAM2B,IAAIC,GACnBX,EAACY,QAAAA,CAAMC,KAAK,SAASC,KAAMH,EAAKA,IAAKA,EAAKI,MAAOhC,EAAK4B,OAM/D,IACX,mBAhEJK,SAAAC,GACIC,EAAAxC,KAAQW,oBACR6B,EAFE9C,EAEY+C,eAAe,CACzBvC,eAAgBJ,GAAWA,IAC3BsB,gBAAiB,OACjBhB,OAAQ"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import o from"./components/Challenge/PrepareChallenge3DS2.js";import{THREEDS2_CHALLENGE_ERROR as n,THREEDS2_CHALLENGE as r,DEFAULT_CHALLENGE_WINDOW_SIZE as s}from"./constants.js";import{existy as i}from"../../utils/commonUtils.js";import{hasOwnProperty as a}from"../../utils/hasOwnProperty.js";import{TxVariants as p}from"../tx-variants.js";import l,{API_ERROR as m}from"../../core/Errors/AdyenCheckoutError.js";import{AnalyticsLogEvent as c,LogEventSubtype as h,LogEventType as u}from"../../core/Analytics/events/AnalyticsLogEvent.js";import{AnalyticsErrorEvent as y,ErrorEventType as d,ErrorEventCode as f}from"../../core/Analytics/events/AnalyticsErrorEvent.js";function A(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}class D extends t{beforeRender(){}onComplete(e){this.props.onComplete?this.props.onComplete(e,this.elementRef):super.onComplete(e),this.unmount()}componentToRender(){if(!i(this.props.paymentData)){const e=a(this.props,"isMDFlow")?"paymentData":"authorisationToken";this.props.onError(new l(m,`No ${e} received. 3DS2 Challenge cannot proceed`));const t=new y({component:this.type,code:f.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,errorType:d.apiError,message:`${n}: Missing 'paymentData' property from threeDS2 action`});return this.submitAnalytics(t),null}return e(o,{...this.props,onComplete:this.onComplete,onSubmitAnalytics:this.submitAnalytics,isMDFlow:this.props.paymentData.length<15,onActionHandled:this.onActionHandled})}constructor(...e){super(...e),A(this,"onActionHandled",e=>{const t=new c({component:this.type,type:u.threeDS2,subType:h.challengeIframeLoaded,message:e.actionDescription});this.submitAnalytics(t),super.onActionHandled(e)})}}A(D,"type",p.threeDS2Challenge),A(D,"defaultProps",{dataKey:"threeDSResult",size:s,type:r});export{D as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import o from"./components/Challenge/PrepareChallenge3DS2.js";import{THREEDS2_CHALLENGE_ERROR as n,THREEDS2_CHALLENGE as r,DEFAULT_CHALLENGE_WINDOW_SIZE as s}from"./constants.js";import{existy as i}from"../../utils/commonUtils.js";import{hasOwnProperty as a}from"../../utils/hasOwnProperty.js";import{TxVariants as p}from"../tx-variants.js";import l,{API_ERROR as m}from"../../core/Errors/AdyenCheckoutError.js";import{AnalyticsLogEvent as c,LogEventSubtype as h,LogEventType as u}from"../../core/Analytics/events/AnalyticsLogEvent.js";import{AnalyticsErrorEvent as y,ErrorEventType as d,ErrorEventCode as f}from"../../core/Analytics/events/AnalyticsErrorEvent.js";function A(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}class D extends t{beforeRender(){}onComplete(e){this.props.onComplete?this.props.onComplete(e,this.elementRef):super.onComplete(e),this.unmount()}componentToRender(){if(!i(this.props.paymentData)){const e=a(this.props,"isMDFlow")?"paymentData":"authorisationToken";this.props.onError(new l(m,`No ${e} received. 3DS2 Challenge cannot proceed`));const t=new y({component:this.type,code:f.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,errorType:d.threeDS2,message:`${n}: Missing 'paymentData' property from threeDS2 action`});return this.submitAnalytics(t),null}return e(o,{...this.props,onComplete:this.onComplete,onSubmitAnalytics:this.submitAnalytics,isMDFlow:this.props.paymentData.length<15,onActionHandled:this.onActionHandled})}constructor(...e){super(...e),A(this,"onActionHandled",e=>{const t=new c({component:this.type,type:u.threeDS2,subType:h.challengeIframeLoaded,message:e.actionDescription});this.submitAnalytics(t),super.onActionHandled(e)})}}A(D,"type",p.threeDS2Challenge),A(D,"defaultProps",{dataKey:"threeDSResult",size:s,type:r});export{D as default};
2
2
  //# sourceMappingURL=ThreeDS2Challenge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDS2Challenge.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2Challenge.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareChallenge from './components/Challenge';\nimport { DEFAULT_CHALLENGE_WINDOW_SIZE, THREEDS2_CHALLENGE, THREEDS2_CHALLENGE_ERROR } from './constants';\nimport { existy } from '../../utils/commonUtils';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport { TxVariants } from '../tx-variants';\nimport { ChallengeResolveData, LegacyChallengeResolveData, ThreeDS2ChallengeConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent, LogEventSubtype, LogEventType } from '../../core/Analytics/events/AnalyticsLogEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\nclass ThreeDS2Challenge extends UIElement<ThreeDS2ChallengeConfiguration> {\n public static type = TxVariants.threeDS2Challenge;\n\n public static defaultProps = {\n dataKey: 'threeDSResult',\n size: DEFAULT_CHALLENGE_WINDOW_SIZE,\n type: THREEDS2_CHALLENGE\n };\n\n protected override beforeRender() {\n /* Do not send rendered events for ThreeDS2Challenge - it will have the same timestamp as the \"creq sent\" event */\n }\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.threeDS2,\n subType: LogEventSubtype.challengeIframeLoaded,\n message: rtnObj.actionDescription\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n onComplete(state: LegacyChallengeResolveData | ChallengeResolveData) {\n /**\n * Equals a call to onAdditionalDetails (as set in actionTypes.ts) for the regular, \"native\" flow.\n * However, if the action to create this component came from the 3DS2InMDFlow process it will instead equal a call to the onComplete callback\n * (as defined in the 3DS2InMDFlow and passed in as a config prop).\n */\n if (this.props.onComplete) {\n this.props.onComplete(state, this.elementRef);\n } else {\n super.onComplete(state);\n }\n\n this.unmount(); // re. fixing issue around back to back challenge calls\n }\n\n protected override componentToRender(): h.JSX.Element {\n // existy used because threeds2InMDFlow will send empty string for paymentData and we should be allowed to proceed with this\n if (!existy(this.props.paymentData)) {\n /**\n * The presence of props.isMDFlow indicates the action to create this component came from the threeds2InMDFlow process which passes (an empty) paymentsData.\n * The regular, \"native\" flow uses the authorisationToken from the 3DS2 action, which actionTypes.ts assigns to a property called paymentData\n */\n const dataTypeForError = hasOwnProperty(this.props, 'isMDFlow') ? 'paymentData' : 'authorisationToken';\n\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No ${dataTypeForError} received. 3DS2 Challenge cannot proceed`));\n\n const event = new AnalyticsErrorEvent({\n component: this.type,\n code: ErrorEventCode.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ErrorEventType.apiError,\n message: `${THREEDS2_CHALLENGE_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n return (\n <PrepareChallenge\n {...this.props}\n onComplete={this.onComplete}\n onSubmitAnalytics={this.submitAnalytics}\n isMDFlow={this.props.paymentData.length < 15}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2Challenge;\n"],"names":["ThreeDS2Challenge","UIElement","beforeRender","onComplete","state","this","props","elementRef","super","unmount","componentToRender","existy","paymentData","dataTypeForError","hasOwnProperty","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","component","type","code","ErrorEventCode","THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ErrorEventType","apiError","message","THREEDS2_CHALLENGE_ERROR","submitAnalytics","h","PrepareChallenge","onSubmitAnalytics","isMDFlow","length","onActionHandled","args","_define_property","rtnObj","AnalyticsLogEvent","LogEventType","threeDS2","subType","LogEventSubtype","challengeIframeLoaded","actionDescription","TxVariants","threeDS2Challenge","defaultProps","dataKey","size","DEFAULT_CHALLENGE_WINDOW_SIZE","THREEDS2_CHALLENGE"],"mappings":"q5BAaA,MAAMA,UAA0BC,EASTC,YAAAA,GAEnB,CAeAC,UAAAA,CAAWC,GAMHC,KAAKC,MAAMH,WACXE,KAAKC,MAAMH,WAAWC,EAAOC,KAAKE,YAElCC,MAAML,WAAWC,GAGrBC,KAAKI,SACT,CAEmBC,iBAAAA,GAEf,IAAKC,EAAON,KAAKC,MAAMM,aAAc,CAKjC,MAAMC,EAAmBC,EAAeT,KAAKC,MAAO,YAAc,cAAgB,qBAElFD,KAAKC,MAAMS,QAAQ,IAAIC,EAAmBC,EAAW,MAAMJ,8CAE3D,MAAMK,EAAQ,IAAIC,EAAoB,CAClCC,UAAWf,KAAKgB,KAChBC,KAAMC,EAAeC,wCACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,2DAKhB,OAFAxB,KAAKyB,gBAAgBZ,GAEd,IACX,CAEA,OACIa,EAACC,EAAAA,IACO3B,KAAKC,MACTH,WAAYE,KAAKF,WACjB8B,kBAAmB5B,KAAKyB,gBACxBI,SAAU7B,KAAKC,MAAMM,YAAYuB,OAAS,GAC1CC,gBAAiB/B,KAAK+B,iBAGlC,mBAzEJ5B,SAAA6B,GAaIC,EAAAjC,KAAU+B,kBAAmBG,IACzB,MAAMrB,EAAQ,IAAIsB,EAAkB,CAChCpB,UAAWf,KAAKgB,KAChBA,KAAMoB,EAAaC,SACnBC,QAASC,EAAgBC,sBACzBjB,QAASW,EAAOO,oBAGpBzC,KAAKyB,gBAAgBZ,GAErBV,MAAM4B,gBAAgBG,MAtB1BD,EADEtC,EACYqB,OAAO0B,EAAWC,mBAEhCV,EAHEtC,EAGYiD,eAAe,CACzBC,QAAS,gBACTC,KAAMC,EACN/B,KAAMgC"}
1
+ {"version":3,"file":"ThreeDS2Challenge.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2Challenge.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareChallenge from './components/Challenge';\nimport { DEFAULT_CHALLENGE_WINDOW_SIZE, THREEDS2_CHALLENGE, THREEDS2_CHALLENGE_ERROR } from './constants';\nimport { existy } from '../../utils/commonUtils';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport { TxVariants } from '../tx-variants';\nimport { ChallengeResolveData, LegacyChallengeResolveData, ThreeDS2ChallengeConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent, LogEventSubtype, LogEventType } from '../../core/Analytics/events/AnalyticsLogEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\nclass ThreeDS2Challenge extends UIElement<ThreeDS2ChallengeConfiguration> {\n public static type = TxVariants.threeDS2Challenge;\n\n public static defaultProps = {\n dataKey: 'threeDSResult',\n size: DEFAULT_CHALLENGE_WINDOW_SIZE,\n type: THREEDS2_CHALLENGE\n };\n\n protected override beforeRender() {\n /* Do not send rendered events for ThreeDS2Challenge - it will have the same timestamp as the \"creq sent\" event */\n }\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.threeDS2,\n subType: LogEventSubtype.challengeIframeLoaded,\n message: rtnObj.actionDescription\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n onComplete(state: LegacyChallengeResolveData | ChallengeResolveData) {\n /**\n * Equals a call to onAdditionalDetails (as set in actionTypes.ts) for the regular, \"native\" flow.\n * However, if the action to create this component came from the 3DS2InMDFlow process it will instead equal a call to the onComplete callback\n * (as defined in the 3DS2InMDFlow and passed in as a config prop).\n */\n if (this.props.onComplete) {\n this.props.onComplete(state, this.elementRef);\n } else {\n super.onComplete(state);\n }\n\n this.unmount(); // re. fixing issue around back to back challenge calls\n }\n\n protected override componentToRender(): h.JSX.Element {\n // existy used because threeds2InMDFlow will send empty string for paymentData and we should be allowed to proceed with this\n if (!existy(this.props.paymentData)) {\n /**\n * The presence of props.isMDFlow indicates the action to create this component came from the threeds2InMDFlow process which passes (an empty) paymentsData.\n * The regular, \"native\" flow uses the authorisationToken from the 3DS2 action, which actionTypes.ts assigns to a property called paymentData\n */\n const dataTypeForError = hasOwnProperty(this.props, 'isMDFlow') ? 'paymentData' : 'authorisationToken';\n\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No ${dataTypeForError} received. 3DS2 Challenge cannot proceed`));\n\n const event = new AnalyticsErrorEvent({\n component: this.type,\n code: ErrorEventCode.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_CHALLENGE_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n return (\n <PrepareChallenge\n {...this.props}\n onComplete={this.onComplete}\n onSubmitAnalytics={this.submitAnalytics}\n isMDFlow={this.props.paymentData.length < 15}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2Challenge;\n"],"names":["ThreeDS2Challenge","UIElement","beforeRender","onComplete","state","this","props","elementRef","super","unmount","componentToRender","existy","paymentData","dataTypeForError","hasOwnProperty","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","component","type","code","ErrorEventCode","THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ErrorEventType","threeDS2","message","THREEDS2_CHALLENGE_ERROR","submitAnalytics","h","PrepareChallenge","onSubmitAnalytics","isMDFlow","length","onActionHandled","args","_define_property","rtnObj","AnalyticsLogEvent","LogEventType","subType","LogEventSubtype","challengeIframeLoaded","actionDescription","TxVariants","threeDS2Challenge","defaultProps","dataKey","size","DEFAULT_CHALLENGE_WINDOW_SIZE","THREEDS2_CHALLENGE"],"mappings":"q5BAaA,MAAMA,UAA0BC,EASTC,YAAAA,GAEnB,CAeAC,UAAAA,CAAWC,GAMHC,KAAKC,MAAMH,WACXE,KAAKC,MAAMH,WAAWC,EAAOC,KAAKE,YAElCC,MAAML,WAAWC,GAGrBC,KAAKI,SACT,CAEmBC,iBAAAA,GAEf,IAAKC,EAAON,KAAKC,MAAMM,aAAc,CAKjC,MAAMC,EAAmBC,EAAeT,KAAKC,MAAO,YAAc,cAAgB,qBAElFD,KAAKC,MAAMS,QAAQ,IAAIC,EAAmBC,EAAW,MAAMJ,8CAE3D,MAAMK,EAAQ,IAAIC,EAAoB,CAClCC,UAAWf,KAAKgB,KAChBC,KAAMC,EAAeC,wCACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,2DAKhB,OAFAxB,KAAKyB,gBAAgBZ,GAEd,IACX,CAEA,OACIa,EAACC,EAAAA,IACO3B,KAAKC,MACTH,WAAYE,KAAKF,WACjB8B,kBAAmB5B,KAAKyB,gBACxBI,SAAU7B,KAAKC,MAAMM,YAAYuB,OAAS,GAC1CC,gBAAiB/B,KAAK+B,iBAGlC,mBAzEJ5B,SAAA6B,GAaIC,EAAAjC,KAAU+B,kBAAmBG,IACzB,MAAMrB,EAAQ,IAAIsB,EAAkB,CAChCpB,UAAWf,KAAKgB,KAChBA,KAAMoB,EAAad,SACnBe,QAASC,EAAgBC,sBACzBhB,QAASW,EAAOM,oBAGpBxC,KAAKyB,gBAAgBZ,GAErBV,MAAM4B,gBAAgBG,MAtB1BD,EADEtC,EACYqB,OAAOyB,EAAWC,mBAEhCT,EAHEtC,EAGYgD,eAAe,CACzBC,QAAS,gBACTC,KAAMC,EACN9B,KAAM+B"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/DeviceFingerprint/PrepareFingerprint3DS2.js";import n from"./callSubmit3DS2Fingerprint.js";import{existy as o}from"../../utils/commonUtils.js";import{TxVariants as i}from"../tx-variants.js";import s,{API_ERROR as p}from"../../core/Errors/AdyenCheckoutError.js";import{THREEDS2_FINGERPRINT_ERROR as a,THREEDS2_FINGERPRINT as m}from"./constants.js";import{AnalyticsLogEvent as l,LogEventSubtype as c,LogEventType as u}from"../../core/Analytics/events/AnalyticsLogEvent.js";import{AnalyticsErrorEvent as h,ErrorEventType as d,ErrorEventCode as y}from"../../core/Analytics/events/AnalyticsErrorEvent.js";function f(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class D extends e{beforeRender(){}onComplete(t){this.props.onComplete?this.props.onComplete(t,this.elementRef):super.onComplete(t),this.unmount()}componentToRender(){if(!o(this.props.paymentData)){this.props.onError(new s(p,"No paymentData received. 3DS2 Fingerprint cannot proceed"));const t=new h({component:this.type,code:y.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,errorType:d.apiError,message:`${a}: Missing 'paymentData' property from threeDS2 action`});return this.submitAnalytics(t),null}return t(r,{...this.props,onComplete:this.props.isMDFlow?this.onComplete:this.callSubmit3DS2Fingerprint,onSubmitAnalytics:this.submitAnalytics,isMDFlow:this.props.paymentData.length<15,onActionHandled:this.onActionHandled})}constructor(...t){super(...t),f(this,"callSubmit3DS2Fingerprint",n.bind(this)),f(this,"onActionHandled",t=>{const e=new l({component:this.type,type:u.threeDS2,subType:c.fingerprintIframeLoaded,message:t.actionDescription});this.submitAnalytics(e),super.onActionHandled(t)})}}f(D,"type",i.threeDS2Fingerprint),f(D,"defaultProps",{dataKey:"fingerprintResult",type:m});export{D 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"./components/DeviceFingerprint/PrepareFingerprint3DS2.js";import r from"./callSubmit3DS2Fingerprint.js";import{existy as o}from"../../utils/commonUtils.js";import{TxVariants as i}from"../tx-variants.js";import s,{API_ERROR as p}from"../../core/Errors/AdyenCheckoutError.js";import{THREEDS2_FINGERPRINT_ERROR as a,THREEDS2_FINGERPRINT as m}from"./constants.js";import{AnalyticsLogEvent as l,LogEventSubtype as c,LogEventType as u}from"../../core/Analytics/events/AnalyticsLogEvent.js";import{AnalyticsErrorEvent as h,ErrorEventType as d,ErrorEventCode as y}from"../../core/Analytics/events/AnalyticsErrorEvent.js";function f(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}class D extends e{beforeRender(){}onComplete(t){this.props.onComplete?this.props.onComplete(t,this.elementRef):super.onComplete(t),this.unmount()}componentToRender(){if(!o(this.props.paymentData)){this.props.onError(new s(p,"No paymentData received. 3DS2 Fingerprint cannot proceed"));const t=new h({component:this.type,code:y.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,errorType:d.threeDS2,message:`${a}: Missing 'paymentData' property from threeDS2 action`});return this.submitAnalytics(t),null}return t(n,{...this.props,onComplete:this.props.isMDFlow?this.onComplete:this.callSubmit3DS2Fingerprint,onSubmitAnalytics:this.submitAnalytics,isMDFlow:this.props.paymentData.length<15,onActionHandled:this.onActionHandled})}constructor(...t){super(...t),f(this,"callSubmit3DS2Fingerprint",r.bind(this)),f(this,"onActionHandled",t=>{const e=new l({component:this.type,type:u.threeDS2,subType:c.fingerprintIframeLoaded,message:t.actionDescription});this.submitAnalytics(e),super.onActionHandled(t)})}}f(D,"type",i.threeDS2Fingerprint),f(D,"defaultProps",{dataKey:"fingerprintResult",type:m});export{D as default};
2
2
  //# sourceMappingURL=ThreeDS2DeviceFingerprint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDS2DeviceFingerprint.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2DeviceFingerprint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareFingerprint from './components/DeviceFingerprint';\nimport callSubmit3DS2Fingerprint from './callSubmit3DS2Fingerprint';\nimport { existy } from '../../utils/commonUtils';\nimport { TxVariants } from '../tx-variants';\nimport { FingerprintResolveData, LegacyFingerprintResolveData, ThreeDS2DeviceFingerprintConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT, THREEDS2_FINGERPRINT_ERROR } from './constants';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent, LogEventSubtype, LogEventType } from '../../core/Analytics/events/AnalyticsLogEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\nclass ThreeDS2DeviceFingerprint extends UIElement<ThreeDS2DeviceFingerprintConfiguration> {\n public static type = TxVariants.threeDS2Fingerprint;\n\n public static defaultProps = {\n dataKey: 'fingerprintResult',\n type: THREEDS2_FINGERPRINT\n };\n\n private callSubmit3DS2Fingerprint = callSubmit3DS2Fingerprint.bind(this); // New 3DS2 flow\n\n protected override beforeRender() {\n /* Do not send rendered events for ThreeDS2DeviceFingerprint - it will have the same timestamp as the \"threeDSMethodData sent\" event */\n }\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.threeDS2,\n subType: LogEventSubtype.fingerprintIframeLoaded,\n message: rtnObj.actionDescription\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n onComplete(state: LegacyFingerprintResolveData | FingerprintResolveData) {\n if (this.props.onComplete) {\n this.props.onComplete(state, this.elementRef);\n } else {\n super.onComplete(state);\n }\n\n this.unmount(); // re. fixing issue around back to back fingerprinting calls\n }\n\n protected override componentToRender(): h.JSX.Element {\n /**\n * In the regular components (aka \"native\") flow we can't proceed because something has gone wrong with the payment if paymentData is missing from the threeDS2 action.\n * In the MDFlow the paymentData is always present (albeit an empty string, which is why we use 'existy' since we should be allowed to proceed with this)\n */\n if (!existy(this.props.paymentData)) {\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No paymentData received. 3DS2 Fingerprint cannot proceed`));\n\n // TODO - check logs to see if this *ever* happens\n const event = new AnalyticsErrorEvent({\n component: this.type,\n code: ErrorEventCode.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ErrorEventType.apiError,\n message: `${THREEDS2_FINGERPRINT_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n /**\n * this.props.isMDFlow indicates the action to create this component came from the 3DS2InMDFlow process and upon completion should call the\n * passed onComplete callback (as defined in the 3DS2InMDFlow) instead of the /submitThreeDS2Fingerprint endpoint for the regular, \"native\" flow\n */\n return (\n <PrepareFingerprint\n {...this.props}\n onComplete={this.props.isMDFlow ? this.onComplete : this.callSubmit3DS2Fingerprint}\n onSubmitAnalytics={this.submitAnalytics}\n isMDFlow={this.props.paymentData.length < 15}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2DeviceFingerprint;\n"],"names":["ThreeDS2DeviceFingerprint","UIElement","beforeRender","onComplete","state","this","props","elementRef","super","unmount","componentToRender","existy","paymentData","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","component","type","code","ErrorEventCode","THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ErrorEventType","apiError","message","THREEDS2_FINGERPRINT_ERROR","submitAnalytics","h","PrepareFingerprint","isMDFlow","callSubmit3DS2Fingerprint","onSubmitAnalytics","length","onActionHandled","args","_define_property","bind","rtnObj","AnalyticsLogEvent","LogEventType","threeDS2","subType","LogEventSubtype","fingerprintIframeLoaded","actionDescription","TxVariants","threeDS2Fingerprint","defaultProps","dataKey","THREEDS2_FINGERPRINT"],"mappings":"+2BAaA,MAAMA,UAAkCC,EAUjBC,YAAAA,GAEnB,CAeAC,UAAAA,CAAWC,GACHC,KAAKC,MAAMH,WACXE,KAAKC,MAAMH,WAAWC,EAAOC,KAAKE,YAElCC,MAAML,WAAWC,GAGrBC,KAAKI,SACT,CAEmBC,iBAAAA,GAKf,IAAKC,EAAON,KAAKC,MAAMM,aAAc,CACjCP,KAAKC,MAAMO,QAAQ,IAAIC,EAAmBC,EAAW,6DAGrD,MAAMC,EAAQ,IAAIC,EAAoB,CAClCC,UAAWb,KAAKc,KAChBC,KAAMC,EAAeC,wCACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,2DAKhB,OAFAtB,KAAKuB,gBAAgBZ,GAEd,IACX,CAMA,OACIa,EAACC,EAAAA,IACOzB,KAAKC,MACTH,WAAYE,KAAKC,MAAMyB,SAAW1B,KAAKF,WAAaE,KAAK2B,0BACzDC,kBAAmB5B,KAAKuB,gBACxBG,SAAU1B,KAAKC,MAAMM,YAAYsB,OAAS,GAC1CC,gBAAiB9B,KAAK8B,iBAGlC,mBAvEJ3B,SAAA4B,GAQIC,OAAQL,4BAA4BA,EAA0BM,KAAKjC,OAMnEgC,EAAAhC,KAAU8B,kBAAmBI,IACzB,MAAMvB,EAAQ,IAAIwB,EAAkB,CAChCtB,UAAWb,KAAKc,KAChBA,KAAMsB,EAAaC,SACnBC,QAASC,EAAgBC,wBACzBnB,QAASa,EAAOO,oBAGpBzC,KAAKuB,gBAAgBZ,GAErBR,MAAM2B,gBAAgBI,MAvB1BF,EADErC,EACYmB,OAAO4B,EAAWC,qBAEhCX,EAHErC,EAGYiD,eAAe,CACzBC,QAAS,oBACT/B,KAAMgC"}
1
+ {"version":3,"file":"ThreeDS2DeviceFingerprint.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2DeviceFingerprint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareFingerprint from './components/DeviceFingerprint';\nimport callSubmit3DS2Fingerprint from './callSubmit3DS2Fingerprint';\nimport { existy } from '../../utils/commonUtils';\nimport { TxVariants } from '../tx-variants';\nimport { FingerprintResolveData, LegacyFingerprintResolveData, ThreeDS2DeviceFingerprintConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT, THREEDS2_FINGERPRINT_ERROR } from './constants';\nimport { ActionHandledReturnObject } from '../../types/global-types';\nimport { AnalyticsLogEvent, LogEventSubtype, LogEventType } from '../../core/Analytics/events/AnalyticsLogEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\nclass ThreeDS2DeviceFingerprint extends UIElement<ThreeDS2DeviceFingerprintConfiguration> {\n public static type = TxVariants.threeDS2Fingerprint;\n\n public static defaultProps = {\n dataKey: 'fingerprintResult',\n type: THREEDS2_FINGERPRINT\n };\n\n private callSubmit3DS2Fingerprint = callSubmit3DS2Fingerprint.bind(this); // New 3DS2 flow\n\n protected override beforeRender() {\n /* Do not send rendered events for ThreeDS2DeviceFingerprint - it will have the same timestamp as the \"threeDSMethodData sent\" event */\n }\n\n protected onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n const event = new AnalyticsLogEvent({\n component: this.type,\n type: LogEventType.threeDS2,\n subType: LogEventSubtype.fingerprintIframeLoaded,\n message: rtnObj.actionDescription\n });\n\n this.submitAnalytics(event);\n\n super.onActionHandled(rtnObj);\n };\n\n onComplete(state: LegacyFingerprintResolveData | FingerprintResolveData) {\n if (this.props.onComplete) {\n this.props.onComplete(state, this.elementRef);\n } else {\n super.onComplete(state);\n }\n\n this.unmount(); // re. fixing issue around back to back fingerprinting calls\n }\n\n protected override componentToRender(): h.JSX.Element {\n /**\n * In the regular components (aka \"native\") flow we can't proceed because something has gone wrong with the payment if paymentData is missing from the threeDS2 action.\n * In the MDFlow the paymentData is always present (albeit an empty string, which is why we use 'existy' since we should be allowed to proceed with this)\n */\n if (!existy(this.props.paymentData)) {\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No paymentData received. 3DS2 Fingerprint cannot proceed`));\n\n // TODO - check logs to see if this *ever* happens\n const event = new AnalyticsErrorEvent({\n component: this.type,\n code: ErrorEventCode.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_FINGERPRINT_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n this.submitAnalytics(event);\n\n return null;\n }\n\n /**\n * this.props.isMDFlow indicates the action to create this component came from the 3DS2InMDFlow process and upon completion should call the\n * passed onComplete callback (as defined in the 3DS2InMDFlow) instead of the /submitThreeDS2Fingerprint endpoint for the regular, \"native\" flow\n */\n return (\n <PrepareFingerprint\n {...this.props}\n onComplete={this.props.isMDFlow ? this.onComplete : this.callSubmit3DS2Fingerprint}\n onSubmitAnalytics={this.submitAnalytics}\n isMDFlow={this.props.paymentData.length < 15}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n}\n\nexport default ThreeDS2DeviceFingerprint;\n"],"names":["ThreeDS2DeviceFingerprint","UIElement","beforeRender","onComplete","state","this","props","elementRef","super","unmount","componentToRender","existy","paymentData","onError","AdyenCheckoutError","API_ERROR","event","AnalyticsErrorEvent","component","type","code","ErrorEventCode","THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ErrorEventType","threeDS2","message","THREEDS2_FINGERPRINT_ERROR","submitAnalytics","h","PrepareFingerprint","isMDFlow","callSubmit3DS2Fingerprint","onSubmitAnalytics","length","onActionHandled","args","_define_property","bind","rtnObj","AnalyticsLogEvent","LogEventType","subType","LogEventSubtype","fingerprintIframeLoaded","actionDescription","TxVariants","threeDS2Fingerprint","defaultProps","dataKey","THREEDS2_FINGERPRINT"],"mappings":"+2BAaA,MAAMA,UAAkCC,EAUjBC,YAAAA,GAEnB,CAeAC,UAAAA,CAAWC,GACHC,KAAKC,MAAMH,WACXE,KAAKC,MAAMH,WAAWC,EAAOC,KAAKE,YAElCC,MAAML,WAAWC,GAGrBC,KAAKI,SACT,CAEmBC,iBAAAA,GAKf,IAAKC,EAAON,KAAKC,MAAMM,aAAc,CACjCP,KAAKC,MAAMO,QAAQ,IAAIC,EAAmBC,EAAW,6DAGrD,MAAMC,EAAQ,IAAIC,EAAoB,CAClCC,UAAWb,KAAKc,KAChBC,KAAMC,EAAeC,wCACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,2DAKhB,OAFAtB,KAAKuB,gBAAgBZ,GAEd,IACX,CAMA,OACIa,EAACC,EAAAA,IACOzB,KAAKC,MACTH,WAAYE,KAAKC,MAAMyB,SAAW1B,KAAKF,WAAaE,KAAK2B,0BACzDC,kBAAmB5B,KAAKuB,gBACxBG,SAAU1B,KAAKC,MAAMM,YAAYsB,OAAS,GAC1CC,gBAAiB9B,KAAK8B,iBAGlC,mBAvEJ3B,SAAA4B,GAQIC,OAAQL,4BAA4BA,EAA0BM,KAAKjC,OAMnEgC,EAAAhC,KAAU8B,kBAAmBI,IACzB,MAAMvB,EAAQ,IAAIwB,EAAkB,CAChCtB,UAAWb,KAAKc,KAChBA,KAAMsB,EAAahB,SACnBiB,QAASC,EAAgBC,wBACzBlB,QAASa,EAAOM,oBAGpBxC,KAAKuB,gBAAgBZ,GAErBR,MAAM2B,gBAAgBI,MAvB1BF,EADErC,EACYmB,OAAO2B,EAAWC,qBAEhCV,EAHErC,EAGYgD,eAAe,CACzBC,QAAS,oBACT9B,KAAM+B"}
@@ -1,2 +1,2 @@
1
- import{httpPost as e}from"../../core/Services/http.js";import{pick as t}from"../../utils/commonUtils.js";import{THREEDS2_FINGERPRINT_SUBMIT as n}from"./constants.js";import{API_ERROR_CODE as r}from"../../core/Services/sessions/constants.js";import{AnalyticsErrorEvent as o,ErrorEventType as i,ErrorEventCode as s}from"../../core/Analytics/events/AnalyticsErrorEvent.js";function a({data:a}){e({path:`v1/submitThreeDS2Fingerprint?token=${this.props.clientKey}`,loadingContext:this.props.loadingContext,errorLevel:"fatal",errorCode:r.submitThreeDS2Fingerprint},{...a}).then(e=>{let r;if("completed"===e.type){const{details:t}=e;return e.details?this.onComplete({data:{details:t}}):(console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no details object in a response indicating either a "frictionless" flow, or a "refused" response. resData=',e),r=new o({component:"threeDS2Fingerprint",code:s.THREEDS2_NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED,errorType:i.apiError,message:`${n}: no details object in a response indicating either a "frictionless" flow, or a "refused" response`}),void this.submitAnalytics(r))}if(!e.action)return console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no action object in a response indicating a "challenge". resData=',e),r=new o({component:"threeDS2Fingerprint",code:s.THREEDS2_NO_ACTION_FOR_CHALLENGE,errorType:i.apiError,message:`${n}: no action object in a response indicating a "challenge" flow`}),void this.submitAnalytics(r);const a=this.props.elementRef??this;return a?"threeDS2"===e.action?.type?a.handleAction(e.action,t("challengeWindowSize").from(this.props)):"redirect"===e.action?.type?a.handleAction(e.action):void 0:(console.debug("Handled Error::callSubmit3DS2Fingerprint::FAILED:: no actionHandler"),r=new o({component:"threeDS2Fingerprint",code:s.THREEDS2_NO_COMPONENT_FOR_ACTION,errorType:i.sdkError,message:`${n}: no component defined to handle the action response`}),void this.submitAnalytics(r))}).catch(e=>{this.handleError(e)})}export{a as default};
1
+ import{httpPost as e}from"../../core/Services/http.js";import{pick as t}from"../../utils/commonUtils.js";import{THREEDS2_FINGERPRINT_SUBMIT as n}from"./constants.js";import{API_ERROR_CODE as o}from"../../core/Services/sessions/constants.js";import{AnalyticsErrorEvent as r,ErrorEventType as i,ErrorEventCode as s}from"../../core/Analytics/events/AnalyticsErrorEvent.js";function a({data:a}){e({path:`v1/submitThreeDS2Fingerprint?token=${this.props.clientKey}`,loadingContext:this.props.loadingContext,errorLevel:"fatal",errorCode:o.submitThreeDS2Fingerprint},{...a}).then(e=>{let o;if("completed"===e.type){const{details:t}=e;return e.details?this.onComplete({data:{details:t}}):(console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no details object in a response indicating either a "frictionless" flow, or a "refused" response. resData=',e),o=new r({component:"threeDS2Fingerprint",code:s.THREEDS2_NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED,errorType:i.threeDS2,message:`${n}: no details object in a response indicating either a "frictionless" flow, or a "refused" response`}),void this.submitAnalytics(o))}if(!e.action)return console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no action object in a response indicating a "challenge". resData=',e),o=new r({component:"threeDS2Fingerprint",code:s.THREEDS2_NO_ACTION_FOR_CHALLENGE,errorType:i.threeDS2,message:`${n}: no action object in a response indicating a "challenge" flow`}),void this.submitAnalytics(o);const a=this.props.elementRef??this;return a?"threeDS2"===e.action?.type?a.handleAction(e.action,t("challengeWindowSize").from(this.props)):"redirect"===e.action?.type?a.handleAction(e.action):void 0:(console.debug("Handled Error::callSubmit3DS2Fingerprint::FAILED:: no actionHandler"),o=new r({component:"threeDS2Fingerprint",code:s.THREEDS2_NO_COMPONENT_FOR_ACTION,errorType:i.threeDS2,message:`${n}: no component defined to handle the action response`}),void this.submitAnalytics(o))}).catch(e=>{this.handleError(e)})}export{a as default};
2
2
  //# sourceMappingURL=callSubmit3DS2Fingerprint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callSubmit3DS2Fingerprint.js","sources":["../../../../src/components/ThreeDS2/callSubmit3DS2Fingerprint.ts"],"sourcesContent":["import { httpPost } from '../../core/Services/http';\nimport { pick } from '../../utils/commonUtils';\nimport { ThreeDS2FingerprintResponse } from './types';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT_SUBMIT } from './constants';\nimport { API_ERROR_CODE } from '../../core/Services/sessions/constants';\nimport { AbstractAnalyticsEvent } from '../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\n/**\n * ThreeDS2DeviceFingerprint, onComplete, calls a new, internal, endpoint which\n * behaves like the /details endpoint but doesn't require the same credentials\n */\nexport default function callSubmit3DS2Fingerprint({ data }): void {\n httpPost<ThreeDS2FingerprintResponse>(\n {\n path: `v1/submitThreeDS2Fingerprint?token=${this.props.clientKey}`,\n loadingContext: this.props.loadingContext,\n errorLevel: 'fatal',\n errorCode: API_ERROR_CODE.submitThreeDS2Fingerprint\n },\n {\n ...data\n }\n )\n .then(resData => {\n let event: AbstractAnalyticsEvent;\n\n /**\n * Frictionless (no challenge) flow OR \"refused\" flow\n */\n if (resData.type === 'completed') {\n const { details } = resData;\n\n if (!resData.details) {\n console.debug(\n 'Handled Error::callSubmit3DS2Fingerprint::FAILED:: no details object in a response indicating either a \"frictionless\" flow, or a \"refused\" response. resData=',\n resData\n );\n\n event = new AnalyticsErrorEvent({\n component: 'threeDS2Fingerprint',\n code: ErrorEventCode.THREEDS2_NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED,\n errorType: ErrorEventType.apiError,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no details object in a response indicating either a \"frictionless\" flow, or a \"refused\" response`\n });\n\n this.submitAnalytics(event);\n\n return;\n }\n\n return this.onComplete({ data: { details } });\n }\n\n /**\n * If we don't have a type: \"completed\", then we expect an action, because we must be in a Challenge or Redirect flow\n */\n if (!resData.action) {\n console.debug(\n 'Handled Error::callSubmit3DS2Fingerprint::FAILED:: no action object in a response indicating a \"challenge\". resData=',\n resData\n );\n\n event = new AnalyticsErrorEvent({\n component: 'threeDS2Fingerprint',\n code: ErrorEventCode.THREEDS2_NO_ACTION_FOR_CHALLENGE,\n errorType: ErrorEventType.apiError,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no action object in a response indicating a \"challenge\" flow`\n });\n this.submitAnalytics(event);\n\n return;\n }\n\n // elementRef exists when the fingerprint component is created from the Dropin\n const actionHandler = this.props.elementRef ?? this;\n\n /**\n * We have an action but do we have a way to handle it?\n * TODO - check logs: do we ever *not* have an actionHandler?\n */\n if (!actionHandler) {\n console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no actionHandler');\n\n event = new AnalyticsErrorEvent({\n component: 'threeDS2Fingerprint',\n code: ErrorEventCode.THREEDS2_NO_COMPONENT_FOR_ACTION,\n errorType: ErrorEventType.sdkError,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no component defined to handle the action response`\n });\n\n this.submitAnalytics(event);\n\n return;\n }\n\n /**\n * Challenge flow\n */\n if (resData.action?.type === 'threeDS2') {\n // Ensure challengeWindowSize is propagated if there was a (merchant defined) handleAction call proceeding this one that had it set as an option\n return actionHandler.handleAction(resData.action, pick('challengeWindowSize').from(this.props));\n }\n\n /**\n * Redirect flow (usecase: we thought we could do 3DS2 but it turns out we can't)\n * TODO - check logs: does this ever happen, anymore?\n */\n if (resData.action?.type === 'redirect') {\n return actionHandler.handleAction(resData.action);\n }\n })\n .catch((error: AdyenCheckoutError) => {\n this.handleError(error);\n });\n}\n"],"names":["callSubmit3DS2Fingerprint","data","httpPost","path","this","props","clientKey","loadingContext","errorLevel","errorCode","API_ERROR_CODE","submitThreeDS2Fingerprint","then","resData","event","type","details","onComplete","console","debug","AnalyticsErrorEvent","component","code","ErrorEventCode","THREEDS2_NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED","errorType","ErrorEventType","apiError","message","THREEDS2_FINGERPRINT_SUBMIT","submitAnalytics","action","THREEDS2_NO_ACTION_FOR_CHALLENGE","actionHandler","elementRef","handleAction","pick","from","THREEDS2_NO_COMPONENT_FOR_ACTION","sdkError","catch","error","handleError"],"mappings":"kXAae,SAASA,GAA0BC,KAAEA,IAChDC,EACI,CACIC,KAAM,sCAAsCC,KAAKC,MAAMC,YACvDC,eAAgBH,KAAKC,MAAME,eAC3BC,WAAY,QACZC,UAAWC,EAAeC,2BAE9B,IACOV,IAGNW,KAAKC,IACF,IAAIC,EAKJ,GAAqB,cAAjBD,EAAQE,KAAsB,CAC9B,MAAMC,QAAEA,GAAYH,EAEpB,OAAKA,EAAQG,QAkBNZ,KAAKa,WAAW,CAAEhB,KAAM,CAAEe,cAjB7BE,QAAQC,MACJ,gKACAN,GAGJC,EAAQ,IAAIM,EAAoB,CAC5BC,UAAW,sBACXC,KAAMC,EAAeC,gDACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,6GAGhBzB,KAAK0B,gBAAgBhB,GAM7B,CAKA,IAAKD,EAAQkB,OAcT,OAbAb,QAAQC,MACJ,uHACAN,GAGJC,EAAQ,IAAIM,EAAoB,CAC5BC,UAAW,sBACXC,KAAMC,EAAeS,iCACrBP,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,yEAEhBzB,KAAK0B,gBAAgBhB,GAMzB,MAAMmB,EAAgB7B,KAAKC,MAAM6B,YAAc9B,KAM/C,OAAK6B,EAkBwB,aAAzBpB,EAAQkB,QAAQhB,KAETkB,EAAcE,aAAatB,EAAQkB,OAAQK,EAAK,uBAAuBC,KAAKjC,KAAKC,QAO/D,aAAzBQ,EAAQkB,QAAQhB,KACTkB,EAAcE,aAAatB,EAAQkB,aAD9C,GA1BIb,QAAQC,MAAM,uEAEdL,EAAQ,IAAIM,EAAoB,CAC5BC,UAAW,sBACXC,KAAMC,EAAee,iCACrBb,UAAWC,EAAea,SAC1BX,QAAS,GAAGC,+DAGhBzB,KAAK0B,gBAAgBhB,MAqB5B0B,MAAOC,IACJrC,KAAKsC,YAAYD,IAE7B"}
1
+ {"version":3,"file":"callSubmit3DS2Fingerprint.js","sources":["../../../../src/components/ThreeDS2/callSubmit3DS2Fingerprint.ts"],"sourcesContent":["import { httpPost } from '../../core/Services/http';\nimport { pick } from '../../utils/commonUtils';\nimport { ThreeDS2FingerprintResponse } from './types';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT_SUBMIT } from './constants';\nimport { API_ERROR_CODE } from '../../core/Services/sessions/constants';\nimport { AbstractAnalyticsEvent } from '../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { AnalyticsErrorEvent, ErrorEventCode, ErrorEventType } from '../../core/Analytics/events/AnalyticsErrorEvent';\n\n/**\n * ThreeDS2DeviceFingerprint, onComplete, calls a new, internal, endpoint which\n * behaves like the /details endpoint but doesn't require the same credentials\n */\nexport default function callSubmit3DS2Fingerprint({ data }): void {\n httpPost<ThreeDS2FingerprintResponse>(\n {\n path: `v1/submitThreeDS2Fingerprint?token=${this.props.clientKey}`,\n loadingContext: this.props.loadingContext,\n errorLevel: 'fatal',\n errorCode: API_ERROR_CODE.submitThreeDS2Fingerprint\n },\n {\n ...data\n }\n )\n .then(resData => {\n let event: AbstractAnalyticsEvent;\n\n /**\n * Frictionless (no challenge) flow OR \"refused\" flow\n */\n if (resData.type === 'completed') {\n const { details } = resData;\n\n if (!resData.details) {\n console.debug(\n 'Handled Error::callSubmit3DS2Fingerprint::FAILED:: no details object in a response indicating either a \"frictionless\" flow, or a \"refused\" response. resData=',\n resData\n );\n\n event = new AnalyticsErrorEvent({\n component: 'threeDS2Fingerprint',\n code: ErrorEventCode.THREEDS2_NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no details object in a response indicating either a \"frictionless\" flow, or a \"refused\" response`\n });\n\n this.submitAnalytics(event);\n\n return;\n }\n\n return this.onComplete({ data: { details } });\n }\n\n /**\n * If we don't have a type: \"completed\", then we expect an action, because we must be in a Challenge or Redirect flow\n */\n if (!resData.action) {\n console.debug(\n 'Handled Error::callSubmit3DS2Fingerprint::FAILED:: no action object in a response indicating a \"challenge\". resData=',\n resData\n );\n\n event = new AnalyticsErrorEvent({\n component: 'threeDS2Fingerprint',\n code: ErrorEventCode.THREEDS2_NO_ACTION_FOR_CHALLENGE,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no action object in a response indicating a \"challenge\" flow`\n });\n this.submitAnalytics(event);\n\n return;\n }\n\n // elementRef exists when the fingerprint component is created from the Dropin\n const actionHandler = this.props.elementRef ?? this;\n\n /**\n * We have an action but do we have a way to handle it?\n * TODO - check logs: do we ever *not* have an actionHandler?\n */\n if (!actionHandler) {\n console.debug('Handled Error::callSubmit3DS2Fingerprint::FAILED:: no actionHandler');\n\n event = new AnalyticsErrorEvent({\n component: 'threeDS2Fingerprint',\n code: ErrorEventCode.THREEDS2_NO_COMPONENT_FOR_ACTION,\n errorType: ErrorEventType.threeDS2,\n message: `${THREEDS2_FINGERPRINT_SUBMIT}: no component defined to handle the action response`\n });\n\n this.submitAnalytics(event);\n\n return;\n }\n\n /**\n * Challenge flow\n */\n if (resData.action?.type === 'threeDS2') {\n // Ensure challengeWindowSize is propagated if there was a (merchant defined) handleAction call proceeding this one that had it set as an option\n return actionHandler.handleAction(resData.action, pick('challengeWindowSize').from(this.props));\n }\n\n /**\n * Redirect flow (usecase: we thought we could do 3DS2 but it turns out we can't)\n * TODO - check logs: does this ever happen, anymore?\n */\n if (resData.action?.type === 'redirect') {\n return actionHandler.handleAction(resData.action);\n }\n })\n .catch((error: AdyenCheckoutError) => {\n this.handleError(error);\n });\n}\n"],"names":["callSubmit3DS2Fingerprint","data","httpPost","path","this","props","clientKey","loadingContext","errorLevel","errorCode","API_ERROR_CODE","submitThreeDS2Fingerprint","then","resData","event","type","details","onComplete","console","debug","AnalyticsErrorEvent","component","code","ErrorEventCode","THREEDS2_NO_DETAILS_FOR_FRICTIONLESS_OR_REFUSED","errorType","ErrorEventType","threeDS2","message","THREEDS2_FINGERPRINT_SUBMIT","submitAnalytics","action","THREEDS2_NO_ACTION_FOR_CHALLENGE","actionHandler","elementRef","handleAction","pick","from","THREEDS2_NO_COMPONENT_FOR_ACTION","catch","error","handleError"],"mappings":"kXAae,SAASA,GAA0BC,KAAEA,IAChDC,EACI,CACIC,KAAM,sCAAsCC,KAAKC,MAAMC,YACvDC,eAAgBH,KAAKC,MAAME,eAC3BC,WAAY,QACZC,UAAWC,EAAeC,2BAE9B,IACOV,IAGNW,KAAKC,IACF,IAAIC,EAKJ,GAAqB,cAAjBD,EAAQE,KAAsB,CAC9B,MAAMC,QAAEA,GAAYH,EAEpB,OAAKA,EAAQG,QAkBNZ,KAAKa,WAAW,CAAEhB,KAAM,CAAEe,cAjB7BE,QAAQC,MACJ,gKACAN,GAGJC,EAAQ,IAAIM,EAAoB,CAC5BC,UAAW,sBACXC,KAAMC,EAAeC,gDACrBC,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,6GAGhBzB,KAAK0B,gBAAgBhB,GAM7B,CAKA,IAAKD,EAAQkB,OAcT,OAbAb,QAAQC,MACJ,uHACAN,GAGJC,EAAQ,IAAIM,EAAoB,CAC5BC,UAAW,sBACXC,KAAMC,EAAeS,iCACrBP,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,yEAEhBzB,KAAK0B,gBAAgBhB,GAMzB,MAAMmB,EAAgB7B,KAAKC,MAAM6B,YAAc9B,KAM/C,OAAK6B,EAkBwB,aAAzBpB,EAAQkB,QAAQhB,KAETkB,EAAcE,aAAatB,EAAQkB,OAAQK,EAAK,uBAAuBC,KAAKjC,KAAKC,QAO/D,aAAzBQ,EAAQkB,QAAQhB,KACTkB,EAAcE,aAAatB,EAAQkB,aAD9C,GA1BIb,QAAQC,MAAM,uEAEdL,EAAQ,IAAIM,EAAoB,CAC5BC,UAAW,sBACXC,KAAMC,EAAee,iCACrBb,UAAWC,EAAeC,SAC1BC,QAAS,GAAGC,+DAGhBzB,KAAK0B,gBAAgBhB,MAqB5ByB,MAAOC,IACJpC,KAAKqC,YAAYD,IAE7B"}