@adyen/adyen-web 6.10.0 → 6.12.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 (304) hide show
  1. package/dist/cjs/adyen.css +3 -3
  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 +89 -99
  6. package/dist/es/adyen.css +3 -3
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ANCV/components/ANCVAwait/config.js +1 -1
  9. package/dist/es/components/ANCV/components/ANCVAwait/config.js.map +1 -1
  10. package/dist/es/components/Ach/Ach.js +1 -1
  11. package/dist/es/components/Ach/Ach.js.map +1 -1
  12. package/dist/es/components/Ach/components/AccountTypeSelector.js +2 -0
  13. package/dist/es/components/Ach/components/AccountTypeSelector.js.map +1 -0
  14. package/dist/es/components/Ach/components/AchComponent.js +2 -0
  15. package/dist/es/components/Ach/components/AchComponent.js.map +1 -0
  16. package/dist/es/components/Ach/components/useSRPanelForACHErrors.js +2 -0
  17. package/dist/es/components/Ach/components/useSRPanelForACHErrors.js.map +1 -0
  18. package/dist/es/components/Ach/components/validate.js +2 -0
  19. package/dist/es/components/Ach/components/validate.js.map +1 -0
  20. package/dist/es/components/Ach/defaultProps.js +2 -0
  21. package/dist/es/components/Ach/defaultProps.js.map +1 -0
  22. package/dist/es/components/AmazonPay/utils.js +1 -1
  23. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  24. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  25. package/dist/es/components/ApplePay/defaultProps.js +1 -1
  26. package/dist/es/components/ApplePay/defaultProps.js.map +1 -1
  27. package/dist/es/components/Atome/Atome.js +1 -1
  28. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  29. package/dist/es/components/BcmcMobile/BcmcMobile.js +1 -1
  30. package/dist/es/components/Boleto/components/BoletoInput/validate.js +1 -1
  31. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  32. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  33. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  34. package/dist/es/components/Card/components/CardInput/components/CVC.js +1 -1
  35. package/dist/es/components/Card/components/CardInput/components/CVC.js.map +1 -1
  36. package/dist/es/components/Card/components/CardInput/components/CVCHint.js +1 -1
  37. package/dist/es/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  38. package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
  39. package/dist/es/components/Card/components/CardInput/components/CardNumber.js +1 -1
  40. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  41. package/dist/es/components/Card/components/CardInput/components/DataSfSpan.js +1 -1
  42. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  43. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  44. package/dist/es/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  45. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  46. package/dist/es/components/Card/components/CardInput/validate.js +1 -1
  47. package/dist/es/components/Donation/components/DonationComponent.js +1 -1
  48. package/dist/es/components/DuitNow/DuitNow.js +1 -1
  49. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  50. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  51. package/dist/es/components/PayNow/PayNow.js +1 -1
  52. package/dist/es/components/PayPal/constants.js +1 -1
  53. package/dist/es/components/PayPal/constants.js.map +1 -1
  54. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  55. package/dist/es/components/Pix/PixInput/PixInput.js.map +1 -1
  56. package/dist/es/components/PromptPay/PromptPay.js +1 -1
  57. package/dist/es/components/Redirect/Redirect.js +1 -1
  58. package/dist/es/components/Riverty/Riverty.js +1 -1
  59. package/dist/es/components/Riverty/config.js +1 -1
  60. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  61. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  62. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  63. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  64. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  65. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  66. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js +1 -1
  67. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  68. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  69. package/dist/es/components/WeChat/WeChat.js +1 -1
  70. package/dist/es/components/internal/Address/Address.js +1 -1
  71. package/dist/es/components/internal/Address/validate.formats.js.map +1 -1
  72. package/dist/es/components/internal/Countdown/utils.js.map +1 -1
  73. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
  74. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  75. package/dist/es/components/internal/FormFields/InputDate/utils.js.map +1 -1
  76. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  77. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  78. package/dist/es/components/internal/IbanInput/validate.js +1 -1
  79. package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
  80. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  81. package/dist/es/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
  82. package/dist/es/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js.map +1 -1
  83. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  84. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  85. package/dist/es/components/internal/PhoneInput/validate.js +1 -1
  86. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  87. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  88. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  89. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  90. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  91. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  92. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleTab.js +1 -1
  93. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleTab.js.map +1 -1
  94. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  95. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/iframes/postMessageValidation.js.map +1 -1
  96. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/utils.js.map +1 -1
  97. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  98. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  99. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  100. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  101. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js +1 -1
  102. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
  103. package/dist/es/components/internal/SecuredFields/lib/utilities/addContextTranslations.js +1 -1
  104. package/dist/es/components/internal/StoreDetails/StoreDetails.js +1 -1
  105. package/dist/es/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  106. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  107. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  108. package/dist/es/core/Analytics/Analytics.js +1 -1
  109. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  110. package/dist/es/core/Analytics/constants.js +1 -1
  111. package/dist/es/core/Analytics/constants.js.map +1 -1
  112. package/dist/es/core/Analytics/utils.js +1 -1
  113. package/dist/es/core/Errors/constants.js +1 -1
  114. package/dist/es/core/Errors/constants.js.map +1 -1
  115. package/dist/es/core/Errors/utils.js +1 -1
  116. package/dist/es/core/Errors/utils.js.map +1 -1
  117. package/dist/es/core/RiskModule/components/DeviceFingerprint/utils.js +1 -1
  118. package/dist/es/core/RiskModule/constants.js +1 -1
  119. package/dist/es/core/RiskModule/constants.js.map +1 -1
  120. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  121. package/dist/es/core/Services/http.js +1 -1
  122. package/dist/es/core/core.js +1 -1
  123. package/dist/es/external/preact/dist/preact.js +1 -1
  124. package/dist/es/external/preact/dist/preact.js.map +1 -1
  125. package/dist/es/external/preact/hooks/dist/hooks.js.map +1 -1
  126. package/dist/es/index.d.ts +89 -99
  127. package/dist/es/index.js +1 -1
  128. package/dist/es/utils/Validator/defaultRules.js +1 -1
  129. package/dist/es/utils/base64.js.map +1 -1
  130. package/dist/es/utils/browserInfo.js +1 -1
  131. package/dist/es/utils/browserInfo.js.map +1 -1
  132. package/dist/es/utils/detectInIframe.js +2 -0
  133. package/dist/es/utils/detectInIframe.js.map +1 -0
  134. package/dist/es/utils/setFocus.js +1 -1
  135. package/dist/es/utils/setFocus.js.map +1 -1
  136. package/dist/es/utils/textUtils.js +1 -1
  137. package/dist/es/utils/textUtils.js.map +1 -1
  138. package/dist/es/utils/useForm/useForm.js +1 -1
  139. package/dist/es-legacy/adyen.css +3 -3
  140. package/dist/es-legacy/adyen.css.map +1 -1
  141. package/dist/es-legacy/components/ANCV/components/ANCVAwait/config.js +1 -1
  142. package/dist/es-legacy/components/ANCV/components/ANCVAwait/config.js.map +1 -1
  143. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  144. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  145. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js +2 -0
  146. package/dist/es-legacy/components/Ach/components/AccountTypeSelector.js.map +1 -0
  147. package/dist/es-legacy/components/Ach/components/AchComponent.js +2 -0
  148. package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -0
  149. package/dist/es-legacy/components/Ach/components/useSRPanelForACHErrors.js +2 -0
  150. package/dist/es-legacy/components/Ach/components/useSRPanelForACHErrors.js.map +1 -0
  151. package/dist/es-legacy/components/Ach/components/validate.js +2 -0
  152. package/dist/es-legacy/components/Ach/components/validate.js.map +1 -0
  153. package/dist/es-legacy/components/Ach/defaultProps.js +2 -0
  154. package/dist/es-legacy/components/Ach/defaultProps.js.map +1 -0
  155. package/dist/es-legacy/components/AmazonPay/utils.js +1 -1
  156. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  157. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  158. package/dist/es-legacy/components/ApplePay/defaultProps.js +1 -1
  159. package/dist/es-legacy/components/ApplePay/defaultProps.js.map +1 -1
  160. package/dist/es-legacy/components/Atome/Atome.js +1 -1
  161. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  162. package/dist/es-legacy/components/BcmcMobile/BcmcMobile.js +1 -1
  163. package/dist/es-legacy/components/Boleto/components/BoletoInput/validate.js +1 -1
  164. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  165. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  166. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  167. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js +1 -1
  168. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js.map +1 -1
  169. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js +1 -1
  170. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  171. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
  172. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js +1 -1
  173. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  174. package/dist/es-legacy/components/Card/components/CardInput/components/DataSfSpan.js +1 -1
  175. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  176. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  177. package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +1 -1
  178. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  179. package/dist/es-legacy/components/Card/components/CardInput/validate.js +1 -1
  180. package/dist/es-legacy/components/Donation/components/DonationComponent.js +1 -1
  181. package/dist/es-legacy/components/DuitNow/DuitNow.js +1 -1
  182. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  183. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  184. package/dist/es-legacy/components/PayNow/PayNow.js +1 -1
  185. package/dist/es-legacy/components/PayPal/constants.js +1 -1
  186. package/dist/es-legacy/components/PayPal/constants.js.map +1 -1
  187. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  188. package/dist/es-legacy/components/Pix/PixInput/PixInput.js.map +1 -1
  189. package/dist/es-legacy/components/PromptPay/PromptPay.js +1 -1
  190. package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
  191. package/dist/es-legacy/components/Riverty/Riverty.js +1 -1
  192. package/dist/es-legacy/components/Riverty/config.js +1 -1
  193. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  194. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  195. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  196. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  197. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  198. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  199. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js +1 -1
  200. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  201. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  202. package/dist/es-legacy/components/WeChat/WeChat.js +1 -1
  203. package/dist/es-legacy/components/internal/Address/Address.js +1 -1
  204. package/dist/es-legacy/components/internal/Address/validate.formats.js.map +1 -1
  205. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  206. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  207. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  208. package/dist/es-legacy/components/internal/Countdown/utils.js.map +1 -1
  209. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
  210. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  211. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  212. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  213. package/dist/es-legacy/components/internal/FormFields/InputDate/utils.js.map +1 -1
  214. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  215. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  216. package/dist/es-legacy/components/internal/IbanInput/validate.js +1 -1
  217. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
  218. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  219. package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
  220. package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js.map +1 -1
  221. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  222. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  223. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  224. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  225. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  226. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  227. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  228. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  229. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleTab.js +1 -1
  230. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleTab.js.map +1 -1
  231. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  232. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/iframes/postMessageValidation.js.map +1 -1
  233. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/utils.js.map +1 -1
  234. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js +1 -1
  235. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/userAgent.js.map +1 -1
  236. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  237. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  238. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js +1 -1
  239. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
  240. package/dist/es-legacy/components/internal/SecuredFields/lib/utilities/addContextTranslations.js +1 -1
  241. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js +1 -1
  242. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  243. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  244. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  245. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  246. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  247. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  248. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  249. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  250. package/dist/es-legacy/core/Errors/constants.js +1 -1
  251. package/dist/es-legacy/core/Errors/constants.js.map +1 -1
  252. package/dist/es-legacy/core/Errors/utils.js +1 -1
  253. package/dist/es-legacy/core/Errors/utils.js.map +1 -1
  254. package/dist/es-legacy/core/RiskModule/RiskModule.js +1 -1
  255. package/dist/es-legacy/core/RiskModule/components/DeviceFingerprint/utils.js +1 -1
  256. package/dist/es-legacy/core/RiskModule/constants.js +1 -1
  257. package/dist/es-legacy/core/RiskModule/constants.js.map +1 -1
  258. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  259. package/dist/es-legacy/core/core.js +1 -1
  260. package/dist/es-legacy/external/preact/dist/preact.js +1 -1
  261. package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
  262. package/dist/es-legacy/external/preact/hooks/dist/hooks.js.map +1 -1
  263. package/dist/es-legacy/index.js +1 -1
  264. package/dist/es-legacy/utils/Validator/defaultRules.js +1 -1
  265. package/dist/es-legacy/utils/base64.js.map +1 -1
  266. package/dist/es-legacy/utils/browserInfo.js +1 -1
  267. package/dist/es-legacy/utils/browserInfo.js.map +1 -1
  268. package/dist/es-legacy/utils/detectInIframe.js +2 -0
  269. package/dist/es-legacy/utils/detectInIframe.js.map +1 -0
  270. package/dist/es-legacy/utils/setFocus.js +1 -1
  271. package/dist/es-legacy/utils/setFocus.js.map +1 -1
  272. package/dist/es-legacy/utils/textUtils.js +1 -1
  273. package/dist/es-legacy/utils/textUtils.js.map +1 -1
  274. package/dist/es-legacy/utils/useForm/useForm.js +1 -1
  275. package/package.json +22 -21
  276. package/styles/adyen.css +3 -3
  277. package/dist/es/components/Ach/components/AchInput/AchInput.js +0 -2
  278. package/dist/es/components/Ach/components/AchInput/AchInput.js.map +0 -1
  279. package/dist/es/components/Ach/components/AchInput/components/AchSFInput.js +0 -2
  280. package/dist/es/components/Ach/components/AchInput/components/AchSFInput.js.map +0 -1
  281. package/dist/es/components/Ach/components/AchInput/components/AchSecuredFields.js +0 -2
  282. package/dist/es/components/Ach/components/AchInput/components/AchSecuredFields.js.map +0 -1
  283. package/dist/es/components/Ach/components/AchInput/defaultProps.js +0 -2
  284. package/dist/es/components/Ach/components/AchInput/defaultProps.js.map +0 -1
  285. package/dist/es/components/Ach/components/AchInput/defaultStyles.js +0 -2
  286. package/dist/es/components/Ach/components/AchInput/defaultStyles.js.map +0 -1
  287. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioACH.js +0 -2
  288. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioACH.js.map +0 -1
  289. package/dist/es/utils/inIframe.js +0 -2
  290. package/dist/es/utils/inIframe.js.map +0 -1
  291. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js +0 -2
  292. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js.map +0 -1
  293. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSFInput.js +0 -2
  294. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSFInput.js.map +0 -1
  295. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSecuredFields.js +0 -2
  296. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSecuredFields.js.map +0 -1
  297. package/dist/es-legacy/components/Ach/components/AchInput/defaultProps.js +0 -2
  298. package/dist/es-legacy/components/Ach/components/AchInput/defaultProps.js.map +0 -1
  299. package/dist/es-legacy/components/Ach/components/AchInput/defaultStyles.js +0 -2
  300. package/dist/es-legacy/components/Ach/components/AchInput/defaultStyles.js.map +0 -1
  301. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioACH.js +0 -2
  302. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioACH.js.map +0 -1
  303. package/dist/es-legacy/utils/inIframe.js +0 -2
  304. package/dist/es-legacy/utils/inIframe.js.map +0 -1
@@ -1,2 +1,2 @@
1
- const T=15,e=6e4,o=1e4;var E={COUNTDOWN_MINUTES:15,THROTTLE_TIME:6e4,THROTTLE_INTERVAL:1e4,showCountdownTimer:!1};export{T as COUNTDOWN_MINUTES,o as THROTTLE_INTERVAL,e as THROTTLE_TIME,E as default};
1
+ const T=6e4,e=1e4;var o={THROTTLE_TIME:6e4,THROTTLE_INTERVAL:1e4,showCountdownTimer:!1};export{e as THROTTLE_INTERVAL,T as THROTTLE_TIME,o as default};
2
2
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../../../../src/components/ANCV/components/ANCVAwait/config.ts"],"sourcesContent":["export const COUNTDOWN_MINUTES = 15; // min\nexport const THROTTLE_TIME = 60000; // ms\nexport const THROTTLE_INTERVAL = 10000; // ms\n\nexport default {\n COUNTDOWN_MINUTES,\n THROTTLE_TIME,\n THROTTLE_INTERVAL,\n showCountdownTimer: false\n};\n"],"names":["COUNTDOWN_MINUTES","THROTTLE_TIME","THROTTLE_INTERVAL","config","showCountdownTimer"],"mappings":"AAAaA,MAAAA,EAAoB,GACpBC,EAAgB,IAChBC,EAAoB,IAEjC,IAAeC,EAAA,CACXH,kBAL6B,GAM7BC,cALyB,IAMzBC,kBAL6B,IAM7BE,oBAAoB"}
1
+ {"version":3,"file":"config.js","sources":["../../../../../../src/components/ANCV/components/ANCVAwait/config.ts"],"sourcesContent":["export const COUNTDOWN_MINUTES = 15; // min\nexport const THROTTLE_TIME = 60000; // ms\nexport const THROTTLE_INTERVAL = 10000; // ms\n\nexport default {\n COUNTDOWN_MINUTES,\n THROTTLE_TIME,\n THROTTLE_INTERVAL,\n showCountdownTimer: false\n};\n"],"names":["THROTTLE_TIME","THROTTLE_INTERVAL","config","showCountdownTimer"],"mappings":"AACaA,MAAAA,EAAgB,IAChBC,EAAoB,IAEjC,IAAeC,EAAA,CAEXF,cALyB,IAMzBC,kBAL6B,IAM7BE,oBAAoB"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/AchInput/AchInput.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import s from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as n}from"../tx-variants.js";function i(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function a(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter((function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable})))),r.forEach((function(e){i(t,e,o[e])}))}return t}function p(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 o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach((function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))})),t}class h extends e{formatProps(t){var e;return p(a({},t),{holderNameRequired:null!==(e=t.hasHolderName)&&void 0!==e?e:t.holderNameRequired})}formatData(){var t;const e=!!this.props.storedPaymentMethodId,o=a(p(a({type:h.type},this.state.data),{ownerName:null===(t=this.state.data)||void 0===t?void 0:t.holderName}),e&&{storedPaymentMethodId:this.props.storedPaymentMethodId});return delete o.holderName,a({paymentMethod:o},this.state.storePaymentMethod&&{storePaymentMethod:this.state.storePaymentMethod})}updateStyles(t){return this.componentRef&&this.componentRef.updateStyles&&this.componentRef.updateStyles(t),this}setFocusOn(t){return this.componentRef&&this.componentRef.setFocusOn&&this.componentRef.setFocusOn(t),this}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.bankAccountNumber?`•••• ${this.props.bankAccountNumber.slice(-4)}`:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.i18n.get("ach.savedBankAccount"):""}render(){return t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},this.props.storedPaymentMethodId?t(s,{showPayButton:this.props.showPayButton,name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}}):t(o,p(a({setComponentRef:this.setComponentRef,handleKeyPress:this.handleKeyPress},this.props),{onChange:this.setState,onSubmit:this.submit,payButton:this.payButton,resources:this.resources})))}}i(h,"type",n.ach);export{h as AchElement,h as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as o}from"../../core/Context/CoreProvider.js";import r from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as s}from"../tx-variants.js";import n from"./components/AchComponent.js";import a from"./defaultProps.js";import i from"../../core/Errors/SRPanelProvider.js";function p(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class d extends e{formatData(){var t,e;return!!this.props.storedPaymentMethodId?{paymentMethod:{type:d.type,storedPaymentMethodId:this.props.storedPaymentMethodId}}:function(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter((function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable})))),r.forEach((function(e){p(t,e,o[e])}))}return t}({paymentMethod:{type:d.type,ownerName:this.state.data.ownerName,accountHolderType:null===(t=this.state.data.selectedAccountType)||void 0===t?void 0:t.split(".")[0],bankAccountType:null===(e=this.state.data.selectedAccountType)||void 0===e?void 0:e.split(".")[1],bankLocationId:this.state.data.routingNumber,bankAccountNumber:this.state.data.accountNumber}},this.state.storePaymentMethod&&{storePaymentMethod:this.state.storePaymentMethod})}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.bankAccountNumber?`•••• ${this.props.bankAccountNumber.slice(-4)}`:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.i18n.get("ach.savedBankAccount"):""}render(){return t(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},this.props.storedPaymentMethodId?t(r,{showPayButton:this.props.showPayButton,name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}}):t(i,{srPanel:this.props.modules.srPanel},t(n,{onChange:this.setState,payButton:this.payButton,showPayButton:this.props.showPayButton,hasHolderName:this.props.hasHolderName,placeholders:this.props.placeholders,setComponentRef:this.setComponentRef,enableStoreDetails:this.props.enableStoreDetails})))}}p(d,"type",s.ach),p(d,"defaultProps",a);export{d as AchElement,d as default};
2
2
  //# sourceMappingURL=Ach.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Ach.js","sources":["../../../../src/components/Ach/Ach.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport AchInput from './components/AchInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport RedirectButton from '../internal/RedirectButton';\nimport { AchConfiguration } from './types';\nimport { TxVariants } from '../tx-variants';\n\nexport class AchElement extends UIElement<AchConfiguration> {\n public static type = TxVariants.ach;\n\n formatProps(props: AchConfiguration) {\n return {\n ...props,\n // Fix mismatch between passed hasHolderName & holderNameRequired props\n // (when holderNameRequired = true, but hasHolderName = false - which means component will never be valid)\n holderNameRequired: props.hasHolderName ?? props.holderNameRequired\n // TODO - if it turns out that hasHolderName & holderNameRequired are not configurable by the merchant\n // then we will need to force these properties to true\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n // Map holderName to ownerName\n const paymentMethod = {\n type: AchElement.type,\n ...this.state.data,\n ownerName: this.state.data?.holderName,\n ...(recurringPayment && { storedPaymentMethodId: this.props.storedPaymentMethodId })\n };\n\n delete paymentMethod.holderName;\n\n return {\n paymentMethod,\n ...(this.state.storePaymentMethod && { storePaymentMethod: this.state.storePaymentMethod })\n };\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef && this.componentRef.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(fieldName) {\n if (this.componentRef && this.componentRef.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n get isValid() {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.bankAccountNumber) {\n // get lastFour from bankAccountNumber, value comes from storedPaymentMethods\n return `•••• ${this.props.bankAccountNumber.slice(-4)}`;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.i18n.get('ach.savedBankAccount') : '';\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n amount={this.props.amount}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <AchInput\n setComponentRef={this.setComponentRef}\n handleKeyPress={this.handleKeyPress}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n resources={this.resources}\n />\n )}\n </CoreProvider>\n );\n }\n}\n\nexport default AchElement;\n"],"names":["AchElement","UIElement","formatProps","props","_object_spread_props","holderNameRequired","hasHolderName","formatData","_this_state_data","recurringPayment","this","storedPaymentMethodId","paymentMethod","_object_spread","type","state","data","ownerName","holderName","storePaymentMethod","updateStyles","stylesObj","componentRef","setFocusOn","fieldName","isValid","displayName","bankAccountNumber","slice","name","additionalInfo","i18n","get","render","h","CoreProvider","loadingContext","resources","RedirectButton","showPayButton","amount","payButton","onSubmit","submit","ref","AchInput","setComponentRef","handleKeyPress","onChange","setState","_define_property","TxVariants","ach"],"mappings":"ipCAQO,MAAMA,UAAmBC,EAG5BC,WAAAA,CAAYC,GAKgBA,IAAAA,EAJxB,OAAOC,EACAD,EAAAA,CAAAA,EAAAA,GAAAA,CAGHE,2BAAoBF,EAAAA,EAAMG,qBAANH,IAAAA,EAAAA,EAAuBA,EAAME,oBAIzD,CAKAE,UAAAA,GAOmB,IAAAC,EANf,MAAMC,IAAqBC,KAAKP,MAAMQ,sBAGhCC,EAAgBC,EAAAT,EAAAS,EAAA,CAClBC,KAAMd,EAAWc,MACdJ,KAAKK,MAAMC,MAAI,CAClBC,UAA0B,QAAfT,EAAAE,KAAKK,MAAMC,YAAX,IAAAR,OAAA,EAAAA,EAAiBU,aACxBT,GAAoB,CAAEE,sBAAuBD,KAAKP,MAAMQ,wBAKhE,cAFOC,EAAcM,WAEdL,EAAA,CACHD,iBACIF,KAAKK,MAAMI,oBAAsB,CAAEA,mBAAoBT,KAAKK,MAAMI,oBAE9E,CAEAC,YAAAA,CAAaC,GAET,OADIX,KAAKY,cAAgBZ,KAAKY,aAAaF,cAAcV,KAAKY,aAAaF,aAAaC,GACjFX,IACX,CAEAa,UAAAA,CAAWC,GAEP,OADId,KAAKY,cAAgBZ,KAAKY,aAAaC,YAAYb,KAAKY,aAAaC,WAAWC,GAC7Ed,IACX,CAEA,WAAIe,GACA,QAAIf,KAAKP,MAAMQ,yBAIND,KAAKK,MAAMU,OACxB,CAEA,eAAIC,GACA,OAAIhB,KAAKP,MAAMQ,uBAAyBD,KAAKP,MAAMwB,kBAExC,QAAQjB,KAAKP,MAAMwB,kBAAkBC,OAAO,KAEhDlB,KAAKP,MAAM0B,IACtB,CAEA,kBAAIC,GACA,OAAOpB,KAAKP,MAAMQ,sBAAwBD,KAAKP,MAAM4B,KAAKC,IAAI,wBAA0B,EAC5F,CAEAC,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaJ,KAAMrB,KAAKP,MAAM4B,KAAMK,eAAgB1B,KAAKP,MAAMiC,eAAgBC,UAAW3B,KAAK2B,WAC3F3B,KAAKP,MAAMQ,sBACRuB,EAACI,EAAAA,CACGC,cAAe7B,KAAKP,MAAMoC,cAC1BV,KAAMnB,KAAKgB,YACXc,OAAQ9B,KAAKP,MAAMqC,OACnBC,UAAW/B,KAAK+B,UAChBC,SAAUhC,KAAKiC,OACfC,IAAKA,IACDlC,KAAKY,aAAesB,CAAAA,IAI5BV,EAACW,EAAAA,EAAAA,EAAAA,CACGC,gBAAiBpC,KAAKoC,gBACtBC,eAAgBrC,KAAKqC,gBACjBrC,KAAKP,OAAK,CACd6C,SAAUtC,KAAKuC,SACfP,SAAUhC,KAAKiC,OACfF,UAAW/B,KAAK+B,UAChBJ,UAAW3B,KAAK2B,aAKpC,EA5FAa,EADSlD,EACKc,OAAOqC,EAAWC"}
1
+ {"version":3,"file":"Ach.js","sources":["../../../../src/components/Ach/Ach.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport AchComponent from './components/AchComponent';\nimport defaultProps from './defaultProps';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\n\nimport type { AchConfiguration } from './types';\n\nexport class AchElement extends UIElement<AchConfiguration> {\n public static type = TxVariants.ach;\n\n protected static defaultProps = defaultProps;\n\n public override formatData() {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n if (recurringPayment) {\n return {\n paymentMethod: {\n type: AchElement.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: AchElement.type,\n ownerName: this.state.data.ownerName,\n accountHolderType: this.state.data.selectedAccountType?.split('.')[0],\n bankAccountType: this.state.data.selectedAccountType?.split('.')[1],\n bankLocationId: this.state.data.routingNumber,\n bankAccountNumber: this.state.data.accountNumber\n },\n ...(this.state.storePaymentMethod && { storePaymentMethod: this.state.storePaymentMethod })\n };\n }\n\n public override get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n public override get displayName(): string {\n if (this.props.storedPaymentMethodId && this.props.bankAccountNumber) {\n return `•••• ${this.props.bankAccountNumber.slice(-4)}`;\n }\n return this.props.name;\n }\n\n public override get additionalInfo(): string {\n return this.props.storedPaymentMethodId ? this.props.i18n.get('ach.savedBankAccount') : '';\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n amount={this.props.amount}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <AchComponent\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n hasHolderName={this.props.hasHolderName}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n enableStoreDetails={this.props.enableStoreDetails}\n />\n </SRPanelProvider>\n )}\n </CoreProvider>\n );\n }\n}\n\nexport default AchElement;\n"],"names":["AchElement","UIElement","formatData","_this_state_data_selectedAccountType","_this_state_data_selectedAccountType1","this","props","storedPaymentMethodId","paymentMethod","type","_object_spread","ownerName","state","data","accountHolderType","selectedAccountType","split","bankAccountType","bankLocationId","routingNumber","bankAccountNumber","accountNumber","storePaymentMethod","isValid","displayName","slice","name","additionalInfo","i18n","get","render","h","CoreProvider","loadingContext","resources","RedirectButton","showPayButton","amount","payButton","onSubmit","submit","ref","componentRef","SRPanelProvider","srPanel","modules","AchComponent","onChange","setState","hasHolderName","placeholders","setComponentRef","enableStoreDetails","_define_property","TxVariants","ach","defaultProps"],"mappings":"0iBAWO,MAAMA,UAAmBC,EAKZC,UAAAA,OAgBeC,EACFC,EAdzB,QAF2BC,KAAKC,MAAMC,sBAG3B,CACHC,cAAe,CACXC,KAAMT,EAAWS,KACjBF,sBAAuBF,KAAKC,MAAMC,8VAKvCG,CAAA,CACHF,cAAe,CACXC,KAAMT,EAAWS,KACjBE,UAAWN,KAAKO,MAAMC,KAAKF,UAC3BG,kBAAsD,QAAnCX,EAAAE,KAAKO,MAAMC,KAAKE,+BAAhBZ,SAAAA,EAAqCa,MAAM,KAAK,GACnEC,gBAAoD,QAAnCb,EAAAC,KAAKO,MAAMC,KAAKE,+BAAhBX,SAAAA,EAAqCY,MAAM,KAAK,GACjEE,eAAgBb,KAAKO,MAAMC,KAAKM,cAChCC,kBAAmBf,KAAKO,MAAMC,KAAKQ,gBAEnChB,KAAKO,MAAMU,oBAAsB,CAAEA,mBAAoBjB,KAAKO,MAAMU,oBAE9E,CAEA,WAAoBC,GAChB,QAAIlB,KAAKC,MAAMC,yBAINF,KAAKO,MAAMW,OACxB,CAEA,eAAoBC,GAChB,OAAInB,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMc,kBACxC,QAAQf,KAAKC,MAAMc,kBAAkBK,OAAW,KAEpDpB,KAAKC,MAAMoB,IACtB,CAEA,kBAAoBC,GAChB,OAAOtB,KAAKC,MAAMC,sBAAwBF,KAAKC,MAAMsB,KAAKC,IAAI,wBAA0B,EAC5F,CAEAC,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaJ,KAAMvB,KAAKC,MAAMsB,KAAMK,eAAgB5B,KAAKC,MAAM2B,eAAgBC,UAAW7B,KAAK6B,WAC3F7B,KAAKC,MAAMC,sBACRwB,EAACI,EAAAA,CACGC,cAAe/B,KAAKC,MAAM8B,cAC1BV,KAAMrB,KAAKmB,YACXa,OAAQhC,KAAKC,MAAM+B,OACnBC,UAAWjC,KAAKiC,UAChBC,SAAUlC,KAAKmC,OACfC,IAAKA,IACDpC,KAAKqC,aAAeD,CAAAA,IAI5BV,EAACY,EAAAA,CAAgBC,QAASvC,KAAKC,MAAMuC,QAAQD,SACzCb,EAACe,EAAAA,CACGC,SAAU1C,KAAK2C,SACfV,UAAWjC,KAAKiC,UAChBF,cAAe/B,KAAKC,MAAM8B,cAC1Ba,cAAe5C,KAAKC,MAAM2C,cAC1BC,aAAc7C,KAAKC,MAAM4C,aACzBC,gBAAiB9C,KAAK8C,gBACtBC,mBAAoB/C,KAAKC,MAAM8C,sBAMvD,EA7EAC,EADSrD,EACKS,OAAO6C,EAAWC,KAEhCF,EAHSrD,EAGQwD,eAAeA"}
@@ -0,0 +1,2 @@
1
+ import e from"../../internal/FormFields/Select/Select.js";import a from"../../internal/FormFields/Field/Field.js";import{createElement as n}from"../../../external/preact/dist/preact.js";import{useMemo as s,useCallback as o}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";const c=[{id:"personal.checking",nameKey:"ach.bankAccount.option.personal-checking"},{id:"personal.savings",nameKey:"ach.bankAccount.option.personal-savings"},{id:"business.checking",nameKey:"ach.bankAccount.option.business-checking"},{id:"business.savings",nameKey:"ach.bankAccount.option.business-savings"}],i=({onSelect:i,selectedAccountType:r,errorMessage:l,placeholder:m,disabled:p})=>{const{i18n:d}=t(),u=s((()=>c.map((e=>({id:e.id,name:d.get(e.nameKey)})))),[d,c]),b=o((e=>{const a=e.target.value;i(a)}),[i]);return n(a,{name:"ach-bankaccount-type",useLabelElement:!0,showContextualElement:!1,label:d.get("ach.bankAccount.label"),errorMessage:l,classNameModifiers:["selectedAccountType"]},n(e,{placeholder:m||d.get("ach.bankAccount.placeholder"),filterable:!1,items:u,selectedValue:r,onChange:b,name:"ach-bankaccount-type",disabled:p}))};export{i as AccountTypeSelector};
2
+ //# sourceMappingURL=AccountTypeSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountTypeSelector.js","sources":["../../../../../src/components/Ach/components/AccountTypeSelector.tsx"],"sourcesContent":["import Select from '../../internal/FormFields/Select';\nimport Field from '../../internal/FormFields/Field';\nimport { h } from 'preact';\nimport { useCallback, useMemo } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { SelectItem } from '../../internal/FormFields/Select/types';\n\nconst SELECTOR_OPTIONS = [\n { id: 'personal.checking', nameKey: 'ach.bankAccount.option.personal-checking' },\n { id: 'personal.savings', nameKey: 'ach.bankAccount.option.personal-savings' },\n { id: 'business.checking', nameKey: 'ach.bankAccount.option.business-checking' },\n { id: 'business.savings', nameKey: 'ach.bankAccount.option.business-savings' }\n];\n\ninterface AccountTypeSelectorProps {\n selectedAccountType?: string;\n onSelect(value: string): void;\n disabled: boolean;\n errorMessage?: string;\n placeholder?: string;\n}\n\nconst AccountTypeSelector = ({ onSelect, selectedAccountType, errorMessage, placeholder, disabled }: AccountTypeSelectorProps) => {\n const { i18n } = useCoreContext();\n const options: SelectItem[] = useMemo(\n () =>\n SELECTOR_OPTIONS.map(option => ({\n id: option.id,\n name: i18n.get(option.nameKey)\n })),\n [i18n, SELECTOR_OPTIONS]\n );\n\n const onChange = useCallback(\n event => {\n const value = event.target.value;\n onSelect(value);\n },\n [onSelect]\n );\n\n return (\n <Field\n name={'ach-bankaccount-type'}\n useLabelElement={true}\n showContextualElement={false}\n label={i18n.get('ach.bankAccount.label')}\n errorMessage={errorMessage}\n classNameModifiers={['selectedAccountType']}\n >\n <Select\n placeholder={placeholder || i18n.get('ach.bankAccount.placeholder')}\n filterable={false}\n items={options}\n selectedValue={selectedAccountType}\n onChange={onChange}\n name={'ach-bankaccount-type'}\n disabled={disabled}\n />\n </Field>\n );\n};\n\nexport { AccountTypeSelector };\n"],"names":["SELECTOR_OPTIONS","id","nameKey","AccountTypeSelector","onSelect","selectedAccountType","errorMessage","placeholder","disabled","i18n","useCoreContext","options","useMemo","map","option","name","get","onChange","useCallback","event","value","target","h","Field","useLabelElement","showContextualElement","label","classNameModifiers","Select","filterable","items","selectedValue"],"mappings":"yVAOA,MAAMA,EAAmB,CACrB,CAAEC,GAAI,oBAAqBC,QAAS,4CACpC,CAAED,GAAI,mBAAoBC,QAAS,2CACnC,CAAED,GAAI,oBAAqBC,QAAS,4CACpC,CAAED,GAAI,mBAAoBC,QAAS,4CAWjCC,EAAsB,EAAGC,WAAUC,sBAAqBC,eAAcC,cAAaC,eACrF,MAAMC,KAAEA,GAASC,IACXC,EAAwBC,GAC1B,IACIZ,EAAiBa,KAAIC,IAAW,CAC5Bb,GAAIa,EAAOb,GACXc,KAAMN,EAAKO,IAAIF,EAAOZ,cAE9B,CAACO,EAAMT,IAGLiB,EAAWC,GACbC,IACI,MAAMC,EAAQD,EAAME,OAAOD,MAC3BhB,EAASgB,EAAAA,GAEb,CAAChB,IAGL,OACIkB,EAACC,EAAAA,CACGR,KAAM,uBACNS,iBAAiB,EACjBC,uBAAuB,EACvBC,MAAOjB,EAAKO,IAAI,yBAChBV,aAAcA,EACdqB,mBAAoB,CAAC,wBAErBL,EAACM,EAAAA,CACGrB,YAAaA,GAAeE,EAAKO,IAAI,+BACrCa,YAAY,EACZC,MAAOnB,EACPoB,cAAe1B,EACfY,SAAUA,EACVF,KAAM,uBACNP,SAAUA"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useMemo as r,useState as o,useRef as a,useEffect as t,useCallback as n}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as i}from"../../../core/Context/CoreProvider.js";import u from"../../internal/FormInstruction/FormInstruction.js";import{AccountTypeSelector as c}from"./AccountTypeSelector.js";import l from"../../internal/FormFields/Fieldset/Fieldset.js";import s from"../../../utils/useForm/useForm.js";import m from"../../internal/FormFields/Field/Field.js";import d from"../../internal/FormFields/InputText.js";import{achValidationRules as b,achFormatters as N}from"./validate.js";import g from"../../internal/StoreDetails/StoreDetails.js";import p from"./useSRPanelForACHErrors.js";function f({onChange:f,payButton:h,showPayButton:V,placeholders:F,hasHolderName:M,setComponentRef:v,enableStoreDetails:y}){const j=r((()=>["selectedAccountType","routingNumber","accountNumber","accountNumberVerification",...M?["ownerName"]:[]]),[M]),{i18n:w}=i(),[A,S]=o("ready"),{handleChangeFor:T,triggerValidation:x,data:C,errors:k,valid:I,isValid:B}=s({schema:j,rules:b,formatters:N}),[P,q]=o(!1),D="loading"===A,E=a(!1),H=a({setStatus:S,showValidation:()=>{E.current=!0,x()}});t((()=>{v(H.current)}),[v,H.current]),p({errors:k,data:C,isValidating:E}),t((()=>{f({data:C,valid:I,errors:k,isValid:B,storePaymentMethod:P})}),[f,C,I,k,B,P]);const R=n((e=>{T("accountNumber","input")(e);!!k.accountNumberVerification&&x(["accountNumberVerification"])}),[T,x,C.accountNumberVerification,k.accountNumberVerification]);return e("div",{className:"adyen-checkout__ach"},e(u,null),e(l,{classNameModifiers:[],label:w.get("ach.bankAccount.title")},e(c,{placeholder:null==F?void 0:F.accountTypeSelector,onSelect:T("selectedAccountType"),selectedAccountType:C.selectedAccountType,disabled:D,errorMessage:!!k.selectedAccountType&&w.get(k.selectedAccountType.errorMessage)}),M&&e(m,{label:w.get("ach.accountHolderNameField.title"),errorMessage:!!k.ownerName&&w.get(k.ownerName.errorMessage),isValid:!!I.ownerName,name:"ownerName"},e(d,{disabled:D,name:"ownerName",placeholder:null==F?void 0:F.ownerName,value:C.ownerName,onInput:T("ownerName","input"),onBlur:T("ownerName","blur"),required:!0})),e(m,{label:w.get("ach.routingNumber.label"),classNameModifiers:["col-60"],errorMessage:!!k.routingNumber&&w.get(k.routingNumber.errorMessage),name:"routingNumber",isValid:!!I.routingNumber},e(d,{disabled:D,name:"routingNumber",placeholder:null==F?void 0:F.routingNumber,value:C.routingNumber,onInput:T("routingNumber","input"),onBlur:T("routingNumber","blur"),required:!0,maxlength:9})),e(m,{label:w.get("ach.bankAccountNumber.label"),classNameModifiers:["col-40"],errorMessage:!!k.accountNumber&&w.get(k.accountNumber.errorMessage),isValid:!!I.accountNumber,name:"accountNumber"},e(d,{disabled:D,name:"accountNumber",placeholder:null==F?void 0:F.accountNumber,value:C.accountNumber,onInput:R,onBlur:T("accountNumber","blur"),required:!0,maxlength:17})),e(m,{label:w.get("ach.bankAccountNumberVerification.label"),errorMessage:!!k.accountNumberVerification&&w.get(k.accountNumberVerification.errorMessage),name:"accountNumberVerification",isValid:!!I.accountNumberVerification},e(d,{disabled:D,name:"accountNumberVerification",placeholder:null==F?void 0:F.accountNumberVerification,value:C.accountNumberVerification,onInput:T("accountNumberVerification","input"),onBlur:T("accountNumberVerification","blur"),required:!0,maxlength:17}))),y&&e(g,{disabled:D,onChange:q}),V&&h({status:A,label:w.get("confirmPurchase")}))}export{f as default};
2
+ //# sourceMappingURL=AchComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AchComponent.js","sources":["../../../../../src/components/Ach/components/AchComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { AccountTypeSelector } from './AccountTypeSelector';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { achValidationRules, achFormatters } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { AchPlaceholders } from '../types';\nimport type { AchStateErrors } from './useSRPanelForACHErrors';\nimport useSRPanelForAchErrors from './useSRPanelForACHErrors';\n\ntype AchForm = {\n selectedAccountType: string;\n ownerName: string;\n routingNumber: string;\n accountNumber: string;\n accountNumberVerification: string;\n};\n\ninterface AchComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: AchForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: any };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: Partial<PayButtonProps>) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n hasHolderName: boolean;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n placeholders?: AchPlaceholders;\n}\n\nfunction AchComponent({ onChange, payButton, showPayButton, placeholders, hasHolderName, setComponentRef, enableStoreDetails }: AchComponentProps) {\n const schema = useMemo(\n () => ['selectedAccountType', 'routingNumber', 'accountNumber', 'accountNumberVerification', ...(hasHolderName ? ['ownerName'] : [])],\n [hasHolderName]\n );\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<AchForm>({\n schema,\n rules: achValidationRules,\n formatters: achFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n const isFormDisabled = status === 'loading';\n\n const isValidating = useRef(false);\n\n const achRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n isValidating.current = true;\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(achRef.current);\n }, [setComponentRef, achRef.current]);\n\n useSRPanelForAchErrors({ errors: errors as AchStateErrors, data, isValidating });\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n /**\n * If the \"Verify account number\" field has errors, we want to trigger\n * its validation when there is any change done to the \"Account number\" field\n */\n const onAccountNumberInput = useCallback(\n (event: h.JSX.TargetedInputEvent<HTMLInputElement>) => {\n handleChangeFor('accountNumber', 'input')(event);\n\n const hasAccountVerificationError = !!errors.accountNumberVerification;\n if (hasAccountVerificationError) {\n triggerValidation(['accountNumberVerification']);\n }\n },\n [handleChangeFor, triggerValidation, data.accountNumberVerification, errors.accountNumberVerification]\n );\n\n return (\n <div className=\"adyen-checkout__ach\">\n <FormInstruction />\n\n <Fieldset classNameModifiers={[]} label={i18n.get('ach.bankAccount.title')}>\n <AccountTypeSelector\n placeholder={placeholders?.accountTypeSelector}\n onSelect={handleChangeFor('selectedAccountType')}\n selectedAccountType={data.selectedAccountType}\n disabled={isFormDisabled}\n errorMessage={!!errors.selectedAccountType && i18n.get(errors.selectedAccountType.errorMessage)}\n />\n\n {hasHolderName && (\n <Field\n label={i18n.get('ach.accountHolderNameField.title')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n />\n </Field>\n )}\n\n <Field\n label={i18n.get('ach.routingNumber.label')}\n classNameModifiers={['col-60']}\n errorMessage={!!errors.routingNumber && i18n.get(errors.routingNumber.errorMessage)}\n name={'routingNumber'}\n isValid={!!valid.routingNumber}\n >\n <InputText\n disabled={isFormDisabled}\n name={'routingNumber'}\n placeholder={placeholders?.routingNumber}\n value={data.routingNumber}\n onInput={handleChangeFor('routingNumber', 'input')}\n onBlur={handleChangeFor('routingNumber', 'blur')}\n required={true}\n maxlength={9}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumber.label')}\n classNameModifiers={['col-40']}\n errorMessage={!!errors.accountNumber && i18n.get(errors.accountNumber.errorMessage)}\n isValid={!!valid.accountNumber}\n name={'accountNumber'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumber'}\n placeholder={placeholders?.accountNumber}\n value={data.accountNumber}\n onInput={onAccountNumberInput}\n onBlur={handleChangeFor('accountNumber', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumberVerification.label')}\n errorMessage={!!errors.accountNumberVerification && i18n.get(errors.accountNumberVerification.errorMessage)}\n name={'accountNumberVerification'}\n isValid={!!valid.accountNumberVerification}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumberVerification'}\n placeholder={placeholders?.accountNumberVerification}\n value={data.accountNumberVerification}\n onInput={handleChangeFor('accountNumberVerification', 'input')}\n onBlur={handleChangeFor('accountNumberVerification', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && <StoreDetails disabled={isFormDisabled} onChange={setStorePaymentMethod} />}\n\n {showPayButton && payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n\nexport default AchComponent;\n"],"names":["AchComponent","onChange","payButton","showPayButton","placeholders","hasHolderName","setComponentRef","enableStoreDetails","schema","useMemo","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","data","errors","valid","isValid","useForm","rules","achValidationRules","formatters","achFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","isValidating","useRef","achRef","showValidation","current","useEffect","useSRPanelForAchErrors","onAccountNumberInput","useCallback","event","accountNumberVerification","h","div","className","FormInstruction","Fieldset","classNameModifiers","label","get","AccountTypeSelector","placeholder","accountTypeSelector","onSelect","selectedAccountType","disabled","errorMessage","Field","ownerName","name","InputText","value","onInput","onBlur","required","routingNumber","maxlength","accountNumber","StoreDetails"],"mappings":"yxBAgDA,SAASA,GAAaC,SAAEA,EAAQC,UAAEA,EAASC,cAAEA,EAAaC,aAAEA,EAAYC,cAAEA,EAAaC,gBAAEA,EAAeC,mBAAEA,IACtG,MAAMC,EAASC,GACX,IAAM,CAAC,sBAAuB,gBAAiB,gBAAiB,+BAAiCJ,EAAgB,CAAC,aAAe,KACjI,CAACA,KAECK,KAAEA,GAASC,KACVC,EAAQC,GAAaC,EAAS,UAC/BC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,QAAEA,GAAYC,EAAiB,CAC1Fb,SACAc,MAAOC,EACPC,WAAYC,KAETC,EAAoBC,GAAyBb,GAAS,GACvDc,EAA4B,YAAXhB,EAEjBiB,EAAeC,GAAO,GAEtBC,EAASD,EAA4B,CACvCjB,UAAWA,EACXmB,eAAgB,KACZH,EAAaI,SAAU,EACvBjB,GAAAA,IAIRkB,GAAU,KACN5B,EAAgByB,EAAOE,QAAO,GAC/B,CAAC3B,EAAiByB,EAAOE,UAE5BE,EAAuB,CAAEjB,OAAQA,EAA0BD,OAAMY,iBAEjEK,GAAU,KACNjC,EAAS,CAAEgB,OAAME,QAAOD,SAAQE,UAASM,sBAAmB,GAC7D,CAACzB,EAAUgB,EAAME,EAAOD,EAAQE,EAASM,IAM5C,MAAMU,EAAuBC,GACxBC,IACGvB,EAAgB,gBAAiB,QAAjCA,CAA0CuB,KAEJpB,EAAOqB,2BAEzCvB,EAAkB,CAAC,6BACvB,GAEJ,CAACD,EAAiBC,EAAmBC,EAAKsB,0BAA2BrB,EAAOqB,4BAGhF,OACIC,EAACC,MAAAA,CAAIC,UAAU,uBACXF,EAACG,QAEDH,EAACI,EAAAA,CAASC,mBAAoB,GAAIC,MAAOpC,EAAKqC,IAAI,0BAC9CP,EAACQ,EAAAA,CACGC,YAAa7C,aAAAA,EAAAA,EAAc8C,oBAC3BC,SAAUpC,EAAgB,uBAC1BqC,oBAAqBnC,EAAKmC,oBAC1BC,SAAUzB,EACV0B,eAAgBpC,EAAOkC,qBAAuB1C,EAAKqC,IAAI7B,EAAOkC,oBAAoBE,gBAGrFjD,GACGmC,EAACe,EAAAA,CACGT,MAAOpC,EAAKqC,IAAI,oCAChBO,eAAgBpC,EAAOsC,WAAa9C,EAAKqC,IAAI7B,EAAOsC,UAAUF,cAC9DlC,UAAWD,EAAMqC,UACjBC,KAAM,aAENjB,EAACkB,EAAAA,CACGL,SAAUzB,EACV6B,KAAM,YACNR,YAAa7C,aAAAA,EAAAA,EAAcoD,UAC3BG,MAAO1C,EAAKuC,UACZI,QAAS7C,EAAgB,YAAa,SACtC8C,OAAQ9C,EAAgB,YAAa,QACrC+C,UAAU,KAKtBtB,EAACe,EAAAA,CACGT,MAAOpC,EAAKqC,IAAI,2BAChBF,mBAAoB,CAAC,UACrBS,eAAgBpC,EAAO6C,eAAiBrD,EAAKqC,IAAI7B,EAAO6C,cAAcT,cACtEG,KAAM,gBACNrC,UAAWD,EAAM4C,eAEjBvB,EAACkB,EAAAA,CACGL,SAAUzB,EACV6B,KAAM,gBACNR,YAAa7C,aAAAA,EAAAA,EAAc2D,cAC3BJ,MAAO1C,EAAK8C,cACZH,QAAS7C,EAAgB,gBAAiB,SAC1C8C,OAAQ9C,EAAgB,gBAAiB,QACzC+C,UAAU,EACVE,UAAW,KAInBxB,EAACe,EAAAA,CACGT,MAAOpC,EAAKqC,IAAI,+BAChBF,mBAAoB,CAAC,UACrBS,eAAgBpC,EAAO+C,eAAiBvD,EAAKqC,IAAI7B,EAAO+C,cAAcX,cACtElC,UAAWD,EAAM8C,cACjBR,KAAM,iBAENjB,EAACkB,EAAAA,CACGL,SAAUzB,EACV6B,KAAM,gBACNR,YAAa7C,aAAAA,EAAAA,EAAc6D,cAC3BN,MAAO1C,EAAKgD,cACZL,QAASxB,EACTyB,OAAQ9C,EAAgB,gBAAiB,QACzC+C,UAAU,EACVE,UAAW,MAInBxB,EAACe,EAAAA,CACGT,MAAOpC,EAAKqC,IAAI,2CAChBO,eAAgBpC,EAAOqB,2BAA6B7B,EAAKqC,IAAI7B,EAAOqB,0BAA0Be,cAC9FG,KAAM,4BACNrC,UAAWD,EAAMoB,2BAEjBC,EAACkB,EAAAA,CACGL,SAAUzB,EACV6B,KAAM,4BACNR,YAAa7C,aAAAA,EAAAA,EAAcmC,0BAC3BoB,MAAO1C,EAAKsB,0BACZqB,QAAS7C,EAAgB,4BAA6B,SACtD8C,OAAQ9C,EAAgB,4BAA6B,QACrD+C,UAAU,EACVE,UAAW,OAKtBzD,GAAsBiC,EAAC0B,EAAAA,CAAab,SAAUzB,EAAgB3B,SAAU0B,IAExExB,GAAiBD,EAAU,CAAEU,SAAQkC,MAAOpC,EAAKqC,IAAI,qBAGlE"}
@@ -0,0 +1,2 @@
1
+ import{useState as o,useEffect as r}from"../../../external/preact/hooks/dist/hooks.js";import s from"../../../core/Errors/useSRPanelContext.js";import{usePrevious as e}from"../../../utils/hookUtils.js";import{ERROR_ACTION_BLUR_SCENARIO as t,ERROR_ACTION_FOCUS_FIELD as a}from"../../../core/Errors/constants.js";import{setFocusOnField as c}from"../../../utils/setFocus.js";import{getArrayDifferences as i}from"../../../utils/arrayUtils.js";const l=({errors:l,data:n,isValidating:u})=>{const[m,d]=o(null),f=e(m),{setSRMessagesFromObjects:p,setSRMessagesFromStrings:h,clearSRPanel:S,shouldMoveFocusSR:g}=s(),j=null==p?void 0:p({}),y=["selectedAccountType","ownerName","routingNumber","accountNumber","accountNumberVerification"];r((()=>{try{const o=null==j?void 0:j({errors:l,isValidating:u.current,layout:y}),r=null==o?void 0:o.currentErrorsSortedByLayout;switch(d(r),null==o?void 0:o.action){case a:g&&c(".adyen-checkout__ach",o.fieldToFocus),setTimeout((()=>{u.current=!1}),300);break;case t:{const o=i(r,f,"field"),s=null==o?void 0:o[0];if(s){const o=!0?s.errorMessage:null;h(o)}else S();break}}}catch(o){}}),[l,n])};export{l as default};
2
+ //# sourceMappingURL=useSRPanelForACHErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSRPanelForACHErrors.js","sources":["../../../../../src/components/Ach/components/useSRPanelForACHErrors.ts"],"sourcesContent":["import { useEffect, useState, MutableRef } from 'preact/hooks';\nimport { SetSRMessagesReturnObject } from '../../../core/Errors/types';\nimport useSRPanelContext from '../../../core/Errors/useSRPanelContext';\nimport { SetSRMessagesReturnFn } from '../../../core/Errors/SRPanelProvider';\nimport { usePrevious } from '../../../utils/hookUtils';\nimport { ERROR_ACTION_BLUR_SCENARIO, ERROR_ACTION_FOCUS_FIELD } from '../../../core/Errors/constants';\nimport { setFocusOnField } from '../../../utils/setFocus';\nimport { getArrayDifferences } from '../../../utils/arrayUtils';\nimport { ValidationRuleResult } from '../../../utils/Validator/ValidationRuleResult';\n\nexport interface AchStateErrors {\n selectedAccountType: ValidationRuleResult;\n ownerName: ValidationRuleResult;\n routingNumber: ValidationRuleResult;\n accountNumber: ValidationRuleResult;\n accountNumberVerification: ValidationRuleResult;\n}\n\ninterface UseSRPanelForErrorsProps {\n errors: AchStateErrors;\n data: AchStateData;\n isValidating: MutableRef<boolean>;\n}\n\ninterface AchStateData {\n selectedAccountType: string;\n ownerName: string;\n routingNumber: string;\n accountNumber: string;\n accountNumberVerification: string;\n}\n\nconst useSRPanelForACHErrors = ({ errors, data, isValidating }: UseSRPanelForErrorsProps) => {\n // Relates to onBlur errors\n const [sortedErrorList, setSortedErrorList] = useState(null);\n // Get the previous value (Relates to onBlur errors)\n const previousSortedErrors = usePrevious(sortedErrorList);\n const { setSRMessagesFromObjects, setSRMessagesFromStrings, clearSRPanel, shouldMoveFocusSR } = useSRPanelContext();\n const setSRMessages: SetSRMessagesReturnFn = setSRMessagesFromObjects?.({});\n\n // Fixed layout for the ACH comp\n const layout = ['selectedAccountType', 'ownerName', 'routingNumber', 'accountNumber', 'accountNumberVerification'];\n\n useEffect(() => {\n try {\n const srPanelResp: SetSRMessagesReturnObject = setSRMessages?.({ errors, isValidating: isValidating.current, layout });\n\n // Relates to onBlur errors\n const currentErrorsSortedByLayout = srPanelResp?.currentErrorsSortedByLayout;\n // Store the array of sorted error objects separately so that we can use it to make comparisons between the old and new arrays\n setSortedErrorList(currentErrorsSortedByLayout);\n\n /**\n * Need extra actions after setting SRPanel messages in order to focus field (if required) and because we have some errors that are fired onBlur\n */\n switch (srPanelResp?.action) {\n // A call to focus the first field in error will always follow the call to validate the whole form\n case ERROR_ACTION_FOCUS_FIELD:\n // Focus field in error, if required\n if (shouldMoveFocusSR) setFocusOnField('.adyen-checkout__ach', srPanelResp.fieldToFocus);\n // Remove 'showValidation' mode - allowing time for collation of all the fields in error whilst it is 'showValidation' mode (some errors come in a second render pass)\n setTimeout(() => {\n isValidating.current = false;\n }, 300);\n break;\n\n /**\n * Relates to errors triggered by a field blurring (some pm forms have this, some don't) - check if there is an error to either set or to clear\n */\n case ERROR_ACTION_BLUR_SCENARIO: {\n const difference = getArrayDifferences(currentErrorsSortedByLayout, previousSortedErrors, 'field');\n\n const latestErrorMsg = difference?.[0];\n\n if (latestErrorMsg) {\n // Is error actually a blur based one - depends on the specific fields in a component as to whether they validate on blur\n // In the case of the ACH form currently all the fields validate on blur\n const isBlurBasedError = true;\n\n // Only add blur based errors to the error panel - doing this step prevents the non-blur based errors from being read out twice\n const latestSRError = isBlurBasedError ? latestErrorMsg.errorMessage : null;\n setSRMessagesFromStrings(latestSRError);\n } else {\n // called when previousSortedErrors.length >= currentErrorsSortedByLayout.length\n clearSRPanel();\n }\n break;\n }\n default:\n break;\n }\n } catch (_) {\n // We don't handle the error related to the sr panel, let it fail silently.\n }\n }, [errors, data]);\n};\n\nexport default useSRPanelForACHErrors;\n"],"names":["useSRPanelForACHErrors","errors","data","isValidating","sortedErrorList","setSortedErrorList","useState","previousSortedErrors","usePrevious","setSRMessagesFromObjects","setSRMessagesFromStrings","clearSRPanel","shouldMoveFocusSR","useSRPanelContext","setSRMessages","layout","useEffect","srPanelResp","current","currentErrorsSortedByLayout","action","ERROR_ACTION_FOCUS_FIELD","setFocusOnField","fieldToFocus","setTimeout","ERROR_ACTION_BLUR_SCENARIO","difference","getArrayDifferences","latestErrorMsg","latestSRError","errorMessage","_"],"mappings":"ubAgCMA,MAAAA,EAAyB,EAAGC,SAAQC,OAAMC,mBAE5C,MAAOC,EAAiBC,GAAsBC,EAAS,MAEjDC,EAAuBC,EAAYJ,IACnCK,yBAAEA,EAAwBC,yBAAEA,EAAwBC,aAAEA,EAAYC,kBAAEA,GAAsBC,IAC1FC,EAAuCL,aAAAA,EAAAA,EAA2B,IAGlEM,EAAS,CAAC,sBAAuB,YAAa,gBAAiB,gBAAiB,6BAEtFC,GAAU,KACN,IACI,MAAMC,EAAyCH,aAAAA,EAAAA,EAAgB,CAAEb,SAAQE,aAAcA,EAAae,QAASH,WAGvGI,EAA8BF,aAAAA,EAAAA,EAAaE,4BAOjD,OALAd,EAAmBc,GAKXF,aAAAA,EAAAA,EAAaG,QAEjB,KAAKC,EAEGT,GAAmBU,EAAgB,uBAAwBL,EAAYM,cAE3EC,YAAW,KACPrB,EAAae,SAAU,CAAA,GACxB,KACH,MAKJ,KAAKO,EAA4B,CAC7B,MAAMC,EAAaC,EAAoBR,EAA6BZ,EAAsB,SAEpFqB,EAAiBF,aAAAA,EAAAA,EAAa,GAEpC,GAAIE,EAAgB,CAGhB,MAGMC,GAHmB,EAGgBD,EAAeE,aAAe,KACvEpB,EAAyBmB,QAGzBlB,IAEJ,KACJ,EAIR,CAAE,MAAOoB,GAET,IACD,CAAC9B,EAAQC,GAAK"}
@@ -0,0 +1,2 @@
1
+ import{digitsOnlyFormatter as e}from"../../../utils/Formatters/formatters.js";import{isEmpty as r}from"../../../utils/validator-utils.js";const a=/^\d{4,17}$/,t=/^\d{9}$/,o={selectedAccountType:{validate:e=>!r(e)||null,errorMessage:"ach.bankAccount.nothing-selected-error",modes:["blur"]},ownerName:{validate:e=>!r(e)||null,errorMessage:"ach.accountHolderNameField.invalid",modes:["blur"]},routingNumber:[{validate:e=>!r(e)||null,errorMessage:"ach.loc.947",modes:["blur"]},{validate:e=>r(e)?null:t.test(e),errorMessage:"ach.loc.948",modes:["blur"]}],accountNumber:[{validate:e=>!r(e)||null,errorMessage:"ach.num.945",modes:["blur"]},{validate:e=>r(e)?null:a.test(e),errorMessage:"ach.num.946",modes:["blur"]}],accountNumberVerification:[{validate:(e,a)=>{const{accountNumber:t}=a.state.data;return!(!t&&r(e))||null},errorMessage:"ach.bankAccountNumberVerification.error.empty",modes:["blur"]},{validate:(e,a)=>{if(r(e))return null;const{accountNumber:t}=a.state.data;return t===e},errorMessage:"ach.bankAccountNumberVerification.error.not-match",modes:["blur"]}]},u={routingNumber:e,accountNumber:e,accountNumberVerification:e};export{u as achFormatters,o as achValidationRules};
2
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sources":["../../../../../src/components/Ach/components/validate.ts"],"sourcesContent":["import { ValidatorRules } from '../../../utils/Validator/types';\nimport { digitsOnlyFormatter } from '../../../utils/Formatters/formatters';\nimport { isEmpty } from '../../../utils/validator-utils';\n\nconst accountNumberRegex = /^\\d{4,17}$/;\nconst routingNumberRegex = /^\\d{9}$/;\n\nexport const achValidationRules: ValidatorRules = {\n selectedAccountType: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'ach.bankAccount.nothing-selected-error',\n modes: ['blur']\n },\n ownerName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'ach.accountHolderNameField.invalid',\n modes: ['blur']\n },\n routingNumber: [\n // Empty field\n {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'ach.loc.947',\n modes: ['blur']\n },\n // Incomplete field\n {\n validate: value => {\n if (isEmpty(value)) return null;\n return routingNumberRegex.test(value);\n },\n errorMessage: 'ach.loc.948',\n modes: ['blur']\n }\n ],\n accountNumber: [\n // Empty field\n {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'ach.num.945',\n modes: ['blur']\n },\n // Incomplete field: value is not between 4 and 17 chars\n {\n validate: value => {\n if (isEmpty(value)) return null;\n return accountNumberRegex.test(value);\n },\n errorMessage: 'ach.num.946',\n modes: ['blur']\n }\n ],\n accountNumberVerification: [\n {\n /**\n * If the account number is empty, then validate that the field has an empty error state.\n * Otherwise, the other validator will validate if the fields match\n */\n validate: (value, context) => {\n const { accountNumber } = context.state.data;\n return !accountNumber && isEmpty(value) ? null : true;\n },\n errorMessage: 'ach.bankAccountNumberVerification.error.empty',\n modes: ['blur']\n },\n {\n validate: (value, context) => {\n if (isEmpty(value)) return null;\n const { accountNumber } = context.state.data;\n return accountNumber === value;\n },\n errorMessage: 'ach.bankAccountNumberVerification.error.not-match',\n modes: ['blur']\n }\n ]\n};\n\nexport const achFormatters = {\n routingNumber: digitsOnlyFormatter,\n accountNumber: digitsOnlyFormatter,\n accountNumberVerification: digitsOnlyFormatter\n};\n"],"names":["accountNumberRegex","routingNumberRegex","achValidationRules","selectedAccountType","validate","value","isEmpty","errorMessage","modes","ownerName","routingNumber","test","accountNumber","accountNumberVerification","context","state","data","achFormatters","digitsOnlyFormatter"],"mappings":"0IAIA,MAAMA,EAAqB,aACrBC,EAAqB,UAEdC,EAAqC,CAC9CC,oBAAqB,CACjBC,SAAUC,IAAUC,EAAQD,IAAS,KACrCE,aAAc,yCACdC,MAAO,CAAC,SAEZC,UAAW,CACPL,SAAUC,IAAUC,EAAQD,IAAS,KACrCE,aAAc,qCACdC,MAAO,CAAC,SAEZE,cAAe,CAEX,CACIN,SAAUC,IAAUC,EAAQD,IAAS,KACrCE,aAAc,cACdC,MAAO,CAAC,SAGZ,CACIJ,SAAUC,GACFC,EAAQD,GAAe,KACpBJ,EAAmBU,KAAKN,GAEnCE,aAAc,cACdC,MAAO,CAAC,UAGhBI,cAAe,CAEX,CACIR,SAAUC,IAAUC,EAAQD,IAAS,KACrCE,aAAc,cACdC,MAAO,CAAC,SAGZ,CACIJ,SAAUC,GACFC,EAAQD,GAAe,KACpBL,EAAmBW,KAAKN,GAEnCE,aAAc,cACdC,MAAO,CAAC,UAGhBK,0BAA2B,CACvB,CAKIT,SAAU,CAACC,EAAOS,KACd,MAAMF,cAAEA,GAAkBE,EAAQC,MAAMC,KACxC,SAAQJ,GAAiBN,EAAQD,KAAS,IAAO,EAErDE,aAAc,gDACdC,MAAO,CAAC,SAEZ,CACIJ,SAAU,CAACC,EAAOS,KACd,GAAIR,EAAQD,GAAQ,OAAO,KAC3B,MAAMO,cAAEA,GAAkBE,EAAQC,MAAMC,KACxC,OAAOJ,IAAkBP,CAAAA,EAE7BE,aAAc,oDACdC,MAAO,CAAC,WAKPS,EAAgB,CACzBP,cAAeQ,EACfN,cAAeM,EACfL,0BAA2BK"}
@@ -0,0 +1,2 @@
1
+ const a={hasHolderName:!0};export{a as default};
2
+ //# sourceMappingURL=defaultProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultProps.js","sources":["../../../../src/components/Ach/defaultProps.ts"],"sourcesContent":["import { AchConfiguration } from './types';\n\nconst defaultProps: AchConfiguration = {\n hasHolderName: true\n};\n\nexport default defaultProps;\n"],"names":["defaultProps","hasHolderName"],"mappings":"AAEA,MAAMA,EAAiC,CACnCC,eAAe"}
@@ -1,2 +1,2 @@
1
- import{LEDGER_CURRENCIES_PER_REGION as e,AMAZONPAY_URL_US as r,AMAZONPAY_URL_EU as t,FALLBACK_LOCALE_US as n,FALLBACK_LOCALE_EU as o,SUPPORTED_LOCALES_US as c,SUPPORTED_LOCALES_EU as u}from"./config.js";import{getDecimalAmount as i}from"../../utils/amount-util.js";function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){a(e,r,t[r])}))}return e}function s(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}function f(e){return"US"===e?r:t}function p(r){var t;return s(l({},r.buttonColor&&{buttonColor:r.buttonColor},r.design&&{design:m(r.design)}),{checkoutLanguage:g(r.locale,r.configuration.region),ledgerCurrency:e[r.configuration.region]||r.currency||(null===(t=r.amount)||void 0===t?void 0:t.currency),merchantId:r.configuration.merchantId,productType:r.productType,placement:r.placement,sandbox:"TEST"===r.environment})}function y(e){return"US"===e?n:o}function d(e){return"US"===e?c:u}function g(e,r){return d(r).includes(e)?e:y(r)}function m(e){return"noTagline"===e?"C0001":null}function b(e){return{amount:String(i(e.value,e.currency)),currencyCode:e.currency}}function O(e){const{addressDetails:r,cancelUrl:t,checkoutMode:n,deliverySpecifications:o,returnUrl:c,merchantMetadata:u,chargePermissionType:i,recurringMetadata:a}=e,{storeId:s}=e.configuration,f="ProcessOrder"===n,p=f?b(e.amount):null;return l({storeId:s,chargePermissionType:i,webCheckoutDetails:l({},f?{checkoutResultReturnUrl:c}:{checkoutReviewReturnUrl:c},t&&{checkoutCancelUrl:t},f&&{checkoutMode:n})},f&&{paymentDetails:{chargeAmount:p,paymentIntent:"Confirm",presentmentCurrency:p.currencyCode,totalOrderAmount:p}},a&&{recurringMetadata:a},u&&{merchantMetadata:u},o&&{deliverySpecifications:o},r&&{addressDetails:r})}export{p as getAmazonPaySettings,f as getAmazonPayUrl,b as getChargeAmount,g as getCheckoutLocale,m as getDesignCode,y as getFallbackLocale,O as getPayloadJSON,d as getSupportedLocales};
1
+ import{AMAZONPAY_URL_US as e,AMAZONPAY_URL_EU as r,LEDGER_CURRENCIES_PER_REGION as t,FALLBACK_LOCALE_US as n,FALLBACK_LOCALE_EU as o,SUPPORTED_LOCALES_US as c,SUPPORTED_LOCALES_EU as u}from"./config.js";import{getDecimalAmount as i}from"../../utils/amount-util.js";function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){a(e,r,t[r])}))}return e}function s(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}function f(t){return"US"===t?e:r}function p(e){var r;return s(l({},e.buttonColor&&{buttonColor:e.buttonColor},e.design&&{design:m(e.design)}),{checkoutLanguage:g(e.locale,e.configuration.region),ledgerCurrency:t[e.configuration.region]||e.currency||(null===(r=e.amount)||void 0===r?void 0:r.currency),merchantId:e.configuration.merchantId,productType:e.productType,placement:e.placement,sandbox:"TEST"===e.environment})}function y(e){return"US"===e?n:o}function d(e){return"US"===e?c:u}function g(e,r){return d(r).includes(e)?e:y(r)}function m(e){return"noTagline"===e?"C0001":null}function b(e){return{amount:String(i(e.value,e.currency)),currencyCode:e.currency}}function O(e){const{addressDetails:r,cancelUrl:t,checkoutMode:n,deliverySpecifications:o,returnUrl:c,merchantMetadata:u,chargePermissionType:i,recurringMetadata:a}=e,{storeId:s}=e.configuration,f="ProcessOrder"===n,p=f?b(e.amount):null;return l({storeId:s,chargePermissionType:i,webCheckoutDetails:l({},f?{checkoutResultReturnUrl:c}:{checkoutReviewReturnUrl:c},t&&{checkoutCancelUrl:t},f&&{checkoutMode:n})},f&&{paymentDetails:{chargeAmount:p,paymentIntent:"Confirm",presentmentCurrency:p.currencyCode,totalOrderAmount:p}},a&&{recurringMetadata:a},u&&{merchantMetadata:u},o&&{deliverySpecifications:o},r&&{addressDetails:r})}export{p as getAmazonPaySettings,f as getAmazonPayUrl,b as getChargeAmount,g as getCheckoutLocale,m as getDesignCode,y as getFallbackLocale,O as getPayloadJSON,d as getSupportedLocales};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import r from"./components/ApplePayButton.js";import o from"./services/ApplePayService.js";import s from"../../utils/base64.js";import i from"./defaultProps.js";import{httpPost as n}from"../../core/Services/http.js";import{preparePaymentRequest as a}from"./utils/payment-request.js";import p from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as l}from"../tx-variants.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as c}from"../internal/UIElement/utils.js";import{ANALYTICS_SELECTED_STR as h,ANALYTICS_INSTANT_PAYMENT_BUTTON as u}from"../../core/Analytics/constants.js";import{resolveSupportedVersion as y}from"./utils/resolve-supported-version.js";import{formatApplePayContactToAdyenAddressFormat as m}from"./utils/format-applepay-contact-to-adyen-format.js";import{mapBrands as b}from"./utils/map-adyen-brands-to-applepay-brands.js";import P from"./services/ApplePaySdkLoader.js";function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function A(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){f(e,t,r[t])}))}return e}function v(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 r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}class g extends t{formatProps(e){var t,r,o;const s=(null===(t=e.brands)||void 0===t?void 0:t.length)?b(e.brands):e.supportedNetworks;var i;return v(A({},e),{configuration:e.configuration,supportedNetworks:s,buttonLocale:null!==(i=e.buttonLocale)&&void 0!==i?i:null===(r=e.i18n)||void 0===r?void 0:r.locale,totalPriceLabel:e.totalPriceLabel||(null===(o=e.configuration)||void 0===o?void 0:o.merchantName)})}formatData(){const{applePayToken:e,billingAddress:t,deliveryAddress:r}=this.state,{isExpress:o}=this.props;return A({paymentMethod:A({type:g.type,applePayToken:e},o&&{subtype:"express"})},t&&{billingAddress:t},r&&{deliveryAddress:r})}submitAnalytics(e){super.submitAnalytics(A({},e),this.props)}get isValid(){return!0}async applePayCapabilities(e){const t=e||this.props.configuration.merchantId;try{var r;return await this.sdkLoader.isSdkLoaded(),await(null===(r=ApplePaySession)||void 0===r?void 0:r.applePayCapabilities(t))}catch(e){throw new p("ERROR","Apple Pay: Error when requesting applePayCapabilities()",{cause:e})}}async isAvailable(){if("https:"!==window.location.protocol)return Promise.reject(new p("IMPLEMENTATION_ERROR","Trying to start an Apple Pay session from an insecure document"));try{var e;return await this.sdkLoader.isSdkLoaded(),(null===(e=ApplePaySession)||void 0===e?void 0:e.canMakePayments())?Promise.resolve():Promise.reject(new p("ERROR","Apple Pay is not available on this device"))}catch(e){return Promise.reject(new p("ERROR","Apple Pay SDK failed to load",{cause:e}))}}defineApplePayVersionNumber(){"https:"===window.location.protocol&&(this.applePayVersionNumber=this.props.version||y(14))}configureApplePayWebOptions(){if(window.ApplePayWebOptions){const{renderApplePayCodeAs:e,onApplePayCodeClose:t}=this.props;window.ApplePayWebOptions.set(A({renderApplePayCodeAs:e},t&&{onApplePayCodeClose:t}))}}startSession(){const{onValidateMerchant:e,onPaymentMethodSelected:t,onShippingMethodSelected:r,onShippingContactSelected:s}=this.props,i=a(A({companyName:this.props.configuration.merchantName,countryCode:this.core.options.countryCode},this.props)),n=new o(i,{version:this.applePayVersionNumber,onError:e=>{this.handleError(new p("ERROR","ApplePay - Something went wrong on ApplePayService",{cause:e}))},onCancel:e=>{this.handleError(new p("CANCEL","ApplePay UI dismissed",{cause:e}))},onPaymentMethodSelected:t,onShippingMethodSelected:r,onShippingContactSelected:s,onValidateMerchant:e||this.validateMerchant,onPaymentAuthorized:(e,t,r)=>{const o=m(r.payment.billingContact),s=m(r.payment.shippingContact,!0);this.setState(A({applePayToken:btoa(JSON.stringify(r.payment.token.paymentData)),authorizedEvent:r},o&&{billingAddress:o},s&&{deliveryAddress:s})),this.handleAuthorization().then(this.makePaymentsCall).then(d).then(c).then(this.collectOrderTrackingDetailsIfNeeded).then((({paymentResponse:t,orderDetails:r})=>(e(A({status:ApplePaySession.STATUS_SUCCESS},r&&{orderDetails:r})),t))).then((e=>{this.handleResponse(e)})).catch((e=>{var r;const o=null==e||null===(r=e.error)||void 0===r?void 0:r.applePayError;t({status:ApplePaySession.STATUS_FAILURE,errors:o?Array.isArray(o)?o:[o]:void 0});const s=v(A({},e),{error:{applePayError:o}});this.handleFailedResult(s)}))}});return new Promise(((e,t)=>this.props.onClick(e,t))).then((()=>{n.begin()})).catch((()=>({})))}async handleAuthorization(){return new Promise(((e,t)=>{this.props.onAuthorized||e();const{authorizedEvent:r,billingAddress:o,deliveryAddress:s}=this.state;this.props.onAuthorized(A({authorizedEvent:r},o&&{billingAddress:o},s&&{deliveryAddress:s}),{resolve:e,reject:t})})).catch((e=>{const t={error:{applePayError:e}};return Promise.reject(t)}))}async collectOrderTrackingDetailsIfNeeded(e){return new Promise(((e,t)=>{if(!this.props.onOrderTrackingRequest)return e();this.props.onOrderTrackingRequest(e,t)})).then((t=>A({paymentResponse:e},t&&{orderDetails:t}))).catch((()=>({paymentResponse:e})))}async validateMerchant(e,t){const{hostname:r}=window.location,{clientKey:o,configuration:i,loadingContext:a,initiative:p}=this.props,{merchantName:l,merchantId:d}=i,c={loadingContext:a,path:`v1/applePay/sessions?clientKey=${o}`},h={displayName:l,domainName:r,initiative:p,merchantIdentifier:d};try{const r=await n(c,h),o=s.decode(r.data);if(o.success){e(JSON.parse(o.data))}else t("Could not decode Apple Pay session")}catch(e){t("Could not get Apple Pay session")}}render(){return this.props.showPayButton?e(r,{buttonStyle:this.props.buttonColor,buttonType:this.props.buttonType,buttonLocale:this.props.buttonLocale,onClick:this.submit}):null}constructor(e,t){super(e,t),f(this,"sdkLoader",void 0),f(this,"applePayVersionNumber",void 0),f(this,"submit",(()=>{this.props.isInstantPayment&&this.submitAnalytics({type:h,target:u}),this.startSession()}));const{isExpress:r,onShippingContactSelected:o,onShippingMethodSelected:s}=this.props;if(!1===r&&(o||s))throw new p("IMPLEMENTATION_ERROR",'ApplePay - You must set "isExpress" flag to "true" in order to use "onShippingContactSelected" and/or "onShippingMethodSelected" callbacks');this.startSession=this.startSession.bind(this),this.submit=this.submit.bind(this),this.validateMerchant=this.validateMerchant.bind(this),this.collectOrderTrackingDetailsIfNeeded=this.collectOrderTrackingDetailsIfNeeded.bind(this),this.handleAuthorization=this.handleAuthorization.bind(this),this.defineApplePayVersionNumber=this.defineApplePayVersionNumber.bind(this),this.configureApplePayWebOptions=this.configureApplePayWebOptions.bind(this),this.sdkLoader=new P,this.sdkLoader.load().then(this.defineApplePayVersionNumber).then(this.configureApplePayWebOptions).catch((e=>{this.handleError(e)}))}}f(g,"type",l.applepay),f(g,"defaultProps",i);export{g as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import r from"./components/ApplePayButton.js";import o from"./services/ApplePayService.js";import s from"../../utils/base64.js";import i from"./defaultProps.js";import{httpPost as n}from"../../core/Services/http.js";import{preparePaymentRequest as a}from"./utils/payment-request.js";import p from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as l}from"../tx-variants.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as c}from"../internal/UIElement/utils.js";import{ANALYTICS_INSTANT_PAYMENT_BUTTON as h,ANALYTICS_SELECTED_STR as u}from"../../core/Analytics/constants.js";import{resolveSupportedVersion as y}from"./utils/resolve-supported-version.js";import{formatApplePayContactToAdyenAddressFormat as m}from"./utils/format-applepay-contact-to-adyen-format.js";import{mapBrands as b}from"./utils/map-adyen-brands-to-applepay-brands.js";import P from"./services/ApplePaySdkLoader.js";import{detectInIframe as f}from"../../utils/detectInIframe.js";function A(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){A(e,t,r[t])}))}return e}function g(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 r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}class S extends t{formatProps(e){var t,r,o;const s=(null===(t=e.brands)||void 0===t?void 0:t.length)?b(e.brands):e.supportedNetworks;var i,n;return g(v({},e),{configuration:e.configuration,supportedNetworks:s,buttonLocale:null!==(i=e.buttonLocale)&&void 0!==i?i:null===(r=e.i18n)||void 0===r?void 0:r.locale,totalPriceLabel:e.totalPriceLabel||(null===(o=e.configuration)||void 0===o?void 0:o.merchantName),renderApplePayCodeAs:null!==(n=e.renderApplePayCodeAs)&&void 0!==n?n:f()?"window":"modal"})}formatData(){const{applePayToken:e,billingAddress:t,deliveryAddress:r}=this.state,{isExpress:o}=this.props;return v({paymentMethod:v({type:S.type,applePayToken:e},o&&{subtype:"express"})},t&&{billingAddress:t},r&&{deliveryAddress:r})}submitAnalytics(e){super.submitAnalytics(v({},e),this.props)}get isValid(){return!0}async applePayCapabilities(e){const t=e||this.props.configuration.merchantId;try{var r;return await this.sdkLoader.isSdkLoaded(),await(null===(r=ApplePaySession)||void 0===r?void 0:r.applePayCapabilities(t))}catch(e){throw new p("ERROR","Apple Pay: Error when requesting applePayCapabilities()",{cause:e})}}async isAvailable(){if("https:"!==window.location.protocol)return Promise.reject(new p("IMPLEMENTATION_ERROR","Trying to start an Apple Pay session from an insecure document"));try{var e;return await this.sdkLoader.isSdkLoaded(),(null===(e=ApplePaySession)||void 0===e?void 0:e.canMakePayments())?Promise.resolve():Promise.reject(new p("ERROR","Apple Pay is not available on this device"))}catch(e){return Promise.reject(new p("ERROR","Apple Pay SDK failed to load",{cause:e}))}}defineApplePayVersionNumber(){"https:"===window.location.protocol&&(this.applePayVersionNumber=this.props.version||y(14))}configureApplePayWebOptions(){if(window.ApplePayWebOptions){const{renderApplePayCodeAs:e,onApplePayCodeClose:t}=this.props;window.ApplePayWebOptions.set(v({renderApplePayCodeAs:e},t&&{onApplePayCodeClose:t}))}}startSession(){const{onValidateMerchant:e,onPaymentMethodSelected:t,onShippingMethodSelected:r,onShippingContactSelected:s}=this.props,i=a(v({companyName:this.props.configuration.merchantName,countryCode:this.core.options.countryCode},this.props)),n=new o(i,{version:this.applePayVersionNumber,onError:e=>{this.handleError(new p("ERROR","ApplePay - Something went wrong on ApplePayService",{cause:e}))},onCancel:e=>{this.handleError(new p("CANCEL","ApplePay UI dismissed",{cause:e}))},onPaymentMethodSelected:t,onShippingMethodSelected:r,onShippingContactSelected:s,onValidateMerchant:e||this.validateMerchant,onPaymentAuthorized:(e,t,r)=>{const o=m(r.payment.billingContact),s=m(r.payment.shippingContact,!0);this.setState(v({applePayToken:btoa(JSON.stringify(r.payment.token.paymentData)),authorizedEvent:r},o&&{billingAddress:o},s&&{deliveryAddress:s})),this.handleAuthorization().then(this.makePaymentsCall).then(d).then(c).then(this.collectOrderTrackingDetailsIfNeeded).then((({paymentResponse:t,orderDetails:r})=>(e(v({status:ApplePaySession.STATUS_SUCCESS},r&&{orderDetails:r})),t))).then((e=>{this.handleResponse(e)})).catch((e=>{var r;const o=null==e||null===(r=e.error)||void 0===r?void 0:r.applePayError;t({status:ApplePaySession.STATUS_FAILURE,errors:o?Array.isArray(o)?o:[o]:void 0});const s=g(v({},e),{error:{applePayError:o}});this.handleFailedResult(s)}))}});return new Promise(((e,t)=>this.props.onClick(e,t))).then((()=>{n.begin()})).catch((()=>({})))}async handleAuthorization(){return new Promise(((e,t)=>{this.props.onAuthorized||e();const{authorizedEvent:r,billingAddress:o,deliveryAddress:s}=this.state;this.props.onAuthorized(v({authorizedEvent:r},o&&{billingAddress:o},s&&{deliveryAddress:s}),{resolve:e,reject:t})})).catch((e=>{const t={error:{applePayError:e}};return Promise.reject(t)}))}async collectOrderTrackingDetailsIfNeeded(e){return new Promise(((e,t)=>{if(!this.props.onOrderTrackingRequest)return e();this.props.onOrderTrackingRequest(e,t)})).then((t=>v({paymentResponse:e},t&&{orderDetails:t}))).catch((()=>({paymentResponse:e})))}async validateMerchant(e,t){const{hostname:r}=window.location,{clientKey:o,configuration:i,loadingContext:a,initiative:p}=this.props,{merchantName:l,merchantId:d}=i,c={loadingContext:a,path:`v1/applePay/sessions?clientKey=${o}`},h={displayName:l,domainName:r,initiative:p,merchantIdentifier:d};try{const r=await n(c,h),o=s.decode(r.data);if(o.success){e(JSON.parse(o.data))}else t("Could not decode Apple Pay session")}catch(e){t("Could not get Apple Pay session")}}render(){return this.props.showPayButton?e(r,{buttonStyle:this.props.buttonColor,buttonType:this.props.buttonType,buttonLocale:this.props.buttonLocale,onClick:this.submit}):null}constructor(e,t){super(e,t),A(this,"sdkLoader",void 0),A(this,"applePayVersionNumber",void 0),A(this,"submit",(()=>{this.props.isInstantPayment&&this.submitAnalytics({type:u,target:h}),this.startSession()}));const{isExpress:r,onShippingContactSelected:o,onShippingMethodSelected:s}=this.props;if(!1===r&&(o||s))throw new p("IMPLEMENTATION_ERROR",'ApplePay - You must set "isExpress" flag to "true" in order to use "onShippingContactSelected" and/or "onShippingMethodSelected" callbacks');this.startSession=this.startSession.bind(this),this.submit=this.submit.bind(this),this.validateMerchant=this.validateMerchant.bind(this),this.collectOrderTrackingDetailsIfNeeded=this.collectOrderTrackingDetailsIfNeeded.bind(this),this.handleAuthorization=this.handleAuthorization.bind(this),this.defineApplePayVersionNumber=this.defineApplePayVersionNumber.bind(this),this.configureApplePayWebOptions=this.configureApplePayWebOptions.bind(this),this.sdkLoader=new P,this.sdkLoader.load().then(this.defineApplePayVersionNumber).then(this.configureApplePayWebOptions).catch((e=>{this.handleError(e)}))}}A(S,"type",l.applepay),A(S,"defaultProps",i);export{S as default};
2
2
  //# sourceMappingURL=ApplePay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplePay.js","sources":["../../../../src/components/ApplePay/ApplePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport ApplePayButton from './components/ApplePayButton';\nimport ApplePayService from './services/ApplePayService';\nimport base64 from '../../utils/base64';\nimport defaultProps from './defaultProps';\nimport { httpPost } from '../../core/Services/http';\nimport { preparePaymentRequest } from './utils/payment-request';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { DecodeObject } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { ANALYTICS_INSTANT_PAYMENT_BUTTON, ANALYTICS_SELECTED_STR } from '../../core/Analytics/constants';\nimport { resolveSupportedVersion } from './utils/resolve-supported-version';\nimport { formatApplePayContactToAdyenAddressFormat } from './utils/format-applepay-contact-to-adyen-format';\nimport { mapBrands } from './utils/map-adyen-brands-to-applepay-brands';\nimport ApplePaySdkLoader from './services/ApplePaySdkLoader';\n\nimport type { SendAnalyticsObject } from '../../core/Analytics/types';\nimport type { ApplePayConfiguration, ApplePayElementData, ApplePayPaymentOrderDetails, ApplePaySessionRequest } from './types';\nimport type { ICore } from '../../core/types';\nimport type { PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\n\nconst LATEST_APPLE_PAY_VERSION = 14;\n\nclass ApplePayElement extends UIElement<ApplePayConfiguration> {\n public static type = TxVariants.applepay;\n\n protected static defaultProps = defaultProps;\n\n private sdkLoader: ApplePaySdkLoader;\n private applePayVersionNumber: number = undefined;\n\n constructor(checkout: ICore, props?: ApplePayConfiguration) {\n super(checkout, props);\n\n const { isExpress, onShippingContactSelected, onShippingMethodSelected } = this.props;\n\n if (isExpress === false && (onShippingContactSelected || onShippingMethodSelected)) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'ApplePay - You must set \"isExpress\" flag to \"true\" in order to use \"onShippingContactSelected\" and/or \"onShippingMethodSelected\" callbacks'\n );\n }\n\n this.startSession = this.startSession.bind(this);\n this.submit = this.submit.bind(this);\n this.validateMerchant = this.validateMerchant.bind(this);\n this.collectOrderTrackingDetailsIfNeeded = this.collectOrderTrackingDetailsIfNeeded.bind(this);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.defineApplePayVersionNumber = this.defineApplePayVersionNumber.bind(this);\n this.configureApplePayWebOptions = this.configureApplePayWebOptions.bind(this);\n\n this.sdkLoader = new ApplePaySdkLoader();\n\n void this.sdkLoader\n .load()\n .then(this.defineApplePayVersionNumber)\n .then(this.configureApplePayWebOptions)\n .catch(error => {\n this.handleError(error);\n });\n }\n\n /**\n * Formats the component props\n */\n protected override formatProps(props): ApplePayConfiguration {\n const supportedNetworks = props.brands?.length ? mapBrands(props.brands) : props.supportedNetworks;\n\n return {\n ...props,\n configuration: props.configuration,\n supportedNetworks,\n buttonLocale: props.buttonLocale ?? props.i18n?.locale,\n totalPriceLabel: props.totalPriceLabel || props.configuration?.merchantName\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData(): ApplePayElementData {\n const { applePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: ApplePayElement.type,\n applePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n super.submitAnalytics({ ...analyticsObj }, this.props);\n }\n\n public override submit = (): void => {\n // Analytics\n if (this.props.isInstantPayment) {\n this.submitAnalytics({ type: ANALYTICS_SELECTED_STR, target: ANALYTICS_INSTANT_PAYMENT_BUTTON });\n }\n void this.startSession();\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * This API is only intended for upstreaming or defaulting to Apple Pay, all other scenarios should continue to\n * use canMakePayments(). For Safari browsers, this API will indicate whether there is a card available to make\n * payments. For third-party browsers a new status of paymentCredentialStatusUnknown will be returned. This does\n * not mean there are no cards available, it means the status cannot be determined and as such defaulting\n * and upstreaming should still be considered.\n *\n * {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/4440085-applepaycapabilities}\n * @param merchantIdentifier\n */\n public async applePayCapabilities(merchantIdentifier?: string): Promise<ApplePayJS.PaymentCredentialStatusResponse> {\n const identifier = merchantIdentifier || this.props.configuration.merchantId;\n\n try {\n await this.sdkLoader.isSdkLoaded();\n return await ApplePaySession?.applePayCapabilities(identifier);\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Apple Pay: Error when requesting applePayCapabilities()', { cause: error });\n }\n }\n\n /**\n * Determines if Apple Pay component can be displayed or not\n */\n public override async isAvailable(): Promise<void> {\n if (window.location.protocol !== 'https:') {\n return Promise.reject(new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Trying to start an Apple Pay session from an insecure document'));\n }\n\n try {\n await this.sdkLoader.isSdkLoaded();\n\n if (ApplePaySession?.canMakePayments()) {\n return Promise.resolve();\n }\n\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay is not available on this device'));\n } catch (error) {\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay SDK failed to load', { cause: error }));\n }\n }\n\n /**\n * Sets the Apple Pay version available for the shopper.\n * This code needs to be executed once the Apple Pay SDK is fully loaded\n * @private\n */\n private defineApplePayVersionNumber() {\n if (window.location.protocol !== 'https:') return;\n this.applePayVersionNumber = this.props.version || resolveSupportedVersion(LATEST_APPLE_PAY_VERSION);\n }\n\n /**\n * Sets the configuration/callbacks that pertain to the Apple Pay code overlay/modal.\n * @private\n */\n private configureApplePayWebOptions() {\n if (window.ApplePayWebOptions) {\n const { renderApplePayCodeAs, onApplePayCodeClose } = this.props;\n\n window.ApplePayWebOptions.set({\n renderApplePayCodeAs,\n ...(onApplePayCodeClose && { onApplePayCodeClose })\n });\n }\n }\n\n private startSession() {\n const { onValidateMerchant, onPaymentMethodSelected, onShippingMethodSelected, onShippingContactSelected } = this.props;\n\n const paymentRequest = preparePaymentRequest({\n companyName: this.props.configuration.merchantName,\n countryCode: this.core.options.countryCode,\n ...this.props\n });\n\n const session = new ApplePayService(paymentRequest, {\n version: this.applePayVersionNumber,\n onError: (error: unknown) => {\n this.handleError(\n new AdyenCheckoutError('ERROR', 'ApplePay - Something went wrong on ApplePayService', {\n cause: error\n })\n );\n },\n onCancel: event => {\n this.handleError(new AdyenCheckoutError('CANCEL', 'ApplePay UI dismissed', { cause: event }));\n },\n onPaymentMethodSelected,\n onShippingMethodSelected,\n onShippingContactSelected,\n onValidateMerchant: onValidateMerchant || this.validateMerchant,\n onPaymentAuthorized: (resolve, reject, event) => {\n const billingAddress = formatApplePayContactToAdyenAddressFormat(event.payment.billingContact);\n const deliveryAddress = formatApplePayContactToAdyenAddressFormat(event.payment.shippingContact, true);\n\n this.setState({\n applePayToken: btoa(JSON.stringify(event.payment.token.paymentData)),\n authorizedEvent: event,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.collectOrderTrackingDetailsIfNeeded)\n .then(({ paymentResponse, orderDetails }) => {\n resolve({\n status: ApplePaySession.STATUS_SUCCESS,\n ...(orderDetails && { orderDetails })\n });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n const errors = paymentResponse?.error?.applePayError;\n\n reject({\n status: ApplePaySession.STATUS_FAILURE,\n errors: errors ? (Array.isArray(errors) ? errors : [errors]) : undefined\n });\n\n const responseWithError: RawPaymentResponse = {\n ...paymentResponse,\n error: {\n applePayError: errors\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n }\n });\n\n return new Promise((resolve, reject) => this.props.onClick(resolve, reject))\n .then(() => {\n session.begin();\n })\n .catch(() => ({\n // Swallow exception triggered by onClick reject\n }));\n }\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n *\n * @private\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: ApplePayJS.ApplePayError) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { applePayError: error } };\n return Promise.reject(data);\n });\n }\n\n /**\n * Verify if the 'onOrderTrackingRequest' is provided. If so, triggers the callback expecting an\n * Apple Pay order details back\n *\n * @private\n */\n private async collectOrderTrackingDetailsIfNeeded(\n paymentResponse: PaymentResponseData\n ): Promise<{ orderDetails?: ApplePayPaymentOrderDetails; paymentResponse: PaymentResponseData }> {\n return new Promise<ApplePayPaymentOrderDetails | void>((resolve, reject) => {\n if (!this.props.onOrderTrackingRequest) {\n return resolve();\n }\n\n this.props.onOrderTrackingRequest(resolve, reject);\n })\n .then(orderDetails => {\n return {\n paymentResponse,\n ...(orderDetails && { orderDetails })\n };\n })\n .catch(() => {\n return { paymentResponse };\n });\n }\n\n private async validateMerchant(resolve, reject) {\n const { hostname: domainName } = window.location;\n const { clientKey, configuration, loadingContext, initiative } = this.props;\n const { merchantName, merchantId } = configuration;\n const path = `v1/applePay/sessions?clientKey=${clientKey}`;\n const options = { loadingContext, path };\n const request: ApplePaySessionRequest = {\n displayName: merchantName,\n domainName,\n initiative,\n merchantIdentifier: merchantId\n };\n\n try {\n const response = await httpPost(options, request);\n const decodedData: DecodeObject = base64.decode(response.data);\n if (!decodedData.success) {\n reject('Could not decode Apple Pay session');\n } else {\n const session = JSON.parse(decodedData.data);\n resolve(session);\n }\n } catch (e) {\n reject('Could not get Apple Pay session');\n }\n }\n\n render() {\n if (!this.props.showPayButton) {\n return null;\n }\n\n return (\n <ApplePayButton\n buttonStyle={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonLocale={this.props.buttonLocale}\n onClick={this.submit}\n />\n );\n }\n}\n\nexport default ApplePayElement;\n"],"names":["ApplePayElement","UIElement","formatProps","props","supportedNetworks","brands","length","mapBrands","_object_spread_props","configuration","buttonLocale","i18n","locale","totalPriceLabel","merchantName","formatData","applePayToken","billingAddress","deliveryAddress","this","state","isExpress","_object_spread","paymentMethod","type","subtype","submitAnalytics","analyticsObj","super","isValid","applePayCapabilities","merchantIdentifier","identifier","merchantId","ApplePaySession","sdkLoader","isSdkLoaded","error","AdyenCheckoutError","cause","isAvailable","window","location","protocol","Promise","reject","canMakePayments","resolve","defineApplePayVersionNumber","applePayVersionNumber","version","resolveSupportedVersion","configureApplePayWebOptions","ApplePayWebOptions","renderApplePayCodeAs","onApplePayCodeClose","set","startSession","onValidateMerchant","onPaymentMethodSelected","onShippingMethodSelected","onShippingContactSelected","paymentRequest","preparePaymentRequest","companyName","countryCode","core","options","session","ApplePayService","onError","handleError","onCancel","event","validateMerchant","onPaymentAuthorized","formatApplePayContactToAdyenAddressFormat","payment","billingContact","shippingContact","setState","btoa","JSON","stringify","token","paymentData","authorizedEvent","handleAuthorization","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","collectOrderTrackingDetailsIfNeeded","paymentResponse","orderDetails","status","STATUS_SUCCESS","handleResponse","catch","errors","applePayError","STATUS_FAILURE","Array","isArray","undefined","responseWithError","handleFailedResult","onClick","begin","onAuthorized","data","onOrderTrackingRequest","hostname","domainName","clientKey","loadingContext","initiative","path","request","displayName","response","httpPost","decodedData","base64","decode","success","parse","e","render","showPayButton","h","ApplePayButton","buttonStyle","buttonColor","buttonType","submit","constructor","checkout","_define_property","isInstantPayment","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","bind","ApplePaySdkLoader","load","TxVariants","applepay","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"ApplePay.js","sources":["../../../../src/components/ApplePay/ApplePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport ApplePayButton from './components/ApplePayButton';\nimport ApplePayService from './services/ApplePayService';\nimport base64 from '../../utils/base64';\nimport defaultProps from './defaultProps';\nimport { httpPost } from '../../core/Services/http';\nimport { preparePaymentRequest } from './utils/payment-request';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { DecodeObject } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { ANALYTICS_INSTANT_PAYMENT_BUTTON, ANALYTICS_SELECTED_STR } from '../../core/Analytics/constants';\nimport { resolveSupportedVersion } from './utils/resolve-supported-version';\nimport { formatApplePayContactToAdyenAddressFormat } from './utils/format-applepay-contact-to-adyen-format';\nimport { mapBrands } from './utils/map-adyen-brands-to-applepay-brands';\nimport ApplePaySdkLoader from './services/ApplePaySdkLoader';\nimport { detectInIframe } from '../../utils/detectInIframe';\n\nimport type { SendAnalyticsObject } from '../../core/Analytics/types';\nimport type { ApplePayConfiguration, ApplePayElementData, ApplePayPaymentOrderDetails, ApplePaySessionRequest } from './types';\nimport type { ICore } from '../../core/types';\nimport type { PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\n\nconst LATEST_APPLE_PAY_VERSION = 14;\n\nclass ApplePayElement extends UIElement<ApplePayConfiguration> {\n public static type = TxVariants.applepay;\n\n protected static defaultProps = defaultProps;\n\n private sdkLoader: ApplePaySdkLoader;\n private applePayVersionNumber: number = undefined;\n\n constructor(checkout: ICore, props?: ApplePayConfiguration) {\n super(checkout, props);\n\n const { isExpress, onShippingContactSelected, onShippingMethodSelected } = this.props;\n\n if (isExpress === false && (onShippingContactSelected || onShippingMethodSelected)) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'ApplePay - You must set \"isExpress\" flag to \"true\" in order to use \"onShippingContactSelected\" and/or \"onShippingMethodSelected\" callbacks'\n );\n }\n\n this.startSession = this.startSession.bind(this);\n this.submit = this.submit.bind(this);\n this.validateMerchant = this.validateMerchant.bind(this);\n this.collectOrderTrackingDetailsIfNeeded = this.collectOrderTrackingDetailsIfNeeded.bind(this);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.defineApplePayVersionNumber = this.defineApplePayVersionNumber.bind(this);\n this.configureApplePayWebOptions = this.configureApplePayWebOptions.bind(this);\n\n this.sdkLoader = new ApplePaySdkLoader();\n\n void this.sdkLoader\n .load()\n .then(this.defineApplePayVersionNumber)\n .then(this.configureApplePayWebOptions)\n .catch(error => {\n this.handleError(error);\n });\n }\n\n /**\n * Formats the component props\n */\n protected override formatProps(props: ApplePayConfiguration): ApplePayConfiguration {\n // @ts-ignore TODO: Fix brands prop\n const supportedNetworks = props.brands?.length ? mapBrands(props.brands) : props.supportedNetworks;\n\n return {\n ...props,\n configuration: props.configuration,\n supportedNetworks,\n buttonLocale: props.buttonLocale ?? props.i18n?.locale,\n totalPriceLabel: props.totalPriceLabel || props.configuration?.merchantName,\n renderApplePayCodeAs: props.renderApplePayCodeAs ?? (detectInIframe() ? 'window' : 'modal')\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData(): ApplePayElementData {\n const { applePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: ApplePayElement.type,\n applePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n super.submitAnalytics({ ...analyticsObj }, this.props);\n }\n\n public override submit = (): void => {\n // Analytics\n if (this.props.isInstantPayment) {\n this.submitAnalytics({ type: ANALYTICS_SELECTED_STR, target: ANALYTICS_INSTANT_PAYMENT_BUTTON });\n }\n void this.startSession();\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * This API is only intended for upstreaming or defaulting to Apple Pay, all other scenarios should continue to\n * use canMakePayments(). For Safari browsers, this API will indicate whether there is a card available to make\n * payments. For third-party browsers a new status of paymentCredentialStatusUnknown will be returned. This does\n * not mean there are no cards available, it means the status cannot be determined and as such defaulting\n * and upstreaming should still be considered.\n *\n * {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/4440085-applepaycapabilities}\n * @param merchantIdentifier\n */\n public async applePayCapabilities(merchantIdentifier?: string): Promise<ApplePayJS.PaymentCredentialStatusResponse> {\n const identifier = merchantIdentifier || this.props.configuration.merchantId;\n\n try {\n await this.sdkLoader.isSdkLoaded();\n return await ApplePaySession?.applePayCapabilities(identifier);\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Apple Pay: Error when requesting applePayCapabilities()', { cause: error });\n }\n }\n\n /**\n * Determines if Apple Pay component can be displayed or not\n */\n public override async isAvailable(): Promise<void> {\n if (window.location.protocol !== 'https:') {\n return Promise.reject(new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Trying to start an Apple Pay session from an insecure document'));\n }\n\n try {\n await this.sdkLoader.isSdkLoaded();\n\n if (ApplePaySession?.canMakePayments()) {\n return Promise.resolve();\n }\n\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay is not available on this device'));\n } catch (error) {\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay SDK failed to load', { cause: error }));\n }\n }\n\n /**\n * Sets the Apple Pay version available for the shopper.\n * This code needs to be executed once the Apple Pay SDK is fully loaded\n * @private\n */\n private defineApplePayVersionNumber() {\n if (window.location.protocol !== 'https:') return;\n this.applePayVersionNumber = this.props.version || resolveSupportedVersion(LATEST_APPLE_PAY_VERSION);\n }\n\n /**\n * Sets the configuration/callbacks that pertain to the Apple Pay code overlay/modal.\n * @private\n */\n private configureApplePayWebOptions() {\n if (window.ApplePayWebOptions) {\n const { renderApplePayCodeAs, onApplePayCodeClose } = this.props;\n\n window.ApplePayWebOptions.set({\n renderApplePayCodeAs,\n ...(onApplePayCodeClose && { onApplePayCodeClose })\n });\n }\n }\n\n private startSession() {\n const { onValidateMerchant, onPaymentMethodSelected, onShippingMethodSelected, onShippingContactSelected } = this.props;\n\n const paymentRequest = preparePaymentRequest({\n companyName: this.props.configuration.merchantName,\n countryCode: this.core.options.countryCode,\n ...this.props\n });\n\n const session = new ApplePayService(paymentRequest, {\n version: this.applePayVersionNumber,\n onError: (error: unknown) => {\n this.handleError(\n new AdyenCheckoutError('ERROR', 'ApplePay - Something went wrong on ApplePayService', {\n cause: error\n })\n );\n },\n onCancel: event => {\n this.handleError(new AdyenCheckoutError('CANCEL', 'ApplePay UI dismissed', { cause: event }));\n },\n onPaymentMethodSelected,\n onShippingMethodSelected,\n onShippingContactSelected,\n onValidateMerchant: onValidateMerchant || this.validateMerchant,\n onPaymentAuthorized: (resolve, reject, event) => {\n const billingAddress = formatApplePayContactToAdyenAddressFormat(event.payment.billingContact);\n const deliveryAddress = formatApplePayContactToAdyenAddressFormat(event.payment.shippingContact, true);\n\n this.setState({\n applePayToken: btoa(JSON.stringify(event.payment.token.paymentData)),\n authorizedEvent: event,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.collectOrderTrackingDetailsIfNeeded)\n .then(({ paymentResponse, orderDetails }) => {\n resolve({\n status: ApplePaySession.STATUS_SUCCESS,\n ...(orderDetails && { orderDetails })\n });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n const errors = paymentResponse?.error?.applePayError;\n\n reject({\n status: ApplePaySession.STATUS_FAILURE,\n errors: errors ? (Array.isArray(errors) ? errors : [errors]) : undefined\n });\n\n const responseWithError: RawPaymentResponse = {\n ...paymentResponse,\n error: {\n applePayError: errors\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n }\n });\n\n return new Promise((resolve, reject) => this.props.onClick(resolve, reject))\n .then(() => {\n session.begin();\n })\n .catch(() => ({\n // Swallow exception triggered by onClick reject\n }));\n }\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n *\n * @private\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: ApplePayJS.ApplePayError) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { applePayError: error } };\n return Promise.reject(data);\n });\n }\n\n /**\n * Verify if the 'onOrderTrackingRequest' is provided. If so, triggers the callback expecting an\n * Apple Pay order details back\n *\n * @private\n */\n private async collectOrderTrackingDetailsIfNeeded(\n paymentResponse: PaymentResponseData\n ): Promise<{ orderDetails?: ApplePayPaymentOrderDetails; paymentResponse: PaymentResponseData }> {\n return new Promise<ApplePayPaymentOrderDetails | void>((resolve, reject) => {\n if (!this.props.onOrderTrackingRequest) {\n return resolve();\n }\n\n this.props.onOrderTrackingRequest(resolve, reject);\n })\n .then(orderDetails => {\n return {\n paymentResponse,\n ...(orderDetails && { orderDetails })\n };\n })\n .catch(() => {\n return { paymentResponse };\n });\n }\n\n private async validateMerchant(resolve, reject) {\n const { hostname: domainName } = window.location;\n const { clientKey, configuration, loadingContext, initiative } = this.props;\n const { merchantName, merchantId } = configuration;\n const path = `v1/applePay/sessions?clientKey=${clientKey}`;\n const options = { loadingContext, path };\n const request: ApplePaySessionRequest = {\n displayName: merchantName,\n domainName,\n initiative,\n merchantIdentifier: merchantId\n };\n\n try {\n const response = await httpPost(options, request);\n const decodedData: DecodeObject = base64.decode(response.data);\n if (!decodedData.success) {\n reject('Could not decode Apple Pay session');\n } else {\n const session = JSON.parse(decodedData.data);\n resolve(session);\n }\n } catch (e) {\n reject('Could not get Apple Pay session');\n }\n }\n\n render() {\n if (!this.props.showPayButton) {\n return null;\n }\n\n return (\n <ApplePayButton\n buttonStyle={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonLocale={this.props.buttonLocale}\n onClick={this.submit}\n />\n );\n }\n}\n\nexport default ApplePayElement;\n"],"names":["ApplePayElement","UIElement","formatProps","props","supportedNetworks","brands","length","mapBrands","_object_spread_props","configuration","buttonLocale","i18n","locale","totalPriceLabel","merchantName","renderApplePayCodeAs","detectInIframe","formatData","applePayToken","billingAddress","deliveryAddress","this","state","isExpress","_object_spread","paymentMethod","type","subtype","submitAnalytics","analyticsObj","super","isValid","applePayCapabilities","merchantIdentifier","identifier","merchantId","ApplePaySession","sdkLoader","isSdkLoaded","error","AdyenCheckoutError","cause","isAvailable","window","location","protocol","Promise","reject","canMakePayments","resolve","defineApplePayVersionNumber","applePayVersionNumber","version","resolveSupportedVersion","configureApplePayWebOptions","ApplePayWebOptions","onApplePayCodeClose","set","startSession","onValidateMerchant","onPaymentMethodSelected","onShippingMethodSelected","onShippingContactSelected","paymentRequest","preparePaymentRequest","companyName","countryCode","core","options","session","ApplePayService","onError","handleError","onCancel","event","validateMerchant","onPaymentAuthorized","formatApplePayContactToAdyenAddressFormat","payment","billingContact","shippingContact","setState","btoa","JSON","stringify","token","paymentData","authorizedEvent","handleAuthorization","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","collectOrderTrackingDetailsIfNeeded","paymentResponse","orderDetails","status","STATUS_SUCCESS","handleResponse","catch","errors","applePayError","STATUS_FAILURE","Array","isArray","undefined","responseWithError","handleFailedResult","onClick","begin","onAuthorized","data","onOrderTrackingRequest","hostname","domainName","clientKey","loadingContext","initiative","path","request","displayName","response","httpPost","decodedData","base64","decode","success","parse","e","render","showPayButton","h","ApplePayButton","buttonStyle","buttonColor","buttonType","submit","constructor","checkout","_define_property","isInstantPayment","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","bind","ApplePaySdkLoader","load","TxVariants","applepay","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{inIframe as t}from"../../utils/inIframe.js";const e={isExpress:!1,amount:{currency:"USD",value:0},totalPriceStatus:"final",initiative:"web",merchantCapabilities:["supports3DS"],supportedNetworks:["amex","discover","masterCard","visa"],buttonType:"plain",buttonColor:"black",renderApplePayCodeAs:t()?"window":"modal",onClick:t=>t()};export{e as default};
1
+ const t={isExpress:!1,amount:{currency:"USD",value:0},totalPriceStatus:"final",initiative:"web",merchantCapabilities:["supports3DS"],supportedNetworks:["amex","discover","masterCard","visa"],buttonType:"plain",buttonColor:"black",onClick:t=>t()};export{t as default};
2
2
  //# sourceMappingURL=defaultProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultProps.js","sources":["../../../../src/components/ApplePay/defaultProps.ts"],"sourcesContent":["import { ApplePayConfiguration } from './types';\nimport { inIframe } from '../../utils/inIframe';\n\nconst defaultProps: ApplePayConfiguration = {\n isExpress: false,\n amount: { currency: 'USD', value: 0 },\n totalPriceStatus: 'final',\n initiative: 'web',\n merchantCapabilities: ['supports3DS'],\n supportedNetworks: ['amex', 'discover', 'masterCard', 'visa'],\n buttonType: 'plain',\n buttonColor: 'black',\n renderApplePayCodeAs: inIframe() ? 'window' : 'modal',\n onClick: resolve => resolve()\n};\n\nexport default defaultProps;\n"],"names":["defaultProps","isExpress","amount","currency","value","totalPriceStatus","initiative","merchantCapabilities","supportedNetworks","buttonType","buttonColor","renderApplePayCodeAs","inIframe","onClick","resolve"],"mappings":"mDAGA,MAAMA,EAAsC,CACxCC,WAAW,EACXC,OAAQ,CAAEC,SAAU,MAAOC,MAAO,GAClCC,iBAAkB,QAClBC,WAAY,MACZC,qBAAsB,CAAC,eACvBC,kBAAmB,CAAC,OAAQ,WAAY,aAAc,QACtDC,WAAY,QACZC,YAAa,QACbC,qBAAsBC,IAAa,SAAW,QAC9CC,QAASC,GAAWA"}
1
+ {"version":3,"file":"defaultProps.js","sources":["../../../../src/components/ApplePay/defaultProps.ts"],"sourcesContent":["import { ApplePayConfiguration } from './types';\n\nconst defaultProps: ApplePayConfiguration = {\n isExpress: false,\n amount: { currency: 'USD', value: 0 },\n totalPriceStatus: 'final',\n initiative: 'web',\n merchantCapabilities: ['supports3DS'],\n supportedNetworks: ['amex', 'discover', 'masterCard', 'visa'],\n buttonType: 'plain',\n buttonColor: 'black',\n onClick: resolve => resolve()\n};\n\nexport default defaultProps;\n"],"names":["defaultProps","isExpress","amount","currency","value","totalPriceStatus","initiative","merchantCapabilities","supportedNetworks","buttonType","buttonColor","onClick","resolve"],"mappings":"AAEA,MAAMA,EAAsC,CACxCC,WAAW,EACXC,OAAQ,CAAEC,SAAU,MAAOC,MAAO,GAClCC,iBAAkB,QAClBC,WAAY,MACZC,qBAAsB,CAAC,eACvBC,kBAAmB,CAAC,OAAQ,WAAY,aAAc,QACtDC,WAAY,QACZC,YAAa,QACbC,QAASC,GAAWA"}
@@ -1,2 +1,2 @@
1
- import e from"../helpers/OpenInvoiceContainer/OpenInvoiceContainer.js";import{ATOME_SUPPORTED_COUNTRIES as r,BILLING_ADDRESS_SPECIFICATION as t}from"./config.js";import{TxVariants as n}from"../tx-variants.js";function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){o(e,r,t[r])}))}return e}function s(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}class c extends e{formatProps(e){return s(i({},super.formatProps(i({},e,{visibility:{deliveryAddress:"hidden",companyDetails:"hidden"}}))),{allowedCountries:r,personalDetailsRequiredFields:["firstName","lastName","telephoneNumber"],billingAddressRequiredFields:["country","street","postalCode"],billingAddressSpecification:t})}}o(c,"type",n.atome);export{c as default};
1
+ import e from"../helpers/OpenInvoiceContainer/OpenInvoiceContainer.js";import{BILLING_ADDRESS_SPECIFICATION as r,ATOME_SUPPORTED_COUNTRIES as t}from"./config.js";import{TxVariants as n}from"../tx-variants.js";function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){o(e,r,t[r])}))}return e}function s(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}class c extends e{formatProps(e){return s(i({},super.formatProps(i({},e,{visibility:{deliveryAddress:"hidden",companyDetails:"hidden"}}))),{allowedCountries:t,personalDetailsRequiredFields:["firstName","lastName","telephoneNumber"],billingAddressRequiredFields:["country","street","postalCode"],billingAddressSpecification:r})}}o(c,"type",n.atome);export{c as default};
2
2
  //# sourceMappingURL=Atome.js.map
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as a,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import n from"../../../_virtual/index.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import r from"../../internal/FormFields/Field/Field.js";import c from"../../internal/FormFields/ConsentCheckbox/ConsentCheckbox.js";import{bacsFormatters as i,bacsValidationRules as s}from"./validate.js";import l from"../../../utils/useForm/useForm.js";import d from"../../../core/Context/useImage.js";import u from"../../internal/FormFields/InputText.js";import m from"../../internal/FormFields/InputEmail.js";import b from"../../internal/FormInstruction/FormInstruction.js";import{getErrorMessage as h}from"../../../utils/getErrorMessage.js";import{PREFIX as p}from"../../internal/Icon/constants.js";const k="enter-data",g="confirm-data";function f(f){var N,_;const{i18n:C}=t(),v=d(),{handleChangeFor:y,triggerValidation:I,data:x,valid:E,errors:F,isValid:j}=l({schema:["holderName","bankAccountNumber","bankLocationId","shopperEmail","amountConsentCheckbox","accountConsentCheckbox"],defaultData:f.data,formatters:i,rules:s}),[L,M]=a(k);this.setStatus=M,this.showValidation=I;return o((()=>{f.onChange({data:x,valid:E,errors:F,isValid:j})}),[x,E,F,j]),e("div",{className:n({"adyen-checkout__bacs":!0,"adyen-checkout__bacs--confirm":L===g||"loading"===L})},e(b,null),L==g&&e("div",{className:n({"adyen-checkout__bacs--edit":!0,"adyen-checkout__bacs--edit-dropin":f.isDropin})},e(u,{name:"bacsEdit",className:"adyen-checkout__bacs--edit-button",value:C.get("edit"),"aria-label":C.get("edit"),readonly:!0,onClick:()=>this.setStatus(k)})),e(r,{className:n({"adyen-checkout__bacs--holder-name":!0,"adyen-checkout__field--inactive":L===g||"loading"===L}),label:C.get("bacs.accountHolderName"),errorMessage:!!F.holderName&&C.get("bacs.accountHolderName.invalid"),isValid:E.holderName,name:"accountHolderName",i18n:C},e(u,{name:"bacs.accountHolderName",className:"adyen-checkout__bacs-input--holder-name",placeholder:f.placeholders.holderName,value:x.holderName,"aria-invalid":!E.holderName,"aria-label":C.get("bacs.accountHolderName"),"aria-required":"true",required:!0,readonly:L===g||"loading"===L,autocorrect:"off",onBlur:y("holderName","blur"),onInput:y("holderName","input")})),e("div",{className:"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper"},e(r,{errorMessage:!!F.bankAccountNumber&&C.get("bacs.accountNumber.invalid"),label:C.get("bacs.accountNumber"),className:n({"adyen-checkout__bacs--bank-account-number":!0,"adyen-checkout__field--inactive":L===g||"loading"===L}),classNameModifiers:["col-70"],isValid:E.bankAccountNumber,name:"bankAccountNumber",i18n:C},e(u,{value:x.bankAccountNumber,className:"adyen-checkout__bacs-input--bank-account-number",placeholder:f.placeholders.bankAccountNumber,"aria-invalid":!E.bankAccountNumber,"aria-label":C.get("bacs.accountNumber"),"aria-required":"true",required:!0,readonly:L===g||"loading"===L,autocorrect:"off",onBlur:y("bankAccountNumber","blur"),onInput:y("bankAccountNumber","input")})),e(r,{errorMessage:!!F.bankLocationId&&C.get("bacs.bankLocationId.invalid"),label:C.get("bacs.bankLocationId"),className:n({"adyen-checkout__bacs--bank-location-id":!0,"adyen-checkout__field--inactive":L===g||"loading"===L}),classNameModifiers:["col-30"],isValid:E.bankLocationId,name:"bankLocationId",i18n:C},e(u,{value:x.bankLocationId,className:"adyen-checkout__bacs-input--bank-location-id",placeholder:f.placeholders.bankLocationId,"aria-invalid":!E.bankLocationId,"aria-label":C.get("bacs.bankLocationId"),"aria-required":"true",required:!0,readonly:L===g||"loading"===L,autocorrect:"off",onBlur:y("bankLocationId","blur"),onInput:y("bankLocationId","input")}))),e(r,{errorMessage:h(C,F.shopperEmail,C.get("shopperEmail")),label:C.get("shopperEmail"),className:n({"adyen-checkout__bacs--shopper-email":!0,"adyen-checkout__field--inactive":L===g||"loading"===L}),isValid:E.shopperEmail,name:"emailAddress",i18n:C},e(m,{value:x.shopperEmail,name:"shopperEmail",className:"adyen-checkout__bacs-input--shopper-email",classNameModifiers:["large"],placeholder:f.placeholders.shopperEmail,spellcheck:!1,"aria-invalid":!E.shopperEmail,"aria-label":C.get("shopperEmail"),"aria-required":"true",required:!0,readonly:L===g||"loading"===L,autocorrect:"off",onInput:y("shopperEmail","input"),onBlur:y("shopperEmail","blur")})),L===k&&e(c,{classNameModifiers:["amountConsentCheckbox"],errorMessage:!!F.amountConsentCheckbox,label:C.get("bacs.consent.amount"),onChange:y("amountConsentCheckbox"),checked:!!x.amountConsentCheckbox,i18n:C}),L===k&&e(c,{classNameModifiers:["accountConsentCheckbox"],errorMessage:!!F.accountConsentCheckbox,label:C.get("bacs.consent.account"),onChange:y("accountConsentCheckbox"),checked:!!x.accountConsentCheckbox,i18n:C}),f.showPayButton&&f.payButton({status:L,label:L===k?C.get("continue"):`${C.get("bacs.confirm")} ${(null===(N=f.amount)||void 0===N?void 0:N.value)&&(null===(_=f.amount)||void 0===_?void 0:_.currency)?C.amount(f.amount.value,f.amount.currency):""}`,icon:v({imageFolder:"components/"})(`${p}lock`),onClick:()=>j?L===k?this.setStatus(g):L===g?f.onSubmit():void 0:this.showValidation()}))}f.defaultProps={data:{},placeholders:{}};export{f as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as a,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import n from"../../../_virtual/index.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import r from"../../internal/FormFields/Field/Field.js";import c from"../../internal/FormFields/ConsentCheckbox/ConsentCheckbox.js";import{bacsValidationRules as i,bacsFormatters as s}from"./validate.js";import l from"../../../utils/useForm/useForm.js";import d from"../../../core/Context/useImage.js";import u from"../../internal/FormFields/InputText.js";import m from"../../internal/FormFields/InputEmail.js";import b from"../../internal/FormInstruction/FormInstruction.js";import{getErrorMessage as h}from"../../../utils/getErrorMessage.js";import{PREFIX as p}from"../../internal/Icon/constants.js";const k="enter-data",g="confirm-data";function f(f){var N,_;const{i18n:C}=t(),v=d(),{handleChangeFor:y,triggerValidation:I,data:x,valid:E,errors:F,isValid:j}=l({schema:["holderName","bankAccountNumber","bankLocationId","shopperEmail","amountConsentCheckbox","accountConsentCheckbox"],defaultData:f.data,formatters:s,rules:i}),[L,M]=a(k);this.setStatus=M,this.showValidation=I;return o((()=>{f.onChange({data:x,valid:E,errors:F,isValid:j})}),[x,E,F,j]),e("div",{className:n({"adyen-checkout__bacs":!0,"adyen-checkout__bacs--confirm":L===g||"loading"===L})},e(b,null),L==g&&e("div",{className:n({"adyen-checkout__bacs--edit":!0,"adyen-checkout__bacs--edit-dropin":f.isDropin})},e(u,{name:"bacsEdit",className:"adyen-checkout__bacs--edit-button",value:C.get("edit"),"aria-label":C.get("edit"),readonly:!0,onClick:()=>this.setStatus(k)})),e(r,{className:n({"adyen-checkout__bacs--holder-name":!0,"adyen-checkout__field--inactive":L===g||"loading"===L}),label:C.get("bacs.accountHolderName"),errorMessage:!!F.holderName&&C.get("bacs.accountHolderName.invalid"),isValid:E.holderName,name:"accountHolderName",i18n:C},e(u,{name:"bacs.accountHolderName",className:"adyen-checkout__bacs-input--holder-name",placeholder:f.placeholders.holderName,value:x.holderName,"aria-invalid":!E.holderName,"aria-label":C.get("bacs.accountHolderName"),"aria-required":"true",required:!0,readonly:L===g||"loading"===L,autocorrect:"off",onBlur:y("holderName","blur"),onInput:y("holderName","input")})),e("div",{className:"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper"},e(r,{errorMessage:!!F.bankAccountNumber&&C.get("bacs.accountNumber.invalid"),label:C.get("bacs.accountNumber"),className:n({"adyen-checkout__bacs--bank-account-number":!0,"adyen-checkout__field--inactive":L===g||"loading"===L}),classNameModifiers:["col-70"],isValid:E.bankAccountNumber,name:"bankAccountNumber",i18n:C},e(u,{value:x.bankAccountNumber,className:"adyen-checkout__bacs-input--bank-account-number",placeholder:f.placeholders.bankAccountNumber,"aria-invalid":!E.bankAccountNumber,"aria-label":C.get("bacs.accountNumber"),"aria-required":"true",required:!0,readonly:L===g||"loading"===L,autocorrect:"off",onBlur:y("bankAccountNumber","blur"),onInput:y("bankAccountNumber","input")})),e(r,{errorMessage:!!F.bankLocationId&&C.get("bacs.bankLocationId.invalid"),label:C.get("bacs.bankLocationId"),className:n({"adyen-checkout__bacs--bank-location-id":!0,"adyen-checkout__field--inactive":L===g||"loading"===L}),classNameModifiers:["col-30"],isValid:E.bankLocationId,name:"bankLocationId",i18n:C},e(u,{value:x.bankLocationId,className:"adyen-checkout__bacs-input--bank-location-id",placeholder:f.placeholders.bankLocationId,"aria-invalid":!E.bankLocationId,"aria-label":C.get("bacs.bankLocationId"),"aria-required":"true",required:!0,readonly:L===g||"loading"===L,autocorrect:"off",onBlur:y("bankLocationId","blur"),onInput:y("bankLocationId","input")}))),e(r,{errorMessage:h(C,F.shopperEmail,C.get("shopperEmail")),label:C.get("shopperEmail"),className:n({"adyen-checkout__bacs--shopper-email":!0,"adyen-checkout__field--inactive":L===g||"loading"===L}),isValid:E.shopperEmail,name:"emailAddress",i18n:C},e(m,{value:x.shopperEmail,name:"shopperEmail",className:"adyen-checkout__bacs-input--shopper-email",classNameModifiers:["large"],placeholder:f.placeholders.shopperEmail,spellcheck:!1,"aria-invalid":!E.shopperEmail,"aria-label":C.get("shopperEmail"),"aria-required":"true",required:!0,readonly:L===g||"loading"===L,autocorrect:"off",onInput:y("shopperEmail","input"),onBlur:y("shopperEmail","blur")})),L===k&&e(c,{classNameModifiers:["amountConsentCheckbox"],errorMessage:!!F.amountConsentCheckbox,label:C.get("bacs.consent.amount"),onChange:y("amountConsentCheckbox"),checked:!!x.amountConsentCheckbox,i18n:C}),L===k&&e(c,{classNameModifiers:["accountConsentCheckbox"],errorMessage:!!F.accountConsentCheckbox,label:C.get("bacs.consent.account"),onChange:y("accountConsentCheckbox"),checked:!!x.accountConsentCheckbox,i18n:C}),f.showPayButton&&f.payButton({status:L,label:L===k?C.get("continue"):`${C.get("bacs.confirm")} ${(null===(N=f.amount)||void 0===N?void 0:N.value)&&(null===(_=f.amount)||void 0===_?void 0:_.currency)?C.amount(f.amount.value,f.amount.currency):""}`,icon:v({imageFolder:"components/"})(`${p}lock`),onClick:()=>j?L===k?this.setStatus(g):L===g?f.onSubmit():void 0:this.showValidation()}))}f.defaultProps={data:{},placeholders:{}};export{f as default};
2
2
  //# sourceMappingURL=BacsInput.js.map
@@ -1,2 +1,2 @@
1
- import e from"../helpers/QRLoaderContainer/QRLoaderContainer.js";import{STATUS_INTERVAL as r,COUNTDOWN_MINUTES as t}from"./config.js";import{TxVariants as o}from"../tx-variants.js";function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class a extends e{formatProps(e){return function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){n(e,r,t[r])}))}return e}({delay:r,countdownTime:t,timeToPay:"payme.timeToPay"},super.formatProps(e))}}n(a,"type",o.bcmc_mobile),n(a,"txVariants",[o.bcmc_mobile,o.bcmc_mobile_QR]);export{a as default};
1
+ import e from"../helpers/QRLoaderContainer/QRLoaderContainer.js";import{COUNTDOWN_MINUTES as r,STATUS_INTERVAL as t}from"./config.js";import{TxVariants as o}from"../tx-variants.js";function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}class a extends e{formatProps(e){return function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){n(e,r,t[r])}))}return e}({delay:t,countdownTime:r,timeToPay:"payme.timeToPay"},super.formatProps(e))}}n(a,"type",o.bcmc_mobile),n(a,"txVariants",[o.bcmc_mobile,o.bcmc_mobile_QR]);export{a as default};
2
2
  //# sourceMappingURL=BcmcMobile.js.map
@@ -1,2 +1,2 @@
1
- import e from"../../../internal/SocialSecurityNumberBrazil/validate.js";import{validationRules as r}from"../../../../utils/Validator/defaultRules.js";import{BOLETO_SOCIAL_SECURITY_NUMBER_INVALID as a,SF_ErrorCodes as l}from"../../../../core/Errors/constants.js";const s={socialSecurityNumber:{validate:e,errorMessage:a,modes:["blur"]},shopperEmail:r.emailRule,default:{validate:e=>!!e&&e.length>0,errorMessage:l.ERROR_MSG_INVALID_FIELD,modes:["blur"]},firstName:{validate:e=>!!e&&e.length>0,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:e=>!!e&&e.length>0,errorMessage:"lastName.invalid",modes:["blur"]}};export{s as boletoValidationRules};
1
+ import e from"../../../internal/SocialSecurityNumberBrazil/validate.js";import{validationRules as r}from"../../../../utils/Validator/defaultRules.js";import{SF_ErrorCodes as a,BOLETO_SOCIAL_SECURITY_NUMBER_INVALID as l}from"../../../../core/Errors/constants.js";const s={socialSecurityNumber:{validate:e,errorMessage:l,modes:["blur"]},shopperEmail:r.emailRule,default:{validate:e=>!!e&&e.length>0,errorMessage:a.ERROR_MSG_INVALID_FIELD,modes:["blur"]},firstName:{validate:e=>!!e&&e.length>0,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:e=>!!e&&e.length>0,errorMessage:"lastName.invalid",modes:["blur"]}};export{s as boletoValidationRules};
2
2
  //# sourceMappingURL=validate.js.map
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as r}from"../../../../external/preact/dist/preact.js";import{useRef as t,useMemo as o,useState as n,useCallback as s,useEffect as a}from"../../../../external/preact/hooks/dist/hooks.js";import l from"../../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import i from"./defaultProps.js";import{AddressModeOptions as d}from"./types.js";import{ENCRYPTED_CARD_NUMBER as u,DATE_POLICY_REQUIRED as c,CVC_POLICY_REQUIRED as m}from"../../../internal/SecuredFields/lib/constants.js";import{cardInputFormatters as p,cardInputValidationRules as b,getRuleByNameAndMode as f}from"./validate.js";import y from"../../../internal/SecuredFields/binLookup/extensions.js";import h from"../../../../utils/useForm/useForm.js";import{handlePartialAddressMode as S,extractPropsForCardFields as N,extractPropsForSFP as g,getLayout as A}from"./utils.js";import v from"../../../internal/Address/Specifications.js";import{StoredCardFieldsWrapper as j}from"./components/StoredCardFieldsWrapper.js";import{CardFieldsWrapper as O}from"./components/CardFieldsWrapper.js";import{getAutoJumpHandler as F,getFocusHandler as P,getAddressHandler as w}from"./handlers.js";import C from"../../../../_virtual/index.js";import{getPartialAddressValidationRules as k}from"../../../internal/Address/validate.js";import R from"../../../../core/Context/useImage.js";import{getArrayDifferences as x}from"../../../../utils/arrayUtils.js";import I from"../../../internal/FormInstruction/FormInstruction.js";import{PREFIX as B}from"../../../internal/Icon/constants.js";import E from"./useSRPanelForCardInputErrors.js";function V(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function D(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){V(e,r,t[r])}))}return e}function q(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}const M=i=>{var V,M;const _=t(null),L=t(!1),T=R(),K=t(null),H=e=>{K.current=e},U=t({});Object.keys(U.current).length||i.setComponentRef(U.current);const z=t(0),W=t(!1),$=o((()=>new v(i.specifications)),[i.specifications]);U.current.sfp=_;const[G,J]=n("ready"),[Q,X]=n({}),[Y,Z]=n(D({},i.holderNameRequired&&{holderName:!1}));var ee;const[re,te]=n(D({},i.hasHolderName&&{holderName:null!==(ee=i.data.holderName)&&void 0!==ee?ee:""})),[oe,ne]=n(""),[se,ae]=n(!1),[le,ie]=n(c),[de,ue]=n(m),[ce,me]=n(null),[pe,be]=n([]),[fe,ye]=n(i.storedPaymentMethodId?i.brand:""),he=i.billingAddressMode!==d.none&&i.billingAddressRequired,Se=S(i.billingAddressMode),Ne=t(Se&&(null===(M=i.data)||void 0===M||null===(V=M.billingAddress)||void 0===V?void 0:V.country)),[ge,Ae]=n(!1),[ve,je]=n(he?i.data.billingAddress:null),[Oe,Fe]=n(!1),[Pe,we]=n(""),[Ce,ke]=n({value:null}),[Re,xe]=n(null),[Ie,Be]=n("card"),{handleChangeFor:Ee,triggerValidation:Ve,data:De,valid:qe,errors:Me,setSchema:_e,setData:Le,setValid:Te,setErrors:Ke}=h({schema:[],defaultData:i.data,formatters:p,rules:b}),He=!!Object.keys(i.installmentOptions).length&&"debit"!==i.fundingSource;var Ue;const ze=null===(Ue=i.showInstallmentAmounts)||void 0===Ue||Ue,We="kr"===(null!=ce?ce:i.countryCode),$e=i.configuration.koreanAuthenticationRequired&&We,Ge=Oe&&"auto"===i.configuration.socialSecurityNumberMode||"show"===i.configuration.socialSecurityNumberMode,Je=(e,r)=>{i.onFocus({fieldType:e,event:r})},Qe=(e,r)=>{i.onBlur({fieldType:e,event:r})},Xe=s((e=>{Be(e.brand),i.onBrand(e)}),[]),Ye=P(ne,Je,Qe),Ze=()=>A(D({props:i,showKCP:$e,showBrazilianSSN:Ge},i.billingAddressRequired&&{countrySpecificSchemas:$.getAddressSchemaForCountry(null==ve?void 0:ve.country),billingAddressRequiredFields:i.billingAddressRequiredFields})),er=s((e=>{const r="webInternalElement"!==e.fieldType?e.fieldType:e.name;xe(r)}),[]),rr=w(Le,Te,Ke),tr=F(W,_,Ze()),or=o((()=>y(i,{sfp:_},{dualBrandSelectElements:pe,setDualBrandSelectElements:be,setSelectedBrandValue:ye,issuingCountryCode:ce,setIssuingCountryCode:me},z)),[pe,ce]);U.current.showValidation=()=>{L.current=!0,null==ar||ar(),_.current.showValidation(),Ve(["holderName","socialSecurityNumber","taxNumber"]),(null==K?void 0:K.current)&&K.current.showValidation()},U.current.processBinLookupResponse=(e,r)=>{or.processBinLookup(e,r)},U.current.setStatus=J,a((()=>(U.current.setFocusOn=_.current.setFocusOn,U.current.updateStyles=_.current.updateStyles,U.current.handleUnsupportedCard=_.current.handleUnsupportedCard,()=>{_.current.destroy()})),[]),a((()=>{const e=[...i.hasHolderName?["holderName"]:[],...Ge?["socialSecurityNumber"]:[],...$e?["taxNumber"]:[],...he?["billingAddress"]:[]];_e(e)}),[i.hasHolderName,Ge,$e]),a((()=>{var e;te(q(D({},re),{holderName:null!==(e=De.holderName)&&void 0!==e?e:"",taxNumber:De.taxNumber})),we(De.socialSecurityNumber),he&&je(D({},De.billingAddress)),Z(q(D({},Y),{holderName:!i.holderNameRequired||qe.holderName,socialSecurityNumber:!!qe.socialSecurityNumber&&qe.socialSecurityNumber,taxNumber:!!qe.taxNumber&&qe.taxNumber,billingAddress:!!qe.billingAddress&&qe.billingAddress}));const r=!!Me.billingAddress&&Object.entries(Me.billingAddress).reduce(((e,[,r])=>e||null!=r),!1);X(q(D({},Q),{holderName:i.holderNameRequired&&Me.holderName?Me.holderName:null,socialSecurityNumber:Ge&&Me.socialSecurityNumber?Me.socialSecurityNumber:null,taxNumber:$e&&Me.taxNumber?Me.taxNumber:null,billingAddress:he&&r?Me.billingAddress:null}))}),[De,qe,Me]);const{sortedErrorList:nr,previousSortedErrors:sr,clearSRPanel:ar}=E({errors:Q,props:i,isValidating:L,retrieveLayout:Ze,specifications:$,billingAddress:ve,sfp:_});if(nr){const e=x(nr,sr,"field");null==e||e.forEach((e=>{const r={fieldType:e.field,errorCode:e.errorCode};i.onValidationErrorAnalytics(r)}))}a((()=>{const e=Y.holderName,r=se,t=!he||Y.billingAddress,o=!$e||!!Y.taxNumber&&!!Y.encryptedPassword,n=!Ge||!!Y.socialSecurityNumber,s=r&&e&&t&&o&&n,a=_.current.mapErrorsToValidationRuleResult(),l=D({},Q,a);i.onChange({data:re,valid:Y,errors:l,isValid:s,billingAddress:ve,selectedBrandValue:fe,storePaymentMethod:ge,socialSecurityNumber:Pe,installments:Ce})}),[re,Y,Q,fe,ge,Ce]);const lr=i.storedPaymentMethodId?j:O;return e(r,null,e(l,q(D({ref:_},g(i)),{styles:D({},i.styles),koreanAuthenticationRequired:i.configuration.koreanAuthenticationRequired,hasKoreanFields:!(!i.configuration.koreanAuthenticationRequired||"kr"!==i.countryCode),onChange:(e,r)=>{if(e.autoCompleteName){if(!i.hasHolderName)return;const r=f("holderName","blur")(e.autoCompleteName)?e.autoCompleteName:null;r&&(Le("holderName",r),Te("holderName",!0),Ke("holderName",null))}else i.autoFocus&&z.current>0&&"handleOnFieldValid"===(null==r?void 0:r.event)&&(null==r?void 0:r.fieldType)===u&&e.valid.encryptedCardNumber&&tr(),te(D({},re,e.data)),X(D({},Q,e.errors)),Z(D({},Y,e.valid)),ae(e.isSfpValid),ue(e.cvcPolicy),Fe(e.showSocialSecurityNumber),ie(e.expiryDatePolicy)},onBrand:Xe,onFocus:Ye,type:i.brand,disableIOSArrowKeys:i.disableIOSArrowKeys?er:null,render:({setRootNode:r,setFocusOn:t},o)=>{var n;return e("div",{ref:r,className:C({"adyen-checkout__card-input":!0,"adyen-checkout-card-input__wrapper":!0,[`adyen-checkout__card-input--${null!==(n=i.fundingSource)&&void 0!==n?n:"credit"}`]:!0,"adyen-checkout__card-input--loading":"loading"===G}),role:"form"},e(I,null),e(lr,q(D({},N(i)),{data:re,valid:Y,errors:Q,handleChangeFor:Ee,focusedElement:oe,setFocusOn:t,sfpState:o,cvcPolicy:de,hasInstallments:He,showAmountsInInstallments:ze,handleInstallments:ke,brandsIcons:i.brandsIcons,formData:De,formErrors:Me,formValid:qe,expiryDatePolicy:le,dualBrandSelectElements:pe,extensions:or,selectedBrandValue:fe,showKCP:$e,showBrazilianSSN:Ge,socialSecurityNumber:Pe,handleOnStoreDetails:Ae,setAddressRef:H,billingAddress:ve,billingAddressValidationRules:Se&&k(Ne.current),partialAddressSchema:Se,handleAddress:rr,onAddressLookup:i.onAddressLookup,onAddressSelected:i.onAddressSelected,addressSearchDebounceMs:i.addressSearchDebounceMs,iOSFocusedField:Re,onFieldFocusAnalytics:Je,onFieldBlurAnalytics:Qe})))}})),i.showPayButton&&i.payButton({status:G,variant:i.isPayButtonPrimaryVariant?"primary":"secondary",icon:T({imageFolder:"components/"})(`${B}lock`)}))};M.defaultProps=i;export{M as default};
1
+ import{createElement as e,Fragment as r}from"../../../../external/preact/dist/preact.js";import{useRef as t,useMemo as o,useState as n,useCallback as s,useEffect as a}from"../../../../external/preact/hooks/dist/hooks.js";import l from"../../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import i from"./defaultProps.js";import{AddressModeOptions as d}from"./types.js";import{DATE_POLICY_REQUIRED as u,CVC_POLICY_REQUIRED as c,ENCRYPTED_CARD_NUMBER as m}from"../../../internal/SecuredFields/lib/constants.js";import{cardInputValidationRules as p,cardInputFormatters as b,getRuleByNameAndMode as f}from"./validate.js";import y from"../../../internal/SecuredFields/binLookup/extensions.js";import h from"../../../../utils/useForm/useForm.js";import{handlePartialAddressMode as S,extractPropsForSFP as N,getLayout as g,extractPropsForCardFields as A}from"./utils.js";import v from"../../../internal/Address/Specifications.js";import{StoredCardFieldsWrapper as j}from"./components/StoredCardFieldsWrapper.js";import{CardFieldsWrapper as O}from"./components/CardFieldsWrapper.js";import{getAutoJumpHandler as F,getFocusHandler as P,getAddressHandler as w}from"./handlers.js";import C from"../../../../_virtual/index.js";import{getPartialAddressValidationRules as k}from"../../../internal/Address/validate.js";import R from"../../../../core/Context/useImage.js";import{getArrayDifferences as x}from"../../../../utils/arrayUtils.js";import I from"../../../internal/FormInstruction/FormInstruction.js";import{PREFIX as B}from"../../../internal/Icon/constants.js";import E from"./useSRPanelForCardInputErrors.js";function V(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function D(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){V(e,r,t[r])}))}return e}function q(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}const M=i=>{var V,M;const _=t(null),L=t(!1),T=R(),K=t(null),H=e=>{K.current=e},U=t({});Object.keys(U.current).length||i.setComponentRef(U.current);const z=t(0),W=t(!1),$=o((()=>new v(i.specifications)),[i.specifications]);U.current.sfp=_;const[G,J]=n("ready"),[Q,X]=n({}),[Y,Z]=n(D({},i.holderNameRequired&&{holderName:!1}));var ee;const[re,te]=n(D({},i.hasHolderName&&{holderName:null!==(ee=i.data.holderName)&&void 0!==ee?ee:""})),[oe,ne]=n(""),[se,ae]=n(!1),[le,ie]=n(u),[de,ue]=n(c),[ce,me]=n(null),[pe,be]=n([]),[fe,ye]=n(i.storedPaymentMethodId?i.brand:""),he=i.billingAddressMode!==d.none&&i.billingAddressRequired,Se=S(i.billingAddressMode),Ne=t(Se&&(null===(M=i.data)||void 0===M||null===(V=M.billingAddress)||void 0===V?void 0:V.country)),[ge,Ae]=n(!1),[ve,je]=n(he?i.data.billingAddress:null),[Oe,Fe]=n(!1),[Pe,we]=n(""),[Ce,ke]=n({value:null}),[Re,xe]=n(null),[Ie,Be]=n("card"),{handleChangeFor:Ee,triggerValidation:Ve,data:De,valid:qe,errors:Me,setSchema:_e,setData:Le,setValid:Te,setErrors:Ke}=h({schema:[],defaultData:i.data,formatters:b,rules:p}),He=!!Object.keys(i.installmentOptions).length&&"debit"!==i.fundingSource;var Ue;const ze=null===(Ue=i.showInstallmentAmounts)||void 0===Ue||Ue,We="kr"===(null!=ce?ce:i.countryCode),$e=i.configuration.koreanAuthenticationRequired&&We,Ge=Oe&&"auto"===i.configuration.socialSecurityNumberMode||"show"===i.configuration.socialSecurityNumberMode,Je=(e,r)=>{i.onFocus({fieldType:e,event:r})},Qe=(e,r)=>{i.onBlur({fieldType:e,event:r})},Xe=s((e=>{Be(e.brand),i.onBrand(e)}),[]),Ye=P(ne,Je,Qe),Ze=()=>g(D({props:i,showKCP:$e,showBrazilianSSN:Ge},i.billingAddressRequired&&{countrySpecificSchemas:$.getAddressSchemaForCountry(null==ve?void 0:ve.country),billingAddressRequiredFields:i.billingAddressRequiredFields})),er=s((e=>{const r="webInternalElement"!==e.fieldType?e.fieldType:e.name;xe(r)}),[]),rr=w(Le,Te,Ke),tr=F(W,_,Ze()),or=o((()=>y(i,{sfp:_},{dualBrandSelectElements:pe,setDualBrandSelectElements:be,setSelectedBrandValue:ye,issuingCountryCode:ce,setIssuingCountryCode:me},z)),[pe,ce]);U.current.showValidation=()=>{L.current=!0,null==ar||ar(),_.current.showValidation(),Ve(["holderName","socialSecurityNumber","taxNumber"]),(null==K?void 0:K.current)&&K.current.showValidation()},U.current.processBinLookupResponse=(e,r)=>{or.processBinLookup(e,r)},U.current.setStatus=J,a((()=>(U.current.setFocusOn=_.current.setFocusOn,U.current.updateStyles=_.current.updateStyles,U.current.handleUnsupportedCard=_.current.handleUnsupportedCard,()=>{_.current.destroy()})),[]),a((()=>{const e=[...i.hasHolderName?["holderName"]:[],...Ge?["socialSecurityNumber"]:[],...$e?["taxNumber"]:[],...he?["billingAddress"]:[]];_e(e)}),[i.hasHolderName,Ge,$e]),a((()=>{var e;te(q(D({},re),{holderName:null!==(e=De.holderName)&&void 0!==e?e:"",taxNumber:De.taxNumber})),we(De.socialSecurityNumber),he&&je(D({},De.billingAddress)),Z(q(D({},Y),{holderName:!i.holderNameRequired||qe.holderName,socialSecurityNumber:!!qe.socialSecurityNumber&&qe.socialSecurityNumber,taxNumber:!!qe.taxNumber&&qe.taxNumber,billingAddress:!!qe.billingAddress&&qe.billingAddress}));const r=!!Me.billingAddress&&Object.entries(Me.billingAddress).reduce(((e,[,r])=>e||null!=r),!1);X(q(D({},Q),{holderName:i.holderNameRequired&&Me.holderName?Me.holderName:null,socialSecurityNumber:Ge&&Me.socialSecurityNumber?Me.socialSecurityNumber:null,taxNumber:$e&&Me.taxNumber?Me.taxNumber:null,billingAddress:he&&r?Me.billingAddress:null}))}),[De,qe,Me]);const{sortedErrorList:nr,previousSortedErrors:sr,clearSRPanel:ar}=E({errors:Q,props:i,isValidating:L,retrieveLayout:Ze,specifications:$,billingAddress:ve,sfp:_});if(nr){const e=x(nr,sr,"field");null==e||e.forEach((e=>{const r={fieldType:e.field,errorCode:e.errorCode};i.onValidationErrorAnalytics(r)}))}a((()=>{const e=Y.holderName,r=se,t=!he||Y.billingAddress,o=!$e||!!Y.taxNumber&&!!Y.encryptedPassword,n=!Ge||!!Y.socialSecurityNumber,s=r&&e&&t&&o&&n,a=_.current.mapErrorsToValidationRuleResult(),l=D({},Q,a);i.onChange({data:re,valid:Y,errors:l,isValid:s,billingAddress:ve,selectedBrandValue:fe,storePaymentMethod:ge,socialSecurityNumber:Pe,installments:Ce})}),[re,Y,Q,fe,ge,Ce]);const lr=i.storedPaymentMethodId?j:O;return e(r,null,e(l,q(D({ref:_},N(i)),{styles:D({},i.styles),koreanAuthenticationRequired:i.configuration.koreanAuthenticationRequired,hasKoreanFields:!(!i.configuration.koreanAuthenticationRequired||"kr"!==i.countryCode),onChange:(e,r)=>{if(e.autoCompleteName){if(!i.hasHolderName)return;const r=f("holderName","blur")(e.autoCompleteName)?e.autoCompleteName:null;r&&(Le("holderName",r),Te("holderName",!0),Ke("holderName",null))}else i.autoFocus&&z.current>0&&"handleOnFieldValid"===(null==r?void 0:r.event)&&(null==r?void 0:r.fieldType)===m&&e.valid.encryptedCardNumber&&tr(),te(D({},re,e.data)),X(D({},Q,e.errors)),Z(D({},Y,e.valid)),ae(e.isSfpValid),ue(e.cvcPolicy),Fe(e.showSocialSecurityNumber),ie(e.expiryDatePolicy)},onBrand:Xe,onFocus:Ye,type:i.brand,disableIOSArrowKeys:i.disableIOSArrowKeys?er:null,render:({setRootNode:r,setFocusOn:t},o)=>{var n;return e("div",{ref:r,className:C({"adyen-checkout__card-input":!0,"adyen-checkout-card-input__wrapper":!0,[`adyen-checkout__card-input--${null!==(n=i.fundingSource)&&void 0!==n?n:"credit"}`]:!0,"adyen-checkout__card-input--loading":"loading"===G}),role:"form"},e(I,null),e(lr,q(D({},A(i)),{data:re,valid:Y,errors:Q,handleChangeFor:Ee,focusedElement:oe,setFocusOn:t,sfpState:o,cvcPolicy:de,hasInstallments:He,showAmountsInInstallments:ze,handleInstallments:ke,brandsIcons:i.brandsIcons,formData:De,formErrors:Me,formValid:qe,expiryDatePolicy:le,dualBrandSelectElements:pe,extensions:or,selectedBrandValue:fe,showKCP:$e,showBrazilianSSN:Ge,socialSecurityNumber:Pe,handleOnStoreDetails:Ae,setAddressRef:H,billingAddress:ve,billingAddressValidationRules:Se&&k(Ne.current),partialAddressSchema:Se,handleAddress:rr,onAddressLookup:i.onAddressLookup,onAddressSelected:i.onAddressSelected,addressSearchDebounceMs:i.addressSearchDebounceMs,iOSFocusedField:Re,onFieldFocusAnalytics:Je,onFieldBlurAnalytics:Qe})))}})),i.showPayButton&&i.payButton({status:G,variant:i.isPayButtonPrimaryVariant?"primary":"secondary",icon:T({imageFolder:"components/"})(`${B}lock`)}))};M.defaultProps=i;export{M as default};
2
2
  //# sourceMappingURL=CardInput.js.map
@@ -1,2 +1,2 @@
1
- import{createElement as r}from"../../../../../external/preact/dist/preact.js";import{getCardImageUrl as o,getFullBrandName as t}from"../utils.js";import a from"../../../../../core/Context/useImage.js";import{useState as e}from"../../../../../external/preact/hooks/dist/hooks.js";import n from"../../../../../_virtual/index.js";function c({brand:c,brandsConfiguration:i={}}){var d;const s=a(),u="card"===c?"nocard":c;var m;const l=null!==(m=null===(d=i[c])||void 0===d?void 0:d.icon)&&void 0!==m?m:o(u,s),[p,_]=e(!1),f=n({"adyen-checkout-card-input__icon":!0,"adyen-checkout__card__cardNumber__brandIcon":!0,"adyen-checkout-card-input__icon--hidden":!p});return r("img",{className:f,onLoad:()=>{_(!0)},onError:()=>{_(!1)},alt:t(c),src:l})}export{c as default};
1
+ import{createElement as o}from"../../../../../external/preact/dist/preact.js";import{getCardImageUrl as r,getFullBrandName as t}from"../utils.js";import a from"../../../../../core/Context/useImage.js";import{useState as n}from"../../../../../external/preact/hooks/dist/hooks.js";import e from"../../../../../_virtual/index.js";function c({brand:c,brandsConfiguration:i={},onClick:d}){var s;const u=a(),m="card"===c?"nocard":c;var l;const p=null!==(l=null===(s=i[c])||void 0===s?void 0:s.icon)&&void 0!==l?l:r(m,u),[_,f]=n(!1),k=e({"adyen-checkout-card-input__icon":!0,"adyen-checkout__card__cardNumber__brandIcon":!0,"adyen-checkout-card-input__icon--hidden":!_});return o("img",{className:k,onLoad:()=>{f(!0)},onError:()=>{f(!1)},alt:t(c),src:p,onClick:d})}export{c as default};
2
2
  //# sourceMappingURL=BrandIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrandIcon.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/BrandIcon.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { getCardImageUrl, getFullBrandName } from '../utils';\nimport { BrandIconProps } from './types';\nimport useImage from '../../../../../core/Context/useImage';\nimport { useState } from 'preact/hooks';\nimport classNames from 'classnames';\n\nexport default function BrandIcon({ brand, brandsConfiguration = {} }: BrandIconProps) {\n const getImage = useImage();\n const imageName = brand === 'card' ? 'nocard' : brand;\n const imageUrl = brandsConfiguration[brand]?.icon ?? getCardImageUrl(imageName, getImage);\n\n const [hasLoaded, setHasLoaded] = useState(false);\n\n const handleError = () => {\n setHasLoaded(false);\n };\n\n const handleLoad = () => {\n setHasLoaded(true);\n };\n\n const fieldClassnames = classNames({\n 'adyen-checkout-card-input__icon': true,\n 'adyen-checkout__card__cardNumber__brandIcon': true,\n 'adyen-checkout-card-input__icon--hidden': !hasLoaded\n });\n\n return <img className={fieldClassnames} onLoad={handleLoad} onError={handleError} alt={getFullBrandName(brand)} src={imageUrl} />;\n}\n"],"names":["BrandIcon","brand","brandsConfiguration","getImage","useImage","imageName","imageUrl","icon","getCardImageUrl","hasLoaded","setHasLoaded","useState","fieldClassnames","classNames","h","img","className","onLoad","onError","alt","getFullBrandName","src"],"mappings":"uUAOe,SAASA,GAAUC,MAAEA,EAAKC,oBAAEA,EAAsB,CAAE,IAG9CA,IAAAA,EAFjB,MAAMC,EAAWC,IACXC,EAAsB,SAAVJ,EAAmB,SAAWA,EAC/BC,IAAAA,EAAjB,MAAMI,EAA2C,QAAhCJ,EAAAA,QAAAA,EAAAA,EAAoBD,UAApBC,IAAAA,OAAAA,EAAAA,EAA4BK,YAA5BL,IAAAA,EAAAA,EAAoCM,EAAgBH,EAAWF,IAEzEM,EAAWC,GAAgBC,GAAS,GAUrCC,EAAkBC,EAAW,CAC/B,mCAAmC,EACnC,+CAA+C,EAC/C,2CAA4CJ,IAGhD,OAAOK,EAACC,MAAAA,CAAIC,UAAWJ,EAAiBK,OAVrB,KACfP,GAAa,EAAA,EAS2CQ,QAdxC,KAChBR,GAAa,EAAA,EAaiES,IAAKC,EAAiBnB,GAAQoB,IAAKf,GACzH"}
1
+ {"version":3,"file":"BrandIcon.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/BrandIcon.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { getCardImageUrl, getFullBrandName } from '../utils';\nimport { BrandIconProps } from './types';\nimport useImage from '../../../../../core/Context/useImage';\nimport { useState } from 'preact/hooks';\nimport classNames from 'classnames';\n\nexport default function BrandIcon({ brand, brandsConfiguration = {}, onClick }: BrandIconProps) {\n const getImage = useImage();\n const imageName = brand === 'card' ? 'nocard' : brand;\n const imageUrl = brandsConfiguration[brand]?.icon ?? getCardImageUrl(imageName, getImage);\n\n const [hasLoaded, setHasLoaded] = useState(false);\n\n const handleError = () => {\n setHasLoaded(false);\n };\n\n const handleLoad = () => {\n setHasLoaded(true);\n };\n\n const fieldClassnames = classNames({\n 'adyen-checkout-card-input__icon': true,\n 'adyen-checkout__card__cardNumber__brandIcon': true,\n 'adyen-checkout-card-input__icon--hidden': !hasLoaded\n });\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions\n <img className={fieldClassnames} onLoad={handleLoad} onError={handleError} alt={getFullBrandName(brand)} src={imageUrl} onClick={onClick} />\n );\n}\n"],"names":["BrandIcon","brand","brandsConfiguration","onClick","getImage","useImage","imageName","imageUrl","icon","getCardImageUrl","hasLoaded","setHasLoaded","useState","fieldClassnames","classNames","h","img","className","onLoad","onError","alt","getFullBrandName","src"],"mappings":"uUAOe,SAASA,GAAUC,MAAEA,EAAKC,oBAAEA,EAAsB,CAAE,EAAAC,QAAEA,IAGhDD,IAAAA,EAFjB,MAAME,EAAWC,IACXC,EAAsB,SAAVL,EAAmB,SAAWA,EAC/BC,IAAAA,EAAjB,MAAMK,EAA2C,QAAhCL,EAAAA,QAAAA,EAAAA,EAAoBD,UAApBC,IAAAA,OAAAA,EAAAA,EAA4BM,YAA5BN,IAAAA,EAAAA,EAAoCO,EAAgBH,EAAWF,IAEzEM,EAAWC,GAAgBC,GAAS,GAUrCC,EAAkBC,EAAW,CAC/B,mCAAmC,EACnC,+CAA+C,EAC/C,2CAA4CJ,IAGhD,OAEIK,EAACC,MAAAA,CAAIC,UAAWJ,EAAiBK,OAZlB,KACfP,GAAa,EAAA,EAWwCQ,QAhBrC,KAChBR,GAAa,EAAA,EAe8DS,IAAKC,EAAiBpB,GAAQqB,IAAKf,EAAUJ,QAASA,GAEzI"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import o from"./CVCHint.js";import i from"../../../../internal/FormFields/Field/Field.js";import{useCoreContext as r}from"../../../../../core/Context/CoreProvider.js";import{CVC_POLICY_HIDDEN as a,CVC_POLICY_OPTIONAL as c,ENCRYPTED_SECURITY_CODE as l,CVC_POLICY_REQUIRED as n}from"../../../../internal/SecuredFields/lib/constants.js";import d from"./DataSfSpan.js";import{alternativeLabelContent as s}from"./FieldLabelAlternative.js";function u(u){const{label:_,onFocusField:m=()=>{},error:f="",className:p="",classNameModifiers:y=[],focused:C,filled:h,isValid:x,frontCVC:F=!1,cvcPolicy:v=n,showContextualElement:b,contextualText:k}=u,{i18n:j}=r(),V=t(p,{"adyen-checkout__field__cvc":!0,"adyen-checkout__card__cvc__input--hidden":v===a,"adyen-checkout__field__cvc--optional":v===c}),N=t({"adyen-checkout__input":!0,"adyen-checkout__input--small":!0,"adyen-checkout__card__cvc__input":!0,"adyen-checkout__input--error":f,"adyen-checkout__input--focus":C,"adyen-checkout__input--valid":x}),T=v!==c?_:j.get("creditCard.securityCode.label.optional"),E=`${T} ${k}`;return e(i,{label:T,focused:C,filled:h,classNameModifiers:[...y,"securityCode"],onFocusField:()=>m(l),className:V,errorMessage:f,isValid:x,dir:"ltr",name:l,i18n:j,contextVisibleToScreenReader:!1,useLabelElement:!1,renderAlternativeToLabel:s,showContextualElement:b,contextualText:k},e(d,{encryptedFieldType:l,className:N}),e(o,{frontCVC:F,fieldLabel:E}))}export{u as default};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import o from"./CVCHint.js";import i from"../../../../internal/FormFields/Field/Field.js";import{useCoreContext as r}from"../../../../../core/Context/CoreProvider.js";import{CVC_POLICY_REQUIRED as a,CVC_POLICY_OPTIONAL as c,CVC_POLICY_HIDDEN as l,ENCRYPTED_SECURITY_CODE as n}from"../../../../internal/SecuredFields/lib/constants.js";import d from"./DataSfSpan.js";import{alternativeLabelContent as s}from"./FieldLabelAlternative.js";function u(u){const{label:_,onFocusField:m=()=>{},error:f="",className:p="",classNameModifiers:y=[],focused:C,filled:h,isValid:x,frontCVC:F=!1,cvcPolicy:k=a,showContextualElement:v,contextualText:b}=u,{i18n:j}=r(),V=t(p,{"adyen-checkout__field__cvc":!0,"adyen-checkout__card__cvc__input--hidden":k===l,"adyen-checkout__field__cvc--optional":k===c}),N=t({"adyen-checkout__input":!0,"adyen-checkout__input--small":!0,"adyen-checkout__card__cvc__input":!0,"adyen-checkout__input--error":f,"adyen-checkout__input--focus":C,"adyen-checkout__input--valid":x}),T=k!==c?_:j.get("creditCard.securityCode.label.optional"),E=`${T} ${b}`;return e(i,{label:T,focused:C,filled:h,classNameModifiers:[...y,"securityCode"],onFocusField:()=>m(n),className:V,errorMessage:f,isValid:x,dir:"ltr",name:n,i18n:j,contextVisibleToScreenReader:!1,useLabelElement:!1,renderAlternativeToLabel:s,showContextualElement:v,contextualText:b},e(d,{encryptedFieldType:n,className:N}),e(o,{frontCVC:F,fieldLabel:E,onClick:()=>{m(n)}}))}export{u as default};
2
2
  //# sourceMappingURL=CVC.js.map