@adyen/adyen-web 6.5.1 → 6.7.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 (430) hide show
  1. package/dist/cjs/adyen.css +5 -5
  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 +290 -169
  6. package/dist/es/adyen.css +5 -5
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ANCV/ANCV.js +1 -1
  9. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  10. package/dist/es/components/Ach/components/AchInput/AchInput.js.map +1 -1
  11. package/dist/es/components/Ach/components/AchInput/defaultProps.js +1 -1
  12. package/dist/es/components/Ach/components/AchInput/defaultProps.js.map +1 -1
  13. package/dist/es/components/Ach/components/AchInput/defaultStyles.js.map +1 -1
  14. package/dist/es/components/AfterPay/AfterPayB2B.js.map +1 -1
  15. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  16. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  17. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  18. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  19. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  20. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  21. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  22. package/dist/es/components/Boleto/components/BoletoVoucherResult/BoletoVoucherResult.js +1 -1
  23. package/dist/es/components/Boleto/components/BoletoVoucherResult/BoletoVoucherResult.js.map +1 -1
  24. package/dist/es/components/Card/Card.js.map +1 -1
  25. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  26. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  27. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  28. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  29. package/dist/es/components/Card/components/CardInput/defaultProps.js.map +1 -1
  30. package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
  31. package/dist/es/components/Card/components/CardInput/types.js +1 -1
  32. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  33. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  34. package/dist/es/components/CashAppPay/services/types.js +1 -1
  35. package/dist/es/components/CashAppPay/services/types.js.map +1 -1
  36. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  37. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  38. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  39. package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  40. package/dist/es/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  41. package/dist/es/components/Donation/components/CampaignContent.js +1 -1
  42. package/dist/es/components/Donation/components/CampaignContent.js.map +1 -1
  43. package/dist/es/components/Donation/components/CampaignInfo.js +2 -0
  44. package/dist/es/components/Donation/components/CampaignInfo.js.map +1 -0
  45. package/dist/es/components/Donation/components/DonationComponent.js +1 -1
  46. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  47. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  48. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  49. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  50. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  51. package/dist/es/components/Dropin/components/PaymentMethod/useBrandLogoConfiguration.js.map +1 -1
  52. package/dist/es/components/Dropin/elements/filters.js.map +1 -1
  53. package/dist/es/components/Dropin/elements/getComponentConfiguration.js.map +1 -1
  54. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  55. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  56. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  57. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  58. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  59. package/dist/es/components/GooglePay/components/GooglePayButton.js +1 -1
  60. package/dist/es/components/GooglePay/components/GooglePayButton.js.map +1 -1
  61. package/dist/es/components/GooglePay/requests.js.map +1 -1
  62. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  63. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  64. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +1 -1
  65. package/dist/es/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  66. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  67. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  68. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  69. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  70. package/dist/es/components/OnlineBankingCZ/index.js +1 -1
  71. package/dist/es/components/OnlineBankingCZ/index.js.map +1 -1
  72. package/dist/es/components/OnlineBankingSK/index.js +1 -1
  73. package/dist/es/components/OnlineBankingSK/index.js.map +1 -1
  74. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  75. package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js +1 -1
  76. package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  77. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  78. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  79. package/dist/es/components/PayPal/utils/get-paypal-styles.js.map +1 -1
  80. package/dist/es/components/Pix/Pix.js.map +1 -1
  81. package/dist/es/components/Redirect/Redirect.js +1 -1
  82. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  83. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js +1 -1
  84. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  85. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  86. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  87. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  88. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  89. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  90. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  91. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  92. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  93. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  94. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  95. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  96. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  97. package/dist/es/components/Twint/Twint.js.map +1 -1
  98. package/dist/es/components/UPI/UPI.js.map +1 -1
  99. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  100. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  101. package/dist/es/components/internal/Address/Address.js.map +1 -1
  102. package/dist/es/components/internal/Address/components/CountryField.js +1 -1
  103. package/dist/es/components/internal/Address/components/CountryField.js.map +1 -1
  104. package/dist/es/components/internal/Address/components/FieldContainer.js +1 -1
  105. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  106. package/dist/es/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
  107. package/dist/es/components/internal/Address/components/StateField.js +1 -1
  108. package/dist/es/components/internal/Address/components/StateField.js.map +1 -1
  109. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  110. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  111. package/dist/es/components/internal/Button/Button.js.map +1 -1
  112. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js +1 -1
  113. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  114. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  115. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  116. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  117. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  118. package/dist/es/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  119. package/dist/es/components/internal/ClickToPay/errors/TimeoutError.js.map +1 -1
  120. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  121. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  122. package/dist/es/components/internal/ClickToPay/services/sdks/SrciError.js.map +1 -1
  123. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  124. package/dist/es/components/internal/FormFields/Select/Select.js +1 -1
  125. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  126. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  127. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  128. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  129. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  130. package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
  131. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  132. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  133. package/dist/es/components/internal/OpenInvoice/utils.js.map +1 -1
  134. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  135. package/dist/es/components/internal/PersonalDetails/ReadOnlyPersonalDetails.js.map +1 -1
  136. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  137. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  138. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  139. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  140. package/dist/es/components/internal/SecuredFields/SFP/defaultProps.js.map +1 -1
  141. package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  142. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  143. package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  144. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  145. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  146. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
  147. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleIOSTouchEvents.js.map +1 -1
  148. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.js.map +1 -1
  149. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/handleBinValue.js.map +1 -1
  150. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/handleFocus.js.map +1 -1
  151. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/handleIframeConfigFeedback.js.map +1 -1
  152. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js.map +1 -1
  153. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/postMessageToAllIframes.js.map +1 -1
  154. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  155. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processBrand.js.map +1 -1
  156. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/validateForm.js.map +1 -1
  157. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/callbackUtils.js.map +1 -1
  158. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/destroySecuredFields.js.map +1 -1
  159. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
  160. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  161. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  162. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  163. package/dist/es/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
  164. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  165. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  166. package/dist/es/components/internal/UIElement/utils.js.map +1 -1
  167. package/dist/es/components/internal/Voucher/utils.js.map +1 -1
  168. package/dist/es/components/tx-variants.js +1 -1
  169. package/dist/es/components/tx-variants.js.map +1 -1
  170. package/dist/es/core/Analytics/Analytics.js +1 -1
  171. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  172. package/dist/es/core/Analytics/EventsQueue.js.map +1 -1
  173. package/dist/es/core/Analytics/analyticsPreProcessor.js +1 -1
  174. package/dist/es/core/Analytics/analyticsPreProcessor.js.map +1 -1
  175. package/dist/es/core/Analytics/constants.js +1 -1
  176. package/dist/es/core/Analytics/constants.js.map +1 -1
  177. package/dist/es/core/Analytics/utils.js.map +1 -1
  178. package/dist/es/core/Errors/AdyenCheckoutError.js +1 -1
  179. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  180. package/dist/es/core/Errors/SRMessages.js.map +1 -1
  181. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  182. package/dist/es/core/Errors/constants.js +1 -1
  183. package/dist/es/core/Errors/constants.js.map +1 -1
  184. package/dist/es/core/Errors/utils.js +1 -1
  185. package/dist/es/core/Errors/utils.js.map +1 -1
  186. package/dist/es/core/RiskModule/RiskModule.js.map +1 -1
  187. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  188. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  189. package/dist/es/core/Services/http.js +1 -1
  190. package/dist/es/core/Services/http.js.map +1 -1
  191. package/dist/es/core/Services/sessions/constants.js +1 -1
  192. package/dist/es/core/Services/sessions/constants.js.map +1 -1
  193. package/dist/es/core/Services/sessions/create-order.js +1 -1
  194. package/dist/es/core/Services/sessions/create-order.js.map +1 -1
  195. package/dist/es/core/Services/sessions/make-payment.js +1 -1
  196. package/dist/es/core/Services/sessions/make-payment.js.map +1 -1
  197. package/dist/es/core/Services/sessions/setup-session.js.map +1 -1
  198. package/dist/es/core/Services/sessions/submit-details.js +1 -1
  199. package/dist/es/core/Services/sessions/submit-details.js.map +1 -1
  200. package/dist/es/core/core.js +1 -1
  201. package/dist/es/core/core.registry.js.map +1 -1
  202. package/dist/es/core/utils.js.map +1 -1
  203. package/dist/es/external/classnames/index.js.map +1 -1
  204. package/dist/es/external/preact/dist/preact.js +1 -1
  205. package/dist/es/external/preact/dist/preact.js.map +1 -1
  206. package/dist/es/index.d.ts +290 -169
  207. package/dist/es/language/Language.js.map +1 -1
  208. package/dist/es/language/utils.js.map +1 -1
  209. package/dist/es/utils/Storage.js.map +1 -1
  210. package/dist/es/utils/commonUtils.js.map +1 -1
  211. package/dist/es/utils/get-process-message-handler.js.map +1 -1
  212. package/dist/es/utils/getOrigin.js.map +1 -1
  213. package/dist/es/utils/useForm/reducer.js.map +1 -1
  214. package/dist/es/utils/useForm/useForm.js.map +1 -1
  215. package/dist/es-legacy/adyen.css +5 -5
  216. package/dist/es-legacy/adyen.css.map +1 -1
  217. package/dist/es-legacy/components/ANCV/ANCV.js +1 -1
  218. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  219. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js.map +1 -1
  220. package/dist/es-legacy/components/Ach/components/AchInput/defaultProps.js +1 -1
  221. package/dist/es-legacy/components/Ach/components/AchInput/defaultProps.js.map +1 -1
  222. package/dist/es-legacy/components/Ach/components/AchInput/defaultStyles.js.map +1 -1
  223. package/dist/es-legacy/components/AfterPay/AfterPayB2B.js.map +1 -1
  224. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  225. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  226. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  227. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  228. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  229. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  230. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  231. package/dist/es-legacy/components/Boleto/components/BoletoVoucherResult/BoletoVoucherResult.js +1 -1
  232. package/dist/es-legacy/components/Boleto/components/BoletoVoucherResult/BoletoVoucherResult.js.map +1 -1
  233. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  234. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  235. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  236. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  237. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  238. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js.map +1 -1
  239. package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
  240. package/dist/es-legacy/components/Card/components/CardInput/types.js +1 -1
  241. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  242. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  243. package/dist/es-legacy/components/CashAppPay/services/types.js +1 -1
  244. package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
  245. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  246. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  247. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js +1 -1
  248. package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
  249. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  250. package/dist/es-legacy/components/Donation/components/CampaignContent.js +1 -1
  251. package/dist/es-legacy/components/Donation/components/CampaignContent.js.map +1 -1
  252. package/dist/es-legacy/components/Donation/components/CampaignInfo.js +2 -0
  253. package/dist/es-legacy/components/Donation/components/CampaignInfo.js.map +1 -0
  254. package/dist/es-legacy/components/Donation/components/DonationComponent.js +1 -1
  255. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  256. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  257. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  258. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  259. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  260. package/dist/es-legacy/components/Dropin/components/PaymentMethod/useBrandLogoConfiguration.js.map +1 -1
  261. package/dist/es-legacy/components/Dropin/elements/filters.js.map +1 -1
  262. package/dist/es-legacy/components/Dropin/elements/getComponentConfiguration.js.map +1 -1
  263. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  264. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  265. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  266. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  267. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  268. package/dist/es-legacy/components/GooglePay/components/GooglePayButton.js +1 -1
  269. package/dist/es-legacy/components/GooglePay/components/GooglePayButton.js.map +1 -1
  270. package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
  271. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  272. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  273. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +1 -1
  274. package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
  275. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  276. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  277. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  278. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  279. package/dist/es-legacy/components/OnlineBankingCZ/index.js +1 -1
  280. package/dist/es-legacy/components/OnlineBankingCZ/index.js.map +1 -1
  281. package/dist/es-legacy/components/OnlineBankingSK/index.js +1 -1
  282. package/dist/es-legacy/components/OnlineBankingSK/index.js.map +1 -1
  283. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  284. package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js +1 -1
  285. package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  286. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  287. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  288. package/dist/es-legacy/components/PayPal/utils/get-paypal-styles.js.map +1 -1
  289. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  290. package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
  291. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  292. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js +1 -1
  293. package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  294. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  295. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  296. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  297. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  298. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  299. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  300. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  301. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  302. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  303. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  304. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  305. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  306. package/dist/es-legacy/components/Twint/Twint.js.map +1 -1
  307. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  308. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  309. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  310. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  311. package/dist/es-legacy/components/internal/Address/components/CountryField.js +1 -1
  312. package/dist/es-legacy/components/internal/Address/components/CountryField.js.map +1 -1
  313. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js +1 -1
  314. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  315. package/dist/es-legacy/components/internal/Address/components/ReadOnlyAddress.js.map +1 -1
  316. package/dist/es-legacy/components/internal/Address/components/StateField.js +1 -1
  317. package/dist/es-legacy/components/internal/Address/components/StateField.js.map +1 -1
  318. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  319. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  320. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  321. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  322. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js +1 -1
  323. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  324. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  325. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  326. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  327. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  328. package/dist/es-legacy/components/internal/ClickToPay/context/ClickToPayProvider.js.map +1 -1
  329. package/dist/es-legacy/components/internal/ClickToPay/errors/TimeoutError.js.map +1 -1
  330. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  331. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  332. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrciError.js.map +1 -1
  333. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  334. package/dist/es-legacy/components/internal/FormFields/Select/Select.js +1 -1
  335. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  336. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  337. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  338. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  339. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  340. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
  341. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  342. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  343. package/dist/es-legacy/components/internal/OpenInvoice/utils.js.map +1 -1
  344. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  345. package/dist/es-legacy/components/internal/PersonalDetails/ReadOnlyPersonalDetails.js.map +1 -1
  346. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  347. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  348. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  349. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  350. package/dist/es-legacy/components/internal/SecuredFields/SFP/defaultProps.js.map +1 -1
  351. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  352. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  353. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  354. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  355. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  356. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  357. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
  358. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleIOSTouchEvents.js.map +1 -1
  359. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.js.map +1 -1
  360. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/handleBinValue.js.map +1 -1
  361. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/handleFocus.js.map +1 -1
  362. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/handleIframeConfigFeedback.js.map +1 -1
  363. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js.map +1 -1
  364. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/postMessageToAllIframes.js.map +1 -1
  365. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  366. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processBrand.js.map +1 -1
  367. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/validateForm.js.map +1 -1
  368. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/callbackUtils.js.map +1 -1
  369. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/destroySecuredFields.js.map +1 -1
  370. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
  371. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  372. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  373. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  374. package/dist/es-legacy/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
  375. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  376. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  377. package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
  378. package/dist/es-legacy/components/internal/Voucher/utils.js.map +1 -1
  379. package/dist/es-legacy/components/tx-variants.js +1 -1
  380. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  381. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  382. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  383. package/dist/es-legacy/core/Analytics/EventsQueue.js.map +1 -1
  384. package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js +1 -1
  385. package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js.map +1 -1
  386. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  387. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  388. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  389. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js +1 -1
  390. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js.map +1 -1
  391. package/dist/es-legacy/core/Errors/SRMessages.js.map +1 -1
  392. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  393. package/dist/es-legacy/core/Errors/constants.js +1 -1
  394. package/dist/es-legacy/core/Errors/constants.js.map +1 -1
  395. package/dist/es-legacy/core/Errors/utils.js +1 -1
  396. package/dist/es-legacy/core/Errors/utils.js.map +1 -1
  397. package/dist/es-legacy/core/RiskModule/RiskModule.js.map +1 -1
  398. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  399. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  400. package/dist/es-legacy/core/Services/http.js +1 -1
  401. package/dist/es-legacy/core/Services/http.js.map +1 -1
  402. package/dist/es-legacy/core/Services/sessions/constants.js +1 -1
  403. package/dist/es-legacy/core/Services/sessions/constants.js.map +1 -1
  404. package/dist/es-legacy/core/Services/sessions/create-order.js +1 -1
  405. package/dist/es-legacy/core/Services/sessions/create-order.js.map +1 -1
  406. package/dist/es-legacy/core/Services/sessions/make-payment.js +1 -1
  407. package/dist/es-legacy/core/Services/sessions/make-payment.js.map +1 -1
  408. package/dist/es-legacy/core/Services/sessions/setup-session.js.map +1 -1
  409. package/dist/es-legacy/core/Services/sessions/submit-details.js +1 -1
  410. package/dist/es-legacy/core/Services/sessions/submit-details.js.map +1 -1
  411. package/dist/es-legacy/core/core.js +1 -1
  412. package/dist/es-legacy/core/core.registry.js.map +1 -1
  413. package/dist/es-legacy/core/utils.js.map +1 -1
  414. package/dist/es-legacy/external/classnames/index.js.map +1 -1
  415. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  416. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  417. package/dist/es-legacy/language/Language.js.map +1 -1
  418. package/dist/es-legacy/language/utils.js.map +1 -1
  419. package/dist/es-legacy/utils/Storage.js.map +1 -1
  420. package/dist/es-legacy/utils/commonUtils.js.map +1 -1
  421. package/dist/es-legacy/utils/get-process-message-handler.js.map +1 -1
  422. package/dist/es-legacy/utils/getOrigin.js.map +1 -1
  423. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  424. package/dist/es-legacy/utils/useForm/useForm.js.map +1 -1
  425. package/package.json +25 -25
  426. package/styles/adyen.css +5 -5
  427. package/dist/es/components/Donation/components/CampaignContainer.js +0 -2
  428. package/dist/es/components/Donation/components/CampaignContainer.js.map +0 -1
  429. package/dist/es-legacy/components/Donation/components/CampaignContainer.js +0 -2
  430. package/dist/es-legacy/components/Donation/components/CampaignContainer.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import r from"../../FormFields/Field/Field.js";import o from"./StateField.js";import t from"./CountryField.js";import{useCoreContext as i}from"../../../../core/Context/CoreProvider.js";import a from"../../FormFields/InputText.js";function s(s){const{i18n:n}=i(),{classNameModifiers:l=[],data:d,errors:c,valid:u,fieldName:m,onInput:f,onBlur:p,trimOnBlur:g,maxLength:F,disabled:v}=s,C=d[m],M=d.country,y=s.specifications.countryHasOptionalField(M,m),b=s.specifications.getKeyForField(m,M),j=y?` ${n.get("field.title.optional")}`:"",w=`${n.get(b)}${j}`,h=function(e,r,o,t){var i,a;if("object"==typeof(null===(i=e[r])||void 0===i?void 0:i.errorMessage)){const{translationKey:t,translationObject:i}=e[r].errorMessage;return o.get(t,i)}return o.get(null===(a=e[r])||void 0===a?void 0:a.errorMessage,{values:{label:t.toLowerCase()}})||!!e[r]}(c,m,n,w);switch(m){case"country":return e(t,{allowedCountries:s.allowedCountries,classNameModifiers:l,label:w,errorMessage:h,onDropdownChange:s.onDropdownChange,value:C});case"stateOrProvince":return e(o,{classNameModifiers:l,label:w,errorMessage:h,onDropdownChange:s.onDropdownChange,selectedCountry:M,specifications:s.specifications,value:C});default:return e(r,{label:w,classNameModifiers:l,errorMessage:h,isValid:u[m],name:m,i18n:n,onFocus:e=>s.onFieldFocusAnalytics(m,e),onBlur:e=>s.onFieldBlurAnalytics(m,e)},e(a,{name:m,classNameModifiers:l,value:C,onInput:f,onBlur:p,maxlength:F,trimOnBlur:g,disabled:v,required:!y}))}}export{s as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import r from"../../FormFields/Field/Field.js";import o from"./StateField.js";import i from"./CountryField.js";import{useCoreContext as t}from"../../../../core/Context/CoreProvider.js";import a from"../../FormFields/InputText.js";function s(s){const{i18n:n}=t(),{classNameModifiers:l=[],data:d,errors:u,valid:c,fieldName:m,onInput:f,onBlur:p,trimOnBlur:g,maxLength:F,disabled:v}=s,C=d[m],M=d.country,y=s.specifications.countryHasOptionalField(M,m),b=s.specifications.getKeyForField(m,M),j=y?` ${n.get("field.title.optional")}`:"",w=`${n.get(b)}${j}`,h=function(e,r,o,i){var t,a;if("object"==typeof(null===(t=e[r])||void 0===t?void 0:t.errorMessage)){const{translationKey:i,translationObject:t}=e[r].errorMessage;return o.get(i,t)}return o.get(null===(a=e[r])||void 0===a?void 0:a.errorMessage,{values:{label:i.toLowerCase()}})||!!e[r]}(u,m,n,w);switch(m){case"country":return e(i,{allowedCountries:s.allowedCountries,classNameModifiers:l,label:w,errorMessage:h,onDropdownChange:s.onDropdownChange,value:C,required:!y});case"stateOrProvince":return e(o,{classNameModifiers:l,label:w,errorMessage:h,onDropdownChange:s.onDropdownChange,selectedCountry:M,specifications:s.specifications,value:C,required:!y});default:return e(r,{label:w,classNameModifiers:l,errorMessage:h,isValid:c[m],name:m,i18n:n,onFocus:e=>s.onFieldFocusAnalytics(m,e),onBlur:e=>s.onFieldBlurAnalytics(m,e)},e(a,{name:m,classNameModifiers:l,value:C,onInput:f,onBlur:p,maxlength:F,trimOnBlur:g,disabled:v,required:!y}))}}export{s as default};
2
2
  //# sourceMappingURL=FieldContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldContainer.js","sources":["../../../../../../src/components/internal/Address/components/FieldContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Field from '../../FormFields/Field';\nimport StateField from './StateField';\nimport CountryField from './CountryField';\nimport { AddressStateError, FieldContainerProps } from '../types';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport Language from '../../../../language/Language';\nimport InputText from '../../FormFields/InputText';\n\nfunction getErrorMessage(errors: AddressStateError, fieldName: string, i18n: Language, label: string): string | boolean {\n if (typeof errors[fieldName]?.errorMessage === 'object') {\n const { translationKey, translationObject } = errors[fieldName].errorMessage;\n return i18n.get(translationKey, translationObject);\n }\n // Default error msg: Enter the [label name]\n const errorMsg = i18n.get(errors[fieldName]?.errorMessage, { values: { label: label.toLowerCase() } });\n return errorMsg || !!errors[fieldName];\n}\n\n/**\n * USAGE: Specifically defined as a util to provide a wrapper for fields created within the Address component\n *\n * NOT TO BE USED: if you just want to add a Country or State dropdown outside of an Address component\n * - then you should implement <CountryField> or <StateField> directly\n */\nfunction FieldContainer(props: FieldContainerProps) {\n const { i18n } = useCoreContext();\n const { classNameModifiers = [], data, errors, valid, fieldName, onInput, onBlur, trimOnBlur, maxLength, disabled } = props;\n\n const value: string = data[fieldName];\n const selectedCountry: string = data.country;\n const isOptional: boolean = props.specifications.countryHasOptionalField(selectedCountry, fieldName);\n const labelKey: string = props.specifications.getKeyForField(fieldName, selectedCountry);\n const optionalLabel = isOptional ? ` ${i18n.get('field.title.optional')}` : '';\n const label = `${i18n.get(labelKey)}${optionalLabel}`;\n const errorMessage = getErrorMessage(errors, fieldName, i18n, label);\n\n switch (fieldName) {\n case 'country':\n return (\n <CountryField\n allowedCountries={props.allowedCountries}\n classNameModifiers={classNameModifiers}\n label={label}\n errorMessage={errorMessage}\n onDropdownChange={props.onDropdownChange}\n value={value}\n />\n );\n case 'stateOrProvince':\n return (\n <StateField\n classNameModifiers={classNameModifiers}\n label={label}\n errorMessage={errorMessage}\n onDropdownChange={props.onDropdownChange}\n selectedCountry={selectedCountry}\n specifications={props.specifications}\n value={value}\n />\n );\n default:\n return (\n <Field\n label={label}\n classNameModifiers={classNameModifiers}\n errorMessage={errorMessage}\n isValid={valid[fieldName]}\n name={fieldName}\n i18n={i18n}\n onFocus={e => props.onFieldFocusAnalytics(fieldName, e)}\n onBlur={e => props.onFieldBlurAnalytics(fieldName, e)}\n >\n <InputText\n name={fieldName}\n classNameModifiers={classNameModifiers}\n value={value}\n onInput={onInput}\n onBlur={onBlur}\n maxlength={maxLength}\n trimOnBlur={trimOnBlur}\n disabled={disabled}\n required={!isOptional}\n />\n </Field>\n );\n }\n}\n\nexport default FieldContainer;\n"],"names":["FieldContainer","props","i18n","useCoreContext","classNameModifiers","data","errors","valid","fieldName","onInput","onBlur","trimOnBlur","maxLength","disabled","value","selectedCountry","country","isOptional","specifications","countryHasOptionalField","labelKey","getKeyForField","optionalLabel","get","label","errorMessage","translationKey","translationObject","values","toLowerCase","getErrorMessage","h","CountryField","allowedCountries","onDropdownChange","StateField","Field","isValid","name","onFocus","e","onFieldFocusAnalytics","onFieldBlurAnalytics","InputText","maxlength","required"],"mappings":"iTAyBA,SAASA,EAAeC,GACpB,MAAMC,KAAEA,GAASC,KACXC,mBAAEA,EAAqB,GAAEC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,UAAEA,EAASC,QAAEA,EAAOC,OAAEA,EAAMC,WAAEA,EAAUC,UAAEA,EAASC,SAAEA,GAAaZ,EAEhHa,EAAgBT,EAAKG,GACrBO,EAA0BV,EAAKW,QAC/BC,EAAsBhB,EAAMiB,eAAeC,wBAAwBJ,EAAiBP,GACpFY,EAAmBnB,EAAMiB,eAAeG,eAAeb,EAAWO,GAClEO,EAAgBL,EAAa,IAAIf,EAAKqB,IAAI,0BAA4B,GACtEC,EAAQ,GAAGtB,EAAKqB,IAAIH,KAAYE,IAChCG,EA1BV,SAAyBnB,EAA2BE,EAAmBN,EAAgBsB,OACxElB,EAKeA,EAL1B,GAA+C,yBAApCA,EAAAA,EAAOE,UAAPF,IAAAA,OAAAA,EAAAA,EAAmBmB,cAA2B,CACrD,MAAMC,eAAEA,EAAcC,kBAAEA,GAAsBrB,EAAOE,GAAWiB,aAChE,OAAOvB,EAAKqB,IAAIG,EAAgBC,EACpC,CAGA,OADiBzB,EAAKqB,IAAIjB,QAAAA,EAAAA,EAAOE,UAAPF,IAAAA,OAAAA,EAAAA,EAAmBmB,aAAc,CAAEG,OAAQ,CAAEJ,MAAOA,EAAMK,oBAC/DvB,EAAOE,EAChC,CAkByBsB,CAAgBxB,EAAQE,EAAWN,EAAMsB,GAE9D,OAAQhB,GACJ,IAAK,UACD,OACIuB,EAACC,EAAAA,CACGC,iBAAkBhC,EAAMgC,iBACxB7B,mBAAoBA,EACpBoB,MAAOA,EACPC,aAAcA,EACdS,iBAAkBjC,EAAMiC,iBACxBpB,MAAOA,IAGnB,IAAK,kBACD,OACIiB,EAACI,EAAAA,CACG/B,mBAAoBA,EACpBoB,MAAOA,EACPC,aAAcA,EACdS,iBAAkBjC,EAAMiC,iBACxBnB,gBAAiBA,EACjBG,eAAgBjB,EAAMiB,eACtBJ,MAAOA,IAGnB,QACI,OACIiB,EAACK,EAAAA,CACGZ,MAAOA,EACPpB,mBAAoBA,EACpBqB,aAAcA,EACdY,QAAS9B,EAAMC,GACf8B,KAAM9B,EACNN,KAAMA,EACNqC,QAASC,GAAKvC,EAAMwC,sBAAsBjC,EAAWgC,GACrD9B,OAAQ8B,GAAKvC,EAAMyC,qBAAqBlC,EAAWgC,IAEnDT,EAACY,EAAAA,CACGL,KAAM9B,EACNJ,mBAAoBA,EACpBU,MAAOA,EACPL,QAASA,EACTC,OAAQA,EACRkC,UAAWhC,EACXD,WAAYA,EACZE,SAAUA,EACVgC,UAAW5B,KAKnC"}
1
+ {"version":3,"file":"FieldContainer.js","sources":["../../../../../../src/components/internal/Address/components/FieldContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Field from '../../FormFields/Field';\nimport StateField from './StateField';\nimport CountryField from './CountryField';\nimport { AddressStateError, FieldContainerProps } from '../types';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport Language from '../../../../language/Language';\nimport InputText from '../../FormFields/InputText';\n\nfunction getErrorMessage(errors: AddressStateError, fieldName: string, i18n: Language, label: string): string | boolean {\n if (typeof errors[fieldName]?.errorMessage === 'object') {\n const { translationKey, translationObject } = errors[fieldName].errorMessage;\n return i18n.get(translationKey, translationObject);\n }\n // Default error msg: Enter the [label name]\n const errorMsg = i18n.get(errors[fieldName]?.errorMessage, { values: { label: label.toLowerCase() } });\n return errorMsg || !!errors[fieldName];\n}\n\n/**\n * USAGE: Specifically defined as a util to provide a wrapper for fields created within the Address component\n *\n * NOT TO BE USED: if you just want to add a Country or State dropdown outside of an Address component\n * - then you should implement <CountryField> or <StateField> directly\n */\nfunction FieldContainer(props: FieldContainerProps) {\n const { i18n } = useCoreContext();\n const { classNameModifiers = [], data, errors, valid, fieldName, onInput, onBlur, trimOnBlur, maxLength, disabled } = props;\n\n const value: string = data[fieldName];\n const selectedCountry: string = data.country;\n const isOptional: boolean = props.specifications.countryHasOptionalField(selectedCountry, fieldName);\n const labelKey: string = props.specifications.getKeyForField(fieldName, selectedCountry);\n const optionalLabel = isOptional ? ` ${i18n.get('field.title.optional')}` : '';\n const label = `${i18n.get(labelKey)}${optionalLabel}`;\n const errorMessage = getErrorMessage(errors, fieldName, i18n, label);\n\n switch (fieldName) {\n case 'country':\n return (\n <CountryField\n allowedCountries={props.allowedCountries}\n classNameModifiers={classNameModifiers}\n label={label}\n errorMessage={errorMessage}\n onDropdownChange={props.onDropdownChange}\n value={value}\n required={!isOptional}\n />\n );\n case 'stateOrProvince':\n return (\n <StateField\n classNameModifiers={classNameModifiers}\n label={label}\n errorMessage={errorMessage}\n onDropdownChange={props.onDropdownChange}\n selectedCountry={selectedCountry}\n specifications={props.specifications}\n value={value}\n required={!isOptional}\n />\n );\n default:\n return (\n <Field\n label={label}\n classNameModifiers={classNameModifiers}\n errorMessage={errorMessage}\n isValid={valid[fieldName]}\n name={fieldName}\n i18n={i18n}\n onFocus={e => props.onFieldFocusAnalytics(fieldName, e)}\n onBlur={e => props.onFieldBlurAnalytics(fieldName, e)}\n >\n <InputText\n name={fieldName}\n classNameModifiers={classNameModifiers}\n value={value}\n onInput={onInput}\n onBlur={onBlur}\n maxlength={maxLength}\n trimOnBlur={trimOnBlur}\n disabled={disabled}\n required={!isOptional}\n />\n </Field>\n );\n }\n}\n\nexport default FieldContainer;\n"],"names":["FieldContainer","props","i18n","useCoreContext","classNameModifiers","data","errors","valid","fieldName","onInput","onBlur","trimOnBlur","maxLength","disabled","value","selectedCountry","country","isOptional","specifications","countryHasOptionalField","labelKey","getKeyForField","optionalLabel","get","label","errorMessage","translationKey","translationObject","values","toLowerCase","getErrorMessage","h","CountryField","allowedCountries","onDropdownChange","required","StateField","Field","isValid","name","onFocus","e","onFieldFocusAnalytics","onFieldBlurAnalytics","InputText","maxlength"],"mappings":"iTAyBA,SAASA,EAAeC,GACpB,MAAMC,KAAEA,GAASC,KACXC,mBAAEA,EAAqB,GAAEC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,UAAEA,EAASC,QAAEA,EAAOC,OAAEA,EAAMC,WAAEA,EAAUC,UAAEA,EAASC,SAAEA,GAAaZ,EAEhHa,EAAgBT,EAAKG,GACrBO,EAA0BV,EAAKW,QAC/BC,EAAsBhB,EAAMiB,eAAeC,wBAAwBJ,EAAiBP,GACpFY,EAAmBnB,EAAMiB,eAAeG,eAAeb,EAAWO,GAClEO,EAAgBL,EAAa,IAAIf,EAAKqB,IAAI,0BAA4B,GACtEC,EAAQ,GAAGtB,EAAKqB,IAAIH,KAAYE,IAChCG,EA1BV,SAAyBnB,EAA2BE,EAAmBN,EAAgBsB,OACxElB,EAKeA,EAL1B,GAA+C,yBAApCA,EAAAA,EAAOE,UAAPF,IAAAA,OAAAA,EAAAA,EAAmBmB,cAA2B,CACrD,MAAMC,eAAEA,EAAcC,kBAAEA,GAAsBrB,EAAOE,GAAWiB,aAChE,OAAOvB,EAAKqB,IAAIG,EAAgBC,EACpC,CAGA,OADiBzB,EAAKqB,IAAIjB,QAAAA,EAAAA,EAAOE,UAAPF,IAAAA,OAAAA,EAAAA,EAAmBmB,aAAc,CAAEG,OAAQ,CAAEJ,MAAOA,EAAMK,oBAC/DvB,EAAOE,EAChC,CAkByBsB,CAAgBxB,EAAQE,EAAWN,EAAMsB,GAE9D,OAAQhB,GACJ,IAAK,UACD,OACIuB,EAACC,EAAAA,CACGC,iBAAkBhC,EAAMgC,iBACxB7B,mBAAoBA,EACpBoB,MAAOA,EACPC,aAAcA,EACdS,iBAAkBjC,EAAMiC,iBACxBpB,MAAOA,EACPqB,UAAWlB,IAGvB,IAAK,kBACD,OACIc,EAACK,EAAAA,CACGhC,mBAAoBA,EACpBoB,MAAOA,EACPC,aAAcA,EACdS,iBAAkBjC,EAAMiC,iBACxBnB,gBAAiBA,EACjBG,eAAgBjB,EAAMiB,eACtBJ,MAAOA,EACPqB,UAAWlB,IAGvB,QACI,OACIc,EAACM,EAAAA,CACGb,MAAOA,EACPpB,mBAAoBA,EACpBqB,aAAcA,EACda,QAAS/B,EAAMC,GACf+B,KAAM/B,EACNN,KAAMA,EACNsC,QAASC,GAAKxC,EAAMyC,sBAAsBlC,EAAWiC,GACrD/B,OAAQ+B,GAAKxC,EAAM0C,qBAAqBnC,EAAWiC,IAEnDV,EAACa,EAAAA,CACGL,KAAM/B,EACNJ,mBAAoBA,EACpBU,MAAOA,EACPL,QAASA,EACTC,OAAQA,EACRmC,UAAWjC,EACXD,WAAYA,EACZE,SAAUA,EACVsB,UAAWlB,KAKnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReadOnlyAddress.js","sources":["../../../../../../src/components/internal/Address/components/ReadOnlyAddress.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport Fieldset from '../../FormFields/Fieldset';\nimport { ReadOnlyAddressProps } from '../types';\nimport { FALLBACK_VALUE } from '../constants';\n\nconst FullName = ({ firstName, lastName }) => {\n return (\n <Fragment>\n {firstName && `${firstName} `}\n {lastName && `${lastName}`}\n <br />\n </Fragment>\n );\n};\n\nconst ReadOnlyAddress = ({ data, label }: ReadOnlyAddressProps) => {\n const { street, houseNumberOrName, city, postalCode, stateOrProvince, country, firstName, lastName } = data;\n const hasName = firstName || lastName;\n\n return (\n <Fieldset classNameModifiers={[label]} label={label} readonly>\n <Fragment>\n {hasName && <FullName firstName={firstName} lastName={lastName}></FullName>}\n {!!street && street}\n {houseNumberOrName && `, ${houseNumberOrName},`}\n <br />\n {postalCode && `${postalCode}`}\n {city && `, ${city}`}\n {stateOrProvince && stateOrProvince !== FALLBACK_VALUE && `, ${stateOrProvince}`}\n {country && `, ${country} `}\n </Fragment>\n </Fieldset>\n );\n};\n\nexport default ReadOnlyAddress;\n"],"names":["FullName","firstName","lastName","h","Fragment","br","ReadOnlyAddress","data","label","street","houseNumberOrName","city","postalCode","stateOrProvince","country","Fieldset","classNameModifiers","readonly","FALLBACK_VALUE"],"mappings":"+LAKA,MAAMA,EAAW,EAAGC,YAAWC,cAEvBC,EAACC,EAAAA,KACIH,GAAa,GAAGA,KAChBC,GAAY,GAAGA,IAChBC,EAACE,KAAAA,OAKPC,EAAkB,EAAGC,OAAMC,YAC7B,MAAMC,OAAEA,EAAMC,kBAAEA,EAAiBC,KAAEA,EAAIC,WAAEA,EAAUC,gBAAEA,EAAeC,QAAEA,EAAOb,UAAEA,EAASC,SAAEA,GAAaK,EAGvG,OACIJ,EAACY,EAAAA,CAASC,mBAAoB,CAACR,GAAQA,MAAOA,EAAOS,UAAAA,GACjDd,EAACC,EAAAA,MAJOH,GAAaC,IAKLC,EAACH,EAAAA,CAASC,UAAWA,EAAWC,SAAUA,MACnDO,GAAUA,EACZC,GAAqB,KAAKA,KAC3BP,EAACE,KACAO,MAAAA,GAAc,GAAGA,IACjBD,GAAQ,KAAKA,IACbE,GAAmBA,IAAoBK,GAAkB,KAAKL,IAC9DC,GAAW,KAAKA,MAAU"}
1
+ {"version":3,"file":"ReadOnlyAddress.js","sources":["../../../../../../src/components/internal/Address/components/ReadOnlyAddress.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport Fieldset from '../../FormFields/Fieldset';\nimport { ReadOnlyAddressProps } from '../types';\nimport { FALLBACK_VALUE } from '../constants';\n\nconst FullName = ({ firstName, lastName }) => {\n return (\n <Fragment>\n {firstName && `${firstName} `}\n {lastName && `${lastName}`}\n <br />\n </Fragment>\n );\n};\n\nconst ReadOnlyAddress = ({ data, label }: ReadOnlyAddressProps) => {\n const { street, houseNumberOrName, city, postalCode, stateOrProvince, country, firstName, lastName } = data;\n const hasName = firstName || lastName;\n\n return (\n <Fieldset classNameModifiers={[label]} label={label} readonly>\n <Fragment>\n {hasName && <FullName firstName={firstName} lastName={lastName}></FullName>}\n {!!street && street}\n {houseNumberOrName && `, ${houseNumberOrName},`}\n <br />\n {postalCode && `${postalCode}`}\n {city && `, ${city}`}\n {stateOrProvince && stateOrProvince !== FALLBACK_VALUE && `, ${stateOrProvince}`}\n {country && `, ${country} `}\n </Fragment>\n </Fieldset>\n );\n};\n\nexport default ReadOnlyAddress;\n"],"names":["FullName","firstName","lastName","h","Fragment","br","ReadOnlyAddress","data","label","street","houseNumberOrName","city","postalCode","stateOrProvince","country","Fieldset","classNameModifiers","readonly","FALLBACK_VALUE"],"mappings":"+LAKA,MAAMA,EAAW,EAAGC,YAAWC,cAEvBC,EAACC,EAAAA,KACIH,GAAa,GAAGA,KAChBC,GAAY,GAAGA,IAChBC,EAACE,KAAAA,OAKPC,EAAkB,EAAGC,OAAMC,YAC7B,MAAMC,OAAEA,EAAMC,kBAAEA,EAAiBC,KAAEA,EAAIC,WAAEA,EAAUC,gBAAEA,EAAeC,QAAEA,EAAOb,UAAEA,EAASC,SAAEA,GAAaK,EAGvG,OACIJ,EAACY,EAAAA,CAASC,mBAAoB,CAACR,GAAQA,MAAOA,EAAOS,UAAAA,GACjDd,EAACC,EAAAA,MAJOH,GAAaC,IAKLC,EAACH,EAAAA,CAASC,UAAWA,EAAWC,SAAUA,MACnDO,GAAUA,EACZC,GAAqB,KAAKA,KAC3BP,EAACE,KAAAA,MACAO,GAAc,GAAGA,IACjBD,GAAQ,KAAKA,IACbE,GAAmBA,IAAoBK,GAAkB,KAAKL,IAC9DC,GAAW,KAAKA,MAAU"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useState as t,useLayoutEffect as r}from"../../../../external/preact/hooks/dist/hooks.js";import o from"../../FormFields/Field/Field.js";import{useCoreContext as s}from"../../../../core/Context/CoreProvider.js";import a from"../../../../core/Services/get-dataset.js";import n from"../../FormFields/Select/Select.js";function i(i){const{classNameModifiers:l,label:c,onDropdownChange:d,readOnly:m,selectedCountry:f,specifications:p,value:u}=i,{i18n:h,loadingContext:g}=s(),[j,v]=t([]),[y,C]=t(!1);return r((()=>{if(!f||!p.countryHasDataset(f))return v([]),void C(!0);a(`states/${f}`,g,h.locale).then((e=>{const t=e&&e.length?e:[];v(t),C(!0)})).catch((()=>{v([]),C(!0)}))}),[f]),y&&j.length?e(o,{label:c,classNameModifiers:l,errorMessage:i.errorMessage,isValid:!!u,showValidIcon:!1,name:"stateOrProvince",i18n:h,readOnly:m&&!!u},e(n,{name:"stateOrProvince",onChange:d,selectedValue:u,items:j,readonly:m&&!!u})):null}export{i as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useState as r,useLayoutEffect as t}from"../../../../external/preact/hooks/dist/hooks.js";import o from"../../FormFields/Field/Field.js";import{useCoreContext as s}from"../../../../core/Context/CoreProvider.js";import a from"../../../../core/Services/get-dataset.js";import i from"../../FormFields/Select/Select.js";function n(n){const{classNameModifiers:l,label:c,onDropdownChange:d,readOnly:m,selectedCountry:f,specifications:u,value:p,required:h}=n,{i18n:g,loadingContext:j}=s(),[v,y]=r([]),[C,F]=r(!1);return t((()=>{if(!f||!u.countryHasDataset(f))return y([]),void F(!0);a(`states/${f}`,j,g.locale).then((e=>{const r=e&&e.length?e:[];y(r),F(!0)})).catch((()=>{y([]),F(!0)}))}),[f]),C&&v.length?e(o,{label:c,classNameModifiers:l,errorMessage:n.errorMessage,isValid:!!p,showValidIcon:!1,name:"stateOrProvince",i18n:g,readOnly:m&&!!p},e(i,{name:"stateOrProvince",onChange:d,selectedValue:p,items:v,required:h,readonly:m&&!!p})):null}export{n as default};
2
2
  //# sourceMappingURL=StateField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StateField.js","sources":["../../../../../../src/components/internal/Address/components/StateField.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useLayoutEffect } from 'preact/hooks';\nimport Field from '../../FormFields/Field';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport getDataset from '../../../../core/Services/get-dataset';\nimport { StateFieldItem, StateFieldProps } from '../types';\nimport Select from '../../FormFields/Select';\n\nexport default function StateField(props: StateFieldProps) {\n const { classNameModifiers, label, onDropdownChange, readOnly, selectedCountry, specifications, value } = props;\n const { i18n, loadingContext } = useCoreContext();\n const [states, setStates] = useState<StateFieldItem[]>([]);\n const [loaded, setLoaded] = useState<boolean>(false);\n\n useLayoutEffect(() => {\n if (!selectedCountry || !specifications.countryHasDataset(selectedCountry)) {\n setStates([]);\n setLoaded(true);\n return;\n }\n\n getDataset(`states/${selectedCountry}`, loadingContext, i18n.locale)\n .then(response => {\n const newStates = response && response.length ? response : [];\n setStates(newStates);\n setLoaded(true);\n })\n .catch(() => {\n setStates([]);\n setLoaded(true);\n });\n }, [selectedCountry]);\n\n if (!loaded || !states.length) return null;\n\n return (\n <Field\n label={label}\n classNameModifiers={classNameModifiers}\n errorMessage={props.errorMessage}\n isValid={!!value}\n showValidIcon={false}\n name={'stateOrProvince'}\n i18n={i18n}\n readOnly={readOnly && !!value}\n >\n <Select name={'stateOrProvince'} onChange={onDropdownChange} selectedValue={value} items={states} readonly={readOnly && !!value} />\n </Field>\n );\n}\n"],"names":["StateField","props","classNameModifiers","label","onDropdownChange","readOnly","selectedCountry","specifications","value","i18n","loadingContext","useCoreContext","states","setStates","useState","loaded","setLoaded","useLayoutEffect","countryHasDataset","getDataset","locale","then","response","newStates","length","catch","h","Field","errorMessage","isValid","showValidIcon","name","Select","onChange","selectedValue","items","readonly"],"mappings":"6YAQe,SAASA,EAAWC,GAC/B,MAAMC,mBAAEA,EAAkBC,MAAEA,EAAKC,iBAAEA,EAAgBC,SAAEA,EAAQC,gBAAEA,EAAeC,eAAEA,EAAcC,MAAEA,GAAUP,GACpGQ,KAAEA,EAAIC,eAAEA,GAAmBC,KAC1BC,EAAQC,GAAaC,EAA2B,KAChDC,EAAQC,GAAaF,GAAkB,GAqB9C,OAnBAG,GAAgB,KACZ,IAAKX,IAAoBC,EAAeW,kBAAkBZ,GAGtD,OAFAO,EAAU,SACVG,GAAU,GAIdG,EAAW,UAAUb,IAAmBI,EAAgBD,EAAKW,QACxDC,MAAKC,IACF,MAAMC,EAAYD,GAAYA,EAASE,OAASF,EAAW,GAC3DT,EAAUU,GACVP,GAAU,EAAA,IAEbS,OAAM,KACHZ,EAAU,IACVG,GAAU,EAAA,GACd,GACL,CAACV,IAECS,GAAWH,EAAOY,OAGnBE,EAACC,EAAAA,CACGxB,MAAOA,EACPD,mBAAoBA,EACpB0B,aAAc3B,EAAM2B,aACpBC,UAAWrB,EACXsB,eAAe,EACfC,KAAM,kBACNtB,KAAMA,EACNJ,SAAUA,KAAcG,GAExBkB,EAACM,EAAAA,CAAOD,KAAM,kBAAmBE,SAAU7B,EAAkB8B,cAAe1B,EAAO2B,MAAOvB,EAAQwB,SAAU/B,KAAcG,KAb5F,IAgB1C"}
1
+ {"version":3,"file":"StateField.js","sources":["../../../../../../src/components/internal/Address/components/StateField.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useLayoutEffect } from 'preact/hooks';\nimport Field from '../../FormFields/Field';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport getDataset from '../../../../core/Services/get-dataset';\nimport { StateFieldItem, StateFieldProps } from '../types';\nimport Select from '../../FormFields/Select';\n\nexport default function StateField(props: StateFieldProps) {\n const { classNameModifiers, label, onDropdownChange, readOnly, selectedCountry, specifications, value, required } = props;\n const { i18n, loadingContext } = useCoreContext();\n const [states, setStates] = useState<StateFieldItem[]>([]);\n const [loaded, setLoaded] = useState<boolean>(false);\n\n useLayoutEffect(() => {\n if (!selectedCountry || !specifications.countryHasDataset(selectedCountry)) {\n setStates([]);\n setLoaded(true);\n return;\n }\n\n getDataset(`states/${selectedCountry}`, loadingContext, i18n.locale)\n .then(response => {\n const newStates = response && response.length ? response : [];\n setStates(newStates);\n setLoaded(true);\n })\n .catch(() => {\n setStates([]);\n setLoaded(true);\n });\n }, [selectedCountry]);\n\n if (!loaded || !states.length) return null;\n\n return (\n <Field\n label={label}\n classNameModifiers={classNameModifiers}\n errorMessage={props.errorMessage}\n isValid={!!value}\n showValidIcon={false}\n name={'stateOrProvince'}\n i18n={i18n}\n readOnly={readOnly && !!value}\n >\n <Select\n name={'stateOrProvince'}\n onChange={onDropdownChange}\n selectedValue={value}\n items={states}\n required={required}\n readonly={readOnly && !!value}\n />\n </Field>\n );\n}\n"],"names":["StateField","props","classNameModifiers","label","onDropdownChange","readOnly","selectedCountry","specifications","value","required","i18n","loadingContext","useCoreContext","states","setStates","useState","loaded","setLoaded","useLayoutEffect","countryHasDataset","getDataset","locale","then","response","newStates","length","catch","h","Field","errorMessage","isValid","showValidIcon","name","Select","onChange","selectedValue","items","readonly"],"mappings":"6YAQe,SAASA,EAAWC,GAC/B,MAAMC,mBAAEA,EAAkBC,MAAEA,EAAKC,iBAAEA,EAAgBC,SAAEA,EAAQC,gBAAEA,EAAeC,eAAEA,EAAcC,MAAEA,EAAKC,SAAEA,GAAaR,GAC9GS,KAAEA,EAAIC,eAAEA,GAAmBC,KAC1BC,EAAQC,GAAaC,EAA2B,KAChDC,EAAQC,GAAaF,GAAkB,GAqB9C,OAnBAG,GAAgB,KACZ,IAAKZ,IAAoBC,EAAeY,kBAAkBb,GAGtD,OAFAQ,EAAU,SACVG,GAAU,GAIdG,EAAW,UAAUd,IAAmBK,EAAgBD,EAAKW,QACxDC,MAAKC,IACF,MAAMC,EAAYD,GAAYA,EAASE,OAASF,EAAW,GAC3DT,EAAUU,GACVP,GAAU,EAAA,IAEbS,OAAM,KACHZ,EAAU,IACVG,GAAU,EAAA,GACd,GACL,CAACX,IAECU,GAAWH,EAAOY,OAGnBE,EAACC,EAAAA,CACGzB,MAAOA,EACPD,mBAAoBA,EACpB2B,aAAc5B,EAAM4B,aACpBC,UAAWtB,EACXuB,eAAe,EACfC,KAAM,kBACNtB,KAAMA,EACNL,SAAUA,KAAcG,GAExBmB,EAACM,EAAAA,CACGD,KAAM,kBACNE,SAAU9B,EACV+B,cAAe3B,EACf4B,MAAOvB,EACPJ,SAAUA,EACV4B,SAAUhC,KAAcG,KAnBE,IAuB1C"}
@@ -1,2 +1,2 @@
1
- import{render as t}from"../../../external/preact/dist/preact.js";import e from"../../../utils/getProp.js";import r from"../../../utils/uuid.js";import o from"../../../core/Errors/AdyenCheckoutError.js";import{NO_CHECKOUT_ATTEMPT_ID as n,ANALYTICS_RENDERED_STR as s}from"../../../core/Analytics/constants.js";import{on as i,off as c}from"../../../utils/listenerUtils.js";function p(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),o.forEach((function(e){p(t,e,r[e])}))}return t}function u(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})),t}function l(t,e){if(null==t)return{};var r,o,n=function(t,e){if(null==t)return{};var r,o,n={},s=Object.keys(t);for(o=0;o<s.length;o++)r=s[o],e.indexOf(r)>=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(o=0;o<s.length;o++)r=s[o],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}class h{buildElementProps(t){this.props=this.formatProps(a({},this.constructor.defaultProps,t))}formatProps(t){return t}formatData(){return{}}setUpAnalytics(t){return null}submitAnalytics(t){return null}handleKeyPress(t){return null}setState(t){this.state=a({},this.state,t)}get data(){var t;const r=e(this.props,"modules.risk.data");var o;const s=null!==(o=null===(t=e(this.props,"modules.analytics.getCheckoutAttemptId"))||void 0===t?void 0:t())&&void 0!==o?o:n,i=this.state.order||this.props.order,c=this.formatData();if(c.paymentMethod&&s&&(c.paymentMethod.checkoutAttemptId=s),"riverty"!==this.props.type&&c.billingAddress){const t=l(c.billingAddress,["firstName","lastName"]);c.billingAddress=a({},t)}return u(a({},r&&{riskData:{clientData:r}},i&&{order:{orderData:i.orderData,pspReference:i.pspReference}},c),{clientStateDataIndicator:!0})}render(){throw new Error("Payment method cannot be rendered.")}mount(e){const r="string"==typeof e?document.querySelector(e):e;if(!r)throw new Error("Component could not mount. Root node was not found.");const o=!this._node;var n;(this._node&&this.unmount(),this._node=r,i(this._node,"keypress",this.handleKeyPress,!1),this._component=this.render(),t(this._component,r),o)&&(this.props.modules&&this.props.modules.analytics&&this.setUpAnalytics({containerWidth:r&&r.offsetWidth,component:this.props.isDropin?"dropin":null!==(n=this.constructor.analyticsType)&&void 0!==n?n:this.constructor.type,flavor:this.props.isDropin?"dropin":"components"}).then((()=>{this.props.isDropin||this.submitAnalytics({type:s})})));return this}update(t){return this.props=this.formatProps(a({},this.props,t)),this.state={},this.unmount().mount(this._node)}unmount(){return c(this._node,"keypress",this.handleKeyPress),this._node&&t(null,this._node),this}remove(){this.unmount(),this.core&&this.core.remove(this)}constructor(t,e){p(this,"_id",`${this.constructor.type}-${r()}`),p(this,"core",void 0),p(this,"props",void 0),p(this,"state",{}),p(this,"_component",void 0),p(this,"_node",null);const n=function(t){return!!t&&("function"==typeof t.initialize&&"function"==typeof t.createFromAction)}(t);if(!n)throw new o("IMPLEMENTATION_ERROR",`Trying to initialise the component '${this.constructor.type}' without a reference to an instance of AdyenCheckout`);this.core=t,this.buildElementProps(e),this.handleKeyPress=this.handleKeyPress.bind(this)}}p(h,"defaultProps",{});export{h as default};
1
+ import{render as t}from"../../../external/preact/dist/preact.js";import e from"../../../utils/getProp.js";import r from"../../../utils/uuid.js";import o from"../../../core/Errors/AdyenCheckoutError.js";import{NO_CHECKOUT_ATTEMPT_ID as n,ANALYTICS_RENDERED_STR as s}from"../../../core/Analytics/constants.js";import{on as i,off as c}from"../../../utils/listenerUtils.js";function p(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),o.forEach((function(e){p(t,e,r[e])}))}return t}function u(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})),t}function l(t,e){if(null==t)return{};var r,o,n=function(t,e){if(null==t)return{};var r,o,n={},s=Object.keys(t);for(o=0;o<s.length;o++)r=s[o],e.indexOf(r)>=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);for(o=0;o<s.length;o++)r=s[o],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}class h{buildElementProps(t){this.props=this.formatProps(a({},this.constructor.defaultProps,t))}formatProps(t){return t}formatData(){return{}}setUpAnalytics(t){return null}submitAnalytics(t){return null}handleKeyPress(t){return null}setState(t){this.state=a({},this.state,t)}get data(){var t;const r=e(this.props,"modules.risk.data");var o;const s=null!==(o=null===(t=e(this.props,"modules.analytics.getCheckoutAttemptId"))||void 0===t?void 0:t())&&void 0!==o?o:n,i=this.state.order||this.props.order,c=this.formatData();if(c.paymentMethod&&s&&(c.paymentMethod.checkoutAttemptId=s),"riverty"!==this.props.type&&c.billingAddress){const t=l(c.billingAddress,["firstName","lastName"]);c.billingAddress=a({},t)}return u(a({},r&&{riskData:{clientData:r}},i&&{order:{orderData:i.orderData,pspReference:i.pspReference}},c),{clientStateDataIndicator:!0})}activate(){}render(){throw new Error("Payment method cannot be rendered.")}mount(e){const r="string"==typeof e?document.querySelector(e):e;if(!r)throw new Error("Component could not mount. Root node was not found.");const o=!this._node;var n;(this._node&&this.unmount(),this._node=r,i(this._node,"keypress",this.handleKeyPress,!1),this._component=this.render(),t(this._component,r),o)&&(this.props.modules&&this.props.modules.analytics&&this.setUpAnalytics({containerWidth:r&&r.offsetWidth,component:this.props.isDropin?"dropin":null!==(n=this.constructor.analyticsType)&&void 0!==n?n:this.constructor.type,flavor:this.props.isDropin?"dropin":"components"}).then((()=>{this.props.isDropin||this.submitAnalytics({type:s})})));return this}update(t){return this.props=this.formatProps(a({},this.props,t)),this.state={},this.unmount().mount(this._node)}unmount(){return c(this._node,"keypress",this.handleKeyPress),this._node&&t(null,this._node),this}remove(){this.unmount(),this.core&&this.core.remove(this)}constructor(t,e){p(this,"_id",`${this.constructor.type}-${r()}`),p(this,"core",void 0),p(this,"props",void 0),p(this,"state",{}),p(this,"_component",void 0),p(this,"_node",null);const n=function(t){return!!t&&("function"==typeof t.initialize&&"function"==typeof t.createFromAction)}(t);if(!n)throw new o("IMPLEMENTATION_ERROR",`Trying to initialise the component '${this.constructor.type}' without a reference to an instance of AdyenCheckout`);this.core=t,this.buildElementProps(e),this.handleKeyPress=this.handleKeyPress.bind(this)}}p(h,"defaultProps",{});export{h as default};
2
2
  //# sourceMappingURL=BaseElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseElement.js","sources":["../../../../../src/components/internal/BaseElement/BaseElement.ts"],"sourcesContent":["import { ComponentChild, h, render } from 'preact';\nimport getProp from '../../../utils/getProp';\nimport uuid from '../../../utils/uuid';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport { ANALYTICS_RENDERED_STR, NO_CHECKOUT_ATTEMPT_ID } from '../../../core/Analytics/constants';\n\nimport type { ICore } from '../../../core/types';\nimport type { BaseElementProps, IBaseElement } from './types';\nimport type { PaymentData } from '../../../types/global-types';\nimport type { AnalyticsInitialEvent, SendAnalyticsObject } from '../../../core/Analytics/types';\nimport { off, on } from '../../../utils/listenerUtils';\n\n/**\n * Verify if the first parameter is instance of Core.\n * We do not use 'instanceof' to avoid importing the Core class directly into this class.\n * @param checkout\n */\nfunction assertIsCoreInstance(checkout: ICore): checkout is ICore {\n if (!checkout) return false;\n const isCoreObject = typeof checkout.initialize === 'function' && typeof checkout.createFromAction === 'function';\n return isCoreObject;\n}\n\nabstract class BaseElement<P extends BaseElementProps> implements IBaseElement {\n public readonly _id = `${this.constructor['type']}-${uuid()}`;\n public readonly core: ICore;\n\n public props: P;\n public state: any = {};\n public _component;\n\n protected _node: HTMLElement = null;\n\n protected static defaultProps = {};\n\n constructor(checkout: ICore, props?: P) {\n const isCoreInstance = assertIsCoreInstance(checkout);\n\n if (!isCoreInstance) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n `Trying to initialise the component '${this.constructor['type']}' without a reference to an instance of AdyenCheckout`\n );\n }\n\n this.core = checkout;\n this.buildElementProps(props);\n\n this.handleKeyPress = this.handleKeyPress.bind(this);\n }\n\n protected buildElementProps(componentProps?: P) {\n this.props = this.formatProps({ ...this.constructor['defaultProps'], ...componentProps });\n }\n\n /**\n * Executed during creation of any payment element.\n * Gives a chance to any paymentMethod to format the props we're receiving.\n */\n protected formatProps(props: P) {\n return props;\n }\n\n /**\n * Executed on the `data` getter.\n * Returns the component data necessary for the /payments request\n */\n protected formatData(): any {\n return {};\n }\n\n /* eslint-disable-next-line */\n protected setUpAnalytics(setUpAnalyticsObj: AnalyticsInitialEvent) {\n return null;\n }\n\n /* eslint-disable-next-line */\n protected submitAnalytics(analyticsObj?: SendAnalyticsObject) {\n return null;\n }\n\n /* eslint-disable-next-line */\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement>) {\n return null;\n }\n\n protected setState(newState: object): void {\n this.state = { ...this.state, ...newState };\n }\n\n /**\n * Returns the component payment data ready to submit to the Checkout API\n * Note: this does not ensure validity, check isValid first\n */\n public get data(): PaymentData {\n const clientData = getProp(this.props, 'modules.risk.data');\n const checkoutAttemptId = getProp(this.props, 'modules.analytics.getCheckoutAttemptId')?.() ?? NO_CHECKOUT_ATTEMPT_ID; // NOTE: we never expect to see this \"failed\" value, but, just in case...\n const order = this.state.order || this.props.order;\n const componentData = this.formatData();\n\n if (componentData.paymentMethod && checkoutAttemptId) {\n componentData.paymentMethod.checkoutAttemptId = checkoutAttemptId;\n }\n\n // Workaround, to be fixed properly\n // Remove the firstName & lastName in the billingAddress for non Riverty components\n // @ts-ignore type exists\n if (this.props.type !== 'riverty' && componentData.billingAddress) {\n const { firstName, lastName, ...rest } = componentData.billingAddress;\n componentData.billingAddress = { ...rest };\n }\n\n return {\n ...(clientData && { riskData: { clientData } }),\n ...(order && { order: { orderData: order.orderData, pspReference: order.pspReference } }),\n ...componentData,\n clientStateDataIndicator: true\n };\n }\n\n public render(): ComponentChild | Error {\n // render() not implemented in the element\n throw new Error('Payment method cannot be rendered.');\n }\n\n /**\n * Mounts an element into the dom\n * @param domNode - Node (or selector) where we will mount the payment element\n * @returns this - the payment element instance we mounted\n */\n public mount(domNode: HTMLElement | string): this {\n const node = typeof domNode === 'string' ? document.querySelector<HTMLElement>(domNode) : domNode;\n\n if (!node) {\n throw new Error('Component could not mount. Root node was not found.');\n }\n\n const setupAnalytics = !this._node;\n\n if (this._node) {\n this.unmount(); // new, if this._node exists then we are \"remounting\" so we first need to unmount if it's not already been done\n }\n\n this._node = node;\n\n // Add listener for key press events, notably 'Enter' key presses\n on(this._node, 'keypress', this.handleKeyPress, false);\n\n this._component = this.render();\n\n render(this._component, node);\n\n // Set up analytics (once, since this._node is currently undefined) now that we have mounted and rendered\n if (setupAnalytics) {\n if (this.props.modules && this.props.modules.analytics) {\n this.setUpAnalytics({\n containerWidth: node && node.offsetWidth,\n component: !this.props.isDropin ? (this.constructor['analyticsType'] ?? this.constructor['type']) : 'dropin',\n flavor: !this.props.isDropin ? 'components' : 'dropin'\n }).then(() => {\n // Once the initial analytics set up call has been made...\n // ...create an analytics event declaring that the component has been rendered\n // (The dropin will do this itself from DropinComponent once the PM list has rendered)\n if (!this.props.isDropin) {\n this.submitAnalytics({ type: ANALYTICS_RENDERED_STR });\n }\n });\n }\n }\n\n return this;\n }\n\n /**\n * Updates props, resets the internal state and remounts the element.\n *\n * @param props - props to update\n * @returns this - the element instance\n */\n public update(props: Partial<P>): this {\n this.props = this.formatProps({ ...this.props, ...props });\n this.state = {};\n\n return this.unmount().mount(this._node); // for new mount fny\n }\n\n /**\n * Unmounts a payment element from the DOM\n */\n public unmount(): this {\n // Remove listener\n off(this._node, 'keypress', this.handleKeyPress);\n\n if (this._node) {\n render(null, this._node);\n }\n\n return this;\n }\n\n /**\n * Unmounts an element and removes it from the parent instance\n * For \"destroy\" type cleanup - when you don't intend to use the component again\n */\n public remove() {\n this.unmount();\n\n if (this.core) {\n this.core.remove(this);\n }\n }\n}\n\nexport default BaseElement;\n"],"names":["BaseElement","buildElementProps","componentProps","this","props","formatProps","_object_spread","constructor","formatData","setUpAnalytics","setUpAnalyticsObj","submitAnalytics","analyticsObj","handleKeyPress","e","setState","newState","state","data","getProp","clientData","checkoutAttemptId","NO_CHECKOUT_ATTEMPT_ID","order","componentData","paymentMethod","type","billingAddress","rest","firstName","lastName","_object_spread_props","riskData","orderData","pspReference","clientStateDataIndicator","render","Error","mount","domNode","node","document","querySelector","setupAnalytics","_node","_this_constructor_analyticsType","unmount","on","_component","modules","analytics","containerWidth","offsetWidth","component","isDropin","flavor","then","ANALYTICS_RENDERED_STR","update","off","remove","core","checkout","_define_property","_id","uuid","isCoreInstance","initialize","createFromAction","assertIsCoreInstance","AdyenCheckoutError","bind","defaultProps"],"mappings":"qhDAuBA,MAAeA,EA4BDC,iBAAAA,CAAkBC,GACxBC,KAAKC,MAAQD,KAAKE,YAAYC,EAAA,CAAA,EAAKH,KAAKI,yBAAgCL,GAC5E,CAMUG,WAAAA,CAAYD,GAClB,OAAOA,CACX,CAMA,UAAAI,GACI,MAAO,EACX,CAGUC,cAAAA,CAAeC,GACrB,OAAO,IACX,CAGUC,eAAAA,CAAgBC,GACtB,OAAO,IACX,CAGUC,cAAAA,CAAeC,GACrB,OAAO,IACX,CAEUC,QAAAA,CAASC,GACfb,KAAKc,MAAQX,KAAKH,KAAKc,MAAUD,EACrC,CAMA,QAAWE,GAEmBC,IAAAA,EAD1B,MAAMC,EAAaD,EAAQhB,KAAKC,MAAO,qBACbe,IAAAA,EAA1B,MAAME,EAAoBF,QAAAA,UAAAA,EAAAA,EAAQhB,KAAKC,MAAO,iDAApBe,IAAAA,OAAAA,EAAAA,WAAAA,IAAAA,EAAAA,EAAqEG,EACzFC,EAAQpB,KAAKc,MAAMM,OAASpB,KAAKC,MAAMmB,MACvCC,EAAgBrB,KAAKK,aAS3B,GAPIgB,EAAcC,eAAiBJ,IAC/BG,EAAcC,cAAcJ,kBAAoBA,GAM5B,YAApBlB,KAAKC,MAAMsB,MAAsBF,EAAcG,eAAgB,CACtBH,MAATI,EAASJ,EAAAA,EAAcG,eAAdH,CAAjCK,YAAWC,aACnBN,EAAcG,eAAiBrB,EAAKsB,CAAAA,EAAAA,EACxC,CAEA,OAAOG,OACCX,GAAc,CAAEY,SAAU,CAAEZ,eAC5BG,GAAS,CAAEA,MAAO,CAAEU,UAAWV,EAAMU,UAAWC,aAAcX,EAAMW,eACrEV,GAAAA,CACHW,0BAA0B,GAElC,CAEOC,MAAAA,GAEH,MAAM,IAAIC,MAAM,qCACpB,CAOOC,KAAAA,CAAMC,GACT,MAAMC,EAA0B,iBAAZD,EAAuBE,SAASC,cAA2BH,GAAWA,EAE1F,IAAKC,EACD,MAAM,IAAIH,MAAM,uDAGpB,MAAMM,GAAkBxC,KAAKyC,MAoBkB,IAAAC,GAlB3C1C,KAAKyC,OACLzC,KAAK2C,UAGT3C,KAAKyC,MAAQJ,EAGbO,EAAG5C,KAAKyC,MAAO,WAAYzC,KAAKU,gBAAgB,GAEhDV,KAAK6C,WAAa7C,KAAKiC,SAEvBA,EAAOjC,KAAK6C,WAAYR,GAGpBG,KACIxC,KAAKC,MAAM6C,SAAW9C,KAAKC,MAAM6C,QAAQC,WACzC/C,KAAKM,eAAe,CAChB0C,eAAgBX,GAAQA,EAAKY,YAC7BC,UAAYlD,KAAKC,MAAMkD,SAA6E,iBAAjET,EAAA1C,KAAKI,YAAY,qBAAjB,IAAAsC,EAAAA,EAAqC1C,KAAKI,YAAY,KACzFgD,OAASpD,KAAKC,MAAMkD,SAA0B,SAAf,eAChCE,MAAK,KAICrD,KAAKC,MAAMkD,UACZnD,KAAKQ,gBAAgB,CAAEe,KAAM+B,GACjC,KAKZ,OAAOtD,IACX,CAQOuD,MAAAA,CAAOtD,GAIV,OAHAD,KAAKC,MAAQD,KAAKE,YAAYC,EAAK,CAAA,EAAAH,KAAKC,MAAUA,IAClDD,KAAKc,MAAQ,GAENd,KAAK2C,UAAUR,MAAMnC,KAAKyC,MACrC,CAKA,OAAAE,GAQI,OANAa,EAAIxD,KAAKyC,MAAO,WAAYzC,KAAKU,gBAE7BV,KAAKyC,OACLR,EAAO,KAAMjC,KAAKyC,OAGfzC,IACX,CAMA,MAAAyD,GACIzD,KAAK2C,UAED3C,KAAK0D,MACL1D,KAAK0D,KAAKD,OAAOzD,KAEzB,CA/KAI,WAAAA,CAAYuD,EAAiB1D,GAX7B2D,EAAA5D,KAAgB6D,MAAM,GAAG7D,KAAKI,YAAY,QAAW0D,OACrDF,EAAA5D,KAAgB0D,YAAhB,GAEAE,EAAA5D,KAAOC,aAAP,GACA2D,EAAA5D,KAAOc,QAAa,CAAA,GACpB8C,EAAA5D,KAAO6C,kBAAP,GAEAe,EAAA5D,KAAUyC,QAAqB,MAK3B,MAAMsB,EAnBd,SAA8BJ,GAC1B,QAAKA,IAC+C,mBAAxBA,EAASK,YAAkE,mBAA9BL,EAASM,iBAEtF,CAe+BC,CAAqBP,GAE5C,IAAKI,EACD,MAAM,IAAII,EACN,uBACA,uCAAuCnE,KAAKI,YAAmB,6DAIvEJ,KAAK0D,KAAOC,EACZ3D,KAAKF,kBAAkBG,GAEvBD,KAAKU,eAAiBV,KAAKU,eAAe0D,KAAKpE,KACnD,EAhBA4D,EAVW/D,EAUMwE,eAAe"}
1
+ {"version":3,"file":"BaseElement.js","sources":["../../../../../src/components/internal/BaseElement/BaseElement.ts"],"sourcesContent":["import { ComponentChild, h, render } from 'preact';\nimport getProp from '../../../utils/getProp';\nimport uuid from '../../../utils/uuid';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport { ANALYTICS_RENDERED_STR, NO_CHECKOUT_ATTEMPT_ID } from '../../../core/Analytics/constants';\n\nimport type { ICore } from '../../../core/types';\nimport type { BaseElementProps, IBaseElement } from './types';\nimport type { PaymentData } from '../../../types/global-types';\nimport type { AnalyticsInitialEvent, SendAnalyticsObject } from '../../../core/Analytics/types';\nimport { off, on } from '../../../utils/listenerUtils';\n\n/**\n * Verify if the first parameter is instance of Core.\n * We do not use 'instanceof' to avoid importing the Core class directly into this class.\n * @param checkout\n */\nfunction assertIsCoreInstance(checkout: ICore): checkout is ICore {\n if (!checkout) return false;\n const isCoreObject = typeof checkout.initialize === 'function' && typeof checkout.createFromAction === 'function';\n return isCoreObject;\n}\n\nabstract class BaseElement<P extends BaseElementProps> implements IBaseElement {\n public readonly _id = `${this.constructor['type']}-${uuid()}`;\n public readonly core: ICore;\n\n public props: P;\n public state: any = {};\n public _component;\n\n protected _node: HTMLElement = null;\n\n protected static defaultProps = {};\n\n constructor(checkout: ICore, props?: P) {\n const isCoreInstance = assertIsCoreInstance(checkout);\n\n if (!isCoreInstance) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n `Trying to initialise the component '${this.constructor['type']}' without a reference to an instance of AdyenCheckout`\n );\n }\n\n this.core = checkout;\n this.buildElementProps(props);\n\n this.handleKeyPress = this.handleKeyPress.bind(this);\n }\n\n protected buildElementProps(componentProps?: P) {\n this.props = this.formatProps({ ...this.constructor['defaultProps'], ...componentProps });\n }\n\n /**\n * Executed during creation of any payment element.\n * Gives a chance to any paymentMethod to format the props we're receiving.\n */\n protected formatProps(props: P) {\n return props;\n }\n\n /**\n * Executed on the `data` getter.\n * Returns the component data necessary for the /payments request\n */\n protected formatData(): any {\n return {};\n }\n\n /* eslint-disable-next-line */\n protected setUpAnalytics(setUpAnalyticsObj: AnalyticsInitialEvent) {\n return null;\n }\n\n /* eslint-disable-next-line */\n protected submitAnalytics(analyticsObj?: SendAnalyticsObject) {\n return null;\n }\n\n /* eslint-disable-next-line */\n protected handleKeyPress(e: h.JSX.TargetedKeyboardEvent<HTMLInputElement>) {\n return null;\n }\n\n protected setState(newState: object): void {\n this.state = { ...this.state, ...newState };\n }\n\n /**\n * Returns the component payment data ready to submit to the Checkout API\n * Note: this does not ensure validity, check isValid first\n */\n public get data(): PaymentData {\n const clientData = getProp(this.props, 'modules.risk.data');\n const checkoutAttemptId = getProp(this.props, 'modules.analytics.getCheckoutAttemptId')?.() ?? NO_CHECKOUT_ATTEMPT_ID; // NOTE: we never expect to see this \"failed\" value, but, just in case...\n const order = this.state.order || this.props.order;\n const componentData = this.formatData();\n\n if (componentData.paymentMethod && checkoutAttemptId) {\n componentData.paymentMethod.checkoutAttemptId = checkoutAttemptId;\n }\n\n // Workaround, to be fixed properly\n // Remove the firstName & lastName in the billingAddress for non Riverty components\n // @ts-ignore type exists\n if (this.props.type !== 'riverty' && componentData.billingAddress) {\n const { firstName, lastName, ...rest } = componentData.billingAddress;\n componentData.billingAddress = { ...rest };\n }\n\n return {\n ...(clientData && { riskData: { clientData } }),\n ...(order && { order: { orderData: order.orderData, pspReference: order.pspReference } }),\n ...componentData,\n clientStateDataIndicator: true\n };\n }\n\n /**\n * Method used to make the payment method active\n * (Useful when there are different payment methods available and activating one PM must trigger a specific task)\n */\n public activate(): void {\n return;\n }\n\n public render(): ComponentChild | Error {\n // render() not implemented in the element\n throw new Error('Payment method cannot be rendered.');\n }\n\n /**\n * Mounts an element into the dom\n * @param domNode - Node (or selector) where we will mount the payment element\n * @returns this - the payment element instance we mounted\n */\n public mount(domNode: HTMLElement | string): this {\n const node = typeof domNode === 'string' ? document.querySelector<HTMLElement>(domNode) : domNode;\n\n if (!node) {\n throw new Error('Component could not mount. Root node was not found.');\n }\n\n const setupAnalytics = !this._node;\n\n if (this._node) {\n this.unmount(); // new, if this._node exists then we are \"remounting\" so we first need to unmount if it's not already been done\n }\n\n this._node = node;\n\n // Add listener for key press events, notably 'Enter' key presses\n on(this._node, 'keypress', this.handleKeyPress, false);\n\n this._component = this.render();\n\n render(this._component, node);\n\n // Set up analytics (once, since this._node is currently undefined) now that we have mounted and rendered\n if (setupAnalytics) {\n if (this.props.modules && this.props.modules.analytics) {\n this.setUpAnalytics({\n containerWidth: node && node.offsetWidth,\n component: !this.props.isDropin ? (this.constructor['analyticsType'] ?? this.constructor['type']) : 'dropin',\n flavor: !this.props.isDropin ? 'components' : 'dropin'\n }).then(() => {\n // Once the initial analytics set up call has been made...\n // ...create an analytics event declaring that the component has been rendered\n // (The dropin will do this itself from DropinComponent once the PM list has rendered)\n if (!this.props.isDropin) {\n this.submitAnalytics({ type: ANALYTICS_RENDERED_STR });\n }\n });\n }\n }\n\n return this;\n }\n\n /**\n * Updates props, resets the internal state and remounts the element.\n *\n * @param props - props to update\n * @returns this - the element instance\n */\n public update(props: Partial<P>): this {\n this.props = this.formatProps({ ...this.props, ...props });\n this.state = {};\n\n return this.unmount().mount(this._node); // for new mount fny\n }\n\n /**\n * Unmounts a payment element from the DOM\n */\n public unmount(): this {\n // Remove listener\n off(this._node, 'keypress', this.handleKeyPress);\n\n if (this._node) {\n render(null, this._node);\n }\n\n return this;\n }\n\n /**\n * Unmounts an element and removes it from the parent instance\n * For \"destroy\" type cleanup - when you don't intend to use the component again\n */\n public remove() {\n this.unmount();\n\n if (this.core) {\n this.core.remove(this);\n }\n }\n}\n\nexport default BaseElement;\n"],"names":["BaseElement","buildElementProps","componentProps","this","props","formatProps","_object_spread","constructor","formatData","setUpAnalytics","setUpAnalyticsObj","submitAnalytics","analyticsObj","handleKeyPress","e","setState","newState","state","data","getProp","clientData","checkoutAttemptId","NO_CHECKOUT_ATTEMPT_ID","order","componentData","paymentMethod","type","billingAddress","rest","firstName","lastName","_object_spread_props","riskData","orderData","pspReference","clientStateDataIndicator","activate","render","Error","mount","domNode","node","document","querySelector","setupAnalytics","_node","_this_constructor_analyticsType","unmount","on","_component","modules","analytics","containerWidth","offsetWidth","component","isDropin","flavor","then","ANALYTICS_RENDERED_STR","update","off","remove","core","checkout","_define_property","_id","uuid","isCoreInstance","initialize","createFromAction","assertIsCoreInstance","AdyenCheckoutError","bind","defaultProps"],"mappings":"qhDAuBA,MAAeA,EA4BDC,iBAAAA,CAAkBC,GACxBC,KAAKC,MAAQD,KAAKE,YAAYC,EAAA,GAAKH,KAAKI,yBAAgCL,GAC5E,CAMUG,WAAAA,CAAYD,GAClB,OAAOA,CACX,CAMA,UAAAI,GACI,MAAO,CAAC,CACZ,CAGUC,cAAAA,CAAeC,GACrB,OAAO,IACX,CAGUC,eAAAA,CAAgBC,GACtB,OAAO,IACX,CAGUC,cAAAA,CAAeC,GACrB,OAAO,IACX,CAEUC,QAAAA,CAASC,GACfb,KAAKc,MAAQX,KAAKH,KAAKc,MAAUD,EACrC,CAMA,QAAWE,GAEmBC,IAAAA,EAD1B,MAAMC,EAAaD,EAAQhB,KAAKC,MAAO,qBACbe,IAAAA,EAA1B,MAAME,EAAoBF,QAAAA,UAAAA,EAAAA,EAAQhB,KAAKC,MAAO,iDAApBe,IAAAA,OAAAA,EAAAA,WAAAA,IAAAA,EAAAA,EAAqEG,EACzFC,EAAQpB,KAAKc,MAAMM,OAASpB,KAAKC,MAAMmB,MACvCC,EAAgBrB,KAAKK,aAS3B,GAPIgB,EAAcC,eAAiBJ,IAC/BG,EAAcC,cAAcJ,kBAAoBA,GAM5B,YAApBlB,KAAKC,MAAMsB,MAAsBF,EAAcG,eAAgB,CACtBH,MAATI,EAASJ,EAAAA,EAAcG,eAAdH,CAAjCK,YAAWC,aACnBN,EAAcG,eAAiBrB,EAAKsB,CAAAA,EAAAA,EACxC,CAEA,OAAOG,OACCX,GAAc,CAAEY,SAAU,CAAEZ,eAC5BG,GAAS,CAAEA,MAAO,CAAEU,UAAWV,EAAMU,UAAWC,aAAcX,EAAMW,eACrEV,GAAAA,CACHW,0BAA0B,GAElC,CAMA,QAAAC,GAEA,CAEOC,MAAAA,GAEH,MAAM,IAAIC,MAAM,qCACpB,CAOOC,KAAAA,CAAMC,GACT,MAAMC,EAA0B,iBAAZD,EAAuBE,SAASC,cAA2BH,GAAWA,EAE1F,IAAKC,EACD,MAAM,IAAIH,MAAM,uDAGpB,MAAMM,GAAkBzC,KAAK0C,MAoBkB,IAAAC,GAlB3C3C,KAAK0C,OACL1C,KAAK4C,UAGT5C,KAAK0C,MAAQJ,EAGbO,EAAG7C,KAAK0C,MAAO,WAAY1C,KAAKU,gBAAgB,GAEhDV,KAAK8C,WAAa9C,KAAKkC,SAEvBA,EAAOlC,KAAK8C,WAAYR,GAGpBG,KACIzC,KAAKC,MAAM8C,SAAW/C,KAAKC,MAAM8C,QAAQC,WACzChD,KAAKM,eAAe,CAChB2C,eAAgBX,GAAQA,EAAKY,YAC7BC,UAAYnD,KAAKC,MAAMmD,SAA6E,iBAAjET,EAAA3C,KAAKI,YAAY,qBAAjB,IAAAuC,EAAAA,EAAqC3C,KAAKI,YAAY,KACzFiD,OAASrD,KAAKC,MAAMmD,SAA0B,SAAf,eAChCE,MAAK,KAICtD,KAAKC,MAAMmD,UACZpD,KAAKQ,gBAAgB,CAAEe,KAAMgC,GACjC,KAKZ,OAAOvD,IACX,CAQOwD,MAAAA,CAAOvD,GAIV,OAHAD,KAAKC,MAAQD,KAAKE,YAAYC,EAAK,CAAA,EAAAH,KAAKC,MAAUA,IAClDD,KAAKc,MAAQ,CAAC,EAEPd,KAAK4C,UAAUR,MAAMpC,KAAK0C,MACrC,CAKA,OAAAE,GAQI,OANAa,EAAIzD,KAAK0C,MAAO,WAAY1C,KAAKU,gBAE7BV,KAAK0C,OACLR,EAAO,KAAMlC,KAAK0C,OAGf1C,IACX,CAMA,MAAA0D,GACI1D,KAAK4C,UAED5C,KAAK2D,MACL3D,KAAK2D,KAAKD,OAAO1D,KAEzB,CAvLAI,WAAAA,CAAYwD,EAAiB3D,GAX7B4D,EAAgBC,KAAAA,MAAM,GAAG9D,KAAKI,YAAmB,QAAI2D,OACrDF,EAAA7D,KAAgB2D,YAAhB,GAEAE,EAAA7D,KAAOC,aAAP,GACA4D,EAAA7D,KAAOc,QAAa,IACpB+C,EAAA7D,KAAO8C,kBAAP,GAEAe,EAAA7D,KAAU0C,QAAqB,MAK3B,MAAMsB,EAnBd,SAA8BJ,GAC1B,QAAKA,IAC+C,mBAAxBA,EAASK,YAAkE,mBAA9BL,EAASM,iBAEtF,CAe+BC,CAAqBP,GAE5C,IAAKI,EACD,MAAM,IAAII,EACN,uBACA,uCAAuCpE,KAAKI,YAAmB,6DAIvEJ,KAAK2D,KAAOC,EACZ5D,KAAKF,kBAAkBG,GAEvBD,KAAKU,eAAiBV,KAAKU,eAAe2D,KAAKrE,KACnD,EAhBA6D,EAVWhE,EAUMyE,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../../../../src/components/internal/Button/Button.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Spinner from '../Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport './Button.scss';\nimport { ButtonProps, ButtonState } from './types';\n\nclass Button extends Component<ButtonProps, ButtonState> {\n public static defaultProps = {\n status: 'default',\n variant: 'primary',\n disabled: false,\n label: '',\n inline: false,\n target: '_self',\n onClick: () => {}\n };\n\n public onClick = e => {\n e.preventDefault();\n\n if (!this.props.disabled) {\n this.props.onClick(e, { complete: this.complete });\n }\n };\n\n public complete = (delay = 1000) => {\n this.setState({ completed: true });\n setTimeout(() => {\n this.setState({ completed: false });\n }, delay);\n };\n\n public onKeyDown = (event: KeyboardEvent) => {\n this.props.onKeyDown?.(event);\n };\n\n render({ classNameModifiers = [], disabled, href, icon, inline, label, status, variant }, { completed }) {\n const { i18n } = useCoreContext();\n\n const buttonIcon = icon ? <img className=\"adyen-checkout__button__icon\" src={icon} alt=\"\" aria-hidden=\"true\" /> : '';\n\n const modifiers = [\n ...classNameModifiers,\n ...(variant !== 'primary' ? [variant] : []),\n ...(inline ? ['inline'] : []),\n ...(completed ? ['completed'] : []),\n ...(status === 'loading' || status === 'redirect' ? ['loading'] : [])\n ];\n\n const buttonClasses = classNames(['adyen-checkout__button', ...modifiers.map(m => `adyen-checkout__button--${m}`)]);\n\n const buttonStates = {\n loading: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n <span className={'adyen-checkout__button__text--sr-only'}>{i18n.get('loading')}</span>\n </span>\n ),\n redirect: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n {i18n.get('payButton.redirecting')}\n </span>\n ),\n default: (\n <span className=\"adyen-checkout__button__content\">\n {buttonIcon}\n <span className=\"adyen-checkout__button__text\">{label}</span>\n </span>\n )\n };\n\n const buttonText = buttonStates[status] || buttonStates.default;\n\n if (href) {\n return (\n <a className={buttonClasses} href={href} disabled={disabled} target={this.props.target} rel={this.props.rel}>\n {buttonText}\n </a>\n );\n }\n\n return (\n <button className={buttonClasses} type=\"button\" disabled={disabled} onClick={this.onClick} onKeyDown={this.onKeyDown}>\n {buttonText}\n {status !== 'loading' && status !== 'redirect' && this.props.children}\n </button>\n );\n }\n}\n\nexport default Button;\n"],"names":["Button","Component","render","classNameModifiers","disabled","href","icon","inline","label","status","variant","completed","i18n","useCoreContext","buttonIcon","h","img","className","src","alt","aria-hidden","modifiers","buttonClasses","classNames","map","m","buttonStates","loading","span","Spinner","size","get","redirect","default","buttonText","a","target","this","props","rel","button","type","onClick","onKeyDown","children","_define_property","e","preventDefault","complete","delay","setState","setTimeout","event","_this_props_onKeyDown","_this_props","call","defaultProps"],"mappings":"gXAOA,MAAMA,UAAeC,EA8BjBC,MAAAA,EAAOC,mBAAEA,EAAqB,GAAEC,SAAEA,EAAQC,KAAEA,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,IAAWC,UAAEA,IACxF,MAAMC,KAAEA,GAASC,IAEXC,EAAaR,EAAOS,EAACC,MAAAA,CAAIC,UAAU,+BAA+BC,IAAKZ,EAAMa,IAAI,GAAGC,cAAY,SAAY,GAE5GC,EAAY,IACXlB,KACa,YAAZO,EAAwB,CAACA,GAAW,MACpCH,EAAS,CAAC,UAAY,MACtBI,EAAY,CAAC,aAAe,MACjB,YAAXF,GAAmC,aAAXA,EAAwB,CAAC,WAAa,IAGhEa,EAAgBC,EAAW,CAAC,4BAA6BF,EAAUG,KAAIC,GAAK,2BAA2BA,QAEvGC,EAAe,CACjBC,QACIZ,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAASvB,QAAAA,IACvBQ,EAACa,OAAAA,CAAKX,UAAW,yCAA0CL,EAAKmB,IAAI,aAG5EC,SACIjB,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAASvB,QAAAA,IACtBK,EAAKmB,IAAI,0BAGlBE,QACIlB,EAACa,OAAAA,CAAKX,UAAU,mCACXH,EACDC,EAACa,OAAAA,CAAKX,UAAU,gCAAgCT,KAKtD0B,EAAaR,EAAajB,IAAWiB,EAAaO,QAExD,OAAI5B,EAEIU,EAACoB,IAAAA,CAAElB,UAAWK,EAAejB,KAAMA,EAAMD,SAAUA,EAAUgC,OAAQC,KAAKC,MAAMF,OAAQG,IAAKF,KAAKC,MAAMC,KACnGL,GAMTnB,EAACyB,SAAAA,CAAOvB,UAAWK,EAAemB,KAAK,SAASrC,SAAUA,EAAUsC,QAASL,KAAKK,QAASC,UAAWN,KAAKM,WACtGT,EACW,YAAXzB,GAAmC,aAAXA,GAAyB4B,KAAKC,MAAMM,SAGzE,+BAvEAC,EAAAR,KAAOK,WAAUI,IACbA,EAAEC,iBAEGV,KAAKC,MAAMlC,UACZiC,KAAKC,MAAMI,QAAQI,EAAG,CAAEE,SAAUX,KAAKW,UAC3C,IAGJH,EAAOG,KAAAA,YAAW,CAACC,EAAQ,OACvBZ,KAAKa,SAAS,CAAEvC,WAAW,IAC3BwC,YAAW,KACPd,KAAKa,SAAS,CAAEvC,WAAW,GAAM,GAClCsC,EAAAA,IAGPJ,EAAAR,KAAOM,aAAaS,QAChBC,EAAAC,EAAoB,QAApBD,GAAAC,EAAAjB,KAAKC,OAAMK,iBAAX,IAAAU,GAAAA,EAAAE,KAAAD,EAAuBF,EAAAA,KA1B3BP,EADE7C,EACYwD,eAAe,CACzB/C,OAAQ,UACRC,QAAS,UACTN,UAAU,EACVI,MAAO,GACPD,QAAQ,EACR6B,OAAQ,QACRM,QAAS"}
1
+ {"version":3,"file":"Button.js","sources":["../../../../../src/components/internal/Button/Button.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Spinner from '../Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport './Button.scss';\nimport { ButtonProps, ButtonState } from './types';\n\nclass Button extends Component<ButtonProps, ButtonState> {\n public static defaultProps = {\n status: 'default',\n variant: 'primary',\n disabled: false,\n label: '',\n inline: false,\n target: '_self',\n onClick: () => {}\n };\n\n public onClick = e => {\n e.preventDefault();\n\n if (!this.props.disabled) {\n this.props.onClick(e, { complete: this.complete });\n }\n };\n\n public complete = (delay = 1000) => {\n this.setState({ completed: true });\n setTimeout(() => {\n this.setState({ completed: false });\n }, delay);\n };\n\n public onKeyDown = (event: KeyboardEvent) => {\n this.props.onKeyDown?.(event);\n };\n\n render({ classNameModifiers = [], disabled, href, icon, inline, label, status, variant }, { completed }) {\n const { i18n } = useCoreContext();\n\n const buttonIcon = icon ? <img className=\"adyen-checkout__button__icon\" src={icon} alt=\"\" aria-hidden=\"true\" /> : '';\n\n const modifiers = [\n ...classNameModifiers,\n ...(variant !== 'primary' ? [variant] : []),\n ...(inline ? ['inline'] : []),\n ...(completed ? ['completed'] : []),\n ...(status === 'loading' || status === 'redirect' ? ['loading'] : [])\n ];\n\n const buttonClasses = classNames(['adyen-checkout__button', ...modifiers.map(m => `adyen-checkout__button--${m}`)]);\n\n const buttonStates = {\n loading: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n <span className={'adyen-checkout__button__text--sr-only'}>{i18n.get('loading')}</span>\n </span>\n ),\n redirect: (\n <span className=\"adyen-checkout__button__content\">\n <Spinner size=\"medium\" inline />\n {i18n.get('payButton.redirecting')}\n </span>\n ),\n default: (\n <span className=\"adyen-checkout__button__content\">\n {buttonIcon}\n <span className=\"adyen-checkout__button__text\">{label}</span>\n </span>\n )\n };\n\n const buttonText = buttonStates[status] || buttonStates.default;\n\n if (href) {\n return (\n <a className={buttonClasses} href={href} disabled={disabled} target={this.props.target} rel={this.props.rel}>\n {buttonText}\n </a>\n );\n }\n\n return (\n <button className={buttonClasses} type=\"button\" disabled={disabled} onClick={this.onClick} onKeyDown={this.onKeyDown}>\n {buttonText}\n {status !== 'loading' && status !== 'redirect' && this.props.children}\n </button>\n );\n }\n}\n\nexport default Button;\n"],"names":["Button","Component","render","classNameModifiers","disabled","href","icon","inline","label","status","variant","completed","i18n","useCoreContext","buttonIcon","h","img","className","src","alt","aria-hidden","modifiers","buttonClasses","classNames","map","m","buttonStates","loading","span","Spinner","size","get","redirect","default","buttonText","a","target","this","props","rel","button","type","onClick","onKeyDown","children","super","args","_define_property","e","preventDefault","complete","delay","setState","setTimeout","event","_this_props_onKeyDown","_this_props","call","defaultProps"],"mappings":"gXAOA,MAAMA,UAAeC,EA8BjBC,MAAAA,EAAOC,mBAAEA,EAAqB,GAAEC,SAAEA,EAAQC,KAAEA,EAAIC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,IAAWC,UAAEA,IACxF,MAAMC,KAAEA,GAASC,IAEXC,EAAaR,EAAOS,EAACC,MAAAA,CAAIC,UAAU,+BAA+BC,IAAKZ,EAAMa,IAAI,GAAGC,cAAY,SAAY,GAE5GC,EAAY,IACXlB,KACa,YAAZO,EAAwB,CAACA,GAAW,MACpCH,EAAS,CAAC,UAAY,MACtBI,EAAY,CAAC,aAAe,MACjB,YAAXF,GAAmC,aAAXA,EAAwB,CAAC,WAAa,IAGhEa,EAAgBC,EAAW,CAAC,4BAA6BF,EAAUG,KAAIC,GAAK,2BAA2BA,QAEvGC,EAAe,CACjBC,QACIZ,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAASvB,QAAAA,IACvBQ,EAACa,OAAAA,CAAKX,UAAW,yCAA0CL,EAAKmB,IAAI,aAG5EC,SACIjB,EAACa,OAAAA,CAAKX,UAAU,mCACZF,EAACc,EAAAA,CAAQC,KAAK,SAASvB,QAAAA,IACtBK,EAAKmB,IAAI,0BAGlBE,QACIlB,EAACa,OAAAA,CAAKX,UAAU,mCACXH,EACDC,EAACa,OAAAA,CAAKX,UAAU,gCAAgCT,KAKtD0B,EAAaR,EAAajB,IAAWiB,EAAaO,QAExD,OAAI5B,EAEIU,EAACoB,IAAAA,CAAElB,UAAWK,EAAejB,KAAMA,EAAMD,SAAUA,EAAUgC,OAAQC,KAAKC,MAAMF,OAAQG,IAAKF,KAAKC,MAAMC,KACnGL,GAMTnB,EAACyB,SAAAA,CAAOvB,UAAWK,EAAemB,KAAK,SAASrC,SAAUA,EAAUsC,QAASL,KAAKK,QAASC,UAAWN,KAAKM,WACtGT,EACW,YAAXzB,GAAmC,aAAXA,GAAyB4B,KAAKC,MAAMM,SAGzE,mBAlFJC,SAWIC,GAAAC,EAAAV,KAAOK,WAAUM,IACbA,EAAEC,iBAEGZ,KAAKC,MAAMlC,UACZiC,KAAKC,MAAMI,QAAQM,EAAG,CAAEE,SAAUb,KAAKa,UAC3C,IAGJH,EAAOG,KAAAA,YAAW,CAACC,EAAQ,OACvBd,KAAKe,SAAS,CAAEzC,WAAW,IAC3B0C,YAAW,KACPhB,KAAKe,SAAS,CAAEzC,WAAW,GAAM,GAClCwC,EAAAA,IAGPJ,EAAAV,KAAOM,aAAaW,QAChBC,EAAAC,EAAoB,QAApBD,GAAAC,EAAAnB,KAAKC,OAAMK,iBAAX,IAAAY,GAAAA,EAAAE,KAAAD,EAAuBF,EAAAA,KA1B3BP,EADE/C,EACY0D,eAAe,CACzBjD,OAAQ,UACRC,QAAS,UACTN,UAAU,EACVI,MAAO,GACPD,QAAQ,EACR6B,OAAQ,QACRM,QAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"CtPCards.js","sources":["../../../../../../../src/components/internal/ClickToPay/components/CtPCards/CtPCards.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useCallback, useEffect, useState } from 'preact/hooks';\nimport useClickToPayContext from '../../context/useClickToPayContext';\nimport CtPSingleCard from './CtPSingleCard/CtPSingleCard';\nimport PayButton from '../../../PayButton';\nimport { amountLabel } from '../../../PayButton/utils';\nimport CtPCardsList from './CtPCardsList';\nimport ShopperCard from '../../models/ShopperCard';\nimport SrciError from '../../services/sdks/SrciError';\nimport CtPSection from '../CtPSection';\nimport { CTP_IFRAME_NAME } from '../../services/utils';\nimport Iframe from '../../../../internal/IFrame';\nimport useImage from '../../../../../core/Context/useImage';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport isMobile from '../../../../../utils/isMobile';\nimport Language from '../../../../../language';\nimport { PaymentAmount } from '../../../../../types/global-types';\nimport './CtPCards.scss';\nimport AdyenCheckoutError from '../../../../../core/Errors/AdyenCheckoutError';\nimport { PREFIX } from '../../../Icon/constants';\n\ntype CtPCardsProps = {\n onDisplayCardComponent?(): void;\n};\n\nfunction getErrorLabel(errorCode: string, i18n: Language): string {\n if (!errorCode) return null;\n\n const errorLabel = i18n.get(`ctp.errors.${errorCode}`);\n if (errorLabel.includes('ctp.errors')) return i18n.get(`ctp.errors.UNKNOWN_ERROR`);\n return errorLabel;\n}\n\nfunction getPayButtonLabel(i18n: Language, amount: PaymentAmount, checkoutCard?: ShopperCard): string | null {\n if (!checkoutCard) return i18n.get('payButton');\n if (!isMobile())\n return i18n.get('payButton.with', {\n values: { value: amountLabel(i18n, amount), maskedData: `•••• ${checkoutCard?.panLastFour}` }\n });\n return null;\n}\n\nconst CtPCards = ({ onDisplayCardComponent }: CtPCardsProps) => {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { amount, cards, checkout, isCtpPrimaryPaymentMethod, status, onSubmit, onSetStatus, onError } = useClickToPayContext();\n const [checkoutCard, setCheckoutCard] = useState<ShopperCard | undefined>(cards.find(card => !card.isExpired) || cards[0]);\n const [errorCode, setErrorCode] = useState<string>(null);\n const isEveryCardExpired = cards.every(card => card.isExpired);\n const [isShopperCheckingOutWithCtp, setIsShopperCheckingOutWithCtp] = useState<boolean>(false);\n\n useEffect(() => {\n if (cards.length === 0 || isEveryCardExpired) {\n onDisplayCardComponent?.();\n }\n }, [onDisplayCardComponent, isEveryCardExpired, cards]);\n\n const doCheckout = useCallback(async () => {\n if (!checkoutCard) return;\n\n try {\n setIsShopperCheckingOutWithCtp(true);\n setErrorCode(null);\n onSetStatus('loading');\n const payload = await checkout(checkoutCard);\n onSubmit(payload);\n } catch (error: unknown) {\n if (error instanceof SrciError) {\n setErrorCode(error?.reason);\n console.warn(`CtP - Checkout: Reason: ${error?.reason} / Source: ${error?.source} / Scheme: ${error?.scheme}`);\n }\n setIsShopperCheckingOutWithCtp(false);\n\n if (error instanceof AdyenCheckoutError) onError(error);\n else onError(new AdyenCheckoutError('ERROR', 'Error during ClickToPay checkout', { cause: error }));\n }\n }, [checkout, checkoutCard]);\n\n const handleOnChangeCard = useCallback((card: ShopperCard) => {\n setCheckoutCard(card);\n }, []);\n\n /**\n * If shopper submits the payment using the default Card component while CtP is rendered, the status here will be updated\n * and that can potentially display an iframe.\n *\n * Therefore, we use the flag 'isShopperCheckingOutWithCtp' to flag that the iframe should be displayed only in case the\n * Shopper is checking out with Click to Pay.\n */\n const displayNetworkDcf = isShopperCheckingOutWithCtp && status === 'loading' && checkoutCard?.isDcfPopupEmbedded;\n const displayCardCheckoutView = status !== 'loading' || !displayNetworkDcf;\n\n const handlePayButtonKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n void doCheckout();\n }\n },\n [doCheckout]\n );\n\n return (\n <Fragment>\n <Iframe name={CTP_IFRAME_NAME} height=\"380\" width=\"100%\" classNameModifiers={[displayNetworkDcf ? '' : 'hidden']} />\n\n {displayCardCheckoutView && (\n <Fragment>\n <CtPSection.Title>{i18n.get('ctp.cards.title')}</CtPSection.Title>\n <CtPSection.Text>{i18n.get('ctp.cards.subtitle')}</CtPSection.Text>\n {cards.length === 0 && <div className=\"adyen-checkout-ctp__empty-cards\">{i18n.get('ctp.emptyProfile.message')}</div>}\n {cards.length === 1 && <CtPSingleCard card={cards[0]} errorMessage={getErrorLabel(errorCode, i18n)} />}\n {cards.length > 1 && (\n <CtPCardsList\n cardSelected={checkoutCard}\n cards={cards}\n onChangeCard={handleOnChangeCard}\n errorMessage={getErrorLabel(errorCode, i18n)}\n />\n )}\n\n <PayButton\n disabled={isEveryCardExpired}\n amount={amount}\n label={getPayButtonLabel(i18n, amount, checkoutCard)}\n status={status}\n variant={isCtpPrimaryPaymentMethod ? 'primary' : 'secondary'}\n icon={\n cards.length !== 0 &&\n getImage({ imageFolder: 'components/' })(isCtpPrimaryPaymentMethod ? `${PREFIX}lock` : `${PREFIX}lock_black`)\n }\n onClick={doCheckout}\n onKeyDown={handlePayButtonKeyDown}\n />\n </Fragment>\n )}\n </Fragment>\n );\n};\n\nexport default CtPCards;\n"],"names":["getErrorLabel","errorCode","i18n","errorLabel","get","includes","getPayButtonLabel","amount","checkoutCard","isMobile","values","value","amountLabel","maskedData","panLastFour","CtPCards","onDisplayCardComponent","useCoreContext","getImage","useImage","cards","checkout","isCtpPrimaryPaymentMethod","status","onSubmit","onSetStatus","onError","useClickToPayContext","setCheckoutCard","useState","find","card","isExpired","setErrorCode","isEveryCardExpired","every","isShopperCheckingOutWithCtp","setIsShopperCheckingOutWithCtp","useEffect","length","doCheckout","useCallback","async","payload","error","SrciError","reason","console","warn","source","scheme","AdyenCheckoutError","cause","handleOnChangeCard","displayNetworkDcf","isDcfPopupEmbedded","displayCardCheckoutView","handlePayButtonKeyDown","event","key","h","Fragment","Iframe","name","CTP_IFRAME_NAME","height","width","classNameModifiers","CtPSection","Title","Text","div","className","CtPSingleCard","errorMessage","CtPCardsList","cardSelected","onChangeCard","PayButton","disabled","label","variant","icon","imageFolder","PREFIX","onClick","onKeyDown"],"mappings":"46BAyBA,SAASA,EAAcC,EAAmBC,GACtC,IAAKD,EAAW,OAAO,KAEvB,MAAME,EAAaD,EAAKE,IAAI,cAAcH,KAC1C,OAAIE,EAAWE,SAAS,cAAsBH,EAAKE,IAAI,4BAChDD,CACX,CAEA,SAASG,EAAkBJ,EAAgBK,EAAuBC,GAC9D,OAAKA,EACAC,IAIE,KAHIP,EAAKE,IAAI,iBAAkB,CAC9BM,OAAQ,CAAEC,MAAOC,EAAYV,EAAMK,GAASM,WAAY,QAAQL,eAAAA,EAAcM,iBAH5DZ,EAAKE,IAAI,YAMvC,CAEA,MAAMW,EAAW,EAAGC,6BAChB,MAAMd,KAAEA,GAASe,IACXC,EAAWC,KACXZ,OAAEA,EAAMa,MAAEA,EAAKC,SAAEA,EAAQC,0BAAEA,EAAyBC,OAAEA,EAAMC,SAAEA,EAAQC,YAAEA,EAAWC,QAAEA,GAAYC,KAChGnB,EAAcoB,GAAmBC,EAAkCT,EAAMU,MAAKC,IAASA,EAAKC,aAAcZ,EAAM,KAChHnB,EAAWgC,GAAgBJ,EAAiB,MAC7CK,EAAqBd,EAAMe,OAAMJ,GAAQA,EAAKC,aAC7CI,EAA6BC,GAAkCR,GAAkB,GAExFS,GAAU,MACe,IAAjBlB,EAAMmB,QAAgBL,KACtBlB,SAAAA,IACJ,GACD,CAACA,EAAwBkB,EAAoBd,IAEhD,MAAMoB,EAAaC,GAAYC,UAC3B,GAAKlC,EAEL,IACI6B,GAA+B,GAC/BJ,EAAa,MACbR,EAAY,WACZ,MAAMkB,QAAgBtB,EAASb,GAC/BgB,EAASmB,EACb,CAAE,MAAOC,GACDA,aAAiBC,IACjBZ,EAAaW,aAAAA,EAAAA,EAAOE,QACpBC,QAAQC,KAAK,2BAA2BJ,aAAAA,EAAAA,EAAOE,oBAAoBF,aAAAA,EAAAA,EAAOK,oBAAoBL,aAAAA,EAAAA,EAAOM,WAEzGb,GAA+B,GAEUX,EAArCkB,aAAiBO,EAA4BP,EACpC,IAAIO,EAAmB,QAAS,mCAAoC,CAAEC,MAAOR,IAC9F,IACD,CAACvB,EAAUb,IAER6C,EAAqBZ,GAAaV,IACpCH,EAAgBG,EAAAA,GACjB,IASGuB,EAAoBlB,GAA0C,YAAXb,IAAwBf,aAAAA,EAAAA,EAAc+C,oBACzFC,EAAqC,YAAXjC,IAAyB+B,EAEnDG,EAAyBhB,GAC1BiB,IACqB,UAAdA,EAAMC,KACDnB,GACT,GAEJ,CAACA,IAGL,OACIoB,EAACC,OACGD,EAACE,EAAAA,CAAOC,KAAMC,EAAiBC,OAAO,MAAMC,MAAM,OAAOC,mBAAoB,CAACb,EAAoB,GAAK,YAEtGE,GACGI,EAACC,OACGD,EAACQ,EAAWC,MAAOnE,KAAAA,EAAKE,IAAI,oBAC5BwD,EAACQ,EAAWE,KAAI,KAAEpE,EAAKE,IAAI,uBACT,IAAjBgB,EAAMmB,QAAgBqB,EAACW,MAAAA,CAAIC,UAAU,mCAAmCtE,EAAKE,IAAI,6BAChE,IAAjBgB,EAAMmB,QAAgBqB,EAACa,EAAAA,CAAc1C,KAAMX,EAAM,GAAIsD,aAAc1E,EAAcC,EAAWC,KAC5FkB,EAAMmB,OAAS,GACZqB,EAACe,EAAAA,CACGC,aAAcpE,EACdY,MAAOA,EACPyD,aAAcxB,EACdqB,aAAc1E,EAAcC,EAAWC,KAI/C0D,EAACkB,EAAAA,CACGC,SAAU7C,EACV3B,OAAQA,EACRyE,MAAO1E,EAAkBJ,EAAMK,EAAQC,GACvCe,OAAQA,EACR0D,QAAS3D,EAA4B,UAAY,YACjD4D,KACqB,IAAjB9D,EAAMmB,QACNrB,EAAS,CAAEiE,YAAa,eAAxBjE,CAAyCI,EAA4B,GAAG8D,QAAe,GAAGA,eAE9FC,QAAS7C,EACT8C,UAAW7B"}
1
+ {"version":3,"file":"CtPCards.js","sources":["../../../../../../../src/components/internal/ClickToPay/components/CtPCards/CtPCards.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useCallback, useEffect, useState } from 'preact/hooks';\nimport useClickToPayContext from '../../context/useClickToPayContext';\nimport CtPSingleCard from './CtPSingleCard/CtPSingleCard';\nimport PayButton from '../../../PayButton';\nimport { amountLabel } from '../../../PayButton/utils';\nimport CtPCardsList from './CtPCardsList';\nimport ShopperCard from '../../models/ShopperCard';\nimport SrciError from '../../services/sdks/SrciError';\nimport CtPSection from '../CtPSection';\nimport { CTP_IFRAME_NAME } from '../../services/utils';\nimport Iframe from '../../../../internal/IFrame';\nimport useImage from '../../../../../core/Context/useImage';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport isMobile from '../../../../../utils/isMobile';\nimport Language from '../../../../../language';\nimport { PaymentAmount } from '../../../../../types/global-types';\nimport './CtPCards.scss';\nimport AdyenCheckoutError from '../../../../../core/Errors/AdyenCheckoutError';\nimport { PREFIX } from '../../../Icon/constants';\n\ntype CtPCardsProps = {\n onDisplayCardComponent?(): void;\n};\n\nfunction getErrorLabel(errorCode: string, i18n: Language): string {\n if (!errorCode) return null;\n\n const errorLabel = i18n.get(`ctp.errors.${errorCode}`);\n if (errorLabel.includes('ctp.errors')) return i18n.get(`ctp.errors.UNKNOWN_ERROR`);\n return errorLabel;\n}\n\nfunction getPayButtonLabel(i18n: Language, amount: PaymentAmount, checkoutCard?: ShopperCard): string | null {\n if (!checkoutCard) return i18n.get('payButton');\n if (!isMobile())\n return i18n.get('payButton.with', {\n values: { value: amountLabel(i18n, amount), maskedData: `•••• ${checkoutCard?.panLastFour}` }\n });\n return null;\n}\n\nconst CtPCards = ({ onDisplayCardComponent }: CtPCardsProps) => {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { amount, cards, checkout, isCtpPrimaryPaymentMethod, status, onSubmit, onSetStatus, onError } = useClickToPayContext();\n const [checkoutCard, setCheckoutCard] = useState<ShopperCard | undefined>(cards.find(card => !card.isExpired) || cards[0]);\n const [errorCode, setErrorCode] = useState<string>(null);\n const isEveryCardExpired = cards.every(card => card.isExpired);\n const [isShopperCheckingOutWithCtp, setIsShopperCheckingOutWithCtp] = useState<boolean>(false);\n\n useEffect(() => {\n if (cards.length === 0 || isEveryCardExpired) {\n onDisplayCardComponent?.();\n }\n }, [onDisplayCardComponent, isEveryCardExpired, cards]);\n\n const doCheckout = useCallback(async () => {\n if (!checkoutCard) return;\n\n try {\n setIsShopperCheckingOutWithCtp(true);\n setErrorCode(null);\n onSetStatus('loading');\n const payload = await checkout(checkoutCard);\n onSubmit(payload);\n } catch (error: unknown) {\n if (error instanceof SrciError) {\n setErrorCode(error?.reason);\n console.warn(`CtP - Checkout: Reason: ${error?.reason} / Source: ${error?.source} / Scheme: ${error?.scheme}`);\n }\n setIsShopperCheckingOutWithCtp(false);\n\n if (error instanceof AdyenCheckoutError) onError(error);\n else onError(new AdyenCheckoutError('ERROR', 'Error during ClickToPay checkout', { cause: error }));\n }\n }, [checkout, checkoutCard]);\n\n const handleOnChangeCard = useCallback((card: ShopperCard) => {\n setCheckoutCard(card);\n }, []);\n\n /**\n * If shopper submits the payment using the default Card component while CtP is rendered, the status here will be updated\n * and that can potentially display an iframe.\n *\n * Therefore, we use the flag 'isShopperCheckingOutWithCtp' to flag that the iframe should be displayed only in case the\n * Shopper is checking out with Click to Pay.\n */\n const displayNetworkDcf = isShopperCheckingOutWithCtp && status === 'loading' && checkoutCard?.isDcfPopupEmbedded;\n const displayCardCheckoutView = status !== 'loading' || !displayNetworkDcf;\n\n const handlePayButtonKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n void doCheckout();\n }\n },\n [doCheckout]\n );\n\n return (\n <Fragment>\n <Iframe name={CTP_IFRAME_NAME} height=\"380\" width=\"100%\" classNameModifiers={[displayNetworkDcf ? '' : 'hidden']} />\n\n {displayCardCheckoutView && (\n <Fragment>\n <CtPSection.Title>{i18n.get('ctp.cards.title')}</CtPSection.Title>\n <CtPSection.Text>{i18n.get('ctp.cards.subtitle')}</CtPSection.Text>\n {cards.length === 0 && <div className=\"adyen-checkout-ctp__empty-cards\">{i18n.get('ctp.emptyProfile.message')}</div>}\n {cards.length === 1 && <CtPSingleCard card={cards[0]} errorMessage={getErrorLabel(errorCode, i18n)} />}\n {cards.length > 1 && (\n <CtPCardsList\n cardSelected={checkoutCard}\n cards={cards}\n onChangeCard={handleOnChangeCard}\n errorMessage={getErrorLabel(errorCode, i18n)}\n />\n )}\n\n <PayButton\n disabled={isEveryCardExpired}\n amount={amount}\n label={getPayButtonLabel(i18n, amount, checkoutCard)}\n status={status}\n variant={isCtpPrimaryPaymentMethod ? 'primary' : 'secondary'}\n icon={\n cards.length !== 0 &&\n getImage({ imageFolder: 'components/' })(isCtpPrimaryPaymentMethod ? `${PREFIX}lock` : `${PREFIX}lock_black`)\n }\n onClick={doCheckout}\n onKeyDown={handlePayButtonKeyDown}\n />\n </Fragment>\n )}\n </Fragment>\n );\n};\n\nexport default CtPCards;\n"],"names":["getErrorLabel","errorCode","i18n","errorLabel","get","includes","getPayButtonLabel","amount","checkoutCard","isMobile","values","value","amountLabel","maskedData","panLastFour","CtPCards","onDisplayCardComponent","useCoreContext","getImage","useImage","cards","checkout","isCtpPrimaryPaymentMethod","status","onSubmit","onSetStatus","onError","useClickToPayContext","setCheckoutCard","useState","find","card","isExpired","setErrorCode","isEveryCardExpired","every","isShopperCheckingOutWithCtp","setIsShopperCheckingOutWithCtp","useEffect","length","doCheckout","useCallback","async","payload","error","SrciError","reason","console","warn","source","scheme","AdyenCheckoutError","cause","handleOnChangeCard","displayNetworkDcf","isDcfPopupEmbedded","displayCardCheckoutView","handlePayButtonKeyDown","event","key","h","Fragment","Iframe","name","CTP_IFRAME_NAME","height","width","classNameModifiers","CtPSection","Title","Text","div","className","CtPSingleCard","errorMessage","CtPCardsList","cardSelected","onChangeCard","PayButton","disabled","label","variant","icon","imageFolder","PREFIX","onClick","onKeyDown"],"mappings":"46BAyBA,SAASA,EAAcC,EAAmBC,GACtC,IAAKD,EAAW,OAAO,KAEvB,MAAME,EAAaD,EAAKE,IAAI,cAAcH,KAC1C,OAAIE,EAAWE,SAAS,cAAsBH,EAAKE,IAAI,4BAChDD,CACX,CAEA,SAASG,EAAkBJ,EAAgBK,EAAuBC,GAC9D,OAAKA,EACAC,IAIE,KAHIP,EAAKE,IAAI,iBAAkB,CAC9BM,OAAQ,CAAEC,MAAOC,EAAYV,EAAMK,GAASM,WAAY,QAAQL,aAAAA,EAAAA,EAAcM,iBAH5DZ,EAAKE,IAAI,YAMvC,CAEA,MAAMW,EAAW,EAAGC,6BAChB,MAAMd,KAAEA,GAASe,IACXC,EAAWC,KACXZ,OAAEA,EAAMa,MAAEA,EAAKC,SAAEA,EAAQC,0BAAEA,EAAyBC,OAAEA,EAAMC,SAAEA,EAAQC,YAAEA,EAAWC,QAAEA,GAAYC,KAChGnB,EAAcoB,GAAmBC,EAAkCT,EAAMU,MAAKC,IAASA,EAAKC,aAAcZ,EAAM,KAChHnB,EAAWgC,GAAgBJ,EAAiB,MAC7CK,EAAqBd,EAAMe,OAAMJ,GAAQA,EAAKC,aAC7CI,EAA6BC,GAAkCR,GAAkB,GAExFS,GAAU,MACe,IAAjBlB,EAAMmB,QAAgBL,KACtBlB,SAAAA,IACJ,GACD,CAACA,EAAwBkB,EAAoBd,IAEhD,MAAMoB,EAAaC,GAAYC,UAC3B,GAAKlC,EAEL,IACI6B,GAA+B,GAC/BJ,EAAa,MACbR,EAAY,WACZ,MAAMkB,QAAgBtB,EAASb,GAC/BgB,EAASmB,EACb,CAAE,MAAOC,GACDA,aAAiBC,IACjBZ,EAAaW,aAAAA,EAAAA,EAAOE,QACpBC,QAAQC,KAAK,2BAA2BJ,aAAAA,EAAAA,EAAOE,oBAAoBF,aAAAA,EAAAA,EAAOK,oBAAoBL,aAAAA,EAAAA,EAAOM,WAEzGb,GAA+B,GAEUX,EAArCkB,aAAiBO,EAA4BP,EACpC,IAAIO,EAAmB,QAAS,mCAAoC,CAAEC,MAAOR,IAC9F,IACD,CAACvB,EAAUb,IAER6C,EAAqBZ,GAAaV,IACpCH,EAAgBG,EAAAA,GACjB,IASGuB,EAAoBlB,GAA0C,YAAXb,IAAwBf,aAAAA,EAAAA,EAAc+C,oBACzFC,EAAqC,YAAXjC,IAAyB+B,EAEnDG,EAAyBhB,GAC1BiB,IACqB,UAAdA,EAAMC,KACDnB,GACT,GAEJ,CAACA,IAGL,OACIoB,EAACC,OACGD,EAACE,EAAAA,CAAOC,KAAMC,EAAiBC,OAAO,MAAMC,MAAM,OAAOC,mBAAoB,CAACb,EAAoB,GAAK,YAEtGE,GACGI,EAACC,OACGD,EAACQ,EAAWC,MAAOnE,KAAAA,EAAKE,IAAI,oBAC5BwD,EAACQ,EAAWE,KAAI,KAAEpE,EAAKE,IAAI,uBACT,IAAjBgB,EAAMmB,QAAgBqB,EAACW,MAAAA,CAAIC,UAAU,mCAAmCtE,EAAKE,IAAI,6BAChE,IAAjBgB,EAAMmB,QAAgBqB,EAACa,EAAAA,CAAc1C,KAAMX,EAAM,GAAIsD,aAAc1E,EAAcC,EAAWC,KAC5FkB,EAAMmB,OAAS,GACZqB,EAACe,EAAAA,CACGC,aAAcpE,EACdY,MAAOA,EACPyD,aAAcxB,EACdqB,aAAc1E,EAAcC,EAAWC,KAI/C0D,EAACkB,EAAAA,CACGC,SAAU7C,EACV3B,OAAQA,EACRyE,MAAO1E,EAAkBJ,EAAMK,EAAQC,GACvCe,OAAQA,EACR0D,QAAS3D,EAA4B,UAAY,YACjD4D,KACqB,IAAjB9D,EAAMmB,QACNrB,EAAS,CAAEiE,YAAa,eAAxBjE,CAAyCI,EAA4B,GAAG8D,QAAe,GAAGA,eAE9FC,QAAS7C,EACT8C,UAAW7B"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../../external/preact/dist/preact.js";import{useState as t,useRef as r,useCallback as o,useEffect as s}from"../../../../../../external/preact/hooks/dist/hooks.js";import{otpValidationRules as n}from"./validate.js";import a from"./CtPResendOtpLink.js";import l from"../../../context/useClickToPayContext.js";import{useCoreContext as i}from"../../../../../../core/Context/CoreProvider.js";import d from"../../../../../../utils/useForm/useForm.js";import u from"../../../../FormFields/Field/Field.js";import p from"../../../../FormFields/InputText.js";const c=c=>{const{i18n:m}=i(),{configuration:{disableOtpAutoFocus:f}}=l(),[C,g]=t(null),{handleChangeFor:F,data:b,triggerValidation:j,valid:h,errors:k,isValid:v,setData:x}=d({schema:["otp"],rules:n}),E=r({validateInput:null}),P=r(null),[R,I]=t(!1),O=o((()=>{I(!0),j()}),[j]);s((()=>{b.otp&&I(!0)}),[b.otp]),s((()=>{!f&&P.current&&P.current.focus()}),[P.current,f]),s((()=>{E.current.validateInput=O,c.onSetInputHandlers(E.current)}),[O,c.onSetInputHandlers]);const V=o((()=>{x("otp",""),g(null),f||P.current.focus(),c.onResendCode()}),[c.onResendCode,P.current,f]),y=o((e=>{const t=m.get(`ctp.errors.${e}`);t&&g(t)}),[m]),M=o((e=>{"Enter"===e.key&&c.onPressEnter()}),[c.onPressEnter]);return s((()=>{c.onChange({data:b,valid:h,errors:k,isValid:v})}),[b,h,k]),e(u,{name:"oneTimePassword",label:m.get("ctp.otp.fieldLabel"),labelEndAdornment:!c.hideResendOtpButton&&e(a,{disabled:c.isValidatingOtp,onError:y,onResendCode:V}),errorMessage:R?C||c.errorMessage||!!k.otp:null,classNameModifiers:["otp"]},e(p,{name:"otp",autocorrect:"off",spellcheck:!1,value:b.otp,disabled:c.disabled,onInput:F("otp","input"),onBlur:F("otp","blur"),onKeyPress:M,setRef:e=>{P.current=e}}))};export{c as default};
1
+ import{createElement as e}from"../../../../../../external/preact/dist/preact.js";import{useState as t,useRef as r,useCallback as o,useEffect as s}from"../../../../../../external/preact/hooks/dist/hooks.js";import{otpValidationRules as a}from"./validate.js";import n from"./CtPResendOtpLink.js";import l from"../../../context/useClickToPayContext.js";import{useCoreContext as i}from"../../../../../../core/Context/CoreProvider.js";import d from"../../../../../../utils/useForm/useForm.js";import p from"../../../../FormFields/Field/Field.js";import c from"../../../../FormFields/InputText.js";const u=u=>{const{i18n:m}=i(),{configuration:{disableOtpAutoFocus:f}}=l(),[C,g]=t(null),{handleChangeFor:F,data:h,triggerValidation:j,valid:k,errors:v,isValid:b,setData:x}=d({schema:["otp"],rules:a}),P=r({validateInput:null}),E=r(null),[I,R]=t(!1),y=o((()=>{R(!0),j()}),[j]);s((()=>{h.otp&&R(!0)}),[h.otp]),s((()=>{!f&&E.current&&E.current.focus()}),[E.current,f]),s((()=>{P.current.validateInput=y,u.onSetInputHandlers(P.current)}),[y,u.onSetInputHandlers]);const V=o((()=>{x("otp",""),g(null),f||E.current.focus(),u.onResendCode()}),[u.onResendCode,E.current,f]),_=o((e=>{const t=m.get(`ctp.errors.${e}`);t&&g(t)}),[m]),w=o((e=>{"Enter"===e.key&&u.onPressEnter()}),[u.onPressEnter]);return s((()=>{u.onChange({data:h,valid:k,errors:v,isValid:b})}),[h,k,v]),e("div",{className:"adyen-checkout-ctp__otp-field-wrapper"},e(p,{name:"oneTimePassword",label:m.get("ctp.otp.fieldLabel"),errorMessage:I?C||u.errorMessage||!!v.otp:null,classNameModifiers:["otp"]},e(c,{name:"otp",autocorrect:"off",spellcheck:!1,value:h.otp,disabled:u.disabled,onInput:F("otp","input"),onBlur:F("otp","blur"),onKeyPress:w,setRef:e=>{E.current=e}})),e("div",{className:"adyen-checkout-ctp__otp-resend-code-wrapper"},e(n,{disabled:u.isValidatingOtp,onError:_,onResendCode:V})))};export{u as default};
2
2
  //# sourceMappingURL=CtPOneTimePasswordInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CtPOneTimePasswordInput.js","sources":["../../../../../../../../src/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { otpValidationRules } from './validate';\nimport CtPResendOtpLink from './CtPResendOtpLink';\nimport useClickToPayContext from '../../../context/useClickToPayContext';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport useForm from '../../../../../../utils/useForm';\nimport Field from '../../../../FormFields/Field';\nimport './CtPOneTimePasswordInput.scss';\nimport InputText from '../../../../FormFields/InputText';\n\ntype OnChangeProps = { data: CtPOneTimePasswordInputDataState; valid; errors; isValid: boolean };\n\ninterface CtPOneTimePasswordInputProps {\n hideResendOtpButton: boolean;\n disabled: boolean;\n isValidatingOtp: boolean;\n errorMessage?: string;\n onSetInputHandlers(handlers: CtPOneTimePasswordInputHandlers): void;\n onPressEnter(): Promise<void>;\n onChange({ data, valid, errors, isValid }: OnChangeProps): void;\n onResendCode(): void;\n}\n\ninterface CtPOneTimePasswordInputDataState {\n otp?: string;\n}\n\nexport type CtPOneTimePasswordInputHandlers = {\n validateInput(): void;\n};\n\nconst CtPOneTimePasswordInput = (props: CtPOneTimePasswordInputProps): h.JSX.Element => {\n const { i18n } = useCoreContext();\n const {\n configuration: { disableOtpAutoFocus }\n } = useClickToPayContext();\n\n const formSchema = ['otp'];\n const [resendOtpError, setResendOtpError] = useState<string>(null);\n const { handleChangeFor, data, triggerValidation, valid, errors, isValid, setData } = useForm<CtPOneTimePasswordInputDataState>({\n schema: formSchema,\n rules: otpValidationRules\n });\n const otpInputHandlersRef = useRef<CtPOneTimePasswordInputHandlers>({ validateInput: null });\n const inputRef = useRef<HTMLInputElement>(null);\n const [isOtpFielDirty, setIsOtpFieldDirty] = useState<boolean>(false);\n\n const validateInput = useCallback(() => {\n setIsOtpFieldDirty(true);\n triggerValidation();\n }, [triggerValidation]);\n\n /**\n * If shopper changes the value of the OTP fields, input becomes dirty\n */\n useEffect(() => {\n if (data.otp) setIsOtpFieldDirty(true);\n }, [data.otp]);\n\n useEffect(() => {\n if (!disableOtpAutoFocus && inputRef.current) {\n inputRef.current.focus();\n }\n }, [inputRef.current, disableOtpAutoFocus]);\n\n useEffect(() => {\n otpInputHandlersRef.current.validateInput = validateInput;\n props.onSetInputHandlers(otpInputHandlersRef.current);\n }, [validateInput, props.onSetInputHandlers]);\n\n const handleOnResendOtp = useCallback(() => {\n setData('otp', '');\n setResendOtpError(null);\n if (!disableOtpAutoFocus) {\n inputRef.current.focus();\n }\n props.onResendCode();\n }, [props.onResendCode, inputRef.current, disableOtpAutoFocus]);\n\n const handleOnResendOtpError = useCallback(\n (errorCode: string) => {\n const message = i18n.get(`ctp.errors.${errorCode}`);\n if (message) setResendOtpError(message);\n },\n [i18n]\n );\n\n const handleOnKeyPress = useCallback(\n (event: h.JSX.TargetedKeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n void props.onPressEnter();\n }\n },\n [props.onPressEnter]\n );\n\n useEffect(() => {\n props.onChange({ data, valid, errors, isValid });\n }, [data, valid, errors]);\n\n return (\n <Field\n name=\"oneTimePassword\"\n label={i18n.get('ctp.otp.fieldLabel')}\n labelEndAdornment={\n !props.hideResendOtpButton && (\n <CtPResendOtpLink disabled={props.isValidatingOtp} onError={handleOnResendOtpError} onResendCode={handleOnResendOtp} />\n )\n }\n errorMessage={isOtpFielDirty ? resendOtpError || props.errorMessage || !!errors.otp : null}\n classNameModifiers={['otp']}\n >\n <InputText\n name={'otp'}\n autocorrect={'off'}\n spellcheck={false}\n value={data.otp}\n disabled={props.disabled}\n onInput={handleChangeFor('otp', 'input')}\n onBlur={handleChangeFor('otp', 'blur')}\n onKeyPress={handleOnKeyPress}\n setRef={(ref: HTMLInputElement) => {\n inputRef.current = ref;\n }}\n />\n </Field>\n );\n};\n\nexport default CtPOneTimePasswordInput;\n"],"names":["CtPOneTimePasswordInput","props","i18n","useCoreContext","configuration","disableOtpAutoFocus","useClickToPayContext","resendOtpError","setResendOtpError","useState","handleChangeFor","data","triggerValidation","valid","errors","isValid","setData","useForm","schema","rules","otpValidationRules","otpInputHandlersRef","useRef","validateInput","inputRef","isOtpFielDirty","setIsOtpFieldDirty","useCallback","useEffect","otp","current","focus","onSetInputHandlers","handleOnResendOtp","onResendCode","handleOnResendOtpError","errorCode","message","get","handleOnKeyPress","event","key","onPressEnter","onChange","h","Field","name","label","labelEndAdornment","hideResendOtpButton","CtPResendOtpLink","disabled","isValidatingOtp","onError","errorMessage","classNameModifiers","InputText","autocorrect","spellcheck","value","onInput","onBlur","onKeyPress","setRef","ref"],"mappings":"glBAgCA,MAAMA,EAA2BC,IAC7B,MAAMC,KAAEA,GAASC,KAEbC,eAAeC,oBAAEA,IACjBC,KAGGC,EAAgBC,GAAqBC,EAAiB,OACvDC,gBAAEA,EAAeC,KAAEA,EAAIC,kBAAEA,EAAiBC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,EAAOC,QAAEA,GAAYC,EAA0C,CAC5HC,OAHe,CAAC,OAIhBC,MAAOC,IAELC,EAAsBC,EAAwC,CAAEC,cAAe,OAC/EC,EAAWF,EAAyB,OACnCG,EAAgBC,GAAsBjB,GAAkB,GAEzDc,EAAgBI,GAAY,KAC9BD,GAAmB,GACnBd,GAAAA,GACD,CAACA,IAKJgB,GAAU,KACFjB,EAAKkB,KAAKH,GAAmB,EAAA,GAClC,CAACf,EAAKkB,MAETD,GAAU,MACDvB,GAAuBmB,EAASM,SACjCN,EAASM,QAAQC,OACrB,GACD,CAACP,EAASM,QAASzB,IAEtBuB,GAAU,KACNP,EAAoBS,QAAQP,cAAgBA,EAC5CtB,EAAM+B,mBAAmBX,EAAoBS,QAAO,GACrD,CAACP,EAAetB,EAAM+B,qBAEzB,MAAMC,EAAoBN,GAAY,KAClCX,EAAQ,MAAO,IACfR,EAAkB,MACbH,GACDmB,EAASM,QAAQC,QAErB9B,EAAMiC,cAAY,GACnB,CAACjC,EAAMiC,aAAcV,EAASM,QAASzB,IAEpC8B,EAAyBR,GAC1BS,IACG,MAAMC,EAAUnC,EAAKoC,IAAI,cAAcF,KACnCC,GAAS7B,EAAkB6B,EAAAA,GAEnC,CAACnC,IAGCqC,EAAmBZ,GACpBa,IACqB,UAAdA,EAAMC,KACDxC,EAAMyC,cACf,GAEJ,CAACzC,EAAMyC,eAOX,OAJAd,GAAU,KACN3B,EAAM0C,SAAS,CAAEhC,OAAME,QAAOC,SAAQC,WAAQ,GAC/C,CAACJ,EAAME,EAAOC,IAGb8B,EAACC,EAAAA,CACGC,KAAK,kBACLC,MAAO7C,EAAKoC,IAAI,sBAChBU,mBACK/C,EAAMgD,qBACHL,EAACM,EAAAA,CAAiBC,SAAUlD,EAAMmD,gBAAiBC,QAASlB,EAAwBD,aAAcD,IAG1GqB,aAAc7B,EAAiBlB,GAAkBN,EAAMqD,gBAAkBxC,EAAOe,IAAM,KACtF0B,mBAAoB,CAAC,QAErBX,EAACY,EAAAA,CACGV,KAAM,MACNW,YAAa,MACbC,YAAY,EACZC,MAAOhD,EAAKkB,IACZsB,SAAUlD,EAAMkD,SAChBS,QAASlD,EAAgB,MAAO,SAChCmD,OAAQnD,EAAgB,MAAO,QAC/BoD,WAAYvB,EACZwB,OAASC,IACLxC,EAASM,QAAUkC,CAAAA"}
1
+ {"version":3,"file":"CtPOneTimePasswordInput.js","sources":["../../../../../../../../src/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { otpValidationRules } from './validate';\nimport CtPResendOtpLink from './CtPResendOtpLink';\nimport useClickToPayContext from '../../../context/useClickToPayContext';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport useForm from '../../../../../../utils/useForm';\nimport Field from '../../../../FormFields/Field';\nimport './CtPOneTimePasswordInput.scss';\nimport InputText from '../../../../FormFields/InputText';\n\ntype OnChangeProps = { data: CtPOneTimePasswordInputDataState; valid; errors; isValid: boolean };\n\ninterface CtPOneTimePasswordInputProps {\n hideResendOtpButton: boolean;\n disabled: boolean;\n isValidatingOtp: boolean;\n errorMessage?: string;\n onSetInputHandlers(handlers: CtPOneTimePasswordInputHandlers): void;\n onPressEnter(): Promise<void>;\n onChange({ data, valid, errors, isValid }: OnChangeProps): void;\n onResendCode(): void;\n}\n\ninterface CtPOneTimePasswordInputDataState {\n otp?: string;\n}\n\nexport type CtPOneTimePasswordInputHandlers = {\n validateInput(): void;\n};\n\nconst CtPOneTimePasswordInput = (props: CtPOneTimePasswordInputProps): h.JSX.Element => {\n const { i18n } = useCoreContext();\n const {\n configuration: { disableOtpAutoFocus }\n } = useClickToPayContext();\n\n const formSchema = ['otp'];\n const [resendOtpError, setResendOtpError] = useState<string>(null);\n const { handleChangeFor, data, triggerValidation, valid, errors, isValid, setData } = useForm<CtPOneTimePasswordInputDataState>({\n schema: formSchema,\n rules: otpValidationRules\n });\n const otpInputHandlersRef = useRef<CtPOneTimePasswordInputHandlers>({ validateInput: null });\n const inputRef = useRef<HTMLInputElement>(null);\n const [isOtpFielDirty, setIsOtpFieldDirty] = useState<boolean>(false);\n\n const validateInput = useCallback(() => {\n setIsOtpFieldDirty(true);\n triggerValidation();\n }, [triggerValidation]);\n\n /**\n * If shopper changes the value of the OTP fields, input becomes dirty\n */\n useEffect(() => {\n if (data.otp) setIsOtpFieldDirty(true);\n }, [data.otp]);\n\n useEffect(() => {\n if (!disableOtpAutoFocus && inputRef.current) {\n inputRef.current.focus();\n }\n }, [inputRef.current, disableOtpAutoFocus]);\n\n useEffect(() => {\n otpInputHandlersRef.current.validateInput = validateInput;\n props.onSetInputHandlers(otpInputHandlersRef.current);\n }, [validateInput, props.onSetInputHandlers]);\n\n const handleOnResendOtp = useCallback(() => {\n setData('otp', '');\n setResendOtpError(null);\n if (!disableOtpAutoFocus) {\n inputRef.current.focus();\n }\n props.onResendCode();\n }, [props.onResendCode, inputRef.current, disableOtpAutoFocus]);\n\n const handleOnResendOtpError = useCallback(\n (errorCode: string) => {\n const message = i18n.get(`ctp.errors.${errorCode}`);\n if (message) setResendOtpError(message);\n },\n [i18n]\n );\n\n const handleOnKeyPress = useCallback(\n (event: h.JSX.TargetedKeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n void props.onPressEnter();\n }\n },\n [props.onPressEnter]\n );\n\n useEffect(() => {\n props.onChange({ data, valid, errors, isValid });\n }, [data, valid, errors]);\n\n return (\n <div className={'adyen-checkout-ctp__otp-field-wrapper'}>\n <Field\n name=\"oneTimePassword\"\n label={i18n.get('ctp.otp.fieldLabel')}\n errorMessage={isOtpFielDirty ? resendOtpError || props.errorMessage || !!errors.otp : null}\n classNameModifiers={['otp']}\n >\n <InputText\n name={'otp'}\n autocorrect={'off'}\n spellcheck={false}\n value={data.otp}\n disabled={props.disabled}\n onInput={handleChangeFor('otp', 'input')}\n onBlur={handleChangeFor('otp', 'blur')}\n onKeyPress={handleOnKeyPress}\n setRef={(ref: HTMLInputElement) => {\n inputRef.current = ref;\n }}\n />\n </Field>\n <div className={'adyen-checkout-ctp__otp-resend-code-wrapper'}>\n <CtPResendOtpLink disabled={props.isValidatingOtp} onError={handleOnResendOtpError} onResendCode={handleOnResendOtp} />\n </div>\n </div>\n );\n};\n\nexport default CtPOneTimePasswordInput;\n"],"names":["CtPOneTimePasswordInput","props","i18n","useCoreContext","configuration","disableOtpAutoFocus","useClickToPayContext","resendOtpError","setResendOtpError","useState","handleChangeFor","data","triggerValidation","valid","errors","isValid","setData","useForm","schema","rules","otpValidationRules","otpInputHandlersRef","useRef","validateInput","inputRef","isOtpFielDirty","setIsOtpFieldDirty","useCallback","useEffect","otp","current","focus","onSetInputHandlers","handleOnResendOtp","onResendCode","handleOnResendOtpError","errorCode","message","get","handleOnKeyPress","event","key","onPressEnter","onChange","h","div","className","Field","name","label","errorMessage","classNameModifiers","InputText","autocorrect","spellcheck","value","disabled","onInput","onBlur","onKeyPress","setRef","ref","CtPResendOtpLink","isValidatingOtp","onError"],"mappings":"glBAgCA,MAAMA,EAA2BC,IAC7B,MAAMC,KAAEA,GAASC,KAEbC,eAAeC,oBAAEA,IACjBC,KAGGC,EAAgBC,GAAqBC,EAAiB,OACvDC,gBAAEA,EAAeC,KAAEA,EAAIC,kBAAEA,EAAiBC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,EAAOC,QAAEA,GAAYC,EAA0C,CAC5HC,OAHe,CAAC,OAIhBC,MAAOC,IAELC,EAAsBC,EAAwC,CAAEC,cAAe,OAC/EC,EAAWF,EAAyB,OACnCG,EAAgBC,GAAsBjB,GAAkB,GAEzDc,EAAgBI,GAAY,KAC9BD,GAAmB,GACnBd,GAAAA,GACD,CAACA,IAKJgB,GAAU,KACFjB,EAAKkB,KAAKH,GAAmB,EAAA,GAClC,CAACf,EAAKkB,MAETD,GAAU,MACDvB,GAAuBmB,EAASM,SACjCN,EAASM,QAAQC,OACrB,GACD,CAACP,EAASM,QAASzB,IAEtBuB,GAAU,KACNP,EAAoBS,QAAQP,cAAgBA,EAC5CtB,EAAM+B,mBAAmBX,EAAoBS,QAAO,GACrD,CAACP,EAAetB,EAAM+B,qBAEzB,MAAMC,EAAoBN,GAAY,KAClCX,EAAQ,MAAO,IACfR,EAAkB,MACbH,GACDmB,EAASM,QAAQC,QAErB9B,EAAMiC,cAAY,GACnB,CAACjC,EAAMiC,aAAcV,EAASM,QAASzB,IAEpC8B,EAAyBR,GAC1BS,IACG,MAAMC,EAAUnC,EAAKoC,IAAI,cAAcF,KACnCC,GAAS7B,EAAkB6B,EAAAA,GAEnC,CAACnC,IAGCqC,EAAmBZ,GACpBa,IACqB,UAAdA,EAAMC,KACDxC,EAAMyC,cACf,GAEJ,CAACzC,EAAMyC,eAOX,OAJAd,GAAU,KACN3B,EAAM0C,SAAS,CAAEhC,OAAME,QAAOC,SAAQC,WAAQ,GAC/C,CAACJ,EAAME,EAAOC,IAGb8B,EAACC,MAAAA,CAAIC,UAAW,yCACZF,EAACG,EAAAA,CACGC,KAAK,kBACLC,MAAO/C,EAAKoC,IAAI,sBAChBY,aAAczB,EAAiBlB,GAAkBN,EAAMiD,gBAAkBpC,EAAOe,IAAM,KACtFsB,mBAAoB,CAAC,QAErBP,EAACQ,EAAAA,CACGJ,KAAM,MACNK,YAAa,MACbC,YAAY,EACZC,MAAO5C,EAAKkB,IACZ2B,SAAUvD,EAAMuD,SAChBC,QAAS/C,EAAgB,MAAO,SAChCgD,OAAQhD,EAAgB,MAAO,QAC/BiD,WAAYpB,EACZqB,OAASC,IACLrC,EAASM,QAAU+B,CAAAA,KAI/BjB,EAACC,MAAAA,CAAIC,UAAW,+CACZF,EAACkB,EAAAA,CAAiBN,SAAUvD,EAAM8D,gBAAiBC,QAAS7B,EAAwBD,aAAcD"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../../external/preact/dist/preact.js";import{useState as t,useEffect as o,useCallback as r}from"../../../../../../external/preact/hooks/dist/hooks.js";import s from"../../../context/useClickToPayContext.js";import c from"../../../../../../external/classnames/index.js";import{useCoreContext as n}from"../../../../../../core/Context/CoreProvider.js";import a from"../../../../Icon/Icon.js";import{isSrciError as d}from"../../../services/utils.js";import{PREFIX as i}from"../../../../Icon/constants.js";const l=({onError:l,onResendCode:p,disabled:m})=>{const[u,f]=t(null),[k,h]=t(!1),{i18n:y}=n(),{startIdentityValidation:_}=s();o((()=>{let e=null;return u>0&&(e=setTimeout((()=>f(u-1)),1e3)),()=>clearTimeout(e)}),[u]),o((()=>{let e=null;return k&&(e=setTimeout((()=>{h(!1),f(60)}),2e3)),()=>clearTimeout(e)}),[k]);const x=r((async e=>{e.preventDefault();try{p(),h(!0),await _()}catch(e){if(f(0),h(!1),!d(e))return void console.error(e);l(e.reason)}}),[_,l,p]);return k?e("div",{className:"adyen-checkout-ctp__otp-resend-code--confirmation"},y.get("ctp.otp.codeResent"),e(a,{type:`${i}checkmark`,height:14,width:14})):u>0?e("div",{className:"adyen-checkout-ctp__otp-resend-code--disabled"},y.get("ctp.otp.resendCode")," -"," ",e("span",{className:"adyen-checkout-ctp__otp-resend-code-counter"}," ",u>0&&`${u}s`," ")):e("div",{role:"link",tabIndex:0,className:c("adyen-checkout-ctp__otp-resend-code",{"adyen-checkout-ctp__otp-resend-code--disabled":m}),onClick:x},y.get("ctp.otp.resendCode"))};export{l as default};
1
+ import{createElement as e}from"../../../../../../external/preact/dist/preact.js";import{useState as t,useEffect as o,useCallback as r}from"../../../../../../external/preact/hooks/dist/hooks.js";import s from"../../../context/useClickToPayContext.js";import n from"../../../../../../external/classnames/index.js";import{useCoreContext as a}from"../../../../../../core/Context/CoreProvider.js";import c from"../../../../Icon/Icon.js";import{isSrciError as i}from"../../../services/utils.js";import{PREFIX as d}from"../../../../Icon/constants.js";import l from"../../../../Button/Button.js";const m=({onError:m,onResendCode:p,disabled:u})=>{const[f,k]=t(null),[h,j]=t(!1),{i18n:C}=a(),{startIdentityValidation:x}=s();o((()=>{let e=null;return f>0&&(e=setTimeout((()=>k(f-1)),1e3)),()=>clearTimeout(e)}),[f]),o((()=>{let e=null;return h&&(e=setTimeout((()=>{j(!1),k(60)}),2e3)),()=>clearTimeout(e)}),[h]);const y=r((async e=>{e.preventDefault();try{p(),j(!0),await x()}catch(e){if(k(0),j(!1),!i(e))return void console.error(e);m(e.reason)}}),[x,m,p]);return h?e("div",{className:"adyen-checkout-ctp__otp-resend-code--confirmation"},C.get("ctp.otp.codeResent"),e(c,{type:`${d}checkmark`,height:14,width:14})):f>0?e("div",{className:"adyen-checkout-ctp__otp-resend-code--disabled"},C.get("ctp.otp.resendCode")," -"," ",e("span",{className:"adyen-checkout-ctp__otp-resend-code-counter"}," ",f>0&&`${f}s`," ")):e(l,{classNameModifiers:[n("otp-resend-code",{"otp-resend-code--disabled":u})],onClick:y,variant:"link",inline:!0,disabled:u},C.get("ctp.otp.resendCode"))};export{m as default};
2
2
  //# sourceMappingURL=CtPResendOtpLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CtPResendOtpLink.js","sources":["../../../../../../../../src/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useState } from 'preact/hooks';\nimport useClickToPayContext from '../../../context/useClickToPayContext';\nimport classnames from 'classnames';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport Icon from '../../../../Icon';\nimport { isSrciError } from '../../../services/utils';\nimport { PREFIX } from '../../../../Icon/constants';\n\nconst CONFIRMATION_SHOWING_TIME = 2000;\n\ninterface CtPResendOtpLinkProps {\n onError(errorCode: string): void;\n onResendCode(): void;\n disabled: boolean;\n}\n\nconst CtPResendOtpLink = ({ onError, onResendCode, disabled }: CtPResendOtpLinkProps): h.JSX.Element => {\n const [counter, setCounter] = useState<number>(null);\n const [showConfirmation, setShowConfirmation] = useState<boolean>(false);\n const { i18n } = useCoreContext();\n const { startIdentityValidation } = useClickToPayContext();\n\n useEffect(() => {\n let timeout = null;\n if (counter > 0) {\n timeout = setTimeout(() => setCounter(counter - 1), 1000);\n }\n return () => clearTimeout(timeout);\n }, [counter]);\n\n useEffect(() => {\n let timeout = null;\n\n if (showConfirmation) {\n timeout = setTimeout(() => {\n setShowConfirmation(false);\n setCounter(60);\n }, CONFIRMATION_SHOWING_TIME);\n }\n return () => clearTimeout(timeout);\n }, [showConfirmation]);\n\n const handleResendCodeClick = useCallback(\n async event => {\n event.preventDefault();\n\n try {\n onResendCode();\n setShowConfirmation(true);\n await startIdentityValidation();\n } catch (error: unknown) {\n setCounter(0);\n setShowConfirmation(false);\n\n if (!isSrciError(error)) {\n console.error(error);\n return;\n }\n\n onError(error.reason);\n }\n },\n [startIdentityValidation, onError, onResendCode]\n );\n\n if (showConfirmation) {\n return (\n <div className=\"adyen-checkout-ctp__otp-resend-code--confirmation\">\n {i18n.get('ctp.otp.codeResent')}\n <Icon type={`${PREFIX}checkmark`} height={14} width={14} />\n </div>\n );\n }\n\n if (counter > 0) {\n return (\n <div className=\"adyen-checkout-ctp__otp-resend-code--disabled\">\n {i18n.get('ctp.otp.resendCode')} -{' '}\n <span className=\"adyen-checkout-ctp__otp-resend-code-counter\"> {counter > 0 && `${counter}s`} </span>\n </div>\n );\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <div\n role=\"link\"\n tabIndex={0}\n className={classnames('adyen-checkout-ctp__otp-resend-code', { 'adyen-checkout-ctp__otp-resend-code--disabled': disabled })}\n onClick={handleResendCodeClick}\n >\n {i18n.get('ctp.otp.resendCode')}\n </div>\n );\n};\n\nexport default CtPResendOtpLink;\n"],"names":["CtPResendOtpLink","onError","onResendCode","disabled","counter","setCounter","useState","showConfirmation","setShowConfirmation","i18n","useCoreContext","startIdentityValidation","useClickToPayContext","useEffect","timeout","setTimeout","clearTimeout","handleResendCodeClick","useCallback","async","event","preventDefault","error","isSrciError","console","reason","h","div","className","get","Icon","type","PREFIX","height","width","span","role","tabIndex","classnames","onClick"],"mappings":"giBASA,MAQMA,EAAmB,EAAGC,UAASC,eAAcC,eAC/C,MAAOC,EAASC,GAAcC,EAAiB,OACxCC,EAAkBC,GAAuBF,GAAkB,IAC5DG,KAAEA,GAASC,KACXC,wBAAEA,GAA4BC,IAEpCC,GAAU,KACN,IAAIC,EAAU,KAId,OAHIV,EAAU,IACVU,EAAUC,YAAW,IAAMV,EAAWD,EAAU,IAAI,MAEjD,IAAMY,aAAaF,EAAAA,GAC3B,CAACV,IAEJS,GAAU,KACN,IAAIC,EAAU,KAQd,OANIP,IACAO,EAAUC,YAAW,KACjBP,GAAoB,GACpBH,EAAW,GAAA,GA5BO,MA+BnB,IAAMW,aAAaF,EAAAA,GAC3B,CAACP,IAEJ,MAAMU,EAAwBC,GAC1BC,MAAMC,IACFA,EAAMC,iBAEN,IACInB,IACAM,GAAoB,SACdG,GACV,CAAE,MAAOW,GAIL,GAHAjB,EAAW,GACXG,GAAoB,IAEfe,EAAYD,GAEb,YADAE,QAAQF,MAAMA,GAIlBrB,EAAQqB,EAAMG,OAClB,IAEJ,CAACd,EAAyBV,EAASC,IAGvC,OAAIK,EAEImB,EAACC,MAAAA,CAAIC,UAAU,qDACVnB,EAAKoB,IAAI,sBACVH,EAACI,EAAAA,CAAKC,KAAM,GAAGC,aAAmBC,OAAQ,GAAIC,MAAO,MAK7D9B,EAAU,EAENsB,EAACC,MAAAA,CAAIC,UAAU,iDACVnB,EAAKoB,IAAI,sBAAsB,KAAG,IACnCH,EAACS,OAAAA,CAAKP,UAAU,+CAA8C,IAAExB,EAAU,GAAK,GAAGA,KAAW,MAOrGsB,EAACC,MAAAA,CACGS,KAAK,OACLC,SAAU,EACVT,UAAWU,EAAW,sCAAuC,CAAE,gDAAiDnC,IAChHoC,QAAStB,GAERR,EAAKoB,IAAI,sBAAA"}
1
+ {"version":3,"file":"CtPResendOtpLink.js","sources":["../../../../../../../../src/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useState } from 'preact/hooks';\nimport useClickToPayContext from '../../../context/useClickToPayContext';\nimport classnames from 'classnames';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport Icon from '../../../../Icon';\nimport { isSrciError } from '../../../services/utils';\nimport { PREFIX } from '../../../../Icon/constants';\nimport Button from '../../../../Button';\n\nconst CONFIRMATION_SHOWING_TIME = 2000;\n\ninterface CtPResendOtpLinkProps {\n onError(errorCode: string): void;\n onResendCode(): void;\n disabled: boolean;\n}\n\nconst CtPResendOtpLink = ({ onError, onResendCode, disabled }: CtPResendOtpLinkProps): h.JSX.Element => {\n const [counter, setCounter] = useState<number>(null);\n const [showConfirmation, setShowConfirmation] = useState<boolean>(false);\n const { i18n } = useCoreContext();\n const { startIdentityValidation } = useClickToPayContext();\n\n useEffect(() => {\n let timeout = null;\n if (counter > 0) {\n timeout = setTimeout(() => setCounter(counter - 1), 1000);\n }\n return () => clearTimeout(timeout);\n }, [counter]);\n\n useEffect(() => {\n let timeout = null;\n\n if (showConfirmation) {\n timeout = setTimeout(() => {\n setShowConfirmation(false);\n setCounter(60);\n }, CONFIRMATION_SHOWING_TIME);\n }\n return () => clearTimeout(timeout);\n }, [showConfirmation]);\n\n const handleResendCodeClick = useCallback(\n async event => {\n event.preventDefault();\n\n try {\n onResendCode();\n setShowConfirmation(true);\n await startIdentityValidation();\n } catch (error: unknown) {\n setCounter(0);\n setShowConfirmation(false);\n\n if (!isSrciError(error)) {\n console.error(error);\n return;\n }\n\n onError(error.reason);\n }\n },\n [startIdentityValidation, onError, onResendCode]\n );\n\n if (showConfirmation) {\n return (\n <div className=\"adyen-checkout-ctp__otp-resend-code--confirmation\">\n {i18n.get('ctp.otp.codeResent')}\n <Icon type={`${PREFIX}checkmark`} height={14} width={14} />\n </div>\n );\n }\n\n if (counter > 0) {\n return (\n <div className=\"adyen-checkout-ctp__otp-resend-code--disabled\">\n {i18n.get('ctp.otp.resendCode')} -{' '}\n <span className=\"adyen-checkout-ctp__otp-resend-code-counter\"> {counter > 0 && `${counter}s`} </span>\n </div>\n );\n }\n\n return (\n <Button\n classNameModifiers={[classnames('otp-resend-code', { 'otp-resend-code--disabled': disabled })]}\n onClick={handleResendCodeClick}\n variant=\"link\"\n inline={true}\n disabled={disabled}\n >\n {i18n.get('ctp.otp.resendCode')}\n </Button>\n );\n};\n\nexport default CtPResendOtpLink;\n"],"names":["CtPResendOtpLink","onError","onResendCode","disabled","counter","setCounter","useState","showConfirmation","setShowConfirmation","i18n","useCoreContext","startIdentityValidation","useClickToPayContext","useEffect","timeout","setTimeout","clearTimeout","handleResendCodeClick","useCallback","async","event","preventDefault","error","isSrciError","console","reason","h","div","className","get","Icon","type","PREFIX","height","width","span","Button","classNameModifiers","classnames","onClick","variant","inline"],"mappings":"4kBAUA,MAQMA,EAAmB,EAAGC,UAASC,eAAcC,eAC/C,MAAOC,EAASC,GAAcC,EAAiB,OACxCC,EAAkBC,GAAuBF,GAAkB,IAC5DG,KAAEA,GAASC,KACXC,wBAAEA,GAA4BC,IAEpCC,GAAU,KACN,IAAIC,EAAU,KAId,OAHIV,EAAU,IACVU,EAAUC,YAAW,IAAMV,EAAWD,EAAU,IAAI,MAEjD,IAAMY,aAAaF,EAAAA,GAC3B,CAACV,IAEJS,GAAU,KACN,IAAIC,EAAU,KAQd,OANIP,IACAO,EAAUC,YAAW,KACjBP,GAAoB,GACpBH,EAAW,GAAA,GA5BO,MA+BnB,IAAMW,aAAaF,EAAAA,GAC3B,CAACP,IAEJ,MAAMU,EAAwBC,GAC1BC,MAAMC,IACFA,EAAMC,iBAEN,IACInB,IACAM,GAAoB,SACdG,GACV,CAAE,MAAOW,GAIL,GAHAjB,EAAW,GACXG,GAAoB,IAEfe,EAAYD,GAEb,YADAE,QAAQF,MAAMA,GAIlBrB,EAAQqB,EAAMG,OAClB,IAEJ,CAACd,EAAyBV,EAASC,IAGvC,OAAIK,EAEImB,EAACC,MAAAA,CAAIC,UAAU,qDACVnB,EAAKoB,IAAI,sBACVH,EAACI,EAAAA,CAAKC,KAAM,GAAGC,aAAmBC,OAAQ,GAAIC,MAAO,MAK7D9B,EAAU,EAENsB,EAACC,MAAAA,CAAIC,UAAU,iDACVnB,EAAKoB,IAAI,sBAAsB,KAAG,IACnCH,EAACS,OAAAA,CAAKP,UAAU,+CAA8C,IAAExB,EAAU,GAAK,GAAGA,KAAW,MAMrGsB,EAACU,EAAAA,CACGC,mBAAoB,CAACC,EAAW,kBAAmB,CAAE,4BAA6BnC,KAClFoC,QAAStB,EACTuB,QAAQ,OACRC,QAAQ,EACRtC,SAAUA,GAETM,EAAKoB,IAAI,sBAAA"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../../../../external/preact/dist/preact.js";import o from"../../context/useClickToPayContext.js";import{CtpState as e}from"../../services/ClickToPayService.js";import r from"../../../../../external/classnames/index.js";import{useMemo as n}from"../../../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as s}from"../../../../../core/Context/CoreProvider.js";const a=()=>{const{ctpState:a,logoutShopper:c,status:l,cards:i}=o(),{i18n:u}=s();if(!1===[e.Ready,e.OneTimePassword].includes(a))return null;const d=n((()=>a===e.Ready&&i.length>1?u.get("ctp.logout.notYourCards"):a===e.Ready&&1===i.length?u.get("ctp.logout.notYourCard"):a===e.Ready&&0===i.length?u.get("ctp.logout.notYourProfile"):u.get("ctp.logout.notYou")),[u,a]);return t("span",{role:"button",tabIndex:0,className:r("adyen-checkout-ctp__section-logout-button",{"adyen-checkout-ctp__section-logout-button--disabled":"loading"===l}),onClick:c},d)};export{a as default};
1
+ import{createElement as t}from"../../../../../external/preact/dist/preact.js";import o from"../../context/useClickToPayContext.js";import{CtpState as e}from"../../services/ClickToPayService.js";import r from"../../../../../external/classnames/index.js";import{useMemo as n}from"../../../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as s}from"../../../../../core/Context/CoreProvider.js";import a from"../../../Button/Button.js";const i=()=>{const{ctpState:i,logoutShopper:l,status:c,cards:u}=o(),{i18n:d}=s();if(!1===[e.Ready,e.OneTimePassword].includes(i))return null;const m=n((()=>i===e.Ready&&u.length>1?d.get("ctp.logout.notYourCards"):i===e.Ready&&1===u.length?d.get("ctp.logout.notYourCard"):i===e.Ready&&0===u.length?d.get("ctp.logout.notYourProfile"):d.get("ctp.logout.notYou")),[d,i]);return t(a,{classNameModifiers:[r("section-logout-button",{"section-logout-button--disabled":"loading"===c})],disabled:"loading"===c,onClick:l,variant:"link",inline:!0},m)};export{i as default};
2
2
  //# sourceMappingURL=CtPLogoutLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CtPLogoutLink.js","sources":["../../../../../../../src/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.tsx"],"sourcesContent":["import { h } from 'preact';\nimport useClickToPayContext from '../../context/useClickToPayContext';\nimport { CtpState } from '../../services/ClickToPayService';\nimport classnames from 'classnames';\nimport { useMemo } from 'preact/hooks';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport './CtPLogoutLink.scss';\n\nconst CtPLogoutLink = () => {\n const { ctpState, logoutShopper, status, cards } = useClickToPayContext();\n const { i18n } = useCoreContext();\n\n if ([CtpState.Ready, CtpState.OneTimePassword].includes(ctpState) === false) {\n return null;\n }\n\n const label = useMemo(() => {\n if (ctpState === CtpState.Ready && cards.length > 1) return i18n.get('ctp.logout.notYourCards');\n if (ctpState === CtpState.Ready && cards.length === 1) return i18n.get('ctp.logout.notYourCard');\n if (ctpState === CtpState.Ready && cards.length === 0) return i18n.get('ctp.logout.notYourProfile');\n return i18n.get('ctp.logout.notYou');\n }, [i18n, ctpState]);\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <span\n role=\"button\"\n tabIndex={0}\n className={classnames('adyen-checkout-ctp__section-logout-button', {\n 'adyen-checkout-ctp__section-logout-button--disabled': status === 'loading'\n })}\n onClick={logoutShopper}\n >\n {label}\n </span>\n );\n};\n\nexport default CtPLogoutLink;\n"],"names":["CtPLogoutLink","ctpState","logoutShopper","status","cards","useClickToPayContext","i18n","useCoreContext","CtpState","Ready","OneTimePassword","includes","label","useMemo","length","get","h","span","role","tabIndex","className","classnames","onClick"],"mappings":"uZAQA,MAAMA,EAAgB,KAClB,MAAMC,SAAEA,EAAQC,cAAEA,EAAaC,OAAEA,EAAMC,MAAEA,GAAUC,KAC7CC,KAAEA,GAASC,IAEjB,IAAsE,IAAlE,CAACC,EAASC,MAAOD,EAASE,iBAAiBC,SAASV,GACpD,OAAO,KAGX,MAAMW,EAAQC,GAAQ,IACdZ,IAAaO,EAASC,OAASL,EAAMU,OAAS,EAAUR,EAAKS,IAAI,2BACjEd,IAAaO,EAASC,OAA0B,IAAjBL,EAAMU,OAAqBR,EAAKS,IAAI,0BACnEd,IAAaO,EAASC,OAA0B,IAAjBL,EAAMU,OAAqBR,EAAKS,IAAI,6BAChET,EAAKS,IAAI,sBACjB,CAACT,EAAML,IAEV,OAEIe,EAACC,OAAAA,CACGC,KAAK,SACLC,SAAU,EACVC,UAAWC,EAAW,4CAA6C,CAC/D,sDAAkE,YAAXlB,IAE3DmB,QAASpB,GAERU,EAAAA"}
1
+ {"version":3,"file":"CtPLogoutLink.js","sources":["../../../../../../../src/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.tsx"],"sourcesContent":["import { h } from 'preact';\nimport useClickToPayContext from '../../context/useClickToPayContext';\nimport { CtpState } from '../../services/ClickToPayService';\nimport classnames from 'classnames';\nimport { useMemo } from 'preact/hooks';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport './CtPLogoutLink.scss';\nimport Button from '../../../Button';\n\nconst CtPLogoutLink = () => {\n const { ctpState, logoutShopper, status, cards } = useClickToPayContext();\n const { i18n } = useCoreContext();\n\n if ([CtpState.Ready, CtpState.OneTimePassword].includes(ctpState) === false) {\n return null;\n }\n\n const label = useMemo(() => {\n if (ctpState === CtpState.Ready && cards.length > 1) return i18n.get('ctp.logout.notYourCards');\n if (ctpState === CtpState.Ready && cards.length === 1) return i18n.get('ctp.logout.notYourCard');\n if (ctpState === CtpState.Ready && cards.length === 0) return i18n.get('ctp.logout.notYourProfile');\n return i18n.get('ctp.logout.notYou');\n }, [i18n, ctpState]);\n\n return (\n <Button\n classNameModifiers={[\n classnames('section-logout-button', {\n 'section-logout-button--disabled': status === 'loading'\n })\n ]}\n disabled={status === 'loading'}\n onClick={logoutShopper}\n variant=\"link\"\n inline={true}\n >\n {label}\n </Button>\n );\n};\n\nexport default CtPLogoutLink;\n"],"names":["CtPLogoutLink","ctpState","logoutShopper","status","cards","useClickToPayContext","i18n","useCoreContext","CtpState","Ready","OneTimePassword","includes","label","useMemo","length","get","h","Button","classNameModifiers","classnames","disabled","onClick","variant","inline"],"mappings":"gcASA,MAAMA,EAAgB,KAClB,MAAMC,SAAEA,EAAQC,cAAEA,EAAaC,OAAEA,EAAMC,MAAEA,GAAUC,KAC7CC,KAAEA,GAASC,IAEjB,IAAsE,IAAlE,CAACC,EAASC,MAAOD,EAASE,iBAAiBC,SAASV,GACpD,OAAO,KAGX,MAAMW,EAAQC,GAAQ,IACdZ,IAAaO,EAASC,OAASL,EAAMU,OAAS,EAAUR,EAAKS,IAAI,2BACjEd,IAAaO,EAASC,OAA0B,IAAjBL,EAAMU,OAAqBR,EAAKS,IAAI,0BACnEd,IAAaO,EAASC,OAA0B,IAAjBL,EAAMU,OAAqBR,EAAKS,IAAI,6BAChET,EAAKS,IAAI,sBACjB,CAACT,EAAML,IAEV,OACIe,EAACC,EAAAA,CACGC,mBAAoB,CAChBC,EAAW,wBAAyB,CAChC,kCAA8C,YAAXhB,KAG3CiB,SAAqB,YAAXjB,EACVkB,QAASnB,EACToB,QAAQ,OACRC,QAAQ,GAEPX,EAAAA"}
@@ -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":"yTA2BMA,MAAAA,EAAqB,EACvBC,yBAAwB,EACxBC,oBACAC,SACAC,gBACAC,WACAC,mBACAC,WACAC,cACAC,kBAgF8BC,EACNA,EA/ExB,MAAOA,GAAcC,EAAoCT,IAClDU,EAAUC,GAAeF,GAAmBT,aAAAA,EAAAA,EAAmBY,QAASC,EAASC,eACjFC,EAA2BC,GAAgCP,GAAkB,IAC7EQ,EAAQC,GAAaT,EAA0B,SAChDU,EAAgBC,EAA8B,CAAA,GAC9CC,EAAmBD,GAAgB,GAEzCE,GAAU,KACNlB,EAAiBe,EAAcI,SAC/BJ,EAAcI,QAAQL,UAAYA,CAAAA,GACnC,IAEHI,GAAU,KACNd,SAAAA,EAAYgB,wBAAuBP,GAAUN,EAAYM,IAAAA,GAC1D,CAACT,IAEJ,MAAMiB,EAAUC,GAAY,KAIxBxB,IAAAA,EAHImB,EAAiBE,UAGrBrB,QAAAA,EAAAA,EAAcuB,eAAdvB,IAAAA,GAAAA,EAAAA,KAAAA,GACAmB,EAAiBE,SAAU,EAAA,GAC5B,CAACrB,aAAAA,EAAAA,EAAeuB,UAEbE,EAA2BD,GAC7BE,MAAOC,UACGrB,aAAAA,EAAAA,EAAYmB,yBAAyBE,GAAAA,GAE/C,CAACrB,IAGCsB,EAA0BJ,GAAYE,eACrBpB,aAAAA,EAAAA,EAAYsB,4BAEhC,CAACtB,IAEEuB,EAAWL,GACbE,MAAOI,SACUxB,aAAAA,EAAAA,EAAYuB,SAASC,KAEtC,CAACxB,IAGCyB,EAA4BP,GAC9BE,MAAOM,SACU1B,aAAAA,EAAAA,EAAYyB,0BAA0BC,KAEvD,CAAC1B,IAGC2B,EAAgBT,GAAYE,gBACxBpB,aAAAA,EAAAA,EAAY4B,SAAM,GACzB,CAAC5B,IAEE6B,EAA4BX,GAC7BY,IACG9B,EAAW6B,0BAA0BC,EAAAA,GAEzC,CAAC9B,IAGL,OACI+B,EAACC,EAAkBC,SAAQ,CACvBC,MAAO,CACHzB,SACAZ,WACAE,UACAD,cACAL,SACAC,gBACAyC,iBAAkBnC,aAAAA,EAAAA,EAAYoC,aAC9B7C,wBACAgB,4BACAC,+BACAN,WACAuB,4BACAY,MAAOrC,aAAAA,EAAAA,EAAYsC,aACnBC,QAASvC,aAAAA,EAAAA,EAAYuC,QACrBC,iBAAkBxC,SAAkC,QAAlCA,EAAAA,EAAYyC,8BAAZzC,IAAAA,OAAAA,EAAAA,EAAoC0C,qBACtDC,WAAY3C,SAAkC,QAAlCA,EAAAA,EAAYyC,8BAAZzC,IAAAA,OAAAA,EAAAA,EAAoC4C,gBAChDrB,WACAI,gBACAL,0BACAH,2BACAU,4BACAZ,YAGHtB,EAAAA"}
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":"yTA2BMA,MAAAA,EAAqB,EACvBC,yBAAwB,EACxBC,oBACAC,SACAC,gBACAC,WACAC,mBACAC,WACAC,cACAC,kBAgF8BC,EACNA,EA/ExB,MAAOA,GAAcC,EAAoCT,IAClDU,EAAUC,GAAeF,GAAmBT,aAAAA,EAAAA,EAAmBY,QAASC,EAASC,eACjFC,EAA2BC,GAAgCP,GAAkB,IAC7EQ,EAAQC,GAAaT,EAA0B,SAChDU,EAAgBC,EAA8B,IAC9CC,EAAmBD,GAAgB,GAEzCE,GAAU,KACNlB,EAAiBe,EAAcI,SAC/BJ,EAAcI,QAAQL,UAAYA,CAAAA,GACnC,IAEHI,GAAU,KACNd,SAAAA,EAAYgB,wBAAuBP,GAAUN,EAAYM,IAAAA,GAC1D,CAACT,IAEJ,MAAMiB,EAAUC,GAAY,KAIxBxB,IAAAA,EAHImB,EAAiBE,UAGrBrB,QAAAA,EAAAA,EAAcuB,eAAdvB,IAAAA,GAAAA,EAAAA,KAAAA,GACAmB,EAAiBE,SAAU,EAAA,GAC5B,CAACrB,aAAAA,EAAAA,EAAeuB,UAEbE,EAA2BD,GAC7BE,MAAOC,UACGrB,aAAAA,EAAAA,EAAYmB,yBAAyBE,GAAAA,GAE/C,CAACrB,IAGCsB,EAA0BJ,GAAYE,eACrBpB,aAAAA,EAAAA,EAAYsB,4BAEhC,CAACtB,IAEEuB,EAAWL,GACbE,MAAOI,SACUxB,aAAAA,EAAAA,EAAYuB,SAASC,KAEtC,CAACxB,IAGCyB,EAA4BP,GAC9BE,MAAOM,SACU1B,aAAAA,EAAAA,EAAYyB,0BAA0BC,KAEvD,CAAC1B,IAGC2B,EAAgBT,GAAYE,gBACxBpB,aAAAA,EAAAA,EAAY4B,SAAM,GACzB,CAAC5B,IAEE6B,EAA4BX,GAC7BY,IACG9B,EAAW6B,0BAA0BC,EAAAA,GAEzC,CAAC9B,IAGL,OACI+B,EAACC,EAAkBC,SAAQ,CACvBC,MAAO,CACHzB,SACAZ,WACAE,UACAD,cACAL,SACAC,gBACAyC,iBAAkBnC,aAAAA,EAAAA,EAAYoC,aAC9B7C,wBACAgB,4BACAC,+BACAN,WACAuB,4BACAY,MAAOrC,aAAAA,EAAAA,EAAYsC,aACnBC,QAASvC,aAAAA,EAAAA,EAAYuC,QACrBC,iBAAkBxC,SAAkC,QAAlCA,EAAAA,EAAYyC,8BAAZzC,IAAAA,OAAAA,EAAAA,EAAoC0C,qBACtDC,WAAY3C,SAAkC,QAAlCA,EAAAA,EAAYyC,8BAAZzC,IAAAA,OAAAA,EAAAA,EAAoC4C,gBAChDrB,WACAI,gBACAL,0BACAH,2BACAU,4BACAZ,YAGHtB,EAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TimeoutError.js","sources":["../../../../../../src/components/internal/ClickToPay/errors/TimeoutError.ts"],"sourcesContent":["interface TimeoutErrorProps {\n source: string;\n scheme: string;\n isTimeoutTriggeredBySchemeSdk: boolean;\n}\n\nclass TimeoutError extends Error {\n public scheme: string;\n public source: string;\n public isTimeoutTriggeredBySchemeSdk: boolean;\n\n /** Currently populated only by Visa SDK if available */\n public correlationId?: string;\n\n constructor(options: TimeoutErrorProps) {\n super(`ClickToPayService - Timeout during ${options.source}() of the scheme '${options.scheme}'`);\n\n this.name = 'TimeoutError';\n this.source = options.source;\n this.scheme = options.scheme;\n this.isTimeoutTriggeredBySchemeSdk = options.isTimeoutTriggeredBySchemeSdk;\n }\n\n public setCorrelationId(correlationId: string): void {\n this.correlationId = correlationId;\n }\n\n public toString() {\n return this.message;\n }\n}\n\nexport default TimeoutError;\n"],"names":["TimeoutError","Error","setCorrelationId","correlationId","this","toString","message","constructor","options","super","source","scheme","_define_property","isTimeoutTriggeredBySchemeSdk","name"],"mappings":"wHAMA,MAAMA,UAAqBC,MAiBhBC,gBAAAA,CAAiBC,GACpBC,KAAKD,cAAgBA,CACzB,CAEOE,QAAAA,GACH,OAAOD,KAAKE,OAChB,CAfAC,WAAAA,CAAYC,GACRC,MAAM,sCAAsCD,EAAQE,2BAA2BF,EAAQG,WAR3FC,EAAAR,KAAOO,cAAP,GACAC,EAAAR,KAAOM,cAAP,GACAE,EAAAR,KAAOS,qCAAP,GAGAD,EAAOT,KAAAA,qBAAP,GAKIC,KAAKU,KAAO,eACZV,KAAKM,OAASF,EAAQE,OACtBN,KAAKO,OAASH,EAAQG,OACtBP,KAAKS,8BAAgCL,EAAQK,6BACjD"}
1
+ {"version":3,"file":"TimeoutError.js","sources":["../../../../../../src/components/internal/ClickToPay/errors/TimeoutError.ts"],"sourcesContent":["interface TimeoutErrorProps {\n source: string;\n scheme: string;\n isTimeoutTriggeredBySchemeSdk: boolean;\n}\n\nclass TimeoutError extends Error {\n public scheme: string;\n public source: string;\n public isTimeoutTriggeredBySchemeSdk: boolean;\n\n /** Currently populated only by Visa SDK if available */\n public correlationId?: string;\n\n constructor(options: TimeoutErrorProps) {\n super(`ClickToPayService - Timeout during ${options.source}() of the scheme '${options.scheme}'`);\n\n this.name = 'TimeoutError';\n this.source = options.source;\n this.scheme = options.scheme;\n this.isTimeoutTriggeredBySchemeSdk = options.isTimeoutTriggeredBySchemeSdk;\n }\n\n public setCorrelationId(correlationId: string): void {\n this.correlationId = correlationId;\n }\n\n public toString() {\n return this.message;\n }\n}\n\nexport default TimeoutError;\n"],"names":["TimeoutError","Error","setCorrelationId","correlationId","this","toString","message","constructor","options","super","source","scheme","_define_property","isTimeoutTriggeredBySchemeSdk","name"],"mappings":"wHAMA,MAAMA,UAAqBC,MAiBhBC,gBAAAA,CAAiBC,GACpBC,KAAKD,cAAgBA,CACzB,CAEOE,QAAAA,GACH,OAAOD,KAAKE,OAChB,CAfAC,WAAAA,CAAYC,GACRC,MAAM,sCAAsCD,EAAQE,2BAA2BF,EAAQG,WAR3FC,EAAOD,KAAAA,cAAP,GACAC,EAAOF,KAAAA,cAAP,GACAE,EAAAR,KAAOS,qCAAP,GAGAD,EAAAR,KAAOD,qBAAP,GAKIC,KAAKU,KAAO,eACZV,KAAKM,OAASF,EAAQE,OACtBN,KAAKO,OAASH,EAAQG,OACtBP,KAAKS,8BAAgCL,EAAQK,6BACjD"}
@@ -1,2 +1,2 @@
1
- import{CTP_IFRAME_NAME as e,createCheckoutPayloadBasedOnScheme as t,createShopperCardsList as i}from"./utils.js";import o from"./sdks/SrciError.js";import{SchemeNames as s}from"./sdks/utils.js";import r from"../../../../utils/uuid.js";import n from"../../../../core/Errors/AdyenCheckoutError.js";import{isRejected as a,isFulfilled as d}from"../../../../utils/promise-util.js";import c from"../errors/TimeoutError.js";import{executeWithTimeout as l}from"./execute-with-timeout.js";function h(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function m(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},o=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(i).filter((function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable})))),o.forEach((function(t){h(e,t,i[t])}))}return e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t}(Object(t)).forEach((function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))})),e}var p;!function(e){e.Idle="Idle",e.Loading="Loading",e.ShopperIdentified="ShopperIdentified",e.OneTimePassword="OneTimePassword",e.Ready="Ready",e.Login="Login",e.NotAvailable="NotAvailable"}(p||(p={}));class S{get shopperAccountFound(){return["Ready","ShopperIdentified"].includes(this.state)}get schemes(){return this.sdkLoader.schemes}updateStoreCookiesConsent(e){this.storeCookies=e}async initialize(){this.setState("Loading");try{this.sdks=await this.sdkLoader.load(this.environment),await this.initiateSdks();const{recognized:e=!1,idTokens:t=null}=await this.verifyIfShopperIsRecognized();if(e)return await this.getShopperProfile(t),void this.setState("Ready");if(!this.shopperIdentity)return void this.setState("NotAvailable");const{isEnrolled:i}=await this.verifyIfShopperIsEnrolled(this.shopperIdentity);if(i)return void this.setState("ShopperIdentified");this.setState("NotAvailable")}catch(e){e instanceof o&&"REQUEST_TIMEOUT"===(null==e?void 0:e.reason)||e instanceof c?this.handleTimeout(e):e instanceof o?console.warn(`Error at ClickToPayService # init: ${e.toString()}`):console.warn(e),this.setState("NotAvailable")}}subscribeOnStateChange(e){this.stateSubscriber=e}async startIdentityValidation(){if(!this.validationSchemeSdk)throw Error("startIdentityValidation: No ValidationSDK set for the validation process");try{const{maskedValidationChannel:e}=await this.validationSchemeSdk.initiateIdentityValidation();this.identityValidationData={maskedShopperContact:e.replace(/\*/g,"•"),selectedNetwork:s[this.validationSchemeSdk.schemeName]},this.setState("OneTimePassword")}catch(e){throw this.validationSchemeSdk=null,e}}async finishIdentityValidation(e){if(!this.validationSchemeSdk)throw Error("finishIdentityValidation: No ValidationSDK set for the validation process");const t=await this.validationSchemeSdk.completeIdentityValidation(e);await this.getShopperProfile([t.idToken]),this.setState("Ready"),this.validationSchemeSdk=null}async checkout(i){if(!i)throw Error("ClickToPayService # checkout: Missing card data");const o=this.sdks.find((e=>e.schemeName===i.scheme)),s=await o.checkout(m({srcDigitalCardId:i.srcDigitalCardId,srcCorrelationId:i.srcCorrelationId},i.isDcfPopupEmbedded&&{windowRef:window.frames[e]},this.storeCookies&&{complianceSettings:{complianceResources:[{complianceType:"REMEMBER_ME",uri:""}]}}));if("COMPLETE"!==s.dcfActionCode)throw new n("ERROR",`Checkout through Scheme DCF did not complete. DCF Action code received: ${s.dcfActionCode}`);return t(i,s,this.environment)}async logout(){if(!this.sdks)throw new n("ERROR","ClickToPayService is not initialized");try{const e=this.sdks.map((e=>e.unbindAppInstance()));await Promise.all(e)}catch(e){e instanceof o?console.warn(`Error at ClickToPayService # logout: ${e.toString()}`):console.warn(e)}this.shopperCards=null,this.identityValidationData=null,this.validationSchemeSdk=null,this.setState("Login")}verifyIfShopperIsEnrolled(e){const{shopperEmail:t}=e;return new Promise(((e,i)=>{const o=this.sdks.map((o=>l((()=>o.identityLookup({identityValue:t,type:"email"})),5e3,new c({source:"identityLookup",scheme:o.schemeName,isTimeoutTriggeredBySchemeSdk:!1})).then((t=>{t.consumerPresent&&!this.validationSchemeSdk&&(this.setSdkForPerformingShopperIdentityValidation(o),e({isEnrolled:!0}))})).catch((e=>{i(e)}))));Promise.allSettled(o).then((()=>{e({isEnrolled:!1})}))}))}setState(e){var t;this.state=e,null===(t=this.stateSubscriber)||void 0===t||t.call(this,this.state)}setSdkForPerformingShopperIdentityValidation(e){this.validationSchemeSdk=e}handleTimeout(e){var t;const i=e instanceof o?new c({source:e.source,scheme:e.scheme,isTimeoutTriggeredBySchemeSdk:!0}):e;var s,r,n,a,d,l;"visa"===i.scheme&&(i.setCorrelationId(null===(s=window.VISA_SDK)||void 0===s?void 0:s.correlationId),(null===(r=window.VISA_SDK)||void 0===r?void 0:r.correlationId)?null===(a=window.VISA_SDK)||void 0===a||null===(n=a.buildClientProfile)||void 0===n||n.call(a):null===(l=window.VISA_SDK)||void 0===l||null===(d=l.buildClientProfile)||void 0===d||d.call(l,this.schemesConfig.visa.srciDpaId));null===(t=this.onTimeout)||void 0===t||t.call(this,i)}async getShopperProfile(e){return new Promise(((t,o)=>{const s=this.sdks.map((t=>t.getSrcProfile(e)));Promise.allSettled(s).then((e=>{e.every(a)&&o(e[0].reason);const s=e.map(((e,t)=>d(e)&&u(m({},e.value),{scheme:this.sdks[t].schemeName}))).filter((e=>!!e));this.shopperCards=i(s),t()}))}))}verifyIfShopperIsRecognized(){return new Promise(((e,t)=>{const i=this.sdks.map((i=>l((()=>i.isRecognized()),5e3,new c({source:"isRecognized",scheme:i.schemeName,isTimeoutTriggeredBySchemeSdk:!1})).then((t=>{t.recognized&&e(t)})).catch((e=>{t(e)}))));Promise.allSettled(i).then((()=>{e({recognized:!1})}))}))}initiateSdks(){const e=this.sdks.map((e=>{const t=this.schemesConfig[e.schemeName];return l((()=>e.init(t,this.srciTransactionId)),5e3,new c({source:"init",scheme:e.schemeName,isTimeoutTriggeredBySchemeSdk:!1}))}));return Promise.all(e)}constructor(e,t,i,o,s){h(this,"sdkLoader",void 0),h(this,"schemesConfig",void 0),h(this,"shopperIdentity",void 0),h(this,"environment",void 0),h(this,"onTimeout",void 0),h(this,"srciTransactionId",r()),h(this,"sdks",void 0),h(this,"validationSchemeSdk",null),h(this,"stateSubscriber",void 0),h(this,"state","Idle"),h(this,"shopperCards",null),h(this,"identityValidationData",null),h(this,"storeCookies",!1),this.sdkLoader=t,this.schemesConfig=e,this.shopperIdentity=o,this.environment=i,this.onTimeout=s}}export{p as CtpState,S as default};
1
+ import{CTP_IFRAME_NAME as e,createCheckoutPayloadBasedOnScheme as t,createShopperCardsList as i}from"./utils.js";import o from"./sdks/SrciError.js";import{SchemeNames as s}from"./sdks/utils.js";import r from"../../../../utils/uuid.js";import n from"../../../../core/Errors/AdyenCheckoutError.js";import{isRejected as a,isFulfilled as d}from"../../../../utils/promise-util.js";import c from"../errors/TimeoutError.js";import{executeWithTimeout as l}from"./execute-with-timeout.js";function h(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function m(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{},o=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(i).filter((function(e){return Object.getOwnPropertyDescriptor(i,e).enumerable})))),o.forEach((function(t){h(e,t,i[t])}))}return e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t.push.apply(t,i)}return t}(Object(t)).forEach((function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(t,i))})),e}var p=function(e){return e.Idle="Idle",e.Loading="Loading",e.ShopperIdentified="ShopperIdentified",e.OneTimePassword="OneTimePassword",e.Ready="Ready",e.Login="Login",e.NotAvailable="NotAvailable",e}({});class S{get shopperAccountFound(){return["Ready","ShopperIdentified"].includes(this.state)}get schemes(){return this.sdkLoader.schemes}updateStoreCookiesConsent(e){this.storeCookies=e}async initialize(){this.setState("Loading");try{this.sdks=await this.sdkLoader.load(this.environment),await this.initiateSdks();const{recognized:e=!1,idTokens:t=null}=await this.verifyIfShopperIsRecognized();if(e)return await this.getShopperProfile(t),void this.setState("Ready");if(!this.shopperIdentity)return void this.setState("NotAvailable");const{isEnrolled:i}=await this.verifyIfShopperIsEnrolled(this.shopperIdentity);if(i)return void this.setState("ShopperIdentified");this.setState("NotAvailable")}catch(e){e instanceof o&&"REQUEST_TIMEOUT"===(null==e?void 0:e.reason)||e instanceof c?this.handleTimeout(e):e instanceof o?console.warn(`Error at ClickToPayService # init: ${e.toString()}`):console.warn(e),this.setState("NotAvailable")}}subscribeOnStateChange(e){this.stateSubscriber=e}async startIdentityValidation(){if(!this.validationSchemeSdk)throw Error("startIdentityValidation: No ValidationSDK set for the validation process");try{const{maskedValidationChannel:e}=await this.validationSchemeSdk.initiateIdentityValidation();this.identityValidationData={maskedShopperContact:e.replace(/\*/g,"•"),selectedNetwork:s[this.validationSchemeSdk.schemeName]},this.setState("OneTimePassword")}catch(e){throw this.validationSchemeSdk=null,e}}async finishIdentityValidation(e){if(!this.validationSchemeSdk)throw Error("finishIdentityValidation: No ValidationSDK set for the validation process");const t=await this.validationSchemeSdk.completeIdentityValidation(e);await this.getShopperProfile([t.idToken]),this.setState("Ready"),this.validationSchemeSdk=null}async checkout(i){if(!i)throw Error("ClickToPayService # checkout: Missing card data");const o=this.sdks.find((e=>e.schemeName===i.scheme)),s=await o.checkout(m({srcDigitalCardId:i.srcDigitalCardId,srcCorrelationId:i.srcCorrelationId},i.isDcfPopupEmbedded&&{windowRef:window.frames[e]},this.storeCookies&&{complianceSettings:{complianceResources:[{complianceType:"REMEMBER_ME",uri:""}]}}));if("COMPLETE"!==s.dcfActionCode)throw new n("ERROR",`Checkout through Scheme DCF did not complete. DCF Action code received: ${s.dcfActionCode}`);return t(i,s,this.environment)}async logout(){if(!this.sdks)throw new n("ERROR","ClickToPayService is not initialized");try{const e=this.sdks.map((e=>e.unbindAppInstance()));await Promise.all(e)}catch(e){e instanceof o?console.warn(`Error at ClickToPayService # logout: ${e.toString()}`):console.warn(e)}this.shopperCards=null,this.identityValidationData=null,this.validationSchemeSdk=null,this.setState("Login")}verifyIfShopperIsEnrolled(e){const{shopperEmail:t}=e;return new Promise(((e,i)=>{const o=this.sdks.map((o=>l((()=>o.identityLookup({identityValue:t,type:"email"})),5e3,new c({source:"identityLookup",scheme:o.schemeName,isTimeoutTriggeredBySchemeSdk:!1})).then((t=>{t.consumerPresent&&!this.validationSchemeSdk&&(this.setSdkForPerformingShopperIdentityValidation(o),e({isEnrolled:!0}))})).catch((e=>{i(e)}))));Promise.allSettled(o).then((()=>{e({isEnrolled:!1})}))}))}setState(e){var t;this.state=e,null===(t=this.stateSubscriber)||void 0===t||t.call(this,this.state)}setSdkForPerformingShopperIdentityValidation(e){this.validationSchemeSdk=e}handleTimeout(e){var t;const i=e instanceof o?new c({source:e.source,scheme:e.scheme,isTimeoutTriggeredBySchemeSdk:!0}):e;var s,r,n,a,d,l;"visa"===i.scheme&&(i.setCorrelationId(null===(s=window.VISA_SDK)||void 0===s?void 0:s.correlationId),(null===(r=window.VISA_SDK)||void 0===r?void 0:r.correlationId)?null===(a=window.VISA_SDK)||void 0===a||null===(n=a.buildClientProfile)||void 0===n||n.call(a):null===(l=window.VISA_SDK)||void 0===l||null===(d=l.buildClientProfile)||void 0===d||d.call(l,this.schemesConfig.visa.srciDpaId));null===(t=this.onTimeout)||void 0===t||t.call(this,i)}async getShopperProfile(e){return new Promise(((t,o)=>{const s=this.sdks.map((t=>t.getSrcProfile(e)));Promise.allSettled(s).then((e=>{e.every(a)&&o(e[0].reason);const s=e.map(((e,t)=>d(e)&&u(m({},e.value),{scheme:this.sdks[t].schemeName}))).filter((e=>!!e));this.shopperCards=i(s),t()}))}))}verifyIfShopperIsRecognized(){return new Promise(((e,t)=>{const i=this.sdks.map((i=>l((()=>i.isRecognized()),5e3,new c({source:"isRecognized",scheme:i.schemeName,isTimeoutTriggeredBySchemeSdk:!1})).then((t=>{t.recognized&&e(t)})).catch((e=>{t(e)}))));Promise.allSettled(i).then((()=>{e({recognized:!1})}))}))}initiateSdks(){const e=this.sdks.map((e=>{const t=this.schemesConfig[e.schemeName];return l((()=>e.init(t,this.srciTransactionId)),5e3,new c({source:"init",scheme:e.schemeName,isTimeoutTriggeredBySchemeSdk:!1}))}));return Promise.all(e)}constructor(e,t,i,o,s){h(this,"sdkLoader",void 0),h(this,"schemesConfig",void 0),h(this,"shopperIdentity",void 0),h(this,"environment",void 0),h(this,"onTimeout",void 0),h(this,"srciTransactionId",r()),h(this,"sdks",void 0),h(this,"validationSchemeSdk",null),h(this,"stateSubscriber",void 0),h(this,"state","Idle"),h(this,"shopperCards",null),h(this,"identityValidationData",null),h(this,"storeCookies",!1),this.sdkLoader=t,this.schemesConfig=e,this.shopperIdentity=o,this.environment=i,this.onTimeout=s}}export{p as CtpState,S as default};
2
2
  //# sourceMappingURL=ClickToPayService.js.map