@adyen/adyen-web 6.29.0 → 6.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (515) hide show
  1. package/dist/cjs/adyen.css +8 -9
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +705 -641
  6. package/dist/es/adyen.css +8 -9
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  9. package/dist/es/components/Ach/Ach.js +1 -1
  10. package/dist/es/components/Ach/Ach.js.map +1 -1
  11. package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -1
  12. package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
  13. package/dist/es/components/Affirm/Affirm.js.map +1 -1
  14. package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
  15. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  16. package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
  17. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  18. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  19. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  20. package/dist/es/components/AmazonPay/components/OrderButton.js +1 -1
  21. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  22. package/dist/es/components/AmazonPay/utils.js +1 -1
  23. package/dist/es/components/AmazonPay/utils.js.map +1 -1
  24. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  25. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  26. package/dist/es/components/ApplePay/services/ApplePayService.js +1 -1
  27. package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
  28. package/dist/es/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
  29. package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -1
  30. package/dist/es/components/Atome/Atome.js.map +1 -1
  31. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  32. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  33. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  34. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  35. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  36. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  37. package/dist/es/components/Blik/Blik.js +1 -1
  38. package/dist/es/components/Blik/Blik.js.map +1 -1
  39. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  40. package/dist/es/components/Card/Card.js +1 -1
  41. package/dist/es/components/Card/Card.js.map +1 -1
  42. package/dist/es/components/Card/components/CardInput/CardInput.js +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/types.js.map +1 -1
  51. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  52. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  53. package/dist/es/components/Card/components/ClickToPayWrapper.js +1 -1
  54. package/dist/es/components/Card/components/ClickToPayWrapper.js.map +1 -1
  55. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  56. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  57. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  58. package/dist/es/components/CashAppPay/services/CashAppService.js +1 -1
  59. package/dist/es/components/CashAppPay/services/CashAppService.js.map +1 -1
  60. package/dist/es/components/CashAppPay/services/types.js.map +1 -1
  61. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  62. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  63. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  64. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  65. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  66. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.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 +1 -1
  79. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  80. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  81. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  82. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  83. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  84. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  85. package/dist/es/components/Iris/Iris.js +1 -1
  86. package/dist/es/components/Iris/Iris.js.map +1 -1
  87. package/dist/es/components/Iris/components/IrisGenerateQRCode.js +1 -1
  88. package/dist/es/components/Iris/components/IrisGenerateQRCode.js.map +1 -1
  89. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  90. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  91. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  92. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  93. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  94. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  95. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  96. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
  97. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  98. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  99. package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  100. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  101. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  102. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  103. package/dist/es/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  104. package/dist/es/components/PayTo/PayTo.js +1 -1
  105. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  106. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -1
  107. package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
  108. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
  109. package/dist/es/components/PersonalDetails/PersonalDetails.js.map +1 -1
  110. package/dist/es/components/Pix/components/PixQRDetails.js +1 -1
  111. package/dist/es/components/Pix/components/PixQRDetails.js.map +1 -1
  112. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  113. package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  114. package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  115. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  116. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  117. package/dist/es/components/Twint/Twint.js +1 -1
  118. package/dist/es/components/Twint/Twint.js.map +1 -1
  119. package/dist/es/components/UPI/UPI.js +1 -1
  120. package/dist/es/components/UPI/UPI.js.map +1 -1
  121. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  122. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  123. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  124. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  125. package/dist/es/components/UPI/constants.js +1 -1
  126. package/dist/es/components/UPI/constants.js.map +1 -1
  127. package/dist/es/components/components-name-map.js +1 -1
  128. package/dist/es/components/components-name-map.js.map +1 -1
  129. package/dist/es/components/internal/Address/Specifications.js.map +1 -1
  130. package/dist/es/components/internal/Await/Await.js +1 -1
  131. package/dist/es/components/internal/Await/Await.js.map +1 -1
  132. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  133. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  134. package/dist/es/components/internal/Button/Button.js +1 -1
  135. package/dist/es/components/internal/Button/Button.js.map +1 -1
  136. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  137. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  138. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  139. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  140. package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
  141. package/dist/es/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
  142. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
  143. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  144. package/dist/es/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  145. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  146. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  147. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  148. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  149. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  150. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  151. package/dist/es/components/internal/Countdown/index.js +1 -1
  152. package/dist/es/components/internal/Countdown/index.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/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  165. package/dist/es/components/internal/QRLoader/components/QRDetails.js +1 -1
  166. package/dist/es/components/internal/QRLoader/components/QRDetails.js.map +1 -1
  167. package/dist/es/components/internal/QRLoader/components/QRImage.js +1 -1
  168. package/dist/es/components/internal/QRLoader/components/QRImage.js.map +1 -1
  169. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  170. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  171. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  172. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  173. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  174. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  175. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  176. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js +1 -1
  177. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  178. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  179. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  180. package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
  181. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  182. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  183. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  184. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  185. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  186. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  187. package/dist/es/components/tx-variants.js +1 -1
  188. package/dist/es/components/tx-variants.js.map +1 -1
  189. package/dist/es/core/Analytics/Analytics.js +1 -1
  190. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  191. package/dist/es/core/Analytics/AnalyticsService.js.map +1 -1
  192. package/dist/es/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
  193. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  194. package/dist/es/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  195. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  196. package/dist/es/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  197. package/dist/es/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  198. package/dist/es/core/Analytics/utils.js +1 -1
  199. package/dist/es/core/Analytics/utils.js.map +1 -1
  200. package/dist/es/core/CheckoutSession/CheckoutSession.js +1 -1
  201. package/dist/es/core/CheckoutSession/CheckoutSession.js.map +1 -1
  202. package/dist/es/core/Context/AmountProvider.js +2 -0
  203. package/dist/es/core/Context/AmountProvider.js.map +1 -0
  204. package/dist/es/core/Context/Resources.js.map +1 -1
  205. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  206. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  207. package/dist/es/core/config.js +1 -1
  208. package/dist/es/core/core.js +1 -1
  209. package/dist/es/core/core.js.map +1 -1
  210. package/dist/es/external/preact/compat/dist/compat.js +1 -1
  211. package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
  212. package/dist/es/external/preact/dist/preact.js +1 -1
  213. package/dist/es/external/preact/dist/preact.js.map +1 -1
  214. package/dist/es/external/preact/hooks/dist/hooks.js +1 -1
  215. package/dist/es/external/preact/hooks/dist/hooks.js.map +1 -1
  216. package/dist/es/index.d.ts +705 -641
  217. package/dist/es/language/Language.js.map +1 -1
  218. package/dist/es/utils/Script.js.map +1 -1
  219. package/dist/es/utils/Storage.js +1 -1
  220. package/dist/es/utils/Storage.js.map +1 -1
  221. package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
  222. package/dist/es/utils/Validator/Validator.js.map +1 -1
  223. package/dist/es/utils/amount-util.js +1 -1
  224. package/dist/es/utils/amount-util.js.map +1 -1
  225. package/dist/es/utils/browserInfo.js +1 -1
  226. package/dist/es/utils/browserInfo.js.map +1 -1
  227. package/dist/es/utils/constants/currency-minor-units.js.map +1 -1
  228. package/dist/es/utils/createSdkData.js.map +1 -1
  229. package/dist/es/utils/getErrorMessage.js.map +1 -1
  230. package/dist/es/utils/getProp.js +1 -1
  231. package/dist/es/utils/getProp.js.map +1 -1
  232. package/dist/es/utils/hasOwnProperty.js.map +1 -1
  233. package/dist/es/utils/isValidURL.js.map +1 -1
  234. package/dist/es/utils/listenerUtils.js.map +1 -1
  235. package/dist/es/utils/promiseTimeout.js.map +1 -1
  236. package/dist/es/utils/textUtils.js.map +1 -1
  237. package/dist/es/utils/validator-utils.js.map +1 -1
  238. package/dist/es-legacy/adyen.css +8 -9
  239. package/dist/es-legacy/adyen.css.map +1 -1
  240. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  241. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  242. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  243. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -1
  244. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
  245. package/dist/es-legacy/components/Affirm/Affirm.js.map +1 -1
  246. package/dist/es-legacy/components/AfterPay/AfterPay.js.map +1 -1
  247. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  248. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
  249. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  250. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  251. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  252. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js +1 -1
  253. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  254. package/dist/es-legacy/components/AmazonPay/utils.js +1 -1
  255. package/dist/es-legacy/components/AmazonPay/utils.js.map +1 -1
  256. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  257. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  258. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js +1 -1
  259. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
  260. package/dist/es-legacy/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -1
  261. package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
  262. package/dist/es-legacy/components/Atome/Atome.js.map +1 -1
  263. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  264. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  265. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  266. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  267. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  268. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  269. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  270. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  271. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  272. package/dist/es-legacy/components/Card/Card.js +1 -1
  273. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  274. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  275. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  276. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  277. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  278. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  279. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  280. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  281. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  282. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js +1 -1
  283. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFieldsWrapper.js.map +1 -1
  284. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  285. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  286. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  287. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  288. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js +1 -1
  289. package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
  290. package/dist/es-legacy/components/Card/components/Fastlane/USOnlyPhoneInput.js.map +1 -1
  291. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  292. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  293. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  294. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js +1 -1
  295. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js.map +1 -1
  296. package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
  297. package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
  298. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  299. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  300. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  301. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  302. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  303. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  304. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  305. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  306. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  307. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  308. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  309. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  310. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js +2 -0
  311. package/dist/es-legacy/components/Dropin/components/DropinSuccessState.js.map +1 -0
  312. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  313. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  314. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  315. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  316. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  317. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  318. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  319. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  320. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  321. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  322. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  323. package/dist/es-legacy/components/Iris/Iris.js +1 -1
  324. package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
  325. package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.js +1 -1
  326. package/dist/es-legacy/components/Iris/components/IrisGenerateQRCode.js.map +1 -1
  327. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  328. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  329. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  330. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  331. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  332. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  333. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  334. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  335. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  336. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
  337. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js +1 -1
  338. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -1
  339. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  340. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  341. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  342. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  343. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  344. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  345. package/dist/es-legacy/components/PayPalFastlane/components/FastlaneComponent.js.map +1 -1
  346. package/dist/es-legacy/components/PayTo/PayTo.js +1 -1
  347. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  348. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -1
  349. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
  350. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
  351. package/dist/es-legacy/components/PersonalDetails/PersonalDetails.js.map +1 -1
  352. package/dist/es-legacy/components/Pix/components/PixQRDetails.js +1 -1
  353. package/dist/es-legacy/components/Pix/components/PixQRDetails.js.map +1 -1
  354. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
  355. package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
  356. package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
  357. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  358. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  359. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  360. package/dist/es-legacy/components/Twint/Twint.js +1 -1
  361. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  362. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  363. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  364. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  365. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  366. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  367. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  368. package/dist/es-legacy/components/UPI/constants.js +1 -1
  369. package/dist/es-legacy/components/UPI/constants.js.map +1 -1
  370. package/dist/es-legacy/components/components-name-map.js +1 -1
  371. package/dist/es-legacy/components/components-name-map.js.map +1 -1
  372. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  373. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  374. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  375. package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
  376. package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
  377. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  378. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  379. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  380. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  381. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  382. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  383. package/dist/es-legacy/components/internal/Button/CopyButton.js.map +1 -1
  384. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  385. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  386. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  387. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  388. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js.map +1 -1
  389. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  390. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js +1 -1
  391. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayContext.js.map +1 -1
  392. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js +1 -1
  393. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  394. package/dist/es-legacy/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  395. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  396. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  397. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  398. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  399. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  400. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  401. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  402. package/dist/es-legacy/components/internal/Countdown/index.js +1 -1
  403. package/dist/es-legacy/components/internal/Countdown/index.js.map +1 -1
  404. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  405. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  406. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  407. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -1
  408. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  409. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  410. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  411. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  412. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  413. package/dist/es-legacy/components/internal/PayButton/utils.js +1 -1
  414. package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
  415. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  416. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  417. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  418. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  419. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  420. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
  421. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js +1 -1
  422. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js.map +1 -1
  423. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js +1 -1
  424. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js.map +1 -1
  425. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  426. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  427. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  428. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  429. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  430. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  431. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  432. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  433. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  434. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  435. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  436. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js +1 -1
  437. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  438. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  439. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  440. package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
  441. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  442. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  443. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  444. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  445. package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
  446. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  447. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  448. package/dist/es-legacy/components/tx-variants.js +1 -1
  449. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  450. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  451. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  452. package/dist/es-legacy/core/Analytics/AnalyticsService.js.map +1 -1
  453. package/dist/es-legacy/core/Analytics/events/AbstractAnalyticsEvent.js.map +1 -1
  454. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js +1 -1
  455. package/dist/es-legacy/core/Analytics/events/AnalyticsErrorEvent.js.map +1 -1
  456. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js +1 -1
  457. package/dist/es-legacy/core/Analytics/events/AnalyticsInfoEvent.js.map +1 -1
  458. package/dist/es-legacy/core/Analytics/events/AnalyticsLogEvent.js.map +1 -1
  459. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  460. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  461. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js +1 -1
  462. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js.map +1 -1
  463. package/dist/es-legacy/core/Context/AmountProvider.js +2 -0
  464. package/dist/es-legacy/core/Context/AmountProvider.js.map +1 -0
  465. package/dist/es-legacy/core/Context/Resources.js.map +1 -1
  466. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  467. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  468. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  469. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/utils.js.map +1 -1
  470. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  471. package/dist/es-legacy/core/Services/http.js.map +1 -1
  472. package/dist/es-legacy/core/config.js +1 -1
  473. package/dist/es-legacy/core/core.js +1 -1
  474. package/dist/es-legacy/core/core.js.map +1 -1
  475. package/dist/es-legacy/external/preact/compat/dist/compat.js +1 -1
  476. package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
  477. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  478. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  479. package/dist/es-legacy/external/preact/hooks/dist/hooks.js +1 -1
  480. package/dist/es-legacy/external/preact/hooks/dist/hooks.js.map +1 -1
  481. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  482. package/dist/es-legacy/language/Language.js.map +1 -1
  483. package/dist/es-legacy/utils/Script.js.map +1 -1
  484. package/dist/es-legacy/utils/Storage.js +1 -1
  485. package/dist/es-legacy/utils/Storage.js.map +1 -1
  486. package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
  487. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  488. package/dist/es-legacy/utils/amount-util.js +1 -1
  489. package/dist/es-legacy/utils/amount-util.js.map +1 -1
  490. package/dist/es-legacy/utils/browserInfo.js +1 -1
  491. package/dist/es-legacy/utils/browserInfo.js.map +1 -1
  492. package/dist/es-legacy/utils/constants/currency-minor-units.js.map +1 -1
  493. package/dist/es-legacy/utils/createSdkData.js.map +1 -1
  494. package/dist/es-legacy/utils/getConsentUrl.js.map +1 -1
  495. package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
  496. package/dist/es-legacy/utils/getProp.js +1 -1
  497. package/dist/es-legacy/utils/getProp.js.map +1 -1
  498. package/dist/es-legacy/utils/hasOwnProperty.js.map +1 -1
  499. package/dist/es-legacy/utils/isValidURL.js.map +1 -1
  500. package/dist/es-legacy/utils/listenerUtils.js.map +1 -1
  501. package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
  502. package/dist/es-legacy/utils/textUtils.js.map +1 -1
  503. package/dist/es-legacy/utils/useAutoFocus.js.map +1 -1
  504. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  505. package/dist/es-legacy/utils/validator-utils.js.map +1 -1
  506. package/package.json +11 -11
  507. package/styles/adyen.css +8 -9
  508. package/dist/es/components/UPI/components/VpaInput/VpaInput.js +0 -2
  509. package/dist/es/components/UPI/components/VpaInput/VpaInput.js.map +0 -1
  510. package/dist/es/components/UPI/components/VpaInput/validate.js +0 -2
  511. package/dist/es/components/UPI/components/VpaInput/validate.js.map +0 -1
  512. package/dist/es-legacy/components/UPI/components/VpaInput/VpaInput.js +0 -2
  513. package/dist/es-legacy/components/UPI/components/VpaInput/VpaInput.js.map +0 -1
  514. package/dist/es-legacy/components/UPI/components/VpaInput/validate.js +0 -2
  515. package/dist/es-legacy/components/UPI/components/VpaInput/validate.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CtPInfoModal.js","sources":["../../../../../../../../src/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { CtPBrand } from '../../CtPBrand';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport useImage from '../../../../../../core/Context/useImage';\nimport { Modal } from '../../../../Modal';\nimport Img from '../../../../Img';\nimport Button from '../../../../Button';\nimport './CtPInfoModal.scss';\n\nlet idGenerator = Date.now();\n\nfunction getUniqueId() {\n idGenerator += 1;\n return `adyen-${idGenerator}`;\n}\n\ntype CtPInfoModalProps = {\n isOpen: boolean;\n onClose(): void;\n focusAfterClose: HTMLElement;\n};\n\nconst CtPInfoModal = ({ isOpen, onClose, focusAfterClose }: CtPInfoModalProps) => {\n const focusFirstElement = useRef<HTMLParagraphElement>();\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const labelledBy = getUniqueId();\n const describedBy = getUniqueId();\n\n return (\n <Modal\n onClose={onClose}\n isOpen={isOpen}\n classNameModifiers={['ctp']}\n labelledBy={labelledBy}\n describedBy={describedBy}\n focusFirst={focusFirstElement.current}\n focusAfterClose={focusAfterClose}\n >\n {({ onCloseModal }) => (\n <Fragment>\n <Img className=\"adyen-checkout__ctp-modal-header-image\" src={getImage({ imageFolder: 'components/' })('ctp_landscape')} alt=\"\" />\n <h1 id={labelledBy} className=\"adyen-checkout__ctp-modal-title\">\n {i18n.get('ctp.infoPopup.title')}\n </h1>\n\n <div id={describedBy}>\n <p tabIndex={-1} ref={focusFirstElement} className=\"adyen-checkout__ctp-modal-text\">\n {i18n.get('ctp.infoPopup.subtitle')}\n </p>\n\n <ul className=\"adyen-checkout__ctp-modal-text adyen-checkout__ctp-modal-benefits\" type=\"disc\">\n <li>{i18n.get('ctp.infoPopup.benefit1')}</li>\n <li>{i18n.get('ctp.infoPopup.benefit2')}</li>\n <li>{i18n.get('ctp.infoPopup.benefit3')}</li>\n </ul>\n\n <CtPBrand classNameModifiers={['popup']} />\n </div>\n\n <Button onClick={onCloseModal} label={i18n.get('close')} />\n </Fragment>\n )}\n </Modal>\n );\n};\n\nexport { CtPInfoModal };\n"],"names":["idGenerator","Date","now","getUniqueId","CtPInfoModal","isOpen","onClose","focusAfterClose","focusFirstElement","useRef","i18n","useCoreContext","getImage","useImage","labelledBy","describedBy","h","Modal","classNameModifiers","focusFirst","current","onCloseModal","Fragment","Img","className","src","imageFolder","alt","h1","id","get","div","p","tabIndex","ref","ul","type","li","CtPBrand","Button","onClick","label"],"mappings":"mfAUA,IAAIA,EAAcC,KAAKC,MAEvB,SAASC,IAEL,OADAH,GAAe,EACR,SAASA,GACpB,CAQA,MAAMI,EAAe,EAAGC,SAAQC,UAASC,sBACrC,MAAMC,EAAoBC,KACpBC,KAAEA,GAASC,IACXC,EAAWC,IAEXC,EAAaX,IACbY,EAAcZ,IAEpB,OACIa,EAACC,EAAAA,CACGX,QAASA,EACTD,OAAQA,EACRa,mBAAoB,CAAC,OACrBJ,WAAYA,EACZC,YAAaA,EACbI,WAAYX,EAAkBY,QAC9Bb,gBAAiBA,GAEhB,EAAGc,kBACAL,EAACM,OACGN,EAACO,EAAAA,CAAIC,UAAU,yCAAyCC,IAAKb,EAAS,CAAEc,YAAa,eAAxBd,CAAyC,iBAAkBe,IAAI,KAC5HX,EAACY,KAAAA,CAAGC,GAAIf,EAAYU,UAAU,mCACzBd,EAAKoB,IAAI,wBAGdd,EAACe,MAAAA,CAAIF,GAAId,GACLC,EAACgB,IAAAA,CAAEC,UAAU,EAAIC,IAAK1B,EAAmBgB,UAAU,kCAC9Cd,EAAKoB,IAAI,2BAGdd,EAACmB,KAAAA,CAAGX,UAAU,oEAAoEY,KAAK,QACnFpB,EAACqB,UAAI3B,EAAKoB,IAAI,2BACdd,EAACqB,KAAAA,KAAI3B,EAAKoB,IAAI,2BACdd,EAACqB,KAAAA,KAAI3B,EAAKoB,IAAI,4BAGlBd,EAACsB,EAAAA,CAASpB,mBAAoB,CAAC,YAGnCF,EAACuB,EAAAA,CAAOC,QAASnB,EAAcoB,MAAO/B,EAAKoB,IAAI"}
1
+ {"version":3,"file":"CtPInfoModal.js","sources":["../../../../../../../../src/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useRef } from 'preact/hooks';\nimport { CtPBrand } from '../../CtPBrand';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport useImage from '../../../../../../core/Context/useImage';\nimport { Modal } from '../../../../Modal';\nimport Img from '../../../../Img';\nimport Button from '../../../../Button';\nimport './CtPInfoModal.scss';\n\nlet idGenerator = Date.now();\n\nfunction getUniqueId() {\n idGenerator += 1;\n return `adyen-${idGenerator}`;\n}\n\ntype CtPInfoModalProps = {\n isOpen: boolean;\n onClose(): void;\n focusAfterClose: HTMLElement;\n};\n\nconst CtPInfoModal = ({ isOpen, onClose, focusAfterClose }: CtPInfoModalProps) => {\n const focusFirstElement = useRef<HTMLParagraphElement>();\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const labelledBy = getUniqueId();\n const describedBy = getUniqueId();\n\n return (\n <Modal\n onClose={onClose}\n isOpen={isOpen}\n classNameModifiers={['ctp']}\n labelledBy={labelledBy}\n describedBy={describedBy}\n focusFirst={focusFirstElement.current}\n focusAfterClose={focusAfterClose}\n >\n {({ onCloseModal }) => (\n <Fragment>\n <Img className=\"adyen-checkout__ctp-modal-header-image\" src={getImage({ imageFolder: 'components/' })('ctp_landscape')} alt=\"\" />\n <h1 id={labelledBy} className=\"adyen-checkout__ctp-modal-title\">\n {i18n.get('ctp.infoPopup.title')}\n </h1>\n\n <div id={describedBy}>\n <p tabIndex={-1} ref={focusFirstElement} className=\"adyen-checkout__ctp-modal-text\">\n {i18n.get('ctp.infoPopup.subtitle')}\n </p>\n\n <ul className=\"adyen-checkout__ctp-modal-text adyen-checkout__ctp-modal-benefits\">\n <li>{i18n.get('ctp.infoPopup.benefit1')}</li>\n <li>{i18n.get('ctp.infoPopup.benefit2')}</li>\n <li>{i18n.get('ctp.infoPopup.benefit3')}</li>\n </ul>\n\n <CtPBrand classNameModifiers={['popup']} />\n </div>\n\n <Button onClick={onCloseModal} label={i18n.get('close')} />\n </Fragment>\n )}\n </Modal>\n );\n};\n\nexport { CtPInfoModal };\n"],"names":["idGenerator","Date","now","getUniqueId","CtPInfoModal","isOpen","onClose","focusAfterClose","focusFirstElement","useRef","i18n","useCoreContext","getImage","useImage","labelledBy","describedBy","h","Modal","classNameModifiers","focusFirst","current","onCloseModal","Fragment","Img","className","src","imageFolder","alt","h1","id","get","div","p","tabIndex","ref","ul","li","CtPBrand","Button","onClick","label"],"mappings":"mfAUA,IAAIA,EAAcC,KAAKC,MAEvB,SAASC,IAEL,OADAH,GAAe,EACR,SAASA,GACpB,CAQA,MAAMI,EAAe,EAAGC,SAAQC,UAASC,sBACrC,MAAMC,EAAoBC,KACpBC,KAAEA,GAASC,IACXC,EAAWC,IAEXC,EAAaX,IACbY,EAAcZ,IAEpB,OACIa,EAACC,EAAAA,CACGX,QAASA,EACTD,OAAQA,EACRa,mBAAoB,CAAC,OACrBJ,WAAYA,EACZC,YAAaA,EACbI,WAAYX,EAAkBY,QAC9Bb,gBAAiBA,GAEhB,EAAGc,kBACAL,EAACM,OACGN,EAACO,EAAAA,CAAIC,UAAU,yCAAyCC,IAAKb,EAAS,CAAEc,YAAa,eAAxBd,CAAyC,iBAAkBe,IAAI,KAC5HX,EAACY,KAAAA,CAAGC,GAAIf,EAAYU,UAAU,mCACzBd,EAAKoB,IAAI,wBAGdd,EAACe,MAAAA,CAAIF,GAAId,GACLC,EAACgB,IAAAA,CAAEC,UAAU,EAAIC,IAAK1B,EAAmBgB,UAAU,kCAC9Cd,EAAKoB,IAAI,2BAGdd,EAACmB,KAAAA,CAAGX,UAAU,qEACVR,EAACoB,UAAI1B,EAAKoB,IAAI,2BACdd,EAACoB,KAAAA,KAAI1B,EAAKoB,IAAI,2BACdd,EAACoB,KAAAA,KAAI1B,EAAKoB,IAAI,4BAGlBd,EAACqB,EAAAA,CAASnB,mBAAoB,CAAC,YAGnCF,EAACsB,EAAAA,CAAOC,QAASlB,EAAcmB,MAAO9B,EAAKoB,IAAI"}
@@ -1,2 +1,2 @@
1
- import{createContext as t}from"../../../../external/preact/dist/preact.js";const l=t({status:null,onSubmit:null,onSetStatus:null,onError:null,onReady:null,amount:null,configuration:null,isStandaloneComponent:null,isCtpPrimaryPaymentMethod:null,isStoringCookies:!1,setIsCtpPrimaryPaymentMethod:null,logoutShopper:null,updateStoreCookiesConsent:null,ctpState:null,cards:[],schemes:[],otpMaskedContact:null,otpNetwork:null,checkout:null,verifyIfShopperIsEnrolled:null,startIdentityValidation:null,finishIdentityValidation:null});export{l as ClickToPayContext};
1
+ import{createContext as t}from"../../../../external/preact/dist/preact.js";const l=t({status:null,onSubmit:null,onSetStatus:null,onError:null,onReady:null,configuration:null,isStandaloneComponent:null,isCtpPrimaryPaymentMethod:null,isStoringCookies:!1,setIsCtpPrimaryPaymentMethod:null,logoutShopper:null,updateStoreCookiesConsent:null,ctpState:null,cards:[],schemes:[],otpMaskedContact:null,otpNetwork:null,checkout:null,verifyIfShopperIsEnrolled:null,startIdentityValidation:null,finishIdentityValidation:null});export{l as ClickToPayContext};
2
2
  //# sourceMappingURL=ClickToPayContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClickToPayContext.js","sources":["../../../../../../src/components/internal/ClickToPay/context/ClickToPayContext.ts"],"sourcesContent":["import { createContext } from 'preact';\nimport { CtpState } from '../services/ClickToPayService';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../services/types';\nimport ShopperCard from '../models/ShopperCard';\nimport { ClickToPayProps } from '../types';\nimport { PaymentAmount } from '../../../../types/global-types';\nimport AdyenCheckoutError from '../../../../core/Errors/AdyenCheckoutError';\nimport { UIElementStatus } from '../../UIElement/types';\n\nexport interface IClickToPayContext\n extends Pick<IClickToPayService, 'checkout' | 'startIdentityValidation' | 'finishIdentityValidation' | 'verifyIfShopperIsEnrolled'> {\n isStandaloneComponent: boolean;\n isCtpPrimaryPaymentMethod: boolean;\n isStoringCookies: boolean;\n setIsCtpPrimaryPaymentMethod(isPrimary: boolean): void;\n logoutShopper(): Promise<void>;\n updateStoreCookiesConsent(shouldStore: boolean): void;\n ctpState: CtpState;\n cards: ShopperCard[];\n schemes: string[];\n otpMaskedContact: string;\n otpNetwork: string;\n amount: PaymentAmount;\n configuration: ClickToPayProps;\n status: UIElementStatus;\n onSubmit(payload: ClickToPayCheckoutPayload): void;\n onSetStatus(status: UIElementStatus): void;\n onError(error: AdyenCheckoutError): void;\n onReady(): void;\n}\n\nconst ClickToPayContext = createContext<IClickToPayContext>({\n status: null,\n onSubmit: null,\n onSetStatus: null,\n onError: null,\n onReady: null,\n amount: null,\n configuration: null,\n isStandaloneComponent: null,\n isCtpPrimaryPaymentMethod: null,\n isStoringCookies: false,\n setIsCtpPrimaryPaymentMethod: null,\n logoutShopper: null,\n updateStoreCookiesConsent: null,\n ctpState: null,\n cards: [],\n schemes: [],\n otpMaskedContact: null,\n otpNetwork: null,\n checkout: null,\n verifyIfShopperIsEnrolled: null,\n startIdentityValidation: null,\n finishIdentityValidation: null\n});\n\nexport { ClickToPayContext };\n"],"names":["ClickToPayContext","createContext","status","onSubmit","onSetStatus","onError","onReady","amount","configuration","isStandaloneComponent","isCtpPrimaryPaymentMethod","isStoringCookies","setIsCtpPrimaryPaymentMethod","logoutShopper","updateStoreCookiesConsent","ctpState","cards","schemes","otpMaskedContact","otpNetwork","checkout","verifyIfShopperIsEnrolled","startIdentityValidation","finishIdentityValidation"],"mappings":"2EA+BA,MAAMA,EAAoBC,EAAkC,CACxDC,OAAQ,KACRC,SAAU,KACVC,YAAa,KACbC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,cAAe,KACfC,sBAAuB,KACvBC,0BAA2B,KAC3BC,kBAAkB,EAClBC,6BAA8B,KAC9BC,cAAe,KACfC,0BAA2B,KAC3BC,SAAU,KACVC,MAAO,GACPC,QAAS,GACTC,iBAAkB,KAClBC,WAAY,KACZC,SAAU,KACVC,0BAA2B,KAC3BC,wBAAyB,KACzBC,yBAA0B"}
1
+ {"version":3,"file":"ClickToPayContext.js","sources":["../../../../../../src/components/internal/ClickToPay/context/ClickToPayContext.ts"],"sourcesContent":["import { createContext } from 'preact';\nimport { CtpState } from '../services/ClickToPayService';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../services/types';\nimport ShopperCard from '../models/ShopperCard';\nimport { ClickToPayProps } from '../types';\nimport AdyenCheckoutError from '../../../../core/Errors/AdyenCheckoutError';\nimport { UIElementStatus } from '../../UIElement/types';\n\nexport interface IClickToPayContext extends Pick<\n IClickToPayService,\n 'checkout' | 'startIdentityValidation' | 'finishIdentityValidation' | 'verifyIfShopperIsEnrolled'\n> {\n isStandaloneComponent: boolean;\n isCtpPrimaryPaymentMethod: boolean;\n isStoringCookies: boolean;\n setIsCtpPrimaryPaymentMethod(isPrimary: boolean): void;\n logoutShopper(): Promise<void>;\n updateStoreCookiesConsent(shouldStore: boolean): void;\n ctpState: CtpState;\n cards: ShopperCard[];\n schemes: string[];\n otpMaskedContact: string;\n otpNetwork: string;\n configuration: ClickToPayProps;\n status: UIElementStatus;\n onSubmit(payload: ClickToPayCheckoutPayload): void;\n onSetStatus(status: UIElementStatus): void;\n onError(error: AdyenCheckoutError): void;\n onReady(): void;\n}\n\nconst ClickToPayContext = createContext<IClickToPayContext>({\n status: null,\n onSubmit: null,\n onSetStatus: null,\n onError: null,\n onReady: null,\n configuration: null,\n isStandaloneComponent: null,\n isCtpPrimaryPaymentMethod: null,\n isStoringCookies: false,\n setIsCtpPrimaryPaymentMethod: null,\n logoutShopper: null,\n updateStoreCookiesConsent: null,\n ctpState: null,\n cards: [],\n schemes: [],\n otpMaskedContact: null,\n otpNetwork: null,\n checkout: null,\n verifyIfShopperIsEnrolled: null,\n startIdentityValidation: null,\n finishIdentityValidation: null\n});\n\nexport { ClickToPayContext };\n"],"names":["ClickToPayContext","createContext","status","onSubmit","onSetStatus","onError","onReady","configuration","isStandaloneComponent","isCtpPrimaryPaymentMethod","isStoringCookies","setIsCtpPrimaryPaymentMethod","logoutShopper","updateStoreCookiesConsent","ctpState","cards","schemes","otpMaskedContact","otpNetwork","checkout","verifyIfShopperIsEnrolled","startIdentityValidation","finishIdentityValidation"],"mappings":"2EA+BA,MAAMA,EAAoBC,EAAkC,CACxDC,OAAQ,KACRC,SAAU,KACVC,YAAa,KACbC,QAAS,KACTC,QAAS,KACTC,cAAe,KACfC,sBAAuB,KACvBC,0BAA2B,KAC3BC,kBAAkB,EAClBC,6BAA8B,KAC9BC,cAAe,KACfC,0BAA2B,KAC3BC,SAAU,KACVC,MAAO,GACPC,QAAS,GACTC,iBAAkB,KAClBC,WAAY,KACZC,SAAU,KACVC,0BAA2B,KAC3BC,wBAAyB,KACzBC,yBAA0B"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../../../external/preact/dist/preact.js";import{CtpState as e}from"../services/ClickToPayService.js";import{ClickToPayContext as a}from"./ClickToPayContext.js";import{useState as o,useRef as n,useEffect as s,useCallback as i}from"../../../../external/preact/hooks/dist/hooks.js";const r=({isStandaloneComponent:r=!1,clickToPayService:c,amount:d,configuration:l,children:u,setClickToPayRef:p,onSubmit:y,onSetStatus:m,onError:S})=>{const[C]=o(c),[f,h]=o(c?.state||e.NotAvailable),[k,I]=o(!0),[P,v]=o("ready"),w=n({}),b=n(!1);s(()=>{p(w.current),w.current.setStatus=v},[]),s(()=>{C?.subscribeOnStateChange(t=>h(t))},[C]);const g=i(()=>{b.current||(l.onReady?.(),b.current=!0)},[l?.onReady]),E=i(async t=>{await(C?.finishIdentityValidation(t))},[C]),V=i(async()=>await(C?.startIdentityValidation()),[C]),R=i(async t=>await(C?.checkout(t)),[C]),j=i(async t=>await(C?.verifyIfShopperIsEnrolled(t)),[C]),x=i(async()=>{await(C?.logout())},[C]),T=i(t=>{C.updateStoreCookiesConsent(t)},[C]);return t(a.Provider,{value:{status:P,onSubmit:y,onError:S,onSetStatus:m,amount:d,configuration:l,isStoringCookies:C?.storeCookies,isStandaloneComponent:r,isCtpPrimaryPaymentMethod:k,setIsCtpPrimaryPaymentMethod:I,ctpState:f,verifyIfShopperIsEnrolled:j,cards:C?.shopperCards,schemes:C?.schemes,otpMaskedContact:C?.identityValidationData?.maskedShopperContact,otpNetwork:C?.identityValidationData?.selectedNetwork,checkout:R,logoutShopper:x,startIdentityValidation:V,finishIdentityValidation:E,updateStoreCookiesConsent:T,onReady:g}},u)};export{r as default};
1
+ import{createElement as t}from"../../../../external/preact/dist/preact.js";import{CtpState as e}from"../services/ClickToPayService.js";import{ClickToPayContext as a}from"./ClickToPayContext.js";import{useState as o,useRef as s,useEffect as n,useCallback as i}from"../../../../external/preact/hooks/dist/hooks.js";const r=({isStandaloneComponent:r=!1,clickToPayService:c,configuration:d,children:l,setClickToPayRef:p,onSubmit:u,onSetStatus:y,onError:S})=>{const[m]=o(c),[C,f]=o(c?.state||e.NotAvailable),[h,k]=o(!0),[I,P]=o("ready"),v=s({}),w=s(!1);n(()=>{p(v.current),v.current.setStatus=P},[]),n(()=>{m?.subscribeOnStateChange(t=>f(t))},[m]);const b=i(()=>{w.current||(d.onReady?.(),w.current=!0)},[d?.onReady]),g=i(async t=>{await(m?.finishIdentityValidation(t))},[m]),E=i(async()=>await(m?.startIdentityValidation()),[m]),V=i(async t=>await(m?.checkout(t)),[m]),R=i(async t=>await(m?.verifyIfShopperIsEnrolled(t)),[m]),j=i(async()=>{await(m?.logout())},[m]),x=i(t=>{m.updateStoreCookiesConsent(t)},[m]);return t(a.Provider,{value:{status:I,onSubmit:u,onError:S,onSetStatus:y,configuration:d,isStoringCookies:m?.storeCookies,isStandaloneComponent:r,isCtpPrimaryPaymentMethod:h,setIsCtpPrimaryPaymentMethod:k,ctpState:C,verifyIfShopperIsEnrolled:R,cards:m?.shopperCards,schemes:m?.schemes,otpMaskedContact:m?.identityValidationData?.maskedShopperContact,otpNetwork:m?.identityValidationData?.selectedNetwork,checkout:V,logoutShopper:j,startIdentityValidation:E,finishIdentityValidation:g,updateStoreCookiesConsent:x,onReady:b}},l)};export{r as default};
2
2
  //# sourceMappingURL=ClickToPayProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClickToPayProvider.js","sources":["../../../../../../src/components/internal/ClickToPay/context/ClickToPayProvider.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { CtpState } from '../services/ClickToPayService';\nimport { ClickToPayContext } from './ClickToPayContext';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { ClickToPayCheckoutPayload, IClickToPayService, IdentityLookupParams } from '../services/types';\nimport ShopperCard from '../models/ShopperCard';\nimport { ClickToPayProps } from '../types';\nimport AdyenCheckoutError from '../../../../core/Errors/AdyenCheckoutError';\nimport { PaymentAmount } from '../../../../types/global-types';\nimport { UIElementStatus } from '../../UIElement/types';\n\ntype ClickToPayProviderRef = {\n setStatus?(status: UIElementStatus): void;\n};\n\nexport type ClickToPayProviderProps = {\n isStandaloneComponent: boolean;\n clickToPayService: IClickToPayService | null;\n configuration: ClickToPayProps;\n amount: PaymentAmount;\n children: any;\n setClickToPayRef(ref): void;\n onSubmit(payload: ClickToPayCheckoutPayload): void;\n onSetStatus(status: UIElementStatus): void;\n onError(error: AdyenCheckoutError): void;\n};\n\nconst ClickToPayProvider = ({\n isStandaloneComponent = false,\n clickToPayService,\n amount,\n configuration,\n children,\n setClickToPayRef,\n onSubmit,\n onSetStatus,\n onError\n}: ClickToPayProviderProps) => {\n const [ctpService] = useState<IClickToPayService | null>(clickToPayService);\n const [ctpState, setCtpState] = useState<CtpState>(clickToPayService?.state || CtpState.NotAvailable);\n const [isCtpPrimaryPaymentMethod, setIsCtpPrimaryPaymentMethod] = useState<boolean>(true);\n const [status, setStatus] = useState<UIElementStatus>('ready');\n const clickToPayRef = useRef<ClickToPayProviderRef>({});\n const isOnReadyInvoked = useRef<boolean>(false);\n\n useEffect(() => {\n setClickToPayRef(clickToPayRef.current);\n clickToPayRef.current.setStatus = setStatus;\n }, []);\n\n useEffect(() => {\n ctpService?.subscribeOnStateChange(status => setCtpState(status));\n }, [ctpService]);\n\n const onReady = useCallback(() => {\n if (isOnReadyInvoked.current) {\n return;\n }\n configuration.onReady?.();\n isOnReadyInvoked.current = true;\n }, [configuration?.onReady]);\n\n const finishIdentityValidation = useCallback(\n async (otpValue: string) => {\n await ctpService?.finishIdentityValidation(otpValue);\n },\n [ctpService]\n );\n\n const startIdentityValidation = useCallback(async () => {\n const data = await ctpService?.startIdentityValidation();\n return data;\n }, [ctpService]);\n\n const checkout = useCallback(\n async (card: ShopperCard) => {\n return await ctpService?.checkout(card);\n },\n [ctpService]\n );\n\n const verifyIfShopperIsEnrolled = useCallback(\n async (shopperIdentity: IdentityLookupParams) => {\n return await ctpService?.verifyIfShopperIsEnrolled(shopperIdentity);\n },\n [ctpService]\n );\n\n const logoutShopper = useCallback(async () => {\n await ctpService?.logout();\n }, [ctpService]);\n\n const updateStoreCookiesConsent = useCallback(\n (shouldStore: boolean) => {\n ctpService.updateStoreCookiesConsent(shouldStore);\n },\n [ctpService]\n );\n\n return (\n <ClickToPayContext.Provider\n value={{\n status,\n onSubmit,\n onError,\n onSetStatus,\n amount,\n configuration,\n isStoringCookies: ctpService?.storeCookies,\n isStandaloneComponent,\n isCtpPrimaryPaymentMethod,\n setIsCtpPrimaryPaymentMethod,\n ctpState,\n verifyIfShopperIsEnrolled,\n cards: ctpService?.shopperCards,\n schemes: ctpService?.schemes,\n otpMaskedContact: ctpService?.identityValidationData?.maskedShopperContact,\n otpNetwork: ctpService?.identityValidationData?.selectedNetwork,\n checkout,\n logoutShopper,\n startIdentityValidation,\n finishIdentityValidation,\n updateStoreCookiesConsent,\n onReady\n }}\n >\n {children}\n </ClickToPayContext.Provider>\n );\n};\n\nexport default ClickToPayProvider;\n"],"names":["ClickToPayProvider","isStandaloneComponent","clickToPayService","amount","configuration","children","setClickToPayRef","onSubmit","onSetStatus","onError","ctpService","useState","ctpState","setCtpState","state","CtpState","NotAvailable","isCtpPrimaryPaymentMethod","setIsCtpPrimaryPaymentMethod","status","setStatus","clickToPayRef","useRef","isOnReadyInvoked","useEffect","current","subscribeOnStateChange","onReady","useCallback","finishIdentityValidation","async","otpValue","startIdentityValidation","checkout","card","verifyIfShopperIsEnrolled","shopperIdentity","logoutShopper","logout","updateStoreCookiesConsent","shouldStore","h","ClickToPayContext","Provider","value","isStoringCookies","storeCookies","cards","shopperCards","schemes","otpMaskedContact","identityValidationData","maskedShopperContact","otpNetwork","selectedNetwork"],"mappings":"yTA2BA,MAAMA,EAAqB,EACvBC,yBAAwB,EACxBC,oBACAC,SACAC,gBACAC,WACAC,mBACAC,WACAC,cACAC,cAEA,MAAOC,GAAcC,EAAoCT,IAClDU,EAAUC,GAAeF,EAAmBT,GAAmBY,OAASC,EAASC,eACjFC,EAA2BC,GAAgCP,GAAkB,IAC7EQ,EAAQC,GAAaT,EAA0B,SAChDU,EAAgBC,EAA8B,IAC9CC,EAAmBD,GAAgB,GAEzCE,EAAU,KACNlB,EAAiBe,EAAcI,SAC/BJ,EAAcI,QAAQL,UAAYA,GACnC,IAEHI,EAAU,KACNd,GAAYgB,uBAAuBP,GAAUN,EAAYM,KAC1D,CAACT,IAEJ,MAAMiB,EAAUC,EAAY,KACpBL,EAAiBE,UAGrBrB,EAAcuB,YACdJ,EAAiBE,SAAU,IAC5B,CAACrB,GAAeuB,UAEbE,EAA2BD,EAC7BE,MAAOC,UACGrB,GAAYmB,yBAAyBE,KAE/C,CAACrB,IAGCsB,EAA0BJ,EAAYE,eACrBpB,GAAYsB,2BAEhC,CAACtB,IAEEuB,EAAWL,EACbE,MAAOI,SACUxB,GAAYuB,SAASC,IAEtC,CAACxB,IAGCyB,EAA4BP,EAC9BE,MAAOM,SACU1B,GAAYyB,0BAA0BC,IAEvD,CAAC1B,IAGC2B,EAAgBT,EAAYE,gBACxBpB,GAAY4B,WACnB,CAAC5B,IAEE6B,EAA4BX,EAC7BY,IACG9B,EAAW6B,0BAA0BC,IAEzC,CAAC9B,IAGL,OACI+B,EAACC,EAAkBC,SAAQ,CACvBC,MAAO,CACHzB,SACAZ,WACAE,UACAD,cACAL,SACAC,gBACAyC,iBAAkBnC,GAAYoC,aAC9B7C,wBACAgB,4BACAC,+BACAN,WACAuB,4BACAY,MAAOrC,GAAYsC,aACnBC,QAASvC,GAAYuC,QACrBC,iBAAkBxC,GAAYyC,wBAAwBC,qBACtDC,WAAY3C,GAAYyC,wBAAwBG,gBAChDrB,WACAI,gBACAL,0BACAH,2BACAU,4BACAZ,YAGHtB"}
1
+ {"version":3,"file":"ClickToPayProvider.js","sources":["../../../../../../src/components/internal/ClickToPay/context/ClickToPayProvider.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { CtpState } from '../services/ClickToPayService';\nimport { ClickToPayContext } from './ClickToPayContext';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { ClickToPayCheckoutPayload, IClickToPayService, IdentityLookupParams } from '../services/types';\nimport ShopperCard from '../models/ShopperCard';\nimport { ClickToPayProps } from '../types';\nimport AdyenCheckoutError from '../../../../core/Errors/AdyenCheckoutError';\nimport { UIElementStatus } from '../../UIElement/types';\n\ntype ClickToPayProviderRef = {\n setStatus?(status: UIElementStatus): void;\n};\n\nexport type ClickToPayProviderProps = {\n isStandaloneComponent: boolean;\n clickToPayService: IClickToPayService | null;\n configuration: ClickToPayProps;\n children: any;\n setClickToPayRef(ref): void;\n onSubmit(payload: ClickToPayCheckoutPayload): void;\n onSetStatus(status: UIElementStatus): void;\n onError(error: AdyenCheckoutError): void;\n};\n\nconst ClickToPayProvider = ({\n isStandaloneComponent = false,\n clickToPayService,\n configuration,\n children,\n setClickToPayRef,\n onSubmit,\n onSetStatus,\n onError\n}: ClickToPayProviderProps) => {\n const [ctpService] = useState<IClickToPayService | null>(clickToPayService);\n const [ctpState, setCtpState] = useState<CtpState>(clickToPayService?.state || CtpState.NotAvailable);\n const [isCtpPrimaryPaymentMethod, setIsCtpPrimaryPaymentMethod] = useState<boolean>(true);\n const [status, setStatus] = useState<UIElementStatus>('ready');\n const clickToPayRef = useRef<ClickToPayProviderRef>({});\n const isOnReadyInvoked = useRef<boolean>(false);\n\n useEffect(() => {\n setClickToPayRef(clickToPayRef.current);\n clickToPayRef.current.setStatus = setStatus;\n }, []);\n\n useEffect(() => {\n ctpService?.subscribeOnStateChange(status => setCtpState(status));\n }, [ctpService]);\n\n const onReady = useCallback(() => {\n if (isOnReadyInvoked.current) {\n return;\n }\n configuration.onReady?.();\n isOnReadyInvoked.current = true;\n }, [configuration?.onReady]);\n\n const finishIdentityValidation = useCallback(\n async (otpValue: string) => {\n await ctpService?.finishIdentityValidation(otpValue);\n },\n [ctpService]\n );\n\n const startIdentityValidation = useCallback(async () => {\n const data = await ctpService?.startIdentityValidation();\n return data;\n }, [ctpService]);\n\n const checkout = useCallback(\n async (card: ShopperCard) => {\n return await ctpService?.checkout(card);\n },\n [ctpService]\n );\n\n const verifyIfShopperIsEnrolled = useCallback(\n async (shopperIdentity: IdentityLookupParams) => {\n return await ctpService?.verifyIfShopperIsEnrolled(shopperIdentity);\n },\n [ctpService]\n );\n\n const logoutShopper = useCallback(async () => {\n await ctpService?.logout();\n }, [ctpService]);\n\n const updateStoreCookiesConsent = useCallback(\n (shouldStore: boolean) => {\n ctpService.updateStoreCookiesConsent(shouldStore);\n },\n [ctpService]\n );\n\n return (\n <ClickToPayContext.Provider\n value={{\n status,\n onSubmit,\n onError,\n onSetStatus,\n configuration,\n isStoringCookies: ctpService?.storeCookies,\n isStandaloneComponent,\n isCtpPrimaryPaymentMethod,\n setIsCtpPrimaryPaymentMethod,\n ctpState,\n verifyIfShopperIsEnrolled,\n cards: ctpService?.shopperCards,\n schemes: ctpService?.schemes,\n otpMaskedContact: ctpService?.identityValidationData?.maskedShopperContact,\n otpNetwork: ctpService?.identityValidationData?.selectedNetwork,\n checkout,\n logoutShopper,\n startIdentityValidation,\n finishIdentityValidation,\n updateStoreCookiesConsent,\n onReady\n }}\n >\n {children}\n </ClickToPayContext.Provider>\n );\n};\n\nexport default ClickToPayProvider;\n"],"names":["ClickToPayProvider","isStandaloneComponent","clickToPayService","configuration","children","setClickToPayRef","onSubmit","onSetStatus","onError","ctpService","useState","ctpState","setCtpState","state","CtpState","NotAvailable","isCtpPrimaryPaymentMethod","setIsCtpPrimaryPaymentMethod","status","setStatus","clickToPayRef","useRef","isOnReadyInvoked","useEffect","current","subscribeOnStateChange","onReady","useCallback","finishIdentityValidation","async","otpValue","startIdentityValidation","checkout","card","verifyIfShopperIsEnrolled","shopperIdentity","logoutShopper","logout","updateStoreCookiesConsent","shouldStore","h","ClickToPayContext","Provider","value","isStoringCookies","storeCookies","cards","shopperCards","schemes","otpMaskedContact","identityValidationData","maskedShopperContact","otpNetwork","selectedNetwork"],"mappings":"yTAyBA,MAAMA,EAAqB,EACvBC,yBAAwB,EACxBC,oBACAC,gBACAC,WACAC,mBACAC,WACAC,cACAC,cAEA,MAAOC,GAAcC,EAAoCR,IAClDS,EAAUC,GAAeF,EAAmBR,GAAmBW,OAASC,EAASC,eACjFC,EAA2BC,GAAgCP,GAAkB,IAC7EQ,EAAQC,GAAaT,EAA0B,SAChDU,EAAgBC,EAA8B,IAC9CC,EAAmBD,GAAgB,GAEzCE,EAAU,KACNlB,EAAiBe,EAAcI,SAC/BJ,EAAcI,QAAQL,UAAYA,GACnC,IAEHI,EAAU,KACNd,GAAYgB,uBAAuBP,GAAUN,EAAYM,KAC1D,CAACT,IAEJ,MAAMiB,EAAUC,EAAY,KACpBL,EAAiBE,UAGrBrB,EAAcuB,YACdJ,EAAiBE,SAAU,IAC5B,CAACrB,GAAeuB,UAEbE,EAA2BD,EAC7BE,MAAOC,UACGrB,GAAYmB,yBAAyBE,KAE/C,CAACrB,IAGCsB,EAA0BJ,EAAYE,eACrBpB,GAAYsB,2BAEhC,CAACtB,IAEEuB,EAAWL,EACbE,MAAOI,SACUxB,GAAYuB,SAASC,IAEtC,CAACxB,IAGCyB,EAA4BP,EAC9BE,MAAOM,SACU1B,GAAYyB,0BAA0BC,IAEvD,CAAC1B,IAGC2B,EAAgBT,EAAYE,gBACxBpB,GAAY4B,WACnB,CAAC5B,IAEE6B,EAA4BX,EAC7BY,IACG9B,EAAW6B,0BAA0BC,IAEzC,CAAC9B,IAGL,OACI+B,EAACC,EAAkBC,SAAQ,CACvBC,MAAO,CACHzB,SACAZ,WACAE,UACAD,cACAJ,gBACAyC,iBAAkBnC,GAAYoC,aAC9B5C,wBACAe,4BACAC,+BACAN,WACAuB,4BACAY,MAAOrC,GAAYsC,aACnBC,QAASvC,GAAYuC,QACrBC,iBAAkBxC,GAAYyC,wBAAwBC,qBACtDC,WAAY3C,GAAYyC,wBAAwBG,gBAChDrB,WACAI,gBACAL,0BACAH,2BACAU,4BACAZ,YAGHtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShopperCard.js","sources":["../../../../../../src/components/internal/ClickToPay/models/ShopperCard.ts"],"sourcesContent":["import { DigitalCardStatus, SrcCard } from '../services/sdks/types';\nimport { SchemeNames } from '../services/sdks/utils';\nimport { ClickToPayScheme } from '../types';\n\nclass ShopperCard {\n public dateOfCardLastUsed?: string;\n public dateOfCardCreated: string;\n public panLastFour: string;\n public srcDigitalCardId: string;\n public scheme: ClickToPayScheme;\n public artUri: string;\n public srcCorrelationId: string;\n public tokenId?: string;\n public isExpired: boolean;\n\n private readonly panExpirationMonth: string;\n private readonly panExpirationYear: string;\n private readonly descriptorName?: string;\n private readonly status?: DigitalCardStatus = null;\n\n constructor(maskedCard: SrcCard, scheme: ClickToPayScheme, srcCorrelationId: string) {\n this.dateOfCardLastUsed = maskedCard.dateOfCardLastUsed;\n this.dateOfCardCreated = maskedCard.dateOfCardCreated;\n this.panLastFour = maskedCard.panLastFour;\n this.srcDigitalCardId = maskedCard.srcDigitalCardId;\n this.descriptorName = maskedCard.digitalCardData.descriptorName;\n this.tokenId = maskedCard.tokenId;\n this.scheme = scheme;\n this.artUri = maskedCard.digitalCardData.artUri;\n this.srcCorrelationId = srcCorrelationId;\n this.panExpirationMonth = maskedCard.panExpirationMonth;\n this.panExpirationYear = maskedCard.panExpirationYear;\n this.status = maskedCard.digitalCardData.status;\n\n this.isExpired = this.confirmCardIsExpired();\n }\n\n get title() {\n return this.scheme === 'visa' ? SchemeNames[this.scheme] : this.descriptorName || SchemeNames[this.scheme];\n }\n\n get isDcfPopupEmbedded(): boolean {\n return this.scheme === 'mc';\n }\n\n private confirmCardIsExpired(): boolean {\n if (!['ACTIVE', 'PENDING'].includes(this.status)) return true;\n\n if (!this.panExpirationYear && !this.panExpirationMonth) return false;\n\n const [currentMonth, currentYear] = [new Date().getMonth() + 1, new Date().getFullYear()];\n if (Number(this.panExpirationYear) > currentYear) return false;\n if (Number(this.panExpirationYear) === currentYear && Number(this.panExpirationMonth) >= currentMonth) return false;\n\n return true;\n }\n}\n\nexport default ShopperCard;\n"],"names":["ShopperCard","title","this","scheme","SchemeNames","descriptorName","isDcfPopupEmbedded","confirmCardIsExpired","includes","status","panExpirationYear","panExpirationMonth","currentMonth","currentYear","Date","getMonth","getFullYear","Number","constructor","maskedCard","srcCorrelationId","_define_property","dateOfCardLastUsed","dateOfCardCreated","panLastFour","srcDigitalCardId","artUri","tokenId","isExpired","digitalCardData"],"mappings":"gLAIA,MAAMA,EAiCF,SAAIC,GACA,MAAuB,SAAhBC,KAAKC,OAAoBC,EAAYF,KAAKC,QAAUD,KAAKG,gBAAkBD,EAAYF,KAAKC,OACvG,CAEA,sBAAIG,GACA,MAAuB,OAAhBJ,KAAKC,MAChB,CAEQI,oBAAAA,GACJ,IAAK,CAAC,SAAU,WAAWC,SAASN,KAAKO,QAAS,OAAO,EAEzD,IAAKP,KAAKQ,oBAAsBR,KAAKS,mBAAoB,OAAO,EAEhE,MAAOC,EAAcC,GAAe,EAAC,IAAIC,MAAOC,WAAa,GAAG,IAAID,MAAOE,eAC3E,QAAIC,OAAOf,KAAKQ,mBAAqBG,MACjCI,OAAOf,KAAKQ,qBAAuBG,GAAeI,OAAOf,KAAKS,qBAAuBC,EAG7F,CAnCA,WAAAM,CAAYC,EAAqBhB,EAA0BiB,GAf3DC,EAAAnB,KAAOoB,0BAAP,GACAD,EAAAnB,KAAOqB,yBAAP,GACAF,EAAAnB,KAAOsB,mBAAP,GACAH,EAAAnB,KAAOuB,wBAAP,GACAJ,EAAAnB,KAAOC,cAAP,GACAkB,EAAAnB,KAAOwB,cAAP,GACAL,EAAAnB,KAAOkB,wBAAP,GACAC,EAAAnB,KAAOyB,eAAP,GACAN,EAAAnB,KAAO0B,iBAAP,GAEAP,EAAAnB,KAAiBS,0BAAjB,GACAU,EAAAnB,KAAiBQ,yBAAjB,GACAW,EAAAnB,KAAiBG,sBAAjB,GACAgB,EAAAnB,KAAiBO,SAA6B,MAG1CP,KAAKoB,mBAAqBH,EAAWG,mBACrCpB,KAAKqB,kBAAoBJ,EAAWI,kBACpCrB,KAAKsB,YAAcL,EAAWK,YAC9BtB,KAAKuB,iBAAmBN,EAAWM,iBACnCvB,KAAKG,eAAiBc,EAAWU,gBAAgBxB,eACjDH,KAAKyB,QAAUR,EAAWQ,QAC1BzB,KAAKC,OAASA,EACdD,KAAKwB,OAASP,EAAWU,gBAAgBH,OACzCxB,KAAKkB,iBAAmBA,EACxBlB,KAAKS,mBAAqBQ,EAAWR,mBACrCT,KAAKQ,kBAAoBS,EAAWT,kBACpCR,KAAKO,OAASU,EAAWU,gBAAgBpB,OAEzCP,KAAK0B,UAAY1B,KAAKK,sBAC1B"}
1
+ {"version":3,"file":"ShopperCard.js","sources":["../../../../../../src/components/internal/ClickToPay/models/ShopperCard.ts"],"sourcesContent":["import { DigitalCardStatus, SrcCard } from '../services/sdks/types';\nimport { SchemeNames } from '../services/sdks/utils';\nimport { ClickToPayScheme } from '../types';\n\nclass ShopperCard {\n public dateOfCardLastUsed?: string;\n public dateOfCardCreated: string;\n public panLastFour: string;\n public srcDigitalCardId: string;\n public scheme: ClickToPayScheme;\n public artUri: string;\n public srcCorrelationId: string;\n public tokenId?: string;\n public isExpired: boolean;\n\n private readonly panExpirationMonth: string;\n private readonly panExpirationYear: string;\n private readonly descriptorName?: string;\n private readonly status?: DigitalCardStatus = null;\n\n constructor(maskedCard: SrcCard, scheme: ClickToPayScheme, srcCorrelationId: string) {\n this.dateOfCardLastUsed = maskedCard.dateOfCardLastUsed;\n this.dateOfCardCreated = maskedCard.dateOfCardCreated;\n this.panLastFour = maskedCard.panLastFour;\n this.srcDigitalCardId = maskedCard.srcDigitalCardId;\n this.descriptorName = maskedCard.digitalCardData.descriptorName;\n this.tokenId = maskedCard.tokenId;\n this.scheme = scheme;\n this.artUri = maskedCard.digitalCardData.artUri;\n this.srcCorrelationId = srcCorrelationId;\n this.panExpirationMonth = maskedCard.panExpirationMonth;\n this.panExpirationYear = maskedCard.panExpirationYear;\n this.status = maskedCard.digitalCardData.status;\n\n this.isExpired = this.confirmCardIsExpired();\n }\n\n get title() {\n return this.scheme === 'visa' ? SchemeNames[this.scheme] : this.descriptorName || SchemeNames[this.scheme];\n }\n\n get isDcfPopupEmbedded(): boolean {\n return this.scheme === 'mc';\n }\n\n private confirmCardIsExpired(): boolean {\n if (!['ACTIVE', 'PENDING'].includes(this.status)) return true;\n\n if (!this.panExpirationYear && !this.panExpirationMonth) return false;\n\n const [currentMonth, currentYear] = [new Date().getMonth() + 1, new Date().getFullYear()];\n if (Number(this.panExpirationYear) > currentYear) return false;\n if (Number(this.panExpirationYear) === currentYear && Number(this.panExpirationMonth) >= currentMonth) return false;\n\n return true;\n }\n}\n\nexport default ShopperCard;\n"],"names":["ShopperCard","title","this","scheme","SchemeNames","descriptorName","isDcfPopupEmbedded","confirmCardIsExpired","includes","status","panExpirationYear","panExpirationMonth","currentMonth","currentYear","Date","getMonth","getFullYear","Number","constructor","maskedCard","srcCorrelationId","_define_property","dateOfCardLastUsed","dateOfCardCreated","panLastFour","srcDigitalCardId","artUri","tokenId","isExpired","digitalCardData"],"mappings":"gLAIA,MAAMA,EAiCF,SAAIC,GACA,MAAuB,SAAhBC,KAAKC,OAAoBC,EAAYF,KAAKC,QAAUD,KAAKG,gBAAkBD,EAAYF,KAAKC,OACvG,CAEA,sBAAIG,GACA,MAAuB,OAAhBJ,KAAKC,MAChB,CAEQI,oBAAAA,GACJ,IAAK,CAAC,SAAU,WAAWC,SAASN,KAAKO,QAAS,OAAO,EAEzD,IAAKP,KAAKQ,oBAAsBR,KAAKS,mBAAoB,OAAO,EAEhE,MAAOC,EAAcC,GAAe,EAAC,IAAIC,MAAOC,WAAa,GAAG,IAAID,MAAOE,eAC3E,QAAIC,OAAOf,KAAKQ,mBAAqBG,MACjCI,OAAOf,KAAKQ,qBAAuBG,GAAeI,OAAOf,KAAKS,qBAAuBC,EAG7F,CAnCA,WAAAM,CAAYC,EAAqBhB,EAA0BiB,GAf3DC,EAAAnB,KAAOoB,6BACPD,EAAAnB,KAAOqB,4BACPF,EAAAnB,KAAOsB,sBACPH,EAAAnB,KAAOuB,2BACPJ,EAAAnB,KAAOC,iBACPkB,EAAAnB,KAAOwB,iBACPL,EAAAnB,KAAOkB,2BACPC,EAAAnB,KAAOyB,kBACPN,EAAAnB,KAAO0B,oBAEPP,EAAAnB,KAAiBS,6BACjBU,EAAAnB,KAAiBQ,4BACjBW,EAAAnB,KAAiBG,yBACjBgB,EAAAnB,KAAiBO,SAA6B,MAG1CP,KAAKoB,mBAAqBH,EAAWG,mBACrCpB,KAAKqB,kBAAoBJ,EAAWI,kBACpCrB,KAAKsB,YAAcL,EAAWK,YAC9BtB,KAAKuB,iBAAmBN,EAAWM,iBACnCvB,KAAKG,eAAiBc,EAAWU,gBAAgBxB,eACjDH,KAAKyB,QAAUR,EAAWQ,QAC1BzB,KAAKC,OAASA,EACdD,KAAKwB,OAASP,EAAWU,gBAAgBH,OACzCxB,KAAKkB,iBAAmBA,EACxBlB,KAAKS,mBAAqBQ,EAAWR,mBACrCT,KAAKQ,kBAAoBS,EAAWT,kBACpCR,KAAKO,OAASU,EAAWU,gBAAgBpB,OAEzCP,KAAK0B,UAAY1B,KAAKK,sBAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClickToPayService.js","sources":["../../../../../../src/components/internal/ClickToPay/services/ClickToPayService.ts"],"sourcesContent":["import { ISrcInitiator } from './sdks/AbstractSrcInitiator';\nimport {\n CallbackStateSubscriber,\n IClickToPayService,\n IdentityLookupParams,\n ClickToPayCheckoutPayload,\n SrcProfileWithScheme,\n SchemesConfiguration,\n IdentityValidationData\n} from './types';\nimport { ISrcSdkLoader } from './sdks/SrcSdkLoader';\nimport { createCheckoutPayloadBasedOnScheme, createShopperCardsList, CTP_IFRAME_NAME } from './utils';\nimport { SrciIdentityLookupResponse, SrciIsRecognizedResponse, SrcProfile } from './sdks/types';\nimport SrciError from './sdks/SrciError';\nimport { SchemeNames } from './sdks/utils';\nimport ShopperCard from '../models/ShopperCard';\nimport uuidv4 from '../../../../utils/uuid';\nimport AdyenCheckoutError from '../../../../core/Errors/AdyenCheckoutError';\nimport { isFulfilled, isRejected } from '../../../../utils/promise-util';\nimport TimeoutError from '../errors/TimeoutError';\nimport { executeWithTimeout } from './execute-with-timeout';\nimport type { IAnalytics } from '../../../../core/Analytics/Analytics';\n\nexport enum CtpState {\n Idle = 'Idle',\n Loading = 'Loading',\n ShopperIdentified = 'ShopperIdentified',\n OneTimePassword = 'OneTimePassword',\n Ready = 'Ready',\n Login = 'Login',\n NotAvailable = 'NotAvailable'\n}\n\nclass ClickToPayService implements IClickToPayService {\n private readonly sdkLoader: ISrcSdkLoader;\n private readonly schemesConfig: SchemesConfiguration;\n private readonly shopperIdentity?: IdentityLookupParams;\n private readonly environment: string;\n private readonly analytics: IAnalytics;\n\n private readonly onTimeout?: (error: TimeoutError) => void;\n\n /**\n * Mandatory unique ID passed to all the networks (Click to Pay systems), used to track user journey\n */\n private readonly srciTransactionId: string = uuidv4();\n\n private sdks: ISrcInitiator[];\n private validationSchemeSdk: ISrcInitiator = null;\n private stateSubscriber: CallbackStateSubscriber;\n\n public state: CtpState = CtpState.Idle;\n public shopperCards: ShopperCard[] = null;\n public identityValidationData: IdentityValidationData = null;\n\n /**\n * Indicates if the shopper opted for saving cookies during the transaction\n */\n public storeCookies = false;\n\n constructor(\n schemesConfig: SchemesConfiguration,\n sdkLoader: ISrcSdkLoader,\n environment: string,\n analytics: IAnalytics,\n shopperIdentity?: IdentityLookupParams,\n onTimeout?: (error: TimeoutError) => void\n ) {\n this.sdkLoader = sdkLoader;\n this.schemesConfig = schemesConfig;\n this.shopperIdentity = shopperIdentity;\n this.environment = environment;\n this.onTimeout = onTimeout;\n this.analytics = analytics;\n }\n\n public get shopperAccountFound(): boolean {\n return [CtpState.Ready, CtpState.ShopperIdentified].includes(this.state);\n }\n\n public get schemes(): string[] {\n return this.sdkLoader.schemes;\n }\n\n public updateStoreCookiesConsent(shouldStore: boolean) {\n this.storeCookies = shouldStore;\n }\n\n public async initialize(): Promise<void> {\n this.setState(CtpState.Loading);\n\n try {\n this.sdks = await this.sdkLoader.load(this.environment, this.analytics);\n await this.initiateSdks();\n\n const { recognized = false, idTokens = null } = await this.verifyIfShopperIsRecognized();\n\n if (recognized) {\n await this.getShopperProfile(idTokens);\n this.setState(CtpState.Ready);\n return;\n }\n\n if (!this.shopperIdentity) {\n this.setState(CtpState.NotAvailable);\n return;\n }\n\n const { isEnrolled } = await this.verifyIfShopperIsEnrolled(this.shopperIdentity);\n if (isEnrolled) {\n this.setState(CtpState.ShopperIdentified);\n return;\n }\n\n this.setState(CtpState.NotAvailable);\n } catch (error) {\n if ((error instanceof SrciError && error?.reason === 'REQUEST_TIMEOUT') || error instanceof TimeoutError) {\n this.handleTimeout(error);\n } else if (error instanceof SrciError) {\n console.warn(`Error at ClickToPayService # init: ${error.toString()}`);\n } else {\n console.warn(error);\n }\n\n this.setState(CtpState.NotAvailable);\n }\n }\n\n /**\n * Set the callback for notifying when the CtPState changes\n */\n public subscribeOnStateChange(callback: CallbackStateSubscriber): void {\n this.stateSubscriber = callback;\n }\n\n /**\n * Initiates Consumer Identity validation with one Click to Pay System.\n * The Click to Pay System sends a one-time-password (OTP) to the registered email address or mobile number.\n **/\n public async startIdentityValidation(): Promise<void> {\n if (!this.validationSchemeSdk) {\n throw Error('startIdentityValidation: No ValidationSDK set for the validation process');\n }\n try {\n const { maskedValidationChannel } = await this.validationSchemeSdk.initiateIdentityValidation();\n\n this.identityValidationData = {\n maskedShopperContact: maskedValidationChannel.replace(/\\*/g, '•'),\n selectedNetwork: SchemeNames[this.validationSchemeSdk.schemeName]\n };\n\n this.setState(CtpState.OneTimePassword);\n } catch (error: unknown) {\n // If there is an error when 'startIdentityValidation' (Ex: account is blocked), we reset the scheme chosen to perform this step\n this.validationSchemeSdk = null;\n throw error;\n }\n }\n\n /**\n * Completes the validation of the Shopper by evaluating the supplied OTP.\n */\n public async finishIdentityValidation(otpCode: string): Promise<void> {\n if (!this.validationSchemeSdk) {\n throw Error('finishIdentityValidation: No ValidationSDK set for the validation process');\n }\n\n const validationToken = await this.validationSchemeSdk.completeIdentityValidation(otpCode);\n await this.getShopperProfile([validationToken.idToken]);\n this.setState(CtpState.Ready);\n this.validationSchemeSdk = null;\n }\n\n /**\n * This method performs checkout using the selected card\n */\n public async checkout(card: ShopperCard): Promise<ClickToPayCheckoutPayload> {\n if (!card) {\n throw Error('ClickToPayService # checkout: Missing card data');\n }\n\n const checkoutSdk = this.sdks.find(sdk => sdk.schemeName === card.scheme);\n\n const checkoutResponse = await checkoutSdk.checkout({\n srcDigitalCardId: card.srcDigitalCardId,\n srcCorrelationId: card.srcCorrelationId,\n ...(card.isDcfPopupEmbedded && { windowRef: window.frames[CTP_IFRAME_NAME] }),\n ...(this.storeCookies && { complianceSettings: { complianceResources: [{ complianceType: 'REMEMBER_ME', uri: '' }] } })\n });\n\n if (checkoutResponse.dcfActionCode !== 'COMPLETE') {\n throw new AdyenCheckoutError(\n 'ERROR',\n `Checkout through Scheme DCF did not complete. DCF Action code received: ${checkoutResponse.dcfActionCode}`\n );\n }\n\n return createCheckoutPayloadBasedOnScheme(card, checkoutResponse, this.environment);\n }\n\n /**\n * Call the 'unbindAppInstance()' method of each SRC SDK in order to remove the shopper cookies.\n * Besides, it deletes all information stored about the shopper.\n */\n public async logout(): Promise<void> {\n if (!this.sdks) {\n throw new AdyenCheckoutError('ERROR', 'ClickToPayService is not initialized');\n }\n\n try {\n const logoutPromises = this.sdks.map(sdk => sdk.unbindAppInstance());\n await Promise.all(logoutPromises);\n } catch (error) {\n if (error instanceof SrciError) console.warn(`Error at ClickToPayService # logout: ${error.toString()}`);\n else console.warn(error);\n }\n\n this.shopperCards = null;\n this.identityValidationData = null;\n this.validationSchemeSdk = null;\n\n this.setState(CtpState.Login);\n }\n\n /**\n * Call the 'identityLookup()' method of each SRC SDK in order to verify if the shopper has an account.\n *\n * Based on the responses from the Click to Pay Systems, we should do the validation process using the SDK that\n * that responds faster with 'consumerPresent=true'\n */\n public verifyIfShopperIsEnrolled(shopperIdentity: IdentityLookupParams): Promise<{ isEnrolled: boolean }> {\n const { shopperEmail } = shopperIdentity;\n\n return new Promise((resolve, reject) => {\n const lookupPromises = this.sdks.map(sdk => {\n const identityLookupPromise = executeWithTimeout<SrciIdentityLookupResponse>(\n () => sdk.identityLookup({ identityValue: shopperEmail, type: 'email' }),\n 5000,\n new TimeoutError({\n source: 'identityLookup',\n scheme: sdk.schemeName,\n isTimeoutTriggeredBySchemeSdk: false\n })\n );\n\n return identityLookupPromise\n .then(response => {\n if (response.consumerPresent && !this.validationSchemeSdk) {\n this.setSdkForPerformingShopperIdentityValidation(sdk);\n resolve({ isEnrolled: true });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n void Promise.allSettled(lookupPromises).then(() => {\n resolve({ isEnrolled: false });\n });\n });\n }\n\n private setState(state: CtpState): void {\n this.state = state;\n this.stateSubscriber?.(this.state);\n }\n\n private setSdkForPerformingShopperIdentityValidation(sdk: ISrcInitiator) {\n this.validationSchemeSdk = sdk;\n }\n\n private handleTimeout(error: SrciError | TimeoutError) {\n // If the timeout error was thrown directly by the scheme SDK, we convert it to TimeoutError\n // If the timeout error was thrown by our internal timeout mechanism, we don't do anything\n const timeoutError =\n error instanceof SrciError\n ? new TimeoutError({ source: error.source, scheme: error.scheme, isTimeoutTriggeredBySchemeSdk: true })\n : error;\n\n if (timeoutError.scheme === 'visa') {\n timeoutError.setCorrelationId(window.VISA_SDK?.correlationId);\n\n // Visa srciDpaId must be passed when there is no correlation ID available\n if (window.VISA_SDK?.correlationId) window.VISA_SDK?.buildClientProfile?.();\n else window.VISA_SDK?.buildClientProfile?.(this.schemesConfig.visa.srciDpaId);\n }\n this.onTimeout?.(timeoutError);\n }\n\n /**\n * Based on the given 'idToken', this method goes through each SRCi SDK and fetches the shopper\n * profile with his cards.\n */\n private async getShopperProfile(idTokens: string[]): Promise<void> {\n return new Promise((resolve, reject) => {\n const srcProfilesPromises = this.sdks.map(sdk => sdk.getSrcProfile(idTokens));\n\n void Promise.allSettled(srcProfilesPromises).then(srcProfilesResponses => {\n if (srcProfilesResponses.every(isRejected)) {\n reject(srcProfilesResponses[0].reason);\n }\n\n const createProfileWithScheme = (promiseResult: PromiseSettledResult<SrcProfile>, index) =>\n isFulfilled(promiseResult) && { ...promiseResult.value, scheme: this.sdks[index].schemeName };\n\n const profilesWithScheme: SrcProfileWithScheme[] = srcProfilesResponses.map(createProfileWithScheme).filter(profile => !!profile);\n\n this.shopperCards = createShopperCardsList(profilesWithScheme);\n resolve();\n });\n });\n }\n\n /**\n * Calls the 'isRecognized()' method of each SRC SDK in order to verify if the shopper is\n * recognized on the device. The shopper is recognized if he/she has the Cookies stored\n * on their browser\n */\n private verifyIfShopperIsRecognized(): Promise<SrciIsRecognizedResponse> {\n return new Promise((resolve, reject) => {\n const promises = this.sdks.map(sdk => {\n const isRecognizedPromise = executeWithTimeout<SrciIsRecognizedResponse>(\n () => sdk.isRecognized(),\n 5000,\n new TimeoutError({\n source: 'isRecognized',\n scheme: sdk.schemeName,\n isTimeoutTriggeredBySchemeSdk: false\n })\n );\n\n return isRecognizedPromise\n .then(response => {\n if (response.recognized) resolve(response);\n })\n .catch(error => {\n reject(error);\n });\n });\n\n // If the 'resolve' didn't happen until this point, then shopper is not recognized\n void Promise.allSettled(promises).then(() => {\n resolve({ recognized: false });\n });\n });\n }\n\n private initiateSdks(): Promise<void[]> {\n const initPromises = this.sdks.map(sdk => {\n const cfg = this.schemesConfig[sdk.schemeName];\n\n return executeWithTimeout<void>(\n () => sdk.init(cfg, this.srciTransactionId),\n 5000,\n new TimeoutError({\n source: 'init',\n scheme: sdk.schemeName,\n isTimeoutTriggeredBySchemeSdk: false\n })\n );\n });\n\n return Promise.all(initPromises);\n }\n}\n\nexport default ClickToPayService;\n"],"names":["CtpState","ClickToPayService","shopperAccountFound","includes","this","state","schemes","sdkLoader","updateStoreCookiesConsent","shouldStore","storeCookies","initialize","setState","sdks","load","environment","analytics","initiateSdks","recognized","idTokens","verifyIfShopperIsRecognized","getShopperProfile","shopperIdentity","isEnrolled","verifyIfShopperIsEnrolled","error","SrciError","reason","TimeoutError","handleTimeout","console","warn","toString","subscribeOnStateChange","callback","stateSubscriber","startIdentityValidation","validationSchemeSdk","Error","maskedValidationChannel","initiateIdentityValidation","identityValidationData","maskedShopperContact","replace","selectedNetwork","SchemeNames","schemeName","finishIdentityValidation","otpCode","validationToken","completeIdentityValidation","idToken","checkout","card","checkoutSdk","find","sdk","scheme","checkoutResponse","srcDigitalCardId","srcCorrelationId","isDcfPopupEmbedded","windowRef","window","frames","CTP_IFRAME_NAME","complianceSettings","complianceResources","complianceType","uri","dcfActionCode","AdyenCheckoutError","createCheckoutPayloadBasedOnScheme","logout","logoutPromises","map","unbindAppInstance","Promise","all","shopperCards","shopperEmail","resolve","reject","lookupPromises","executeWithTimeout","identityLookup","identityValue","type","source","isTimeoutTriggeredBySchemeSdk","then","response","consumerPresent","setSdkForPerformingShopperIdentityValidation","catch","allSettled","timeoutError","setCorrelationId","VISA_SDK","correlationId","buildClientProfile","schemesConfig","visa","srciDpaId","onTimeout","srcProfilesPromises","getSrcProfile","srcProfilesResponses","every","isRejected","profilesWithScheme","promiseResult","index","isFulfilled","value","filter","profile","createShopperCardsList","promises","isRecognized","initPromises","cfg","init","srciTransactionId","constructor","_define_property","uuidv4"],"mappings":"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"}
1
+ {"version":3,"file":"ClickToPayService.js","sources":["../../../../../../src/components/internal/ClickToPay/services/ClickToPayService.ts"],"sourcesContent":["import { ISrcInitiator } from './sdks/AbstractSrcInitiator';\nimport {\n CallbackStateSubscriber,\n IClickToPayService,\n IdentityLookupParams,\n ClickToPayCheckoutPayload,\n SrcProfileWithScheme,\n SchemesConfiguration,\n IdentityValidationData\n} from './types';\nimport { ISrcSdkLoader } from './sdks/SrcSdkLoader';\nimport { createCheckoutPayloadBasedOnScheme, createShopperCardsList, CTP_IFRAME_NAME } from './utils';\nimport { SrciIdentityLookupResponse, SrciIsRecognizedResponse, SrcProfile } from './sdks/types';\nimport SrciError from './sdks/SrciError';\nimport { SchemeNames } from './sdks/utils';\nimport ShopperCard from '../models/ShopperCard';\nimport uuidv4 from '../../../../utils/uuid';\nimport AdyenCheckoutError from '../../../../core/Errors/AdyenCheckoutError';\nimport { isFulfilled, isRejected } from '../../../../utils/promise-util';\nimport TimeoutError from '../errors/TimeoutError';\nimport { executeWithTimeout } from './execute-with-timeout';\nimport type { IAnalytics } from '../../../../core/Analytics/Analytics';\n\nexport enum CtpState {\n Idle = 'Idle',\n Loading = 'Loading',\n ShopperIdentified = 'ShopperIdentified',\n OneTimePassword = 'OneTimePassword',\n Ready = 'Ready',\n Login = 'Login',\n NotAvailable = 'NotAvailable'\n}\n\nclass ClickToPayService implements IClickToPayService {\n private readonly sdkLoader: ISrcSdkLoader;\n private readonly schemesConfig: SchemesConfiguration;\n private readonly shopperIdentity?: IdentityLookupParams;\n private readonly environment: string;\n private readonly analytics: IAnalytics;\n\n private readonly onTimeout?: (error: TimeoutError) => void;\n\n /**\n * Mandatory unique ID passed to all the networks (Click to Pay systems), used to track user journey\n */\n private readonly srciTransactionId: string = uuidv4();\n\n private sdks: ISrcInitiator[];\n private validationSchemeSdk: ISrcInitiator = null;\n private stateSubscriber: CallbackStateSubscriber;\n\n public state: CtpState = CtpState.Idle;\n public shopperCards: ShopperCard[] = null;\n public identityValidationData: IdentityValidationData = null;\n\n /**\n * Indicates if the shopper opted for saving cookies during the transaction\n */\n public storeCookies = false;\n\n constructor(\n schemesConfig: SchemesConfiguration,\n sdkLoader: ISrcSdkLoader,\n environment: string,\n analytics: IAnalytics,\n shopperIdentity?: IdentityLookupParams,\n onTimeout?: (error: TimeoutError) => void\n ) {\n this.sdkLoader = sdkLoader;\n this.schemesConfig = schemesConfig;\n this.shopperIdentity = shopperIdentity;\n this.environment = environment;\n this.onTimeout = onTimeout;\n this.analytics = analytics;\n }\n\n public get shopperAccountFound(): boolean {\n return [CtpState.Ready, CtpState.ShopperIdentified].includes(this.state);\n }\n\n public get schemes(): string[] {\n return this.sdkLoader.schemes;\n }\n\n public updateStoreCookiesConsent(shouldStore: boolean) {\n this.storeCookies = shouldStore;\n }\n\n public async initialize(): Promise<void> {\n this.setState(CtpState.Loading);\n\n try {\n this.sdks = await this.sdkLoader.load(this.environment, this.analytics);\n await this.initiateSdks();\n\n const { recognized = false, idTokens = null } = await this.verifyIfShopperIsRecognized();\n\n if (recognized) {\n await this.getShopperProfile(idTokens);\n this.setState(CtpState.Ready);\n return;\n }\n\n if (!this.shopperIdentity) {\n this.setState(CtpState.NotAvailable);\n return;\n }\n\n const { isEnrolled } = await this.verifyIfShopperIsEnrolled(this.shopperIdentity);\n if (isEnrolled) {\n this.setState(CtpState.ShopperIdentified);\n return;\n }\n\n this.setState(CtpState.NotAvailable);\n } catch (error) {\n if ((error instanceof SrciError && error?.reason === 'REQUEST_TIMEOUT') || error instanceof TimeoutError) {\n this.handleTimeout(error);\n } else if (error instanceof SrciError) {\n console.warn(`Error at ClickToPayService # init: ${error.toString()}`);\n } else {\n console.warn(error);\n }\n\n this.setState(CtpState.NotAvailable);\n }\n }\n\n /**\n * Set the callback for notifying when the CtPState changes\n */\n public subscribeOnStateChange(callback: CallbackStateSubscriber): void {\n this.stateSubscriber = callback;\n }\n\n /**\n * Initiates Consumer Identity validation with one Click to Pay System.\n * The Click to Pay System sends a one-time-password (OTP) to the registered email address or mobile number.\n **/\n public async startIdentityValidation(): Promise<void> {\n if (!this.validationSchemeSdk) {\n throw Error('startIdentityValidation: No ValidationSDK set for the validation process');\n }\n try {\n const { maskedValidationChannel } = await this.validationSchemeSdk.initiateIdentityValidation();\n\n this.identityValidationData = {\n maskedShopperContact: maskedValidationChannel.replace(/\\*/g, '•'),\n selectedNetwork: SchemeNames[this.validationSchemeSdk.schemeName]\n };\n\n this.setState(CtpState.OneTimePassword);\n } catch (error: unknown) {\n // If there is an error when 'startIdentityValidation' (Ex: account is blocked), we reset the scheme chosen to perform this step\n this.validationSchemeSdk = null;\n throw error;\n }\n }\n\n /**\n * Completes the validation of the Shopper by evaluating the supplied OTP.\n */\n public async finishIdentityValidation(otpCode: string): Promise<void> {\n if (!this.validationSchemeSdk) {\n throw Error('finishIdentityValidation: No ValidationSDK set for the validation process');\n }\n\n const validationToken = await this.validationSchemeSdk.completeIdentityValidation(otpCode);\n await this.getShopperProfile([validationToken.idToken]);\n this.setState(CtpState.Ready);\n this.validationSchemeSdk = null;\n }\n\n /**\n * This method performs checkout using the selected card\n */\n public async checkout(card: ShopperCard): Promise<ClickToPayCheckoutPayload> {\n if (!card) {\n throw Error('ClickToPayService # checkout: Missing card data');\n }\n\n const checkoutSdk = this.sdks.find(sdk => sdk.schemeName === card.scheme);\n\n const checkoutResponse = await checkoutSdk.checkout({\n srcDigitalCardId: card.srcDigitalCardId,\n srcCorrelationId: card.srcCorrelationId,\n ...(card.isDcfPopupEmbedded && { windowRef: window.frames[CTP_IFRAME_NAME] }),\n ...(this.storeCookies && { complianceSettings: { complianceResources: [{ complianceType: 'REMEMBER_ME', uri: '' }] } })\n });\n\n if (checkoutResponse.dcfActionCode !== 'COMPLETE') {\n throw new AdyenCheckoutError(\n 'ERROR',\n `Checkout through Scheme DCF did not complete. DCF Action code received: ${checkoutResponse.dcfActionCode}`\n );\n }\n\n return createCheckoutPayloadBasedOnScheme(card, checkoutResponse, this.environment);\n }\n\n /**\n * Call the 'unbindAppInstance()' method of each SRC SDK in order to remove the shopper cookies.\n * Besides, it deletes all information stored about the shopper.\n */\n public async logout(): Promise<void> {\n if (!this.sdks) {\n throw new AdyenCheckoutError('ERROR', 'ClickToPayService is not initialized');\n }\n\n try {\n const logoutPromises = this.sdks.map(sdk => sdk.unbindAppInstance());\n await Promise.all(logoutPromises);\n } catch (error) {\n if (error instanceof SrciError) console.warn(`Error at ClickToPayService # logout: ${error.toString()}`);\n else console.warn(error);\n }\n\n this.shopperCards = null;\n this.identityValidationData = null;\n this.validationSchemeSdk = null;\n\n this.setState(CtpState.Login);\n }\n\n /**\n * Call the 'identityLookup()' method of each SRC SDK in order to verify if the shopper has an account.\n *\n * Based on the responses from the Click to Pay Systems, we should do the validation process using the SDK that\n * that responds faster with 'consumerPresent=true'\n */\n public verifyIfShopperIsEnrolled(shopperIdentity: IdentityLookupParams): Promise<{ isEnrolled: boolean }> {\n const { shopperEmail } = shopperIdentity;\n\n return new Promise((resolve, reject) => {\n const lookupPromises = this.sdks.map(sdk => {\n const identityLookupPromise = executeWithTimeout<SrciIdentityLookupResponse>(\n () => sdk.identityLookup({ identityValue: shopperEmail, type: 'email' }),\n 5000,\n new TimeoutError({\n source: 'identityLookup',\n scheme: sdk.schemeName,\n isTimeoutTriggeredBySchemeSdk: false\n })\n );\n\n return identityLookupPromise\n .then(response => {\n if (response.consumerPresent && !this.validationSchemeSdk) {\n this.setSdkForPerformingShopperIdentityValidation(sdk);\n resolve({ isEnrolled: true });\n }\n })\n .catch(error => {\n reject(error);\n });\n });\n\n void Promise.allSettled(lookupPromises).then(() => {\n resolve({ isEnrolled: false });\n });\n });\n }\n\n private setState(state: CtpState): void {\n this.state = state;\n this.stateSubscriber?.(this.state);\n }\n\n private setSdkForPerformingShopperIdentityValidation(sdk: ISrcInitiator) {\n this.validationSchemeSdk = sdk;\n }\n\n private handleTimeout(error: SrciError | TimeoutError) {\n // If the timeout error was thrown directly by the scheme SDK, we convert it to TimeoutError\n // If the timeout error was thrown by our internal timeout mechanism, we don't do anything\n const timeoutError =\n error instanceof SrciError\n ? new TimeoutError({ source: error.source, scheme: error.scheme, isTimeoutTriggeredBySchemeSdk: true })\n : error;\n\n if (timeoutError.scheme === 'visa') {\n timeoutError.setCorrelationId(window.VISA_SDK?.correlationId);\n\n // Visa srciDpaId must be passed when there is no correlation ID available\n if (window.VISA_SDK?.correlationId) window.VISA_SDK?.buildClientProfile?.();\n else window.VISA_SDK?.buildClientProfile?.(this.schemesConfig.visa.srciDpaId);\n }\n this.onTimeout?.(timeoutError);\n }\n\n /**\n * Based on the given 'idToken', this method goes through each SRCi SDK and fetches the shopper\n * profile with his cards.\n */\n private async getShopperProfile(idTokens: string[]): Promise<void> {\n return new Promise((resolve, reject) => {\n const srcProfilesPromises = this.sdks.map(sdk => sdk.getSrcProfile(idTokens));\n\n void Promise.allSettled(srcProfilesPromises).then(srcProfilesResponses => {\n if (srcProfilesResponses.every(isRejected)) {\n reject(srcProfilesResponses[0].reason);\n }\n\n const createProfileWithScheme = (promiseResult: PromiseSettledResult<SrcProfile>, index) =>\n isFulfilled(promiseResult) && { ...promiseResult.value, scheme: this.sdks[index].schemeName };\n\n const profilesWithScheme: SrcProfileWithScheme[] = srcProfilesResponses.map(createProfileWithScheme).filter(profile => !!profile);\n\n this.shopperCards = createShopperCardsList(profilesWithScheme);\n resolve();\n });\n });\n }\n\n /**\n * Calls the 'isRecognized()' method of each SRC SDK in order to verify if the shopper is\n * recognized on the device. The shopper is recognized if he/she has the Cookies stored\n * on their browser\n */\n private verifyIfShopperIsRecognized(): Promise<SrciIsRecognizedResponse> {\n return new Promise((resolve, reject) => {\n const promises = this.sdks.map(sdk => {\n const isRecognizedPromise = executeWithTimeout<SrciIsRecognizedResponse>(\n () => sdk.isRecognized(),\n 5000,\n new TimeoutError({\n source: 'isRecognized',\n scheme: sdk.schemeName,\n isTimeoutTriggeredBySchemeSdk: false\n })\n );\n\n return isRecognizedPromise\n .then(response => {\n if (response.recognized) resolve(response);\n })\n .catch(error => {\n reject(error);\n });\n });\n\n // If the 'resolve' didn't happen until this point, then shopper is not recognized\n void Promise.allSettled(promises).then(() => {\n resolve({ recognized: false });\n });\n });\n }\n\n private initiateSdks(): Promise<void[]> {\n const initPromises = this.sdks.map(sdk => {\n const cfg = this.schemesConfig[sdk.schemeName];\n\n return executeWithTimeout<void>(\n () => sdk.init(cfg, this.srciTransactionId),\n 5000,\n new TimeoutError({\n source: 'init',\n scheme: sdk.schemeName,\n isTimeoutTriggeredBySchemeSdk: false\n })\n );\n });\n\n return Promise.all(initPromises);\n }\n}\n\nexport default ClickToPayService;\n"],"names":["CtpState","ClickToPayService","shopperAccountFound","includes","this","state","schemes","sdkLoader","updateStoreCookiesConsent","shouldStore","storeCookies","initialize","setState","sdks","load","environment","analytics","initiateSdks","recognized","idTokens","verifyIfShopperIsRecognized","getShopperProfile","shopperIdentity","isEnrolled","verifyIfShopperIsEnrolled","error","SrciError","reason","TimeoutError","handleTimeout","console","warn","toString","subscribeOnStateChange","callback","stateSubscriber","startIdentityValidation","validationSchemeSdk","Error","maskedValidationChannel","initiateIdentityValidation","identityValidationData","maskedShopperContact","replace","selectedNetwork","SchemeNames","schemeName","finishIdentityValidation","otpCode","validationToken","completeIdentityValidation","idToken","checkout","card","checkoutSdk","find","sdk","scheme","checkoutResponse","srcDigitalCardId","srcCorrelationId","isDcfPopupEmbedded","windowRef","window","frames","CTP_IFRAME_NAME","complianceSettings","complianceResources","complianceType","uri","dcfActionCode","AdyenCheckoutError","createCheckoutPayloadBasedOnScheme","logout","logoutPromises","map","unbindAppInstance","Promise","all","shopperCards","shopperEmail","resolve","reject","lookupPromises","executeWithTimeout","identityLookup","identityValue","type","source","isTimeoutTriggeredBySchemeSdk","then","response","consumerPresent","setSdkForPerformingShopperIdentityValidation","catch","allSettled","timeoutError","setCorrelationId","VISA_SDK","correlationId","buildClientProfile","schemesConfig","visa","srciDpaId","onTimeout","srcProfilesPromises","getSrcProfile","srcProfilesResponses","every","isRejected","profilesWithScheme","promiseResult","index","isFulfilled","value","filter","profile","createShopperCardsList","promises","isRecognized","initPromises","cfg","init","srciTransactionId","constructor","_define_property","uuidv4"],"mappings":"wlBAuBO,IAAAA,EAAKA,SAAAA,GAAAA,mLAAAA,CAQX,CARWA,CAQX,CAAA,GAED,MAAMC,EA2CF,uBAAWC,GACP,MAAO,8BAA6CC,SAASC,KAAKC,MACtE,CAEA,WAAWC,GACP,OAAOF,KAAKG,UAAUD,OAC1B,CAEOE,yBAAAA,CAA0BC,GAC7BL,KAAKM,aAAeD,CACxB,CAEA,gBAAaE,GACTP,KAAKQ,SAAQ,WAEb,IACIR,KAAKS,WAAaT,KAAKG,UAAUO,KAAKV,KAAKW,YAAaX,KAAKY,iBACvDZ,KAAKa,eAEX,MAAMC,WAAEA,GAAa,EAAKC,SAAEA,EAAW,YAAef,KAAKgB,8BAE3D,GAAIF,EAGA,aAFMd,KAAKiB,kBAAkBF,QAC7Bf,KAAKQ,SAAQ,SAIjB,IAAKR,KAAKkB,gBAEN,YADAlB,KAAKQ,SAAQ,gBAIjB,MAAMW,WAAEA,SAAqBnB,KAAKoB,0BAA0BpB,KAAKkB,iBACjE,GAAIC,EAEA,YADAnB,KAAKQ,SAAQ,qBAIjBR,KAAKQ,SAAQ,eACjB,CAAE,MAAOa,GACDA,aAAkBC,GAA+B,oBAAlBD,GAAOE,QAAiCF,aAAiBG,EACxFxB,KAAKyB,cAAcJ,GACZA,aAAiBC,EACxBI,QAAQC,KAAK,sCAAsCN,EAAMO,cAEzDF,QAAQC,KAAKN,GAGjBrB,KAAKQ,SAAQ,eACjB,CACJ,CAKOqB,sBAAAA,CAAuBC,GAC1B9B,KAAK+B,gBAAkBD,CAC3B,CAMA,6BAAaE,GACT,IAAKhC,KAAKiC,oBACN,MAAMC,MAAM,4EAEhB,IACI,MAAMC,wBAAEA,SAAkCnC,KAAKiC,oBAAoBG,6BAEnEpC,KAAKqC,uBAAyB,CAC1BC,qBAAsBH,EAAwBI,QAAQ,MAAO,KAC7DC,gBAAiBC,EAAYzC,KAAKiC,oBAAoBS,aAG1D1C,KAAKQ,SAAQ,kBACjB,CAAE,MAAOa,GAGL,MADArB,KAAKiC,oBAAsB,KACrBZ,CACV,CACJ,CAKA,8BAAasB,CAAyBC,GAClC,IAAK5C,KAAKiC,oBACN,MAAMC,MAAM,6EAGhB,MAAMW,QAAwB7C,KAAKiC,oBAAoBa,2BAA2BF,SAC5E5C,KAAKiB,kBAAkB,CAAC4B,EAAgBE,UAC9C/C,KAAKQ,SAAQ,SACbR,KAAKiC,oBAAsB,IAC/B,CAKA,cAAae,CAASC,GAClB,IAAKA,EACD,MAAMf,MAAM,mDAGhB,MAAMgB,EAAclD,KAAKS,KAAK0C,KAAKC,GAAOA,EAAIV,aAAeO,EAAKI,QAE5DC,QAAyBJ,EAAYF,SAAS,CAChDO,iBAAkBN,EAAKM,iBACvBC,iBAAkBP,EAAKO,oBACnBP,EAAKQ,oBAAsB,CAAEC,UAAWC,OAAOC,OAAOC,OACtD7D,KAAKM,cAAgB,CAAEwD,mBAAoB,CAAEC,oBAAqB,CAAC,CAAEC,eAAgB,cAAeC,IAAK,SAGjH,GAAuC,aAAnCX,EAAiBY,cACjB,MAAM,IAAIC,EACN,QACA,2EAA2Eb,EAAiBY,iBAIpG,OAAOE,EAAmCnB,EAAMK,EAAkBtD,KAAKW,YAC3E,CAMA,YAAa0D,GACT,IAAKrE,KAAKS,KACN,MAAM,IAAI0D,EAAmB,QAAS,wCAG1C,IACI,MAAMG,EAAiBtE,KAAKS,KAAK8D,IAAInB,GAAOA,EAAIoB,2BAC1CC,QAAQC,IAAIJ,EACtB,CAAE,MAAOjD,GACDA,aAAiBC,EAAWI,QAAQC,KAAK,wCAAwCN,EAAMO,cACtFF,QAAQC,KAAKN,EACtB,CAEArB,KAAK2E,aAAe,KACpB3E,KAAKqC,uBAAyB,KAC9BrC,KAAKiC,oBAAsB,KAE3BjC,KAAKQ,SAAQ,QACjB,CAQOY,yBAAAA,CAA0BF,GAC7B,MAAM0D,aAAEA,GAAiB1D,EAEzB,OAAO,IAAIuD,QAAQ,CAACI,EAASC,KACzB,MAAMC,EAAiB/E,KAAKS,KAAK8D,IAAInB,GACH4B,EAC1B,IAAM5B,EAAI6B,eAAe,CAAEC,cAAeN,EAAcO,KAAM,UAC9D,IACA,IAAI3D,EAAa,CACb4D,OAAQ,iBACR/B,OAAQD,EAAIV,WACZ2C,+BAA+B,KAKlCC,KAAKC,IACEA,EAASC,kBAAoBxF,KAAKiC,sBAClCjC,KAAKyF,6CAA6CrC,GAClDyB,EAAQ,CAAE1D,YAAY,OAG7BuE,MAAMrE,IACHyD,EAAOzD,MAIdoD,QAAQkB,WAAWZ,GAAgBO,KAAK,KACzCT,EAAQ,CAAE1D,YAAY,OAGlC,CAEQX,QAAAA,CAASP,GACbD,KAAKC,MAAQA,EACbD,KAAK+B,kBAAkB/B,KAAKC,MAChC,CAEQwF,4CAAAA,CAA6CrC,GACjDpD,KAAKiC,oBAAsBmB,CAC/B,CAEQ3B,aAAAA,CAAcJ,GAGlB,MAAMuE,EACFvE,aAAiBC,EACX,IAAIE,EAAa,CAAE4D,OAAQ/D,EAAM+D,OAAQ/B,OAAQhC,EAAMgC,OAAQgC,+BAA+B,IAC9FhE,EAEkB,SAAxBuE,EAAavC,SACbuC,EAAaC,iBAAiBlC,OAAOmC,UAAUC,eAG3CpC,OAAOmC,UAAUC,cAAepC,OAAOmC,UAAUE,uBAChDrC,OAAOmC,UAAUE,qBAAqBhG,KAAKiG,cAAcC,KAAKC,YAEvEnG,KAAKoG,YAAYR,EACrB,CAMA,uBAAc3E,CAAkBF,GAC5B,OAAO,IAAI0D,QAAQ,CAACI,EAASC,KACzB,MAAMuB,EAAsBrG,KAAKS,KAAK8D,IAAInB,GAAOA,EAAIkD,cAAcvF,IAE9D0D,QAAQkB,WAAWU,GAAqBf,KAAKiB,IAC1CA,EAAqBC,MAAMC,IAC3B3B,EAAOyB,EAAqB,GAAGhF,QAGnC,MAGMmF,EAA6CH,EAAqBhC,IAHxC,CAACoC,EAAiDC,IAC9EC,EAAYF,IAAkB,IAAKA,EAAcG,MAAOzD,OAAQrD,KAAKS,KAAKmG,GAAOlE,aAEgBqE,OAAOC,KAAaA,GAEzHhH,KAAK2E,aAAesC,EAAuBP,GAC3C7B,OAGZ,CAOA,2BAAA7D,GACI,OAAO,IAAIyD,QAAQ,CAACI,EAASC,KACzB,MAAMoC,EAAWlH,KAAKS,KAAK8D,IAAInB,GACC4B,EACxB,IAAM5B,EAAI+D,eACV,IACA,IAAI3F,EAAa,CACb4D,OAAQ,eACR/B,OAAQD,EAAIV,WACZ2C,+BAA+B,KAKlCC,KAAKC,IACEA,EAASzE,YAAY+D,EAAQU,KAEpCG,MAAMrE,IACHyD,EAAOzD,MAKdoD,QAAQkB,WAAWuB,GAAU5B,KAAK,KACnCT,EAAQ,CAAE/D,YAAY,OAGlC,CAEQD,YAAAA,GACJ,MAAMuG,EAAepH,KAAKS,KAAK8D,IAAInB,IAC/B,MAAMiE,EAAMrH,KAAKiG,cAAc7C,EAAIV,YAEnC,OAAOsC,EACH,IAAM5B,EAAIkE,KAAKD,EAAKrH,KAAKuH,mBACzB,IACA,IAAI/F,EAAa,CACb4D,OAAQ,OACR/B,OAAQD,EAAIV,WACZ2C,+BAA+B,OAK3C,OAAOZ,QAAQC,IAAI0C,EACvB,CAhTA,WAAAI,CACIvB,EACA9F,EACAQ,EACAC,EACAM,EACAkF,GAhCJqB,EAAAzH,KAAiBG,oBACjBsH,EAAAzH,KAAiBiG,wBACjBwB,EAAAzH,KAAiBkB,0BACjBuG,EAAAzH,KAAiBW,sBACjB8G,EAAAzH,KAAiBY,oBAEjB6G,EAAAzH,KAAiBoG,oBAKjBqB,OAAiBF,oBAA4BG,KAE7CD,EAAAzH,KAAQS,eACRgH,EAAAzH,KAAQiC,sBAAqC,MAC7CwF,EAAAzH,KAAQ+B,0BAER0F,EAAAzH,KAAOC,QAAAA,QACPwH,EAAAzH,KAAO2E,eAA8B,MACrC8C,EAAAzH,KAAOqC,yBAAiD,MAKxDoF,OAAOnH,gBAAe,GAUlBN,KAAKG,UAAYA,EACjBH,KAAKiG,cAAgBA,EACrBjG,KAAKkB,gBAAkBA,EACvBlB,KAAKW,YAAcA,EACnBX,KAAKoG,UAAYA,EACjBpG,KAAKY,UAAYA,CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractSrcInitiator.js","sources":["../../../../../../../src/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.ts"],"sourcesContent":["import {\n CustomSdkConfiguration,\n SrcCheckoutParams,\n SrciCheckoutResponse,\n SrciCompleteIdentityValidationResponse,\n SrcIdentityLookupParams,\n SrciIdentityLookupResponse,\n SrciInitiateIdentityValidationResponse,\n SrciIsRecognizedResponse,\n SrcInitParams,\n SrcProfile\n} from './types';\nimport SrciError, { MastercardError, VisaError } from './SrciError';\nimport { ClickToPayScheme } from '../../types';\nimport Script from '../../../../../utils/Script';\nimport { IAnalytics } from '../../../../../core/Analytics/Analytics';\n\nexport interface ISrcInitiator {\n schemeName: ClickToPayScheme;\n // Loading 3rd party library\n loadSdkScript(): Promise<void>;\n removeSdkScript(): void;\n // SRCi specification methods\n init(params: SrcInitParams, srciTransactionId: string): Promise<void>;\n isRecognized(): Promise<SrciIsRecognizedResponse>;\n identityLookup(params: SrcIdentityLookupParams): Promise<SrciIdentityLookupResponse>;\n initiateIdentityValidation(): Promise<SrciInitiateIdentityValidationResponse>;\n completeIdentityValidation(validationData: string): Promise<SrciCompleteIdentityValidationResponse>;\n getSrcProfile(idTokens: string[]): Promise<SrcProfile>;\n checkout(params: SrcCheckoutParams): Promise<SrciCheckoutResponse>;\n unbindAppInstance(): Promise<void>;\n}\n\nexport default abstract class AbstractSrcInitiator implements ISrcInitiator {\n public schemeSdk: any;\n public abstract readonly schemeName: ClickToPayScheme;\n\n protected readonly customSdkConfiguration: CustomSdkConfiguration;\n\n private readonly analytics: IAnalytics;\n private readonly sdkUrl: string;\n private scriptElement: Script | null = null;\n\n protected constructor(sdkUrl: string, customSdkConfiguration: CustomSdkConfiguration, analytics: IAnalytics) {\n if (!sdkUrl) throw Error('AbstractSrcInitiator: Invalid SDK URL');\n\n this.sdkUrl = sdkUrl;\n this.customSdkConfiguration = customSdkConfiguration;\n this.analytics = analytics;\n }\n\n public async loadSdkScript(): Promise<void> {\n if (!this.isSdkIsAvailableOnWindow()) {\n this.scriptElement = new Script({\n src: this.sdkUrl,\n component: 'clicktopay',\n analytics: this.analytics\n });\n\n await this.scriptElement.load();\n }\n this.assignSdkReference();\n }\n\n public removeSdkScript(): void {\n this.scriptElement.remove();\n }\n\n /**\n * Verifies if SDK is already loaded on the window object.\n * Example: Merchant can preload the SDK to speed up the loading time\n */\n protected abstract isSdkIsAvailableOnWindow(): boolean;\n\n /**\n * Assign SchemeSDK object to 'schemeSdk' property.\n * Each scheme creates its own object reference on 'window' using different naming,\n * therefore this method should be implemented by the subclass to assign the property\n * accordingly\n */\n protected abstract assignSdkReference(): void;\n\n /**\n * Initializes the app with common state. The init method must be called before any other methods.\n */\n public abstract init(params: SrcInitParams, srciTransactionId: string): Promise<void>;\n\n /**\n * This method performs checkout using the specified card. If successful, the\n * response contains summary checkout information.\n */\n public async checkout(params: SrcCheckoutParams): Promise<SrciCheckoutResponse> {\n try {\n const checkoutResponse = await this.schemeSdk.checkout(params);\n return checkoutResponse;\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'checkout', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * This method disassociates the Consumer application / Consumer Device from the Consumer’s SRC Profile.\n */\n public async unbindAppInstance(): Promise<void> {\n try {\n await this.schemeSdk.unbindAppInstance();\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'unbindAppInstance', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * Determines whether the consumer is recognized, e.g. by detecting the presence of a local cookie in\n * the browser environment.\n */\n public async isRecognized(): Promise<SrciIsRecognizedResponse> {\n try {\n const isRecognizedResponse = await this.schemeSdk.isRecognized();\n return isRecognizedResponse;\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'isRecognized', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * Sends a validation code to the specified consumer.\n * This method sends a one-time password (OTP) to the consumer to start validation\n */\n public async initiateIdentityValidation(): Promise<SrciInitiateIdentityValidationResponse> {\n try {\n const identityValidationResponse = await this.schemeSdk.initiateIdentityValidation();\n return identityValidationResponse;\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'initiateIdentityValidation', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * Obtains the masked card and other account profile data associated with the userId.\n */\n public async getSrcProfile(idTokens: string[]): Promise<SrcProfile> {\n try {\n const getSrcProfileResponse = await this.schemeSdk.getSrcProfile({ idTokens });\n return getSrcProfileResponse;\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'getSrcProfile', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * Obtains the user account associated with the consumer’s identity (an email address or phone\n * number).\n */\n public abstract identityLookup(params: SrcIdentityLookupParams): Promise<SrciIdentityLookupResponse>;\n\n /**\n * This method completes the identity validation by receiving the one-time password (OTP) sent to the\n * consumer to start validation.\n */\n public abstract completeIdentityValidation(otp: string): Promise<SrciCompleteIdentityValidationResponse>;\n}\n"],"names":["AbstractSrcInitiator","loadSdkScript","this","isSdkIsAvailableOnWindow","scriptElement","Script","src","sdkUrl","component","analytics","load","assignSdkReference","removeSdkScript","remove","checkout","params","schemeSdk","error","SrciError","schemeName","unbindAppInstance","isRecognized","initiateIdentityValidation","getSrcProfile","idTokens","constructor","customSdkConfiguration","_define_property","Error"],"mappings":"oMAiCe,MAAeA,EAkB1B,mBAAaC,GACJC,KAAKC,6BACND,KAAKE,cAAgB,IAAIC,EAAO,CAC5BC,IAAKJ,KAAKK,OACVC,UAAW,aACXC,UAAWP,KAAKO,kBAGdP,KAAKE,cAAcM,QAE7BR,KAAKS,oBACT,CAEOC,eAAAA,GACHV,KAAKE,cAAcS,QACvB,CAyBA,cAAaC,CAASC,GAClB,IAEI,aAD+Bb,KAAKc,UAAUF,SAASC,EAE3D,CAAE,MAAOE,GAEL,MADkB,IAAIC,EAAUD,EAAsC,WAAYf,KAAKiB,WAE3F,CACJ,CAKA,uBAAaC,GACT,UACUlB,KAAKc,UAAUI,mBACzB,CAAE,MAAOH,GAEL,MADkB,IAAIC,EAAUD,EAAsC,oBAAqBf,KAAKiB,WAEpG,CACJ,CAMA,kBAAaE,GACT,IAEI,aADmCnB,KAAKc,UAAUK,cAEtD,CAAE,MAAOJ,GAEL,MADkB,IAAIC,EAAUD,EAAsC,eAAgBf,KAAKiB,WAE/F,CACJ,CAMA,gCAAaG,GACT,IAEI,aADyCpB,KAAKc,UAAUM,4BAE5D,CAAE,MAAOL,GAEL,MADkB,IAAIC,EAAUD,EAAsC,6BAA8Bf,KAAKiB,WAE7G,CACJ,CAKA,mBAAaI,CAAcC,GACvB,IAEI,aADoCtB,KAAKc,UAAUO,cAAc,CAAEC,YAEvE,CAAE,MAAOP,GAEL,MADkB,IAAIC,EAAUD,EAAsC,gBAAiBf,KAAKiB,WAEhG,CACJ,CA7GA,WAAAM,CAAsBlB,EAAgBmB,EAAgDjB,GAClF,GAVJkB,EAAAzB,KAAOc,iBAAP,GAGAW,EAAAzB,KAAmBwB,8BAAnB,GAEAC,EAAAzB,KAAiBO,iBAAjB,GACAkB,EAAAzB,KAAiBK,cAAjB,GACAoB,EAAAzB,KAAQE,gBAA+B,OAG9BG,EAAQ,MAAMqB,MAAM,yCAEzB1B,KAAKK,OAASA,EACdL,KAAKwB,uBAAyBA,EAC9BxB,KAAKO,UAAYA,CACrB"}
1
+ {"version":3,"file":"AbstractSrcInitiator.js","sources":["../../../../../../../src/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.ts"],"sourcesContent":["import {\n CustomSdkConfiguration,\n SrcCheckoutParams,\n SrciCheckoutResponse,\n SrciCompleteIdentityValidationResponse,\n SrcIdentityLookupParams,\n SrciIdentityLookupResponse,\n SrciInitiateIdentityValidationResponse,\n SrciIsRecognizedResponse,\n SrcInitParams,\n SrcProfile\n} from './types';\nimport SrciError, { MastercardError, VisaError } from './SrciError';\nimport { ClickToPayScheme } from '../../types';\nimport Script from '../../../../../utils/Script';\nimport { IAnalytics } from '../../../../../core/Analytics/Analytics';\n\nexport interface ISrcInitiator {\n schemeName: ClickToPayScheme;\n // Loading 3rd party library\n loadSdkScript(): Promise<void>;\n removeSdkScript(): void;\n // SRCi specification methods\n init(params: SrcInitParams, srciTransactionId: string): Promise<void>;\n isRecognized(): Promise<SrciIsRecognizedResponse>;\n identityLookup(params: SrcIdentityLookupParams): Promise<SrciIdentityLookupResponse>;\n initiateIdentityValidation(): Promise<SrciInitiateIdentityValidationResponse>;\n completeIdentityValidation(validationData: string): Promise<SrciCompleteIdentityValidationResponse>;\n getSrcProfile(idTokens: string[]): Promise<SrcProfile>;\n checkout(params: SrcCheckoutParams): Promise<SrciCheckoutResponse>;\n unbindAppInstance(): Promise<void>;\n}\n\nexport default abstract class AbstractSrcInitiator implements ISrcInitiator {\n public schemeSdk: any;\n public abstract readonly schemeName: ClickToPayScheme;\n\n protected readonly customSdkConfiguration: CustomSdkConfiguration;\n\n private readonly analytics: IAnalytics;\n private readonly sdkUrl: string;\n private scriptElement: Script | null = null;\n\n protected constructor(sdkUrl: string, customSdkConfiguration: CustomSdkConfiguration, analytics: IAnalytics) {\n if (!sdkUrl) throw Error('AbstractSrcInitiator: Invalid SDK URL');\n\n this.sdkUrl = sdkUrl;\n this.customSdkConfiguration = customSdkConfiguration;\n this.analytics = analytics;\n }\n\n public async loadSdkScript(): Promise<void> {\n if (!this.isSdkIsAvailableOnWindow()) {\n this.scriptElement = new Script({\n src: this.sdkUrl,\n component: 'clicktopay',\n analytics: this.analytics\n });\n\n await this.scriptElement.load();\n }\n this.assignSdkReference();\n }\n\n public removeSdkScript(): void {\n this.scriptElement.remove();\n }\n\n /**\n * Verifies if SDK is already loaded on the window object.\n * Example: Merchant can preload the SDK to speed up the loading time\n */\n protected abstract isSdkIsAvailableOnWindow(): boolean;\n\n /**\n * Assign SchemeSDK object to 'schemeSdk' property.\n * Each scheme creates its own object reference on 'window' using different naming,\n * therefore this method should be implemented by the subclass to assign the property\n * accordingly\n */\n protected abstract assignSdkReference(): void;\n\n /**\n * Initializes the app with common state. The init method must be called before any other methods.\n */\n public abstract init(params: SrcInitParams, srciTransactionId: string): Promise<void>;\n\n /**\n * This method performs checkout using the specified card. If successful, the\n * response contains summary checkout information.\n */\n public async checkout(params: SrcCheckoutParams): Promise<SrciCheckoutResponse> {\n try {\n const checkoutResponse = await this.schemeSdk.checkout(params);\n return checkoutResponse;\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'checkout', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * This method disassociates the Consumer application / Consumer Device from the Consumer’s SRC Profile.\n */\n public async unbindAppInstance(): Promise<void> {\n try {\n await this.schemeSdk.unbindAppInstance();\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'unbindAppInstance', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * Determines whether the consumer is recognized, e.g. by detecting the presence of a local cookie in\n * the browser environment.\n */\n public async isRecognized(): Promise<SrciIsRecognizedResponse> {\n try {\n const isRecognizedResponse = await this.schemeSdk.isRecognized();\n return isRecognizedResponse;\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'isRecognized', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * Sends a validation code to the specified consumer.\n * This method sends a one-time password (OTP) to the consumer to start validation\n */\n public async initiateIdentityValidation(): Promise<SrciInitiateIdentityValidationResponse> {\n try {\n const identityValidationResponse = await this.schemeSdk.initiateIdentityValidation();\n return identityValidationResponse;\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'initiateIdentityValidation', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * Obtains the masked card and other account profile data associated with the userId.\n */\n public async getSrcProfile(idTokens: string[]): Promise<SrcProfile> {\n try {\n const getSrcProfileResponse = await this.schemeSdk.getSrcProfile({ idTokens });\n return getSrcProfileResponse;\n } catch (error) {\n const srciError = new SrciError(error as VisaError | MastercardError, 'getSrcProfile', this.schemeName);\n throw srciError;\n }\n }\n\n /**\n * Obtains the user account associated with the consumer’s identity (an email address or phone\n * number).\n */\n public abstract identityLookup(params: SrcIdentityLookupParams): Promise<SrciIdentityLookupResponse>;\n\n /**\n * This method completes the identity validation by receiving the one-time password (OTP) sent to the\n * consumer to start validation.\n */\n public abstract completeIdentityValidation(otp: string): Promise<SrciCompleteIdentityValidationResponse>;\n}\n"],"names":["AbstractSrcInitiator","loadSdkScript","this","isSdkIsAvailableOnWindow","scriptElement","Script","src","sdkUrl","component","analytics","load","assignSdkReference","removeSdkScript","remove","checkout","params","schemeSdk","error","SrciError","schemeName","unbindAppInstance","isRecognized","initiateIdentityValidation","getSrcProfile","idTokens","constructor","customSdkConfiguration","_define_property","Error"],"mappings":"oMAiCe,MAAeA,EAkB1B,mBAAaC,GACJC,KAAKC,6BACND,KAAKE,cAAgB,IAAIC,EAAO,CAC5BC,IAAKJ,KAAKK,OACVC,UAAW,aACXC,UAAWP,KAAKO,kBAGdP,KAAKE,cAAcM,QAE7BR,KAAKS,oBACT,CAEOC,eAAAA,GACHV,KAAKE,cAAcS,QACvB,CAyBA,cAAaC,CAASC,GAClB,IAEI,aAD+Bb,KAAKc,UAAUF,SAASC,EAE3D,CAAE,MAAOE,GAEL,MADkB,IAAIC,EAAUD,EAAsC,WAAYf,KAAKiB,WAE3F,CACJ,CAKA,uBAAaC,GACT,UACUlB,KAAKc,UAAUI,mBACzB,CAAE,MAAOH,GAEL,MADkB,IAAIC,EAAUD,EAAsC,oBAAqBf,KAAKiB,WAEpG,CACJ,CAMA,kBAAaE,GACT,IAEI,aADmCnB,KAAKc,UAAUK,cAEtD,CAAE,MAAOJ,GAEL,MADkB,IAAIC,EAAUD,EAAsC,eAAgBf,KAAKiB,WAE/F,CACJ,CAMA,gCAAaG,GACT,IAEI,aADyCpB,KAAKc,UAAUM,4BAE5D,CAAE,MAAOL,GAEL,MADkB,IAAIC,EAAUD,EAAsC,6BAA8Bf,KAAKiB,WAE7G,CACJ,CAKA,mBAAaI,CAAcC,GACvB,IAEI,aADoCtB,KAAKc,UAAUO,cAAc,CAAEC,YAEvE,CAAE,MAAOP,GAEL,MADkB,IAAIC,EAAUD,EAAsC,gBAAiBf,KAAKiB,WAEhG,CACJ,CA7GA,WAAAM,CAAsBlB,EAAgBmB,EAAgDjB,GAClF,GAVJkB,EAAAzB,KAAOc,oBAGPW,EAAAzB,KAAmBwB,iCAEnBC,EAAAzB,KAAiBO,oBACjBkB,EAAAzB,KAAiBK,iBACjBoB,EAAAzB,KAAQE,gBAA+B,OAG9BG,EAAQ,MAAMqB,MAAM,yCAEzB1B,KAAKK,OAASA,EACdL,KAAKwB,uBAAyBA,EAC9BxB,KAAKO,UAAYA,CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SrcSdkLoader.js","sources":["../../../../../../../src/components/internal/ClickToPay/services/sdks/SrcSdkLoader.ts"],"sourcesContent":["import { ISrcInitiator } from './AbstractSrcInitiator';\nimport VisaSdk from './VisaSdk';\nimport MastercardSdk from './MastercardSdk';\nimport { CustomSdkConfiguration } from './types';\nimport AdyenCheckoutError from '../../../../../core/Errors/AdyenCheckoutError';\nimport { isFulfilled, isRejected } from '../../../../../utils/promise-util';\nimport type { IAnalytics } from '../../../../../core/Analytics/Analytics';\n\nconst sdkMap: Record<string, typeof VisaSdk | typeof MastercardSdk | null> = {\n visa: VisaSdk,\n mc: MastercardSdk,\n default: null\n};\n\nconst getSchemeSdk = (scheme: string, environment: string, customConfig: CustomSdkConfiguration, analytics: IAnalytics): ISrcInitiator | null => {\n const SchemeSdkClass = sdkMap[scheme] || sdkMap.default;\n return SchemeSdkClass ? new SchemeSdkClass(environment, customConfig, analytics) : null;\n};\n\nexport interface ISrcSdkLoader {\n load(environment: string, analytics: IAnalytics): Promise<ISrcInitiator[]>;\n schemes: string[];\n}\n\nclass SrcSdkLoader implements ISrcSdkLoader {\n public readonly schemes: string[];\n\n private readonly customSdkConfiguration: CustomSdkConfiguration;\n\n constructor(schemes: string[], { dpaLocale = 'en_US', dpaPresentationName = '' }) {\n this.schemes = schemes;\n this.customSdkConfiguration = { dpaLocale, dpaPresentationName };\n }\n\n public async load(environment: string, analytics: IAnalytics): Promise<ISrcInitiator[]> {\n if (!this.schemes || this.schemes.length === 0) {\n throw new AdyenCheckoutError('ERROR', 'ClickToPay -> SrcSdkLoader: There are no schemes set to be loaded');\n }\n\n return new Promise((resolve, reject) => {\n const sdks: ISrcInitiator[] = this.schemes.map(scheme => getSchemeSdk(scheme, environment, this.customSdkConfiguration, analytics));\n const loadScriptPromises = sdks.map(sdk => sdk.loadSdkScript());\n\n void Promise.allSettled(loadScriptPromises).then(loadScriptResponses => {\n if (loadScriptResponses.every(isRejected)) {\n reject(\n new AdyenCheckoutError('ERROR', `ClickToPay -> SrcSdkLoader # Unable to load network schemes: ${this.schemes.toString()}`)\n );\n }\n\n const sdksLoaded = sdks.filter((sdk, index) => isFulfilled(loadScriptResponses[index]));\n\n resolve(sdksLoaded);\n });\n });\n }\n}\n\nexport default SrcSdkLoader;\n"],"names":["sdkMap","visa","VisaSdk","mc","MastercardSdk","default","SrcSdkLoader","load","environment","analytics","this","schemes","length","AdyenCheckoutError","Promise","resolve","reject","sdks","map","scheme","customConfig","SchemeSdkClass","getSchemeSdk","customSdkConfiguration","loadScriptPromises","sdk","loadSdkScript","allSettled","then","loadScriptResponses","every","isRejected","toString","sdksLoaded","filter","index","isFulfilled","constructor","dpaLocale","dpaPresentationName","_define_property"],"mappings":"yUAQA,MAAMA,EAAuE,CACzEC,KAAMC,EACNC,GAAIC,EACJC,QAAS,MAab,MAAMC,EAUF,UAAaC,CAAKC,EAAqBC,GACnC,IAAKC,KAAKC,SAAmC,IAAxBD,KAAKC,QAAQC,OAC9B,MAAM,IAAIC,EAAmB,QAAS,qEAG1C,OAAO,IAAIC,QAAQ,CAACC,EAASC,KACzB,MAAMC,EAAwBP,KAAKC,QAAQO,IAAIC,GA1BtC,EAACA,EAAgBX,EAAqBY,EAAsCX,KAC7F,MAAMY,EAAiBrB,EAAOmB,IAAWnB,EAAOK,QAChD,OAAOgB,EAAiB,IAAIA,EAAeb,EAAaY,EAAcX,GAAa,MAwBlBa,CAAaH,EAAQX,EAAaE,KAAKa,uBAAwBd,IAClHe,EAAqBP,EAAKC,IAAIO,GAAOA,EAAIC,iBAE1CZ,QAAQa,WAAWH,GAAoBI,KAAKC,IACzCA,EAAoBC,MAAMC,IAC1Bf,EACI,IAAIH,EAAmB,QAAS,gEAAgEH,KAAKC,QAAQqB,eAIrH,MAAMC,EAAahB,EAAKiB,OAAO,CAACT,EAAKU,IAAUC,EAAYP,EAAoBM,KAE/EpB,EAAQkB,MAGpB,CA1BA,WAAAI,CAAY1B,GAAmB2B,UAAEA,EAAY,QAAOC,oBAAEA,EAAsB,KAJ5EC,EAAA9B,KAAgBC,eAAhB,GAEA6B,EAAA9B,KAAiBa,8BAAjB,GAGIb,KAAKC,QAAUA,EACfD,KAAKa,uBAAyB,CAAEe,YAAWC,sBAC/C"}
1
+ {"version":3,"file":"SrcSdkLoader.js","sources":["../../../../../../../src/components/internal/ClickToPay/services/sdks/SrcSdkLoader.ts"],"sourcesContent":["import { ISrcInitiator } from './AbstractSrcInitiator';\nimport VisaSdk from './VisaSdk';\nimport MastercardSdk from './MastercardSdk';\nimport { CustomSdkConfiguration } from './types';\nimport AdyenCheckoutError from '../../../../../core/Errors/AdyenCheckoutError';\nimport { isFulfilled, isRejected } from '../../../../../utils/promise-util';\nimport type { IAnalytics } from '../../../../../core/Analytics/Analytics';\n\nconst sdkMap: Record<string, typeof VisaSdk | typeof MastercardSdk | null> = {\n visa: VisaSdk,\n mc: MastercardSdk,\n default: null\n};\n\nconst getSchemeSdk = (scheme: string, environment: string, customConfig: CustomSdkConfiguration, analytics: IAnalytics): ISrcInitiator | null => {\n const SchemeSdkClass = sdkMap[scheme] || sdkMap.default;\n return SchemeSdkClass ? new SchemeSdkClass(environment, customConfig, analytics) : null;\n};\n\nexport interface ISrcSdkLoader {\n load(environment: string, analytics: IAnalytics): Promise<ISrcInitiator[]>;\n schemes: string[];\n}\n\nclass SrcSdkLoader implements ISrcSdkLoader {\n public readonly schemes: string[];\n\n private readonly customSdkConfiguration: CustomSdkConfiguration;\n\n constructor(schemes: string[], { dpaLocale = 'en_US', dpaPresentationName = '' }) {\n this.schemes = schemes;\n this.customSdkConfiguration = { dpaLocale, dpaPresentationName };\n }\n\n public async load(environment: string, analytics: IAnalytics): Promise<ISrcInitiator[]> {\n if (!this.schemes || this.schemes.length === 0) {\n throw new AdyenCheckoutError('ERROR', 'ClickToPay -> SrcSdkLoader: There are no schemes set to be loaded');\n }\n\n return new Promise((resolve, reject) => {\n const sdks: ISrcInitiator[] = this.schemes.map(scheme => getSchemeSdk(scheme, environment, this.customSdkConfiguration, analytics));\n const loadScriptPromises = sdks.map(sdk => sdk.loadSdkScript());\n\n void Promise.allSettled(loadScriptPromises).then(loadScriptResponses => {\n if (loadScriptResponses.every(isRejected)) {\n reject(\n new AdyenCheckoutError('ERROR', `ClickToPay -> SrcSdkLoader # Unable to load network schemes: ${this.schemes.toString()}`)\n );\n }\n\n const sdksLoaded = sdks.filter((sdk, index) => isFulfilled(loadScriptResponses[index]));\n\n resolve(sdksLoaded);\n });\n });\n }\n}\n\nexport default SrcSdkLoader;\n"],"names":["sdkMap","visa","VisaSdk","mc","MastercardSdk","default","SrcSdkLoader","load","environment","analytics","this","schemes","length","AdyenCheckoutError","Promise","resolve","reject","sdks","map","scheme","customConfig","SchemeSdkClass","getSchemeSdk","customSdkConfiguration","loadScriptPromises","sdk","loadSdkScript","allSettled","then","loadScriptResponses","every","isRejected","toString","sdksLoaded","filter","index","isFulfilled","constructor","dpaLocale","dpaPresentationName","_define_property"],"mappings":"yUAQA,MAAMA,EAAuE,CACzEC,KAAMC,EACNC,GAAIC,EACJC,QAAS,MAab,MAAMC,EAUF,UAAaC,CAAKC,EAAqBC,GACnC,IAAKC,KAAKC,SAAmC,IAAxBD,KAAKC,QAAQC,OAC9B,MAAM,IAAIC,EAAmB,QAAS,qEAG1C,OAAO,IAAIC,QAAQ,CAACC,EAASC,KACzB,MAAMC,EAAwBP,KAAKC,QAAQO,IAAIC,GA1BtC,EAACA,EAAgBX,EAAqBY,EAAsCX,KAC7F,MAAMY,EAAiBrB,EAAOmB,IAAWnB,EAAOK,QAChD,OAAOgB,EAAiB,IAAIA,EAAeb,EAAaY,EAAcX,GAAa,MAwBlBa,CAAaH,EAAQX,EAAaE,KAAKa,uBAAwBd,IAClHe,EAAqBP,EAAKC,IAAIO,GAAOA,EAAIC,iBAE1CZ,QAAQa,WAAWH,GAAoBI,KAAKC,IACzCA,EAAoBC,MAAMC,IAC1Bf,EACI,IAAIH,EAAmB,QAAS,gEAAgEH,KAAKC,QAAQqB,eAIrH,MAAMC,EAAahB,EAAKiB,OAAO,CAACT,EAAKU,IAAUC,EAAYP,EAAoBM,KAE/EpB,EAAQkB,MAGpB,CA1BA,WAAAI,CAAY1B,GAAmB2B,UAAEA,EAAY,QAAOC,oBAAEA,EAAsB,KAJ5EC,EAAA9B,KAAgBC,kBAEhB6B,EAAA9B,KAAiBa,iCAGbb,KAAKC,QAAUA,EACfD,KAAKa,uBAAyB,CAAEe,YAAWC,sBAC/C"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as r,useEffect as a}from"../../../external/preact/hooks/dist/hooks.js";import t from"../FormFields/Fieldset/Fieldset.js";import i from"../FormFields/Field/Field.js";import s from"./ReadOnlyCompanyDetails.js";import{companyDetailsValidationRules as o}from"./validate.js";import{useCoreContext as n}from"../../../core/Context/CoreProvider.js";import{getFormattedData as l}from"./utils.js";import m from"../../../utils/useForm/useForm.js";import d from"../FormFields/InputText.js";const u=["name","registrationNumber"];function p(u){const{label:p="",namePrefix:c,requiredFields:f,visibility:g}=u,{i18n:b}=n(),{handleChangeFor:F,triggerValidation:N,data:h,valid:j,errors:v,isValid:y}=m({schema:f,rules:{...o,...u.validationRules},defaultData:u.data}),C=r({});Object.keys(C.current).length||u.setComponentRef?.(C.current),C.current.showValidation=()=>{N()};const M=e=>`${c?`${c}.`:""}${e}`,x=e=>r=>{const{name:a}=r.target,t=a.split(`${c}.`).pop();F(t,e)(r)},k=e=>r=>{const{name:a}=r.target,t=a.split(`${c}.`).pop();F(t,e)(r)};return a(()=>{const e=l(h);u.onChange({data:e,valid:j,errors:v,isValid:y})},[h,j,v,y]),"hidden"===g?null:"readOnly"===g?e(s,{...u,data:h}):e(t,{classNameModifiers:[p],label:p},f.includes("name")&&e(i,{label:b.get("companyDetails.name"),classNameModifiers:["name"],errorMessage:!!v.name,i18n:b,name:M("companyName")},e(d,{name:M("name"),value:h.name,classNameModifiers:["name"],onInput:k("input"),onBlur:x("blur"),spellCheck:!1})),f.includes("registrationNumber")&&e(i,{label:b.get("companyDetails.registrationNumber"),classNameModifiers:["registrationNumber"],errorMessage:!!v.registrationNumber,i18n:b,name:M("registrationNumber")},e(d,{name:M("registrationNumber"),value:h.registrationNumber,classNameModifiers:["registrationNumber"],onInput:k("input"),onBlur:x("blur"),spellCheck:!1})))}p.defaultProps={data:{},onChange:()=>{},visibility:"editable",requiredFields:u,validationRules:o};export{u as COMPANY_DETAILS_SCHEMA,p as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as r,useEffect as a}from"../../../external/preact/hooks/dist/hooks.js";import t from"../FormFields/Fieldset/Fieldset.js";import i from"../FormFields/Field/Field.js";import s from"./ReadOnlyCompanyDetails.js";import{companyDetailsValidationRules as o}from"./validate.js";import{useCoreContext as n}from"../../../core/Context/CoreProvider.js";import{getFormattedData as l}from"./utils.js";import m from"../../../utils/useForm/useForm.js";import d from"../FormFields/InputText.js";const u=["name","registrationNumber"];function p(u){const{label:p="",namePrefix:c,requiredFields:f,visibility:g}=u,{i18n:b}=n(),{handleChangeFor:F,triggerValidation:N,data:h,valid:j,errors:v,isValid:y}=m({schema:f,rules:{...o,...u.validationRules},defaultData:u.data}),C=r({});Object.keys(C.current).length||u.setComponentRef?.(C.current),C.current.showValidation=()=>{N()};const M=e=>`${c?`${c}.`:""}${e}`,x=e=>r=>{const{name:a}=r.target,t=a.split(`${c}.`).pop();F(t,e)(r)},k=e=>r=>{const{name:a}=r.target,t=a.split(`${c}.`).pop();F(t,e)(r)};return a(()=>{const e=l(h);u.onChange({data:e,valid:j,errors:v,isValid:y})},[h,j,v,y]),"hidden"===g?null:"readOnly"===g?e(s,{...u,data:h}):e(t,{classNameModifiers:[p],label:p},f.includes("name")&&e(i,{label:b.get("companyDetails.name"),classNameModifiers:["name"],errorMessage:!!v.name,i18n:b,name:M("companyName")},e(d,{name:M("name"),value:h.name,classNameModifiers:["name"],onInput:k("input"),onBlur:x("blur"),spellcheck:!1})),f.includes("registrationNumber")&&e(i,{label:b.get("companyDetails.registrationNumber"),classNameModifiers:["registrationNumber"],errorMessage:!!v.registrationNumber,i18n:b,name:M("registrationNumber")},e(d,{name:M("registrationNumber"),value:h.registrationNumber,classNameModifiers:["registrationNumber"],onInput:k("input"),onBlur:x("blur"),spellcheck:!1})))}p.defaultProps={data:{},onChange:()=>{},visibility:"editable",requiredFields:u,validationRules:o};export{u as COMPANY_DETAILS_SCHEMA,p as default};
2
2
  //# sourceMappingURL=CompanyDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CompanyDetails.js","sources":["../../../../../src/components/internal/CompanyDetails/CompanyDetails.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport Fieldset from '../FormFields/Fieldset';\nimport Field from '../FormFields/Field';\nimport ReadOnlyCompanyDetails from './ReadOnlyCompanyDetails';\nimport { companyDetailsValidationRules } from './validate';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { getFormattedData } from './utils';\nimport { CompanyDetailsSchema, CompanyDetailsProps } from './types';\nimport useForm from '../../../utils/useForm';\nimport InputText from '../FormFields/InputText';\nimport { ComponentMethodsRef } from '../UIElement/types';\nimport { HandleChangeForModeType } from '../../../utils/useForm/types';\n\nexport const COMPANY_DETAILS_SCHEMA = ['name', 'registrationNumber'];\n\nexport default function CompanyDetails(props: CompanyDetailsProps) {\n const { label = '', namePrefix, requiredFields, visibility } = props;\n const { i18n } = useCoreContext();\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<CompanyDetailsSchema>({\n schema: requiredFields,\n rules: { ...companyDetailsValidationRules, ...props.validationRules },\n defaultData: props.data\n });\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const companyDetailsRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(companyDetailsRef.current).length) {\n props.setComponentRef?.(companyDetailsRef.current);\n }\n\n // Expose method expected by (parent) Address.tsx\n companyDetailsRef.current.showValidation = () => {\n triggerValidation();\n };\n\n const generateFieldName = (name: string): string => `${namePrefix ? `${namePrefix}.` : ''}${name}`;\n\n const eventHandler =\n (mode: HandleChangeForModeType): h.JSX.FocusEventHandler<HTMLInputElement> =>\n (e): void => {\n const { name } = e.target as HTMLInputElement;\n const key = name.split(`${namePrefix}.`).pop();\n\n handleChangeFor(key, mode)(e);\n };\n\n const inputEventHandler =\n (mode: HandleChangeForModeType): h.JSX.InputEventHandler<HTMLInputElement> =>\n (e): void => {\n const { name } = e.target as HTMLInputElement;\n const key = name.split(`${namePrefix}.`).pop();\n\n handleChangeFor(key, mode)(e);\n };\n\n useEffect(() => {\n const formattedData = getFormattedData(data);\n props.onChange({ data: formattedData, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n if (visibility === 'hidden') return null;\n if (visibility === 'readOnly') return <ReadOnlyCompanyDetails {...props} data={data} />;\n\n return (\n <Fieldset classNameModifiers={[label]} label={label}>\n {requiredFields.includes('name') && (\n <Field\n label={i18n.get('companyDetails.name')}\n classNameModifiers={['name']}\n errorMessage={!!errors.name}\n i18n={i18n}\n name={generateFieldName('companyName')}\n >\n <InputText\n name={generateFieldName('name')}\n value={data.name}\n classNameModifiers={['name']}\n onInput={inputEventHandler('input')}\n onBlur={eventHandler('blur')}\n spellCheck={false}\n />\n </Field>\n )}\n\n {requiredFields.includes('registrationNumber') && (\n <Field\n label={i18n.get('companyDetails.registrationNumber')}\n classNameModifiers={['registrationNumber']}\n errorMessage={!!errors.registrationNumber}\n i18n={i18n}\n name={generateFieldName('registrationNumber')}\n >\n <InputText\n name={generateFieldName('registrationNumber')}\n value={data.registrationNumber}\n classNameModifiers={['registrationNumber']}\n onInput={inputEventHandler('input')}\n onBlur={eventHandler('blur')}\n spellCheck={false}\n />\n </Field>\n )}\n </Fieldset>\n );\n}\n\nCompanyDetails.defaultProps = {\n data: {},\n onChange: () => {},\n visibility: 'editable',\n requiredFields: COMPANY_DETAILS_SCHEMA,\n validationRules: companyDetailsValidationRules\n};\n"],"names":["COMPANY_DETAILS_SCHEMA","CompanyDetails","props","label","namePrefix","requiredFields","visibility","i18n","useCoreContext","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","rules","companyDetailsValidationRules","validationRules","defaultData","companyDetailsRef","useRef","Object","keys","current","length","setComponentRef","showValidation","generateFieldName","name","eventHandler","mode","e","target","key","split","pop","inputEventHandler","useEffect","formattedData","getFormattedData","onChange","h","ReadOnlyCompanyDetails","Fieldset","classNameModifiers","includes","Field","get","errorMessage","InputText","value","onInput","onBlur","spellCheck","registrationNumber","defaultProps"],"mappings":"0jBAcaA,EAAyB,CAAC,OAAQ,sBAEhC,SAASC,EAAeC,GACnC,MAAMC,MAAEA,EAAQ,GAAEC,WAAEA,EAAUC,eAAEA,EAAcC,WAAEA,GAAeJ,GACzDK,KAAEA,GAASC,KACXC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA8B,CACvGC,OAAQX,EACRY,MAAO,IAAKC,KAAkChB,EAAMiB,iBACpDC,YAAalB,EAAMS,OAIjBU,EAAoBC,EAA4B,IAEjDC,OAAOC,KAAKH,EAAkBI,SAASC,QACxCxB,EAAMyB,kBAAkBN,EAAkBI,SAI9CJ,EAAkBI,QAAQG,eAAiB,KACvClB,KAGJ,MAAMmB,EAAqBC,GAAyB,GAAG1B,EAAa,GAAGA,KAAgB,KAAK0B,IAEtFC,EACDC,GACAC,IACG,MAAMH,KAAEA,GAASG,EAAEC,OACbC,EAAML,EAAKM,MAAM,GAAGhC,MAAeiC,MAEzC5B,EAAgB0B,EAAKH,EAArBvB,CAA2BwB,IAG7BK,EACDN,GACAC,IACG,MAAMH,KAAEA,GAASG,EAAEC,OACbC,EAAML,EAAKM,MAAM,GAAGhC,MAAeiC,MAEzC5B,EAAgB0B,EAAKH,EAArBvB,CAA2BwB,IAQnC,OALAM,EAAU,KACN,MAAMC,EAAgBC,EAAiB9B,GACvCT,EAAMwC,SAAS,CAAE/B,KAAM6B,EAAe5B,QAAOC,SAAQC,aACtD,CAACH,EAAMC,EAAOC,EAAQC,IAEN,WAAfR,EAAgC,KACjB,aAAfA,EAAkCqC,EAACC,EAAAA,IAA2B1C,EAAOS,KAAMA,IAG3EgC,EAACE,EAAAA,CAASC,mBAAoB,CAAC3C,GAAQA,MAAOA,GACzCE,EAAe0C,SAAS,SACrBJ,EAACK,EAAAA,CACG7C,MAAOI,EAAK0C,IAAI,uBAChBH,mBAAoB,CAAC,QACrBI,eAAgBrC,EAAOiB,KACvBvB,KAAMA,EACNuB,KAAMD,EAAkB,gBAExBc,EAACQ,EAAAA,CACGrB,KAAMD,EAAkB,QACxBuB,MAAOzC,EAAKmB,KACZgB,mBAAoB,CAAC,QACrBO,QAASf,EAAkB,SAC3BgB,OAAQvB,EAAa,QACrBwB,YAAY,KAKvBlD,EAAe0C,SAAS,uBACrBJ,EAACK,EAAAA,CACG7C,MAAOI,EAAK0C,IAAI,qCAChBH,mBAAoB,CAAC,sBACrBI,eAAgBrC,EAAO2C,mBACvBjD,KAAMA,EACNuB,KAAMD,EAAkB,uBAExBc,EAACQ,EAAAA,CACGrB,KAAMD,EAAkB,sBACxBuB,MAAOzC,EAAK6C,mBACZV,mBAAoB,CAAC,sBACrBO,QAASf,EAAkB,SAC3BgB,OAAQvB,EAAa,QACrBwB,YAAY,KAMpC,CAEAtD,EAAewD,aAAe,CAC1B9C,KAAM,CAAA,EACN+B,SAAU,OACVpC,WAAY,WACZD,eAAgBL,EAChBmB,gBAAiBD"}
1
+ {"version":3,"file":"CompanyDetails.js","sources":["../../../../../src/components/internal/CompanyDetails/CompanyDetails.tsx"],"sourcesContent":["import { h, FocusEventHandler, InputEventHandler } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport Fieldset from '../FormFields/Fieldset';\nimport Field from '../FormFields/Field';\nimport ReadOnlyCompanyDetails from './ReadOnlyCompanyDetails';\nimport { companyDetailsValidationRules } from './validate';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { getFormattedData } from './utils';\nimport { CompanyDetailsSchema, CompanyDetailsProps } from './types';\nimport useForm from '../../../utils/useForm';\nimport InputText from '../FormFields/InputText';\nimport { ComponentMethodsRef } from '../UIElement/types';\nimport { HandleChangeForModeType } from '../../../utils/useForm/types';\n\nexport const COMPANY_DETAILS_SCHEMA = ['name', 'registrationNumber'];\n\nexport default function CompanyDetails(props: Readonly<CompanyDetailsProps>) {\n const { label = '', namePrefix, requiredFields, visibility } = props;\n const { i18n } = useCoreContext();\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<CompanyDetailsSchema>({\n schema: requiredFields,\n rules: { ...companyDetailsValidationRules, ...props.validationRules },\n defaultData: props.data\n });\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const companyDetailsRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(companyDetailsRef.current).length) {\n props.setComponentRef?.(companyDetailsRef.current);\n }\n\n // Expose method expected by (parent) Address.tsx\n companyDetailsRef.current.showValidation = () => {\n triggerValidation();\n };\n\n const generateFieldName = (name: string): string => `${namePrefix ? `${namePrefix}.` : ''}${name}`;\n\n const eventHandler =\n (mode: HandleChangeForModeType): FocusEventHandler<HTMLInputElement> =>\n (e): void => {\n const { name } = e.target as HTMLInputElement;\n const key = name.split(`${namePrefix}.`).pop();\n\n handleChangeFor(key, mode)(e);\n };\n\n const inputEventHandler =\n (mode: HandleChangeForModeType): InputEventHandler<HTMLInputElement> =>\n (e): void => {\n const { name } = e.target as HTMLInputElement;\n const key = name.split(`${namePrefix}.`).pop();\n\n handleChangeFor(key, mode)(e);\n };\n\n useEffect(() => {\n const formattedData = getFormattedData(data);\n props.onChange({ data: formattedData, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n if (visibility === 'hidden') return null;\n if (visibility === 'readOnly') return <ReadOnlyCompanyDetails {...props} data={data} />;\n\n return (\n <Fieldset classNameModifiers={[label]} label={label}>\n {requiredFields.includes('name') && (\n <Field\n label={i18n.get('companyDetails.name')}\n classNameModifiers={['name']}\n errorMessage={!!errors.name}\n i18n={i18n}\n name={generateFieldName('companyName')}\n >\n <InputText\n name={generateFieldName('name')}\n value={data.name}\n classNameModifiers={['name']}\n onInput={inputEventHandler('input')}\n onBlur={eventHandler('blur')}\n spellcheck={false}\n />\n </Field>\n )}\n\n {requiredFields.includes('registrationNumber') && (\n <Field\n label={i18n.get('companyDetails.registrationNumber')}\n classNameModifiers={['registrationNumber']}\n errorMessage={!!errors.registrationNumber}\n i18n={i18n}\n name={generateFieldName('registrationNumber')}\n >\n <InputText\n name={generateFieldName('registrationNumber')}\n value={data.registrationNumber}\n classNameModifiers={['registrationNumber']}\n onInput={inputEventHandler('input')}\n onBlur={eventHandler('blur')}\n spellcheck={false}\n />\n </Field>\n )}\n </Fieldset>\n );\n}\n\nCompanyDetails.defaultProps = {\n data: {},\n onChange: () => {},\n visibility: 'editable',\n requiredFields: COMPANY_DETAILS_SCHEMA,\n validationRules: companyDetailsValidationRules\n};\n"],"names":["COMPANY_DETAILS_SCHEMA","CompanyDetails","props","label","namePrefix","requiredFields","visibility","i18n","useCoreContext","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","rules","companyDetailsValidationRules","validationRules","defaultData","companyDetailsRef","useRef","Object","keys","current","length","setComponentRef","showValidation","generateFieldName","name","eventHandler","mode","e","target","key","split","pop","inputEventHandler","useEffect","formattedData","getFormattedData","onChange","h","ReadOnlyCompanyDetails","Fieldset","classNameModifiers","includes","Field","get","errorMessage","InputText","value","onInput","onBlur","spellcheck","registrationNumber","defaultProps"],"mappings":"0jBAcaA,EAAyB,CAAC,OAAQ,sBAEhC,SAASC,EAAeC,GACnC,MAAMC,MAAEA,EAAQ,GAAEC,WAAEA,EAAUC,eAAEA,EAAcC,WAAEA,GAAeJ,GACzDK,KAAEA,GAASC,KACXC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA8B,CACvGC,OAAQX,EACRY,MAAO,IAAKC,KAAkChB,EAAMiB,iBACpDC,YAAalB,EAAMS,OAIjBU,EAAoBC,EAA4B,IAEjDC,OAAOC,KAAKH,EAAkBI,SAASC,QACxCxB,EAAMyB,kBAAkBN,EAAkBI,SAI9CJ,EAAkBI,QAAQG,eAAiB,KACvClB,KAGJ,MAAMmB,EAAqBC,GAAyB,GAAG1B,EAAa,GAAGA,KAAgB,KAAK0B,IAEtFC,EACDC,GACAC,IACG,MAAMH,KAAEA,GAASG,EAAEC,OACbC,EAAML,EAAKM,MAAM,GAAGhC,MAAeiC,MAEzC5B,EAAgB0B,EAAKH,EAArBvB,CAA2BwB,IAG7BK,EACDN,GACAC,IACG,MAAMH,KAAEA,GAASG,EAAEC,OACbC,EAAML,EAAKM,MAAM,GAAGhC,MAAeiC,MAEzC5B,EAAgB0B,EAAKH,EAArBvB,CAA2BwB,IAQnC,OALAM,EAAU,KACN,MAAMC,EAAgBC,EAAiB9B,GACvCT,EAAMwC,SAAS,CAAE/B,KAAM6B,EAAe5B,QAAOC,SAAQC,aACtD,CAACH,EAAMC,EAAOC,EAAQC,IAEN,WAAfR,EAAgC,KACjB,aAAfA,EAAkCqC,EAACC,EAAAA,IAA2B1C,EAAOS,KAAMA,IAG3EgC,EAACE,EAAAA,CAASC,mBAAoB,CAAC3C,GAAQA,MAAOA,GACzCE,EAAe0C,SAAS,SACrBJ,EAACK,EAAAA,CACG7C,MAAOI,EAAK0C,IAAI,uBAChBH,mBAAoB,CAAC,QACrBI,eAAgBrC,EAAOiB,KACvBvB,KAAMA,EACNuB,KAAMD,EAAkB,gBAExBc,EAACQ,EAAAA,CACGrB,KAAMD,EAAkB,QACxBuB,MAAOzC,EAAKmB,KACZgB,mBAAoB,CAAC,QACrBO,QAASf,EAAkB,SAC3BgB,OAAQvB,EAAa,QACrBwB,YAAY,KAKvBlD,EAAe0C,SAAS,uBACrBJ,EAACK,EAAAA,CACG7C,MAAOI,EAAK0C,IAAI,qCAChBH,mBAAoB,CAAC,sBACrBI,eAAgBrC,EAAO2C,mBACvBjD,KAAMA,EACNuB,KAAMD,EAAkB,uBAExBc,EAACQ,EAAAA,CACGrB,KAAMD,EAAkB,sBACxBuB,MAAOzC,EAAK6C,mBACZV,mBAAoB,CAAC,sBACrBO,QAASf,EAAkB,SAC3BgB,OAAQvB,EAAa,QACrBwB,YAAY,KAMpC,CAEAtD,EAAewD,aAAe,CAC1B9C,KAAM,CAAA,EACN+B,SAAU,OACVpC,WAAY,WACZD,eAAgBL,EAChBmB,gBAAiBD"}
@@ -1 +1 @@
1
- {"version":3,"file":"CountdownA11yReporter.js","sources":["../../../../../src/components/internal/Countdown/CountdownA11yReporter.ts"],"sourcesContent":["import { interpolateElement } from '../../../language/utils';\nimport { SRPanel } from '../../../core/Errors/SRPanel';\nimport Language from '../../../language';\nimport { CountdownTime } from './types';\n\ninterface ICountdownA11yService {\n srPanel: SRPanel;\n i18n: Language;\n}\n\nexport class CountdownA11yReporter {\n protected TRANSLATION_KEY = 'sr.wechatpay.timetopay';\n protected LONG_TIMEOUT = 180000;\n protected MID_TIMEOUT = 60000;\n protected SHORT_TIMEOUT = 30000;\n\n private readonly srPanel: SRPanel;\n private readonly i18n: Language;\n private srInterval: ReturnType<typeof setInterval>;\n private timeout: number;\n private timeLeft: CountdownTime;\n\n constructor(props: ICountdownA11yService) {\n const { srPanel, i18n } = props;\n\n this.srPanel = srPanel;\n this.i18n = i18n;\n // Force the srPanel to update ariaRelevant\n this.srPanel.setAriaProps({ 'aria-relevant': 'additions text' });\n }\n\n public update(time: CountdownTime): void {\n const { minutes, seconds, percentage } = time;\n if (minutes === '-' || seconds === '-') return;\n\n const minutesLeft = typeof minutes === 'string' ? parseInt(minutes, 10) : minutes;\n const secondsLeft = typeof seconds === 'string' ? parseInt(seconds, 10) : seconds;\n this.timeLeft = { minutes: minutesLeft, seconds: secondsLeft, percentage };\n\n if (minutesLeft > 5 && this.timeout !== this.LONG_TIMEOUT) {\n this.timeout = this.LONG_TIMEOUT;\n this.setInterval(this.timeout);\n }\n if (minutesLeft >= 1 && minutesLeft <= 5 && this.timeout !== this.MID_TIMEOUT) {\n this.timeout = this.MID_TIMEOUT;\n this.setInterval(this.timeout);\n }\n if (minutesLeft < 1 && secondsLeft > 0 && this.timeout !== this.SHORT_TIMEOUT) {\n this.timeout = this.SHORT_TIMEOUT;\n this.setInterval(this.timeout);\n }\n }\n\n public tearDown(): void {\n this.clearInterval();\n // Reset the srPanel ariaRelevant\n this.srPanel.setAriaProps({ 'aria-relevant': this.srPanel.constructor['defaultProps'].ariaAttributes['aria-relevant'] });\n this.srPanel.setMessages(null);\n }\n\n private setInterval(timeout: number): void {\n this.clearInterval();\n const setSrMessages = () => {\n this.srPanel.setMessages(null);\n this.srPanel.setMessages(this.getSrMessages(this.timeLeft));\n };\n // To execute immediately\n setSrMessages();\n this.srInterval = setInterval(setSrMessages, timeout);\n }\n\n private getSrMessages({ minutes, seconds }): Array<string> {\n const translation = this.i18n.get(this.TRANSLATION_KEY);\n const getTimeTranslation = (time: number) => (time !== 0 ? (translation: string) => `${time} ${translation}` : () => '');\n const fns = [minutes, seconds].map(getTimeTranslation);\n return [interpolateElement(translation, fns).join('')];\n }\n\n private clearInterval(): void {\n if (this.srInterval) clearInterval(this.srInterval);\n }\n}\n"],"names":["CountdownA11yReporter","update","time","minutes","seconds","percentage","minutesLeft","parseInt","secondsLeft","this","timeLeft","timeout","LONG_TIMEOUT","setInterval","MID_TIMEOUT","SHORT_TIMEOUT","tearDown","clearInterval","srPanel","setAriaProps","constructor","ariaAttributes","setMessages","setSrMessages","getSrMessages","srInterval","translation","i18n","get","TRANSLATION_KEY","fns","map","interpolateElement","join","props","_define_property"],"mappings":"wLAUO,MAAMA,EAqBFC,MAAAA,CAAOC,GACV,MAAMC,QAAEA,EAAOC,QAAEA,EAAOC,WAAEA,GAAeH,EACzC,GAAgB,MAAZC,GAA+B,MAAZC,EAAiB,OAExC,MAAME,EAAiC,iBAAZH,EAAuBI,SAASJ,EAAS,IAAMA,EACpEK,EAAiC,iBAAZJ,EAAuBG,SAASH,EAAS,IAAMA,EAC1EK,KAAKC,SAAW,CAAEP,QAASG,EAAaF,QAASI,EAAaH,cAE1DC,EAAc,GAAKG,KAAKE,UAAYF,KAAKG,eACzCH,KAAKE,QAAUF,KAAKG,aACpBH,KAAKI,YAAYJ,KAAKE,UAEtBL,GAAe,GAAKA,GAAe,GAAKG,KAAKE,UAAYF,KAAKK,cAC9DL,KAAKE,QAAUF,KAAKK,YACpBL,KAAKI,YAAYJ,KAAKE,UAEtBL,EAAc,GAAKE,EAAc,GAAKC,KAAKE,UAAYF,KAAKM,gBAC5DN,KAAKE,QAAUF,KAAKM,cACpBN,KAAKI,YAAYJ,KAAKE,SAE9B,CAEOK,QAAAA,GACHP,KAAKQ,gBAELR,KAAKS,QAAQC,aAAa,CAAE,gBAAiBV,KAAKS,QAAQE,YAAY,aAAgBC,eAAe,mBACrGZ,KAAKS,QAAQI,YAAY,KAC7B,CAEQT,WAAAA,CAAYF,GAChBF,KAAKQ,gBACL,MAAMM,EAAgB,KAClBd,KAAKS,QAAQI,YAAY,MACzBb,KAAKS,QAAQI,YAAYb,KAAKe,cAAcf,KAAKC,YAGrDa,IACAd,KAAKgB,WAAaZ,YAAYU,EAAeZ,EACjD,CAEQa,aAAAA,EAAcrB,QAAEA,EAAOC,QAAEA,IAC7B,MAAMsB,EAAcjB,KAAKkB,KAAKC,IAAInB,KAAKoB,iBAEjCC,EAAM,CAAC3B,EAASC,GAAS2B,IADH7B,GAA2B,IAATA,EAAcwB,GAAwB,GAAGxB,KAAQwB,IAAgB,IAAM,IAErH,MAAO,CAACM,EAAmBN,EAAaI,GAAKG,KAAK,IACtD,CAEQhB,aAAAA,GACAR,KAAKgB,YAAYR,cAAcR,KAAKgB,WAC5C,CA1DA,WAAAL,CAAYc,GAXZC,EAAA1B,KAAUoB,kBAAkB,0BAC5BM,EAAA1B,KAAUG,eAAe,MACzBuB,EAAA1B,KAAUK,cAAc,KACxBqB,EAAA1B,KAAUM,gBAAgB,KAE1BoB,EAAA1B,KAAiBS,eAAjB,GACAiB,EAAA1B,KAAiBkB,YAAjB,GACAQ,EAAA1B,KAAQgB,kBAAR,GACAU,EAAA1B,KAAQE,eAAR,GACAwB,EAAA1B,KAAQC,gBAAR,GAGI,MAAMQ,QAAEA,EAAOS,KAAEA,GAASO,EAE1BzB,KAAKS,QAAUA,EACfT,KAAKkB,KAAOA,EAEZlB,KAAKS,QAAQC,aAAa,CAAE,gBAAiB,kBACjD"}
1
+ {"version":3,"file":"CountdownA11yReporter.js","sources":["../../../../../src/components/internal/Countdown/CountdownA11yReporter.ts"],"sourcesContent":["import { interpolateElement } from '../../../language/utils';\nimport { SRPanel } from '../../../core/Errors/SRPanel';\nimport Language from '../../../language';\nimport { CountdownTime } from './types';\n\ninterface ICountdownA11yService {\n srPanel: SRPanel;\n i18n: Language;\n}\n\nexport class CountdownA11yReporter {\n protected TRANSLATION_KEY = 'sr.wechatpay.timetopay';\n protected LONG_TIMEOUT = 180000;\n protected MID_TIMEOUT = 60000;\n protected SHORT_TIMEOUT = 30000;\n\n private readonly srPanel: SRPanel;\n private readonly i18n: Language;\n private srInterval: ReturnType<typeof setInterval>;\n private timeout: number;\n private timeLeft: CountdownTime;\n\n constructor(props: ICountdownA11yService) {\n const { srPanel, i18n } = props;\n\n this.srPanel = srPanel;\n this.i18n = i18n;\n // Force the srPanel to update ariaRelevant\n this.srPanel.setAriaProps({ 'aria-relevant': 'additions text' });\n }\n\n public update(time: CountdownTime): void {\n const { minutes, seconds, percentage } = time;\n if (minutes === '-' || seconds === '-') return;\n\n const minutesLeft = typeof minutes === 'string' ? parseInt(minutes, 10) : minutes;\n const secondsLeft = typeof seconds === 'string' ? parseInt(seconds, 10) : seconds;\n this.timeLeft = { minutes: minutesLeft, seconds: secondsLeft, percentage };\n\n if (minutesLeft > 5 && this.timeout !== this.LONG_TIMEOUT) {\n this.timeout = this.LONG_TIMEOUT;\n this.setInterval(this.timeout);\n }\n if (minutesLeft >= 1 && minutesLeft <= 5 && this.timeout !== this.MID_TIMEOUT) {\n this.timeout = this.MID_TIMEOUT;\n this.setInterval(this.timeout);\n }\n if (minutesLeft < 1 && secondsLeft > 0 && this.timeout !== this.SHORT_TIMEOUT) {\n this.timeout = this.SHORT_TIMEOUT;\n this.setInterval(this.timeout);\n }\n }\n\n public tearDown(): void {\n this.clearInterval();\n // Reset the srPanel ariaRelevant\n this.srPanel.setAriaProps({ 'aria-relevant': this.srPanel.constructor['defaultProps'].ariaAttributes['aria-relevant'] });\n this.srPanel.setMessages(null);\n }\n\n private setInterval(timeout: number): void {\n this.clearInterval();\n const setSrMessages = () => {\n this.srPanel.setMessages(null);\n this.srPanel.setMessages(this.getSrMessages(this.timeLeft));\n };\n // To execute immediately\n setSrMessages();\n this.srInterval = setInterval(setSrMessages, timeout);\n }\n\n private getSrMessages({ minutes, seconds }): Array<string> {\n const translation = this.i18n.get(this.TRANSLATION_KEY);\n const getTimeTranslation = (time: number) => (time !== 0 ? (translation: string) => `${time} ${translation}` : () => '');\n const fns = [minutes, seconds].map(getTimeTranslation);\n return [interpolateElement(translation, fns).join('')];\n }\n\n private clearInterval(): void {\n if (this.srInterval) clearInterval(this.srInterval);\n }\n}\n"],"names":["CountdownA11yReporter","update","time","minutes","seconds","percentage","minutesLeft","parseInt","secondsLeft","this","timeLeft","timeout","LONG_TIMEOUT","setInterval","MID_TIMEOUT","SHORT_TIMEOUT","tearDown","clearInterval","srPanel","setAriaProps","constructor","ariaAttributes","setMessages","setSrMessages","getSrMessages","srInterval","translation","i18n","get","TRANSLATION_KEY","fns","map","interpolateElement","join","props","_define_property"],"mappings":"wLAUO,MAAMA,EAqBFC,MAAAA,CAAOC,GACV,MAAMC,QAAEA,EAAOC,QAAEA,EAAOC,WAAEA,GAAeH,EACzC,GAAgB,MAAZC,GAA+B,MAAZC,EAAiB,OAExC,MAAME,EAAiC,iBAAZH,EAAuBI,SAASJ,EAAS,IAAMA,EACpEK,EAAiC,iBAAZJ,EAAuBG,SAASH,EAAS,IAAMA,EAC1EK,KAAKC,SAAW,CAAEP,QAASG,EAAaF,QAASI,EAAaH,cAE1DC,EAAc,GAAKG,KAAKE,UAAYF,KAAKG,eACzCH,KAAKE,QAAUF,KAAKG,aACpBH,KAAKI,YAAYJ,KAAKE,UAEtBL,GAAe,GAAKA,GAAe,GAAKG,KAAKE,UAAYF,KAAKK,cAC9DL,KAAKE,QAAUF,KAAKK,YACpBL,KAAKI,YAAYJ,KAAKE,UAEtBL,EAAc,GAAKE,EAAc,GAAKC,KAAKE,UAAYF,KAAKM,gBAC5DN,KAAKE,QAAUF,KAAKM,cACpBN,KAAKI,YAAYJ,KAAKE,SAE9B,CAEOK,QAAAA,GACHP,KAAKQ,gBAELR,KAAKS,QAAQC,aAAa,CAAE,gBAAiBV,KAAKS,QAAQE,YAAY,aAAgBC,eAAe,mBACrGZ,KAAKS,QAAQI,YAAY,KAC7B,CAEQT,WAAAA,CAAYF,GAChBF,KAAKQ,gBACL,MAAMM,EAAgB,KAClBd,KAAKS,QAAQI,YAAY,MACzBb,KAAKS,QAAQI,YAAYb,KAAKe,cAAcf,KAAKC,YAGrDa,IACAd,KAAKgB,WAAaZ,YAAYU,EAAeZ,EACjD,CAEQa,aAAAA,EAAcrB,QAAEA,EAAOC,QAAEA,IAC7B,MAAMsB,EAAcjB,KAAKkB,KAAKC,IAAInB,KAAKoB,iBAEjCC,EAAM,CAAC3B,EAASC,GAAS2B,IADH7B,GAA2B,IAATA,EAAcwB,GAAwB,GAAGxB,KAAQwB,IAAgB,IAAM,IAErH,MAAO,CAACM,EAAmBN,EAAaI,GAAKG,KAAK,IACtD,CAEQhB,aAAAA,GACAR,KAAKgB,YAAYR,cAAcR,KAAKgB,WAC5C,CA1DA,WAAAL,CAAYc,GAXZC,EAAA1B,KAAUoB,kBAAkB,0BAC5BM,EAAA1B,KAAUG,eAAe,MACzBuB,EAAA1B,KAAUK,cAAc,KACxBqB,EAAA1B,KAAUM,gBAAgB,KAE1BoB,EAAA1B,KAAiBS,kBACjBiB,EAAA1B,KAAiBkB,eACjBQ,EAAA1B,KAAQgB,qBACRU,EAAA1B,KAAQE,kBACRwB,EAAA1B,KAAQC,mBAGJ,MAAMQ,QAAEA,EAAOS,KAAEA,GAASO,EAE1BzB,KAAKS,QAAUA,EACfT,KAAKkB,KAAOA,EAEZlB,KAAKS,QAAQC,aAAa,CAAE,gBAAiB,kBACjD"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{getTimeDifference as t}from"./utils.js";import{useRef as s,useState as n,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{useCountdownA11yReporter as a}from"./useCountdownA11yReporter.js";function r({minutesFromNow:r,onTick:c=()=>{},onCompleted:m=()=>{}}){const u=s((e=>{const t=6e4*e,s=(new Date).getTime();return{startTime:new Date(s),endTime:new Date(s+t)}})(r)),{startTime:i,endTime:p}=u.current,[d,l]=n({minutes:"-",seconds:"-",percentage:0});return a(d),o(()=>{const e=setInterval(()=>{const{minutes:e,seconds:s,percentage:n,completed:o}=t(i,p);if(o)m();else{const t={minutes:e,seconds:s,percentage:n};l(t),c(t)}},1e3);return()=>{clearInterval(e)}},[]),e("span",{className:"adyen-checkout__countdown",role:"timer"},e("span",{className:"countdown__minutes"},d.minutes),e("span",{className:"countdown__separator"},":"),e("span",{className:"countdown__seconds"},d.seconds))}export{r as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{getTimeDifference as t}from"./utils.js";import{useRef as s,useState as n,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{useCountdownA11yReporter as a}from"./useCountdownA11yReporter.js";function r({minutesFromNow:r,onTick:c=()=>{},onCompleted:m=()=>{}}){const u=s((e=>{const t=6e4*e,s=(new Date).getTime();return{startTime:new Date(s),endTime:new Date(s+t)}})(r)),{startTime:i,endTime:p}=u.current,[d,l]=n({minutes:"--",seconds:"--",percentage:0});return a(d),o(()=>{const e=setInterval(()=>{const{minutes:e,seconds:s,percentage:n,completed:o}=t(i,p);if(o)m();else{const t={minutes:e,seconds:s,percentage:n};l(t),c(t)}},1e3);return()=>{clearInterval(e)}},[]),e("span",{className:"adyen-checkout__countdown",role:"timer"},e("span",{className:"countdown__minutes"},d.minutes),e("span",{className:"countdown__separator"},":"),e("span",{className:"countdown__seconds"},d.seconds))}export{r as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/internal/Countdown/index.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { getTimeDifference } from './utils';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { CountdownProps, CountdownTime } from './types';\nimport { useCountdownA11yReporter } from './useCountdownA11yReporter';\n\nconst calculateStartAndEndTime = (minutesFromNow: number) => {\n const secondsFromNow = minutesFromNow * 60000;\n const nowTime = new Date().getTime();\n return { startTime: new Date(nowTime), endTime: new Date(nowTime + secondsFromNow) };\n};\n\nfunction Countdown({ minutesFromNow, onTick = () => {}, onCompleted = () => {} }: CountdownProps) {\n const startAndEndTime = useRef(calculateStartAndEndTime(minutesFromNow));\n const { startTime, endTime } = startAndEndTime.current;\n const [time, setTime] = useState<CountdownTime>({\n minutes: '-',\n seconds: '-',\n percentage: 0\n });\n useCountdownA11yReporter(time);\n\n useEffect(() => {\n const tick = () => {\n const { minutes, seconds, percentage, completed } = getTimeDifference(startTime, endTime);\n if (completed) {\n onCompleted();\n } else {\n const timeLeft = { minutes, seconds, percentage };\n setTime(timeLeft);\n onTick(timeLeft);\n }\n };\n const interval = setInterval(tick, 1000);\n\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (\n <span className=\"adyen-checkout__countdown\" role=\"timer\">\n <span className=\"countdown__minutes\">{time.minutes}</span>\n <span className=\"countdown__separator\">:</span>\n <span className=\"countdown__seconds\">{time.seconds}</span>\n </span>\n );\n}\n\nexport default Countdown;\n"],"names":["Countdown","minutesFromNow","onTick","onCompleted","startAndEndTime","useRef","secondsFromNow","nowTime","Date","getTime","startTime","endTime","calculateStartAndEndTime","current","time","setTime","useState","minutes","seconds","percentage","useCountdownA11yReporter","useEffect","interval","setInterval","completed","getTimeDifference","timeLeft","clearInterval","h","span","className","role"],"mappings":"mSAYA,SAASA,GAAUC,eAAEA,EAAcC,OAAEA,EAAS,OAAQC,YAAEA,EAAc,SAClE,MAAMC,EAAkBC,EAPK,CAACJ,IAC9B,MAAMK,EAAkC,IAAjBL,EACjBM,GAAU,IAAIC,MAAOC,UAC3B,MAAO,CAAEC,UAAW,IAAIF,KAAKD,GAAUI,QAAS,IAAIH,KAAKD,EAAUD,KAIpCM,CAAyBX,KAClDS,UAAEA,EAASC,QAAEA,GAAYP,EAAgBS,SACxCC,EAAMC,GAAWC,EAAwB,CAC5CC,QAAS,IACTC,QAAS,IACTC,WAAY,IAsBhB,OApBAC,EAAyBN,GAEzBO,EAAU,KACN,MAUMC,EAAWC,YAVJ,KACT,MAAMN,QAAEA,EAAOC,QAAEA,EAAOC,WAAEA,EAAUK,UAAEA,GAAcC,EAAkBf,EAAWC,GACjF,GAAIa,EACArB,QACG,CACH,MAAMuB,EAAW,CAAET,UAASC,UAASC,cACrCJ,EAAQW,GACRxB,EAAOwB,EACX,GAE+B,KAEnC,MAAO,KACHC,cAAcL,KAEnB,IAGCM,EAACC,OAAAA,CAAKC,UAAU,4BAA4BC,KAAK,SAC7CH,EAACC,OAAAA,CAAKC,UAAU,sBAAsBhB,EAAKG,SAC3CW,EAACC,OAAAA,CAAKC,UAAU,wBAAuB,KACvCF,EAACC,OAAAA,CAAKC,UAAU,sBAAsBhB,EAAKI,SAGvD"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/internal/Countdown/index.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { getTimeDifference } from './utils';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { CountdownProps, CountdownTime } from './types';\nimport { useCountdownA11yReporter } from './useCountdownA11yReporter';\n\nconst calculateStartAndEndTime = (minutesFromNow: number) => {\n const secondsFromNow = minutesFromNow * 60000;\n const nowTime = new Date().getTime();\n return { startTime: new Date(nowTime), endTime: new Date(nowTime + secondsFromNow) };\n};\n\nfunction Countdown({ minutesFromNow, onTick = () => {}, onCompleted = () => {} }: CountdownProps) {\n const startAndEndTime = useRef(calculateStartAndEndTime(minutesFromNow));\n const { startTime, endTime } = startAndEndTime.current;\n const [time, setTime] = useState<CountdownTime>({\n minutes: '--',\n seconds: '--',\n percentage: 0\n });\n useCountdownA11yReporter(time);\n\n useEffect(() => {\n const tick = () => {\n const { minutes, seconds, percentage, completed } = getTimeDifference(startTime, endTime);\n if (completed) {\n onCompleted();\n } else {\n const timeLeft = { minutes, seconds, percentage };\n setTime(timeLeft);\n onTick(timeLeft);\n }\n };\n const interval = setInterval(tick, 1000);\n\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n return (\n <span className=\"adyen-checkout__countdown\" role=\"timer\">\n <span className=\"countdown__minutes\">{time.minutes}</span>\n <span className=\"countdown__separator\">:</span>\n <span className=\"countdown__seconds\">{time.seconds}</span>\n </span>\n );\n}\n\nexport default Countdown;\n"],"names":["Countdown","minutesFromNow","onTick","onCompleted","startAndEndTime","useRef","secondsFromNow","nowTime","Date","getTime","startTime","endTime","calculateStartAndEndTime","current","time","setTime","useState","minutes","seconds","percentage","useCountdownA11yReporter","useEffect","interval","setInterval","completed","getTimeDifference","timeLeft","clearInterval","h","span","className","role"],"mappings":"mSAYA,SAASA,GAAUC,eAAEA,EAAcC,OAAEA,EAAS,OAAQC,YAAEA,EAAc,SAClE,MAAMC,EAAkBC,EAPK,CAACJ,IAC9B,MAAMK,EAAkC,IAAjBL,EACjBM,GAAU,IAAIC,MAAOC,UAC3B,MAAO,CAAEC,UAAW,IAAIF,KAAKD,GAAUI,QAAS,IAAIH,KAAKD,EAAUD,KAIpCM,CAAyBX,KAClDS,UAAEA,EAASC,QAAEA,GAAYP,EAAgBS,SACxCC,EAAMC,GAAWC,EAAwB,CAC5CC,QAAS,KACTC,QAAS,KACTC,WAAY,IAsBhB,OApBAC,EAAyBN,GAEzBO,EAAU,KACN,MAUMC,EAAWC,YAVJ,KACT,MAAMN,QAAEA,EAAOC,QAAEA,EAAOC,WAAEA,EAAUK,UAAEA,GAAcC,EAAkBf,EAAWC,GACjF,GAAIa,EACArB,QACG,CACH,MAAMuB,EAAW,CAAET,UAASC,UAASC,cACrCJ,EAAQW,GACRxB,EAAOwB,EACX,GAE+B,KAEnC,MAAO,KACHC,cAAcL,KAEnB,IAGCM,EAACC,OAAAA,CAAKC,UAAU,4BAA4BC,KAAK,SAC7CH,EAACC,OAAAA,CAAKC,UAAU,sBAAsBhB,EAAKG,SAC3CW,EAACC,OAAAA,CAAKC,UAAU,wBAAuB,KACvCF,EAACC,OAAAA,CAAKC,UAAU,sBAAsBhB,EAAKI,SAGvD"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useCallback as r}from"../../../external/preact/hooks/dist/hooks.js";import n from"../../../_virtual/index.js";import{ARIA_ERROR_SUFFIX as a,ARIA_CONTEXT_SUFFIX as o}from"../../../core/Errors/constants.js";function t({setRef:t,...s}){const{autoCorrect:l,classNameModifiers:i,isInvalid:u,isValid:d,readonly:c=null,spellCheck:p,type:y,uniqueId:m,disabled:h}=s,f=s.className;Object.prototype.hasOwnProperty.call(s,"onChange")&&console.error("Error: Form fields that rely on InputBase may not have an onChange property");const _=r(e=>{s.onInput(e)},[s.onInput]),k=r(e=>{s?.onKeyPress&&s.onKeyPress(e)},[s?.onKeyPress]),v=r(e=>{s?.onKeyUp&&s.onKeyUp(e)},[s?.onKeyUp]),C=r(e=>{s?.onBlurHandler?.(e),s.trimOnBlur&&(e.target.value=e.target.value.trim()),s?.onBlur?.(e)},[s.onBlur,s.onBlurHandler]),I=r(e=>{s?.onFocusHandler?.(e)},[s.onFocusHandler]),K=n("adyen-checkout__input",[`adyen-checkout__input--${y}`],f,{"adyen-checkout__input--invalid":u,"adyen-checkout__input--valid":d},i.map(e=>`adyen-checkout__input--${e}`)),{classNameModifiers:B,uniqueId:b,isInvalid:x,isValid:P,addContextualElement:j,...N}=s;return e("input",{id:m,...N,"aria-required":N.required,type:y,className:K,readOnly:c,spellCheck:p,autoCorrect:l,"aria-describedby":`${m}${u?a:o}`,"aria-invalid":u,onInput:_,onBlur:C,onFocus:I,onKeyUp:v,onKeyPress:k,disabled:h,ref:t})}t.defaultProps={type:"text",classNameModifiers:[]};export{t as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useCallback as r}from"../../../external/preact/hooks/dist/hooks.js";import n from"../../../_virtual/index.js";import{ARIA_ERROR_SUFFIX as a,ARIA_CONTEXT_SUFFIX as o}from"../../../core/Errors/constants.js";function t({setRef:t,...s}){const{autoCorrect:l,classNameModifiers:i,isInvalid:u,isValid:d,readonly:c=null,spellcheck:p,type:y,uniqueId:m,disabled:h}=s,f=s.className;Object.prototype.hasOwnProperty.call(s,"onChange")&&console.error("Error: Form fields that rely on InputBase may not have an onChange property");const _=r(e=>{s.onInput(e)},[s.onInput]),k=r(e=>{s?.onKeyPress&&s.onKeyPress(e)},[s?.onKeyPress]),v=r(e=>{s?.onKeyUp&&s.onKeyUp(e)},[s?.onKeyUp]),I=r(e=>{s?.onBlurHandler?.(e),s.trimOnBlur&&(e.target.value=e.target.value.trim()),s?.onBlur?.(e)},[s.onBlur,s.onBlurHandler]),K=r(e=>{s?.onFocusHandler?.(e)},[s.onFocusHandler]),B=n("adyen-checkout__input",[`adyen-checkout__input--${y}`],f,{"adyen-checkout__input--invalid":u,"adyen-checkout__input--valid":d},i.map(e=>`adyen-checkout__input--${e}`)),{classNameModifiers:b,uniqueId:x,isInvalid:C,isValid:P,addContextualElement:j,...N}=s;return e("input",{id:m,...N,"aria-required":N.required,type:y,className:B,readOnly:c,spellcheck:p,autoCorrect:l,"aria-describedby":`${m}${u?a:o}`,"aria-invalid":u,onInput:_,onBlur:I,onFocus:K,onKeyUp:v,onKeyPress:k,disabled:h,ref:t})}t.defaultProps={type:"text",classNameModifiers:[]};export{t as default};
2
2
  //# sourceMappingURL=InputBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputBase.js","sources":["../../../../../src/components/internal/FormFields/InputBase.tsx"],"sourcesContent":["import { h, RefCallback } from 'preact';\nimport { useCallback } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { ARIA_CONTEXT_SUFFIX, ARIA_ERROR_SUFFIX } from '../../../core/Errors/constants';\nimport Language from '../../../language';\nimport './FormFields.scss';\n\nexport interface InputBaseProps extends h.JSX.HTMLAttributes<HTMLInputElement> {\n classNameModifiers?: string[];\n isInvalid?: boolean;\n isValid?: boolean;\n readonly?: boolean;\n uniqueId?: string;\n disabled?: boolean;\n className?: string;\n placeholder?: string;\n value?: string;\n name?: string;\n checked?: boolean;\n setRef?: RefCallback<HTMLInputElement>;\n trimOnBlur?: boolean;\n i18n?: Language;\n label?: string;\n onBlurHandler?: h.JSX.GenericEventHandler<HTMLInputElement>;\n onFocusHandler?: h.JSX.GenericEventHandler<HTMLInputElement>;\n maxlength?: number | null;\n addContextualElement?: boolean;\n type?: string;\n}\n\nexport default function InputBase({ setRef, ...props }: InputBaseProps) {\n const { autoCorrect, classNameModifiers, isInvalid, isValid, readonly = null, spellCheck, type, uniqueId, disabled } = props;\n const className = props.className;\n\n /**\n * To avoid confusion with misplaced/misdirected onChange handlers - InputBase only accepts onInput, onBlur & onFocus handlers.\n * The first 2 being the means by which we expect useForm--handleChangeFor validation functionality to be applied.\n */\n if (Object.prototype.hasOwnProperty.call(props, 'onChange')) {\n console.error('Error: Form fields that rely on InputBase may not have an onChange property');\n }\n\n const handleInput = useCallback(\n (event: h.JSX.TargetedInputEvent<HTMLInputElement>) => {\n props.onInput(event);\n },\n [props.onInput]\n );\n\n /**\n * Event is fired when a key that produces a character value is pressed down.\n * ENTER keypress also triggers this event.\n *\n * TODO: 'keypress' event is deprecated\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/keypress_event\n */\n const handleKeyPress = useCallback(\n (event: h.JSX.TargetedKeyboardEvent<HTMLInputElement>) => {\n if (props?.onKeyPress) props.onKeyPress(event);\n },\n [props?.onKeyPress]\n );\n\n /**\n * Event is fired when certain keys are pressed (keys that do not output characters):\n * Backspace, Arrow keys, Shift, Ctrl, Command, Option, Esc\n *\n * Exception: ENTER keypress triggers 'onKeyPress' AND 'onKeyUp'\n */\n const handleKeyUp = useCallback(\n (event: h.JSX.TargetedKeyboardEvent<HTMLInputElement>) => {\n if (props?.onKeyUp) props.onKeyUp(event);\n },\n [props?.onKeyUp]\n );\n\n const handleBlur = useCallback(\n (event: h.JSX.TargetedFocusEvent<HTMLInputElement>) => {\n props?.onBlurHandler?.(event); // From Field component\n\n if (props.trimOnBlur) {\n (event.target as HTMLInputElement).value = (event.target as HTMLInputElement).value.trim(); // needed to trim trailing spaces in field (leading spaces can be done via formatting)\n }\n\n props?.onBlur?.(event);\n },\n [props.onBlur, props.onBlurHandler]\n );\n\n const handleFocus = useCallback(\n (event: h.JSX.TargetedEvent<HTMLInputElement>) => {\n props?.onFocusHandler?.(event); // From Field component\n },\n [props.onFocusHandler]\n );\n\n const inputClassNames = classNames(\n 'adyen-checkout__input',\n [`adyen-checkout__input--${type}`],\n className,\n {\n 'adyen-checkout__input--invalid': isInvalid,\n 'adyen-checkout__input--valid': isValid\n },\n classNameModifiers.map(m => `adyen-checkout__input--${m}`)\n );\n\n // Don't spread classNameModifiers etc to input element (it ends up as an attribute on the element itself)\n const { classNameModifiers: cnm, uniqueId: uid, isInvalid: iiv, isValid: iv, addContextualElement: ace, ...newProps } = props;\n\n return (\n <input\n id={uniqueId}\n {...newProps}\n aria-required={newProps.required}\n type={type}\n className={inputClassNames}\n readOnly={readonly}\n spellCheck={spellCheck}\n autoCorrect={autoCorrect}\n aria-describedby={`${uniqueId}${isInvalid ? ARIA_ERROR_SUFFIX : ARIA_CONTEXT_SUFFIX}`}\n aria-invalid={isInvalid}\n onInput={handleInput}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onKeyUp={handleKeyUp}\n onKeyPress={handleKeyPress}\n disabled={disabled}\n ref={setRef}\n />\n );\n}\n\nInputBase.defaultProps = {\n type: 'text',\n classNameModifiers: []\n};\n"],"names":["InputBase","setRef","props","autoCorrect","classNameModifiers","isInvalid","isValid","readonly","spellCheck","type","uniqueId","disabled","className","Object","prototype","hasOwnProperty","call","console","error","handleInput","useCallback","event","onInput","handleKeyPress","onKeyPress","handleKeyUp","onKeyUp","handleBlur","onBlurHandler","trimOnBlur","target","value","trim","onBlur","handleFocus","onFocusHandler","inputClassNames","classNames","map","m","cnm","uid","iiv","iv","addContextualElement","ace","newProps","h","input","id","aria-required","required","readOnly","aria-describedby","ARIA_ERROR_SUFFIX","ARIA_CONTEXT_SUFFIX","aria-invalid","onFocus","ref","defaultProps"],"mappings":"4RA8Be,SAASA,GAAUC,OAAEA,KAAWC,IAC3C,MAAMC,YAAEA,EAAWC,mBAAEA,EAAkBC,UAAEA,EAASC,QAAEA,EAAOC,SAAEA,EAAW,KAAIC,WAAEA,EAAUC,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,GAAaT,EACjHU,EAAYV,EAAMU,UAMpBC,OAAOC,UAAUC,eAAeC,KAAKd,EAAO,aAC5Ce,QAAQC,MAAM,+EAGlB,MAAMC,EAAcC,EACfC,IACGnB,EAAMoB,QAAQD,IAElB,CAACnB,EAAMoB,UAULC,EAAiBH,EAClBC,IACOnB,GAAOsB,YAAYtB,EAAMsB,WAAWH,IAE5C,CAACnB,GAAOsB,aASNC,EAAcL,EACfC,IACOnB,GAAOwB,SAASxB,EAAMwB,QAAQL,IAEtC,CAACnB,GAAOwB,UAGNC,EAAaP,EACdC,IACGnB,GAAO0B,gBAAgBP,GAEnBnB,EAAM2B,aACLR,EAAMS,OAA4BC,MAAQV,EAAOS,OAA4BC,MAAMC,QAGxF9B,GAAO+B,SAASZ,IAEpB,CAACnB,EAAM+B,OAAQ/B,EAAM0B,gBAGnBM,EAAcd,EACfC,IACGnB,GAAOiC,iBAAiBd,IAE5B,CAACnB,EAAMiC,iBAGLC,EAAkBC,EACpB,wBACA,CAAC,0BAA0B5B,KAC3BG,EACA,CACI,iCAAkCP,EAClC,+BAAgCC,GAEpCF,EAAmBkC,IAAIC,GAAK,0BAA0BA,OAIlDnC,mBAAoBoC,EAAK9B,SAAU+B,EAAKpC,UAAWqC,EAAKpC,QAASqC,EAAIC,qBAAsBC,KAAQC,GAAa5C,EAExH,OACI6C,EAACC,QAAAA,CACGC,GAAIvC,KACAoC,EACJI,gBAAeJ,EAASK,SACxB1C,KAAMA,EACNG,UAAWwB,EACXgB,SAAU7C,EACVC,WAAYA,EACZL,YAAaA,EACbkD,mBAAkB,GAAG3C,IAAWL,EAAYiD,EAAoBC,IAChEC,eAAcnD,EACdiB,QAASH,EACTc,OAAQN,EACR8B,QAASvB,EACTR,QAASD,EACTD,WAAYD,EACZZ,SAAUA,EACV+C,IAAKzD,GAGjB,CAEAD,EAAU2D,aAAe,CACrBlD,KAAM,OACNL,mBAAoB"}
1
+ {"version":3,"file":"InputBase.js","sources":["../../../../../src/components/internal/FormFields/InputBase.tsx"],"sourcesContent":["import {\n h,\n RefCallback,\n InputHTMLAttributes,\n GenericEventHandler,\n TargetedInputEvent,\n TargetedKeyboardEvent,\n TargetedFocusEvent,\n TargetedEvent\n} from 'preact';\nimport { useCallback } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { ARIA_CONTEXT_SUFFIX, ARIA_ERROR_SUFFIX } from '../../../core/Errors/constants';\nimport Language from '../../../language';\nimport './FormFields.scss';\n\nexport interface InputBaseProps extends InputHTMLAttributes {\n classNameModifiers?: string[];\n isInvalid?: boolean;\n isValid?: boolean;\n readonly?: boolean;\n uniqueId?: string;\n disabled?: boolean;\n className?: string;\n placeholder?: string;\n value?: string;\n name?: string;\n checked?: boolean;\n setRef?: RefCallback<HTMLInputElement>;\n trimOnBlur?: boolean;\n i18n?: Language;\n label?: string;\n onBlurHandler?: GenericEventHandler<HTMLInputElement>;\n onFocusHandler?: GenericEventHandler<HTMLInputElement>;\n maxlength?: number | null;\n addContextualElement?: boolean;\n type?: string;\n}\n\nexport default function InputBase({ setRef, ...props }: Readonly<InputBaseProps>) {\n const { autoCorrect, classNameModifiers, isInvalid, isValid, readonly = null, spellcheck, type, uniqueId, disabled } = props;\n const className = props.className;\n\n /**\n * To avoid confusion with misplaced/misdirected onChange handlers - InputBase only accepts onInput, onBlur & onFocus handlers.\n * The first 2 being the means by which we expect useForm--handleChangeFor validation functionality to be applied.\n */\n if (Object.prototype.hasOwnProperty.call(props, 'onChange')) {\n console.error('Error: Form fields that rely on InputBase may not have an onChange property');\n }\n\n const handleInput = useCallback(\n (event: TargetedInputEvent<HTMLInputElement>) => {\n props.onInput(event);\n },\n [props.onInput]\n );\n\n /**\n * Event is fired when a key that produces a character value is pressed down.\n * ENTER keypress also triggers this event.\n *\n * TODO: 'keypress' event is deprecated\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/keypress_event\n */\n const handleKeyPress = useCallback(\n (event: TargetedKeyboardEvent<HTMLInputElement>) => {\n if (props?.onKeyPress) props.onKeyPress(event);\n },\n [props?.onKeyPress]\n );\n\n /**\n * Event is fired when certain keys are pressed (keys that do not output characters):\n * Backspace, Arrow keys, Shift, Ctrl, Command, Option, Esc\n *\n * Exception: ENTER keypress triggers 'onKeyPress' AND 'onKeyUp'\n */\n const handleKeyUp = useCallback(\n (event: TargetedKeyboardEvent<HTMLInputElement>) => {\n if (props?.onKeyUp) props.onKeyUp(event);\n },\n [props?.onKeyUp]\n );\n\n const handleBlur = useCallback(\n (event: TargetedFocusEvent<HTMLInputElement>) => {\n props?.onBlurHandler?.(event); // From Field component\n\n if (props.trimOnBlur) {\n (event.target as HTMLInputElement).value = (event.target as HTMLInputElement).value.trim(); // needed to trim trailing spaces in field (leading spaces can be done via formatting)\n }\n\n props?.onBlur?.(event);\n },\n [props.onBlur, props.onBlurHandler]\n );\n\n const handleFocus = useCallback(\n (event: TargetedEvent<HTMLInputElement>) => {\n props?.onFocusHandler?.(event); // From Field component\n },\n [props.onFocusHandler]\n );\n\n const inputClassNames = classNames(\n 'adyen-checkout__input',\n [`adyen-checkout__input--${type}`],\n className,\n {\n 'adyen-checkout__input--invalid': isInvalid,\n 'adyen-checkout__input--valid': isValid\n },\n classNameModifiers.map(m => `adyen-checkout__input--${m}`)\n );\n\n // Don't spread classNameModifiers etc to input element (it ends up as an attribute on the element itself)\n const { classNameModifiers: cnm, uniqueId: uid, isInvalid: iiv, isValid: iv, addContextualElement: ace, ...restProps } = props;\n\n return (\n <input\n id={uniqueId}\n {...restProps}\n aria-required={restProps.required}\n type={type}\n className={inputClassNames}\n readOnly={readonly}\n // eslint-disable-next-line react/no-unknown-property -- Preact uses lowercase 'spellcheck'\n spellcheck={spellcheck}\n autoCorrect={autoCorrect}\n aria-describedby={`${uniqueId}${isInvalid ? ARIA_ERROR_SUFFIX : ARIA_CONTEXT_SUFFIX}`}\n aria-invalid={isInvalid}\n onInput={handleInput}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onKeyUp={handleKeyUp}\n onKeyPress={handleKeyPress}\n disabled={disabled}\n ref={setRef}\n />\n );\n}\n\nInputBase.defaultProps = {\n type: 'text',\n classNameModifiers: []\n};\n"],"names":["InputBase","setRef","props","autoCorrect","classNameModifiers","isInvalid","isValid","readonly","spellcheck","type","uniqueId","disabled","className","Object","prototype","hasOwnProperty","call","console","error","handleInput","useCallback","event","onInput","handleKeyPress","onKeyPress","handleKeyUp","onKeyUp","handleBlur","onBlurHandler","trimOnBlur","target","value","trim","onBlur","handleFocus","onFocusHandler","inputClassNames","classNames","map","m","cnm","uid","iiv","iv","addContextualElement","ace","restProps","h","input","id","aria-required","required","readOnly","aria-describedby","ARIA_ERROR_SUFFIX","ARIA_CONTEXT_SUFFIX","aria-invalid","onFocus","ref","defaultProps"],"mappings":"4RAuCe,SAASA,GAAUC,OAAEA,KAAWC,IAC3C,MAAMC,YAAEA,EAAWC,mBAAEA,EAAkBC,UAAEA,EAASC,QAAEA,EAAOC,SAAEA,EAAW,KAAIC,WAAEA,EAAUC,KAAEA,EAAIC,SAAEA,EAAQC,SAAEA,GAAaT,EACjHU,EAAYV,EAAMU,UAMpBC,OAAOC,UAAUC,eAAeC,KAAKd,EAAO,aAC5Ce,QAAQC,MAAM,+EAGlB,MAAMC,EAAcC,EACfC,IACGnB,EAAMoB,QAAQD,IAElB,CAACnB,EAAMoB,UAULC,EAAiBH,EAClBC,IACOnB,GAAOsB,YAAYtB,EAAMsB,WAAWH,IAE5C,CAACnB,GAAOsB,aASNC,EAAcL,EACfC,IACOnB,GAAOwB,SAASxB,EAAMwB,QAAQL,IAEtC,CAACnB,GAAOwB,UAGNC,EAAaP,EACdC,IACGnB,GAAO0B,gBAAgBP,GAEnBnB,EAAM2B,aACLR,EAAMS,OAA4BC,MAAQV,EAAOS,OAA4BC,MAAMC,QAGxF9B,GAAO+B,SAASZ,IAEpB,CAACnB,EAAM+B,OAAQ/B,EAAM0B,gBAGnBM,EAAcd,EACfC,IACGnB,GAAOiC,iBAAiBd,IAE5B,CAACnB,EAAMiC,iBAGLC,EAAkBC,EACpB,wBACA,CAAC,0BAA0B5B,KAC3BG,EACA,CACI,iCAAkCP,EAClC,+BAAgCC,GAEpCF,EAAmBkC,IAAIC,GAAK,0BAA0BA,OAIlDnC,mBAAoBoC,EAAK9B,SAAU+B,EAAKpC,UAAWqC,EAAKpC,QAASqC,EAAIC,qBAAsBC,KAAQC,GAAc5C,EAEzH,OACI6C,EAACC,QAAAA,CACGC,GAAIvC,KACAoC,EACJI,gBAAeJ,EAAUK,SACzB1C,KAAMA,EACNG,UAAWwB,EACXgB,SAAU7C,EAEVC,WAAYA,EACZL,YAAaA,EACbkD,mBAAkB,GAAG3C,IAAWL,EAAYiD,EAAoBC,IAChEC,eAAcnD,EACdiB,QAASH,EACTc,OAAQN,EACR8B,QAASvB,EACTR,QAASD,EACTD,WAAYD,EACZZ,SAAUA,EACV+C,IAAKzD,GAGjB,CAEAD,EAAU2D,aAAe,CACrBlD,KAAM,OACNL,mBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Iframe.js","sources":["../../../../../src/components/internal/IFrame/Iframe.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport './Iframe.scss';\n\ninterface IframeProps {\n width?: string;\n height?: string;\n minWidth?: string;\n minHeight?: string;\n border?: string;\n src?: string;\n allow?: string;\n name?: string;\n title?: string;\n classNameModifiers?: string[];\n callback?: (contentWindow) => void;\n}\n\nclass Iframe extends Component<IframeProps> {\n public static defaultProps = {\n width: '0',\n height: '0',\n minWidth: '0',\n minHeight: '0',\n src: null,\n allow: null,\n title: 'components iframe',\n classNameModifiers: []\n };\n\n private iframeEl;\n\n iframeOnLoad() {\n if (this.props.callback && typeof this.props.callback === 'function') {\n this.props.callback(this.iframeEl.contentWindow);\n }\n }\n\n componentDidMount() {\n if (this.iframeEl.addEventListener) {\n this.iframeEl.addEventListener('load', this.iframeOnLoad.bind(this), false);\n } else if (this.iframeEl.attachEvent) {\n // IE fallback\n this.iframeEl.attachEvent('onload', this.iframeOnLoad.bind(this));\n } else {\n this.iframeEl.onload = this.iframeOnLoad.bind(this);\n }\n }\n\n componentWillUnmount() {\n if (this.iframeEl.removeEventListener) {\n this.iframeEl.removeEventListener('load', this.iframeOnLoad.bind(this), false);\n } else if (this.iframeEl.detachEvent) {\n // IE fallback\n this.iframeEl.detachEvent('onload', this.iframeOnLoad.bind(this));\n } else {\n this.iframeEl.onload = null;\n }\n }\n\n render({ name, src, width, height, minWidth, minHeight, allow, title, classNameModifiers }: IframeProps) {\n const validClassNameModifiers = classNameModifiers.filter(m => !!m);\n\n return (\n <iframe\n ref={ref => {\n this.iframeEl = ref;\n }}\n allow={allow}\n className={classNames(\n 'adyen-checkout__iframe',\n `adyen-checkout__iframe--${name}`,\n validClassNameModifiers.length && classNameModifiers.map(m => `adyen-checkout__iframe--${name}-${m}`)\n )}\n name={name}\n src={src}\n width={width}\n height={height}\n frameBorder=\"0\"\n title={title}\n /* eslint-disable react/no-unknown-property */\n referrerpolicy=\"origin\"\n min-width={minWidth}\n min-height={minHeight}\n /* eslint-enable react/no-unknown-property */\n />\n );\n }\n}\n\nexport default Iframe;\n"],"names":["Iframe","Component","iframeOnLoad","this","props","callback","iframeEl","contentWindow","componentDidMount","addEventListener","bind","attachEvent","onload","componentWillUnmount","removeEventListener","detachEvent","render","name","src","width","height","minWidth","minHeight","allow","title","classNameModifiers","validClassNameModifiers","filter","m","h","iframe","ref","className","classNames","length","map","frameBorder","referrerpolicy","min-width","min-height","super","args","_define_property","defaultProps"],"mappings":"yPAkBA,MAAMA,UAAeC,EAcjBC,YAAAA,GACQC,KAAKC,MAAMC,UAA2C,mBAAxBF,KAAKC,MAAMC,UACzCF,KAAKC,MAAMC,SAASF,KAAKG,SAASC,cAE1C,CAEAC,iBAAAA,GACQL,KAAKG,SAASG,iBACdN,KAAKG,SAASG,iBAAiB,OAAQN,KAAKD,aAAaQ,KAAKP,OAAO,GAC9DA,KAAKG,SAASK,YAErBR,KAAKG,SAASK,YAAY,SAAUR,KAAKD,aAAaQ,KAAKP,OAE3DA,KAAKG,SAASM,OAAST,KAAKD,aAAaQ,KAAKP,KAEtD,CAEAU,oBAAAA,GACQV,KAAKG,SAASQ,oBACdX,KAAKG,SAASQ,oBAAoB,OAAQX,KAAKD,aAAaQ,KAAKP,OAAO,GACjEA,KAAKG,SAASS,YAErBZ,KAAKG,SAASS,YAAY,SAAUZ,KAAKD,aAAaQ,KAAKP,OAE3DA,KAAKG,SAASM,OAAS,IAE/B,CAEAI,MAAAA,EAAOC,KAAEA,EAAIC,IAAEA,EAAGC,MAAEA,EAAKC,OAAEA,EAAMC,SAAEA,EAAQC,UAAEA,EAASC,MAAEA,EAAKC,MAAEA,EAAKC,mBAAEA,IAClE,MAAMC,EAA0BD,EAAmBE,OAAOC,KAAOA,GAEjE,OACIC,EAACC,SAAAA,CACGC,IAAKA,IACD5B,KAAKG,SAAWyB,GAEpBR,MAAOA,EACPS,UAAWC,EACP,yBACA,2BAA2BhB,IAC3BS,EAAwBQ,QAAUT,EAAmBU,IAAIP,GAAK,2BAA2BX,KAAQW,MAErGX,KAAMA,EACNC,IAAKA,EACLC,MAAOA,EACPC,OAAQA,EACRgB,YAAY,IACZZ,MAAOA,EAEPa,eAAe,SACfC,YAAWjB,EACXkB,aAAYjB,GAIxB,mBArEJkB,SAAAC,GAYIC,EAAAvC,KAAQG,gBAAR,IAXAoC,EADE1C,EACY2C,eAAe,CACzBxB,MAAO,IACPC,OAAQ,IACRC,SAAU,IACVC,UAAW,IACXJ,IAAK,KACLK,MAAO,KACPC,MAAO,oBACPC,mBAAoB"}
1
+ {"version":3,"file":"Iframe.js","sources":["../../../../../src/components/internal/IFrame/Iframe.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport './Iframe.scss';\n\ninterface IframeProps {\n width?: string;\n height?: string;\n minWidth?: string;\n minHeight?: string;\n border?: string;\n src?: string;\n allow?: string;\n name?: string;\n title?: string;\n classNameModifiers?: string[];\n callback?: (contentWindow) => void;\n}\n\nclass Iframe extends Component<IframeProps> {\n public static defaultProps = {\n width: '0',\n height: '0',\n minWidth: '0',\n minHeight: '0',\n src: null,\n allow: null,\n title: 'components iframe',\n classNameModifiers: []\n };\n\n private iframeEl;\n\n iframeOnLoad() {\n if (this.props.callback && typeof this.props.callback === 'function') {\n this.props.callback(this.iframeEl.contentWindow);\n }\n }\n\n componentDidMount() {\n if (this.iframeEl.addEventListener) {\n this.iframeEl.addEventListener('load', this.iframeOnLoad.bind(this), false);\n } else if (this.iframeEl.attachEvent) {\n // IE fallback\n this.iframeEl.attachEvent('onload', this.iframeOnLoad.bind(this));\n } else {\n this.iframeEl.onload = this.iframeOnLoad.bind(this);\n }\n }\n\n componentWillUnmount() {\n if (this.iframeEl.removeEventListener) {\n this.iframeEl.removeEventListener('load', this.iframeOnLoad.bind(this), false);\n } else if (this.iframeEl.detachEvent) {\n // IE fallback\n this.iframeEl.detachEvent('onload', this.iframeOnLoad.bind(this));\n } else {\n this.iframeEl.onload = null;\n }\n }\n\n render({ name, src, width, height, minWidth, minHeight, allow, title, classNameModifiers }: IframeProps) {\n const validClassNameModifiers = classNameModifiers.filter(m => !!m);\n\n return (\n <iframe\n ref={ref => {\n this.iframeEl = ref;\n }}\n allow={allow}\n className={classNames(\n 'adyen-checkout__iframe',\n `adyen-checkout__iframe--${name}`,\n validClassNameModifiers.length && classNameModifiers.map(m => `adyen-checkout__iframe--${name}-${m}`)\n )}\n name={name}\n src={src}\n width={width}\n height={height}\n frameBorder=\"0\"\n title={title}\n /* eslint-disable react/no-unknown-property */\n referrerpolicy=\"origin\"\n min-width={minWidth}\n min-height={minHeight}\n /* eslint-enable react/no-unknown-property */\n />\n );\n }\n}\n\nexport default Iframe;\n"],"names":["Iframe","Component","iframeOnLoad","this","props","callback","iframeEl","contentWindow","componentDidMount","addEventListener","bind","attachEvent","onload","componentWillUnmount","removeEventListener","detachEvent","render","name","src","width","height","minWidth","minHeight","allow","title","classNameModifiers","validClassNameModifiers","filter","m","h","iframe","ref","className","classNames","length","map","frameBorder","referrerpolicy","min-width","min-height","super","args","_define_property","defaultProps"],"mappings":"yPAkBA,MAAMA,UAAeC,EAcjBC,YAAAA,GACQC,KAAKC,MAAMC,UAA2C,mBAAxBF,KAAKC,MAAMC,UACzCF,KAAKC,MAAMC,SAASF,KAAKG,SAASC,cAE1C,CAEAC,iBAAAA,GACQL,KAAKG,SAASG,iBACdN,KAAKG,SAASG,iBAAiB,OAAQN,KAAKD,aAAaQ,KAAKP,OAAO,GAC9DA,KAAKG,SAASK,YAErBR,KAAKG,SAASK,YAAY,SAAUR,KAAKD,aAAaQ,KAAKP,OAE3DA,KAAKG,SAASM,OAAST,KAAKD,aAAaQ,KAAKP,KAEtD,CAEAU,oBAAAA,GACQV,KAAKG,SAASQ,oBACdX,KAAKG,SAASQ,oBAAoB,OAAQX,KAAKD,aAAaQ,KAAKP,OAAO,GACjEA,KAAKG,SAASS,YAErBZ,KAAKG,SAASS,YAAY,SAAUZ,KAAKD,aAAaQ,KAAKP,OAE3DA,KAAKG,SAASM,OAAS,IAE/B,CAEAI,MAAAA,EAAOC,KAAEA,EAAIC,IAAEA,EAAGC,MAAEA,EAAKC,OAAEA,EAAMC,SAAEA,EAAQC,UAAEA,EAASC,MAAEA,EAAKC,MAAEA,EAAKC,mBAAEA,IAClE,MAAMC,EAA0BD,EAAmBE,OAAOC,KAAOA,GAEjE,OACIC,EAACC,SAAAA,CACGC,IAAKA,IACD5B,KAAKG,SAAWyB,GAEpBR,MAAOA,EACPS,UAAWC,EACP,yBACA,2BAA2BhB,IAC3BS,EAAwBQ,QAAUT,EAAmBU,IAAIP,GAAK,2BAA2BX,KAAQW,MAErGX,KAAMA,EACNC,IAAKA,EACLC,MAAOA,EACPC,OAAQA,EACRgB,YAAY,IACZZ,MAAOA,EAEPa,eAAe,SACfC,YAAWjB,EACXkB,aAAYjB,GAIxB,mBArEJkB,SAAAC,GAYIC,EAAAvC,KAAQG,oBAXRoC,EADE1C,EACY2C,eAAe,CACzBxB,MAAO,IACPC,OAAQ,IACRC,SAAU,IACVC,UAAW,IACXJ,IAAK,KACLK,MAAO,KACPC,MAAO,oBACPC,mBAAoB"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import t from"../Button/Button.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";import{payAmountLabel as r,secondaryAmountLabel as a}from"./utils.js";import s from"./components/SecondaryButtonLabel.js";const l=({amount:l,secondaryAmount:n,classNameModifiers:i=[],label:m,...c})=>{const{i18n:u}=o(),d=l&&{}.hasOwnProperty.call(l,"value")&&0===l.value,p=d?u.get("confirmPreauthorization"):r(u,l),f=l&&"number"==typeof l.value&&!!l.currency,b=n&&Object.keys(n).length>0,y=!d&&!m&&f&&b?a(u,n):null;return e(t,{...c,disabled:c.disabled||"loading"===c.status,classNameModifiers:[...i,"pay"],label:m||p},y&&e(s,{label:y}))};export{l as default,r as payAmountLabel};
1
+ import{createElement as o}from"../../../external/preact/dist/preact.js";import t from"../Button/Button.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import{createButtonLabel as e,createSecondaryLabel as s}from"./utils.js";import a from"./components/SecondaryButtonLabel.js";import{useAmount as m,useSecondaryAmount as i}from"../../../core/Context/AmountProvider.js";import{isAmountValid as n}from"../../../utils/amount-util.js";const l=({customAmount:l,classNameModifiers:u=[],label:c,...d})=>{const{amount:p,isZeroAuth:f}=m(),{secondaryAmount:j}=i(),{i18n:b}=r(),x=e(b,c,p,f,l),A=s(b,j,n(p),f,c),y=d.disabled||"loading"===d.status;return o(t,{...d,disabled:y,classNameModifiers:[...u,"pay"],label:x},A&&o(a,{label:A}))};export{l as default};
2
2
  //# sourceMappingURL=PayButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayButton.js","sources":["../../../../../src/components/internal/PayButton/PayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Button from '../Button';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { ButtonProps } from '../Button/types';\nimport { payAmountLabel, secondaryAmountLabel } from './utils';\nimport { PaymentAmountExtended } from '../../../types/global-types';\nimport SecondaryButtonLabel from './components/SecondaryButtonLabel';\n\nexport interface PayButtonProps extends ButtonProps {\n /**\n * Class name modifiers will be used as: `adyen-checkout__image--${modifier}`\n */\n classNameModifiers?: string[];\n label?: string;\n amount?: PaymentAmountExtended;\n secondaryAmount?: PaymentAmountExtended;\n status?: string;\n disabled?: boolean;\n icon?: string;\n onClick?: (e: h.JSX.TargetedMouseEvent<HTMLButtonElement>) => void;\n}\n\nconst PayButton = ({ amount, secondaryAmount, classNameModifiers = [], label, ...props }: PayButtonProps) => {\n const { i18n } = useCoreContext();\n const isZeroAuth = amount && {}.hasOwnProperty.call(amount, 'value') && amount.value === 0;\n const defaultLabel = isZeroAuth ? i18n.get('confirmPreauthorization') : payAmountLabel(i18n, amount);\n\n /**\n * Show the secondaryLabel if:\n * - it's not zero auth, and\n * - we don't have a predefined label (i.e. redirect, qrcode, await based comps...), and\n * - we do have an amount object (merchant might not be passing this in order to not show the amount on the button), and\n * - we have a secondaryAmount object with some properties\n */\n const hasValidAmount = amount && typeof amount.value === 'number' && !!amount.currency;\n const hasSecondaryAmount = secondaryAmount && Object.keys(secondaryAmount).length > 0;\n\n const secondaryLabel = !isZeroAuth && !label && hasValidAmount && hasSecondaryAmount ? secondaryAmountLabel(i18n, secondaryAmount) : null;\n\n return (\n <Button\n {...props}\n disabled={props.disabled || props.status === 'loading'}\n classNameModifiers={[...classNameModifiers, 'pay']}\n label={label || defaultLabel}\n >\n {secondaryLabel && <SecondaryButtonLabel label={secondaryLabel} />}\n </Button>\n );\n};\n\nexport default PayButton;\nexport { payAmountLabel };\n"],"names":["PayButton","amount","secondaryAmount","classNameModifiers","label","props","i18n","useCoreContext","isZeroAuth","hasOwnProperty","call","value","defaultLabel","get","payAmountLabel","hasValidAmount","currency","hasSecondaryAmount","Object","keys","length","secondaryLabel","secondaryAmountLabel","h","Button","disabled","status","SecondaryButtonLabel"],"mappings":"4SAsBA,MAAMA,EAAY,EAAGC,SAAQC,kBAAiBC,qBAAqB,GAAIC,WAAUC,MAC7E,MAAMC,KAAEA,GAASC,IACXC,EAAaP,GAAU,CAAC,EAAEQ,eAAeC,KAAKT,EAAQ,UAA6B,IAAjBA,EAAOU,MACzEC,EAAeJ,EAAaF,EAAKO,IAAI,2BAA6BC,EAAeR,EAAML,GASvFc,EAAiBd,GAAkC,iBAAjBA,EAAOU,SAAwBV,EAAOe,SACxEC,EAAqBf,GAAmBgB,OAAOC,KAAKjB,GAAiBkB,OAAS,EAE9EC,GAAkBb,IAAeJ,GAASW,GAAkBE,EAAqBK,EAAqBhB,EAAMJ,GAAmB,KAErI,OACIqB,EAACC,EAAAA,IACOnB,EACJoB,SAAUpB,EAAMoB,UAA6B,YAAjBpB,EAAMqB,OAClCvB,mBAAoB,IAAIA,EAAoB,OAC5CC,MAAOA,GAASQ,GAEfS,GAAkBE,EAACI,EAAAA,CAAqBvB,MAAOiB"}
1
+ {"version":3,"file":"PayButton.js","sources":["../../../../../src/components/internal/PayButton/PayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Button from '../Button';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { ButtonProps } from '../Button/types';\nimport { createButtonLabel, createSecondaryLabel } from './utils';\nimport SecondaryButtonLabel from './components/SecondaryButtonLabel';\nimport { useAmount, useSecondaryAmount } from '../../../core/Context/AmountProvider';\nimport type { PaymentAmount } from '../../../types';\nimport { isAmountValid } from '../../../utils/amount-util';\n\nexport interface PayButtonProps extends ButtonProps {\n /**\n * Class name modifiers will be used as: `adyen-checkout__image--${modifier}`\n */\n classNameModifiers?: string[];\n /**\n * Custom amount that can be passed to the button.\n * This is useful when the amount is not available in the amount provider, such as Giftcard scenario where\n * we need to display the remaining amount\n */\n customAmount?: PaymentAmount;\n label?: string;\n status?: string;\n disabled?: boolean;\n icon?: string;\n onClick?: (e: h.JSX.TargetedMouseEvent<HTMLButtonElement>) => void;\n}\n\nconst PayButton = ({ customAmount, classNameModifiers = [], label, ...props }: PayButtonProps) => {\n const { amount, isZeroAuth } = useAmount();\n const { secondaryAmount } = useSecondaryAmount();\n const { i18n } = useCoreContext();\n\n const buttonLabel = createButtonLabel(i18n, label, amount, isZeroAuth, customAmount);\n const secondaryAmountLabel = createSecondaryLabel(i18n, secondaryAmount, isAmountValid(amount), isZeroAuth, label);\n\n const isDisabled = props.disabled || props.status === 'loading';\n\n return (\n <Button {...props} disabled={isDisabled} classNameModifiers={[...classNameModifiers, 'pay']} label={buttonLabel}>\n {secondaryAmountLabel && <SecondaryButtonLabel label={secondaryAmountLabel} />}\n </Button>\n );\n};\n\nexport default PayButton;\n"],"names":["PayButton","customAmount","classNameModifiers","label","props","amount","isZeroAuth","useAmount","secondaryAmount","useSecondaryAmount","i18n","useCoreContext","buttonLabel","createButtonLabel","secondaryAmountLabel","createSecondaryLabel","isAmountValid","isDisabled","disabled","status","h","Button","SecondaryButtonLabel"],"mappings":"ycA4BA,MAAMA,EAAY,EAAGC,eAAcC,qBAAqB,GAAIC,WAAUC,MAClE,MAAMC,OAAEA,EAAMC,WAAEA,GAAeC,KACzBC,gBAAEA,GAAoBC,KACtBC,KAAEA,GAASC,IAEXC,EAAcC,EAAkBH,EAAMP,EAAOE,EAAQC,EAAYL,GACjEa,EAAuBC,EAAqBL,EAAMF,EAAiBQ,EAAcX,GAASC,EAAYH,GAEtGc,EAAab,EAAMc,UAA6B,YAAjBd,EAAMe,OAE3C,OACIC,EAACC,EAAAA,IAAWjB,EAAOc,SAAUD,EAAYf,mBAAoB,IAAIA,EAAoB,OAAQC,MAAOS,GAC/FE,GAAwBM,EAACE,EAAAA,CAAqBnB,MAAOW"}
@@ -1,2 +1,2 @@
1
- const r="/ ",c=(r,c)=>c?.value&&c?.currency?r.amount(c.value,c.currency,{currencyDisplay:c.currencyDisplay||"symbol"}):"",e=(r,e)=>`${r.get("payButton")} ${c(r,e)}`,u=(r,c)=>{const e=c&&c?.value&&c?.currency?r.amount(c.value,c.currency,{currencyDisplay:c.currencyDisplay||"symbol"}):"";return`${e.length?"/ ":""}${e}`};export{r as PAY_BTN_DIVIDER,c as amountLabel,e as payAmountLabel,u as secondaryAmountLabel};
1
+ const r="/ ",n=(r,n)=>n?.value&&n?.currency?r.amount(n.value,n.currency,{currencyDisplay:n.currencyDisplay||"symbol"}):"",u=(r,u)=>`${r.get("payButton")} ${n(r,u)}`;function c(r,n,c,e,t){return n||(t?u(r,t):e?r.get("confirmPreauthorization"):u(r,c))}function e(r,n,u,c,e){return c||e||!u||!n?null:((r,n)=>{const u=n&&n?.value&&n?.currency?r.amount(n.value,n.currency,{currencyDisplay:n.currencyDisplay||"symbol"}):"";return`${u.length?"/ ":""}${u}`})(r,n)}export{r as PAY_BTN_DIVIDER,n as amountLabel,c as createButtonLabel,e as createSecondaryLabel,u as payAmountLabel};
2
2
  //# sourceMappingURL=utils.js.map