@adyen/adyen-web 6.8.0 → 6.10.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 (440) hide show
  1. package/dist/cjs/adyen.css +21 -17
  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 +265 -71
  6. package/dist/es/_virtual/index.js +1 -1
  7. package/dist/es/_virtual/index2.js +2 -0
  8. package/dist/es/_virtual/index2.js.map +1 -0
  9. package/dist/es/adyen.css +21 -17
  10. package/dist/es/adyen.css.map +1 -1
  11. package/dist/es/components/Ach/components/AchInput/AchInput.js +1 -1
  12. package/dist/es/components/Ach/components/AchInput/AchInput.js.map +1 -1
  13. package/dist/es/components/Ach/components/AchInput/components/AchSFInput.js +1 -1
  14. package/dist/es/components/Ach/components/AchInput/components/AchSFInput.js.map +1 -1
  15. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  16. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  17. package/dist/es/components/ApplePay/components/ApplePayButton.js +1 -1
  18. package/dist/es/components/ApplePay/components/ApplePayButton.js.map +1 -1
  19. package/dist/es/components/ApplePay/defaultProps.js +1 -1
  20. package/dist/es/components/ApplePay/defaultProps.js.map +1 -1
  21. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js +2 -0
  22. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -0
  23. package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -0
  24. package/dist/es/components/ApplePay/utils/format-applepay-contact-to-adyen-format.js +2 -0
  25. package/dist/es/components/ApplePay/utils/format-applepay-contact-to-adyen-format.js.map +1 -0
  26. package/dist/es/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js +2 -0
  27. package/dist/es/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -0
  28. package/dist/es/components/ApplePay/utils/payment-request.js +2 -0
  29. package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -0
  30. package/dist/es/components/ApplePay/utils/resolve-supported-version.js +2 -0
  31. package/dist/es/components/ApplePay/utils/resolve-supported-version.js.map +1 -0
  32. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  33. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  34. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  35. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  36. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  37. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js +1 -1
  38. package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  39. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  40. package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  41. package/dist/es/components/Card/components/CardInput/components/CVC.js +1 -1
  42. package/dist/es/components/Card/components/CardInput/components/CVC.js.map +1 -1
  43. package/dist/es/components/Card/components/CardInput/components/CVCHint.js +1 -1
  44. package/dist/es/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  45. package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
  46. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  47. package/dist/es/components/Card/components/CardInput/components/CardNumber.js +1 -1
  48. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  49. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  50. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  51. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
  52. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  53. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  54. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  55. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js +1 -1
  56. package/dist/es/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  57. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js +1 -1
  58. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  59. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  60. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  61. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  62. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  63. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodName.js +1 -1
  64. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodName.js.map +1 -1
  65. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  66. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  67. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  68. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  69. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  70. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  71. package/dist/es/components/Giftcard/components/GiftcardNumberField.js +1 -1
  72. package/dist/es/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  73. package/dist/es/components/Giftcard/components/GiftcardPinField.js +1 -1
  74. package/dist/es/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  75. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  76. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  77. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  78. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  79. package/dist/es/components/MBWay/MBWay.js +1 -1
  80. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  81. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  82. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  83. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js +1 -1
  84. package/dist/es/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  85. package/dist/es/components/PayPal/components/PaypalButtons.js +1 -1
  86. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  87. package/dist/es/components/PayTo/PayTo.js +2 -0
  88. package/dist/es/components/PayTo/PayTo.js.map +1 -0
  89. package/dist/es/components/PayTo/components/BSBInput.js +2 -0
  90. package/dist/es/components/PayTo/components/BSBInput.js.map +1 -0
  91. package/dist/es/components/PayTo/components/IdentifierSelector.js +2 -0
  92. package/dist/es/components/PayTo/components/IdentifierSelector.js.map +1 -0
  93. package/dist/es/components/PayTo/components/MandateSummary.js +2 -0
  94. package/dist/es/components/PayTo/components/MandateSummary.js.map +1 -0
  95. package/dist/es/components/PayTo/components/PayIDInput.js +2 -0
  96. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -0
  97. package/dist/es/components/PayTo/components/PayToComponent.js +2 -0
  98. package/dist/es/components/PayTo/components/PayToComponent.js.map +1 -0
  99. package/dist/es/components/PayTo/components/PayToInstructions.js +2 -0
  100. package/dist/es/components/PayTo/components/PayToInstructions.js.map +1 -0
  101. package/dist/es/components/PayTo/components/PayToNameFields.js +2 -0
  102. package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -0
  103. package/dist/es/components/PayTo/components/PayToPhone.js +2 -0
  104. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -0
  105. package/dist/es/components/PayTo/components/validate.js +2 -0
  106. package/dist/es/components/PayTo/components/validate.js.map +1 -0
  107. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  108. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  109. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
  110. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  111. package/dist/es/components/UPI/components/UPIComponent/useUpiSegmentedControlOptions.js.map +1 -1
  112. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  113. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  114. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  115. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  116. package/dist/es/components/components-name-map.js +1 -1
  117. package/dist/es/components/components-name-map.js.map +1 -1
  118. package/dist/es/components/index.js +1 -1
  119. package/dist/es/components/internal/Alert/Alert.js +1 -1
  120. package/dist/es/components/internal/Alert/Alert.js.map +1 -1
  121. package/dist/es/components/internal/Await/Await.js +1 -1
  122. package/dist/es/components/internal/Await/Await.js.map +1 -1
  123. package/dist/es/components/internal/Button/Button.js +1 -1
  124. package/dist/es/components/internal/Button/Button.js.map +1 -1
  125. package/dist/es/components/internal/ButtonGroup/ButtonGroup.js +1 -1
  126. package/dist/es/components/internal/ButtonGroup/ButtonGroup.js.map +1 -1
  127. package/dist/es/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js +1 -1
  128. package/dist/es/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  129. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js +1 -1
  130. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  131. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  132. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  133. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js +1 -1
  134. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js.map +1 -1
  135. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  136. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  137. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js +1 -1
  138. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  139. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  140. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js +1 -1
  141. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  142. package/dist/es/components/internal/DetailsTable/DetailsTable.js +2 -0
  143. package/dist/es/components/internal/DetailsTable/DetailsTable.js.map +1 -0
  144. package/dist/es/components/internal/ExpandButton/ExpandButton.js +1 -1
  145. package/dist/es/components/internal/ExpandButton/ExpandButton.js.map +1 -1
  146. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
  147. package/dist/es/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  148. package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
  149. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  150. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  151. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  152. package/dist/es/components/internal/FormFields/InputBase.js +1 -1
  153. package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
  154. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js +1 -1
  155. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  156. package/dist/es/components/internal/FormFields/Select/Select.js +1 -1
  157. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  158. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  159. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  160. package/dist/es/components/internal/FormFields/Select/components/SelectList.js +1 -1
  161. package/dist/es/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  162. package/dist/es/components/internal/FormFields/Select/components/SelectListItem.js +1 -1
  163. package/dist/es/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  164. package/dist/es/components/internal/IFrame/Iframe.js +1 -1
  165. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  166. package/dist/es/components/internal/Icon/Icon.js +1 -1
  167. package/dist/es/components/internal/Icon/Icon.js.map +1 -1
  168. package/dist/es/components/internal/Img/Img.js +1 -1
  169. package/dist/es/components/internal/Img/Img.js.map +1 -1
  170. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js +1 -1
  171. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  172. package/dist/es/components/internal/LoadingWrapper/LoadingWrapper.js +1 -1
  173. package/dist/es/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  174. package/dist/es/components/internal/Modal/Modal.js +1 -1
  175. package/dist/es/components/internal/Modal/Modal.js.map +1 -1
  176. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  177. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  178. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  179. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js +2 -0
  180. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -0
  181. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +2 -0
  182. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -0
  183. package/dist/es/components/internal/PhoneInput/validate.js +1 -1
  184. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js +1 -1
  185. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js.map +1 -1
  186. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
  187. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  188. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  189. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  190. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  191. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  192. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  193. package/dist/es/components/internal/Voucher/Voucher.js +1 -1
  194. package/dist/es/components/internal/Voucher/Voucher.js.map +1 -1
  195. package/dist/es/components/tx-variants.js +1 -1
  196. package/dist/es/components/tx-variants.js.map +1 -1
  197. package/dist/es/core/ProcessResponse/PaymentMethods/filters.js +1 -1
  198. package/dist/es/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
  199. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  200. package/dist/es/core/Services/analytics/collect-id.js.map +1 -1
  201. package/dist/es/core/core.js +1 -1
  202. package/dist/es/core/core.js.map +1 -1
  203. package/dist/es/core/utils.js +1 -1
  204. package/dist/es/core/utils.js.map +1 -1
  205. package/dist/es/external/classnames/index.js +2 -2
  206. package/dist/es/external/classnames/index.js.map +1 -1
  207. package/dist/es/index.d.ts +265 -71
  208. package/dist/es/index.js +1 -1
  209. package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
  210. package/dist/es/utils/Validator/Validator.js.map +1 -1
  211. package/dist/es/utils/inIframe.js +2 -0
  212. package/dist/es/utils/inIframe.js.map +1 -0
  213. package/dist/es-legacy/_virtual/index.js +1 -1
  214. package/dist/es-legacy/_virtual/index2.js +2 -0
  215. package/dist/es-legacy/_virtual/index2.js.map +1 -0
  216. package/dist/es-legacy/adyen.css +21 -17
  217. package/dist/es-legacy/adyen.css.map +1 -1
  218. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js +1 -1
  219. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js.map +1 -1
  220. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSFInput.js +1 -1
  221. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSFInput.js.map +1 -1
  222. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  223. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  224. package/dist/es-legacy/components/ApplePay/components/ApplePayButton.js +1 -1
  225. package/dist/es-legacy/components/ApplePay/components/ApplePayButton.js.map +1 -1
  226. package/dist/es-legacy/components/ApplePay/defaultProps.js +1 -1
  227. package/dist/es-legacy/components/ApplePay/defaultProps.js.map +1 -1
  228. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js +2 -0
  229. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -0
  230. package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -0
  231. package/dist/es-legacy/components/ApplePay/utils/format-applepay-contact-to-adyen-format.js +2 -0
  232. package/dist/es-legacy/components/ApplePay/utils/format-applepay-contact-to-adyen-format.js.map +1 -0
  233. package/dist/es-legacy/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js +2 -0
  234. package/dist/es-legacy/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.js.map +1 -0
  235. package/dist/es-legacy/components/ApplePay/utils/payment-request.js +2 -0
  236. package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -0
  237. package/dist/es-legacy/components/ApplePay/utils/resolve-supported-version.js +2 -0
  238. package/dist/es-legacy/components/ApplePay/utils/resolve-supported-version.js.map +1 -0
  239. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  240. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  241. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  242. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  243. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  244. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js +1 -1
  245. package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
  246. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js +1 -1
  247. package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
  248. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js +1 -1
  249. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js.map +1 -1
  250. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js +1 -1
  251. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  252. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
  253. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  254. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js +1 -1
  255. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  256. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  257. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  258. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
  259. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  260. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  261. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  262. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js +1 -1
  263. package/dist/es-legacy/components/Dropin/components/PaymentMethod/InstantPaymentMethods.js.map +1 -1
  264. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js +1 -1
  265. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
  266. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  267. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  268. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  269. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  270. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodName.js +1 -1
  271. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodName.js.map +1 -1
  272. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  273. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  274. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  275. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  276. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  277. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  278. package/dist/es-legacy/components/Giftcard/components/GiftcardNumberField.js +1 -1
  279. package/dist/es-legacy/components/Giftcard/components/GiftcardNumberField.js.map +1 -1
  280. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js +1 -1
  281. package/dist/es-legacy/components/Giftcard/components/GiftcardPinField.js.map +1 -1
  282. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  283. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  284. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  285. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  286. package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
  287. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  288. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  289. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  290. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js +1 -1
  291. package/dist/es-legacy/components/MealVoucherFR/components/MealVoucherExpiryField.js.map +1 -1
  292. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
  293. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  294. package/dist/es-legacy/components/PayTo/PayTo.js +2 -0
  295. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -0
  296. package/dist/es-legacy/components/PayTo/components/BSBInput.js +2 -0
  297. package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -0
  298. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js +2 -0
  299. package/dist/es-legacy/components/PayTo/components/IdentifierSelector.js.map +1 -0
  300. package/dist/es-legacy/components/PayTo/components/MandateSummary.js +2 -0
  301. package/dist/es-legacy/components/PayTo/components/MandateSummary.js.map +1 -0
  302. package/dist/es-legacy/components/PayTo/components/PayIDInput.js +2 -0
  303. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -0
  304. package/dist/es-legacy/components/PayTo/components/PayToComponent.js +2 -0
  305. package/dist/es-legacy/components/PayTo/components/PayToComponent.js.map +1 -0
  306. package/dist/es-legacy/components/PayTo/components/PayToInstructions.js +2 -0
  307. package/dist/es-legacy/components/PayTo/components/PayToInstructions.js.map +1 -0
  308. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +2 -0
  309. package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -0
  310. package/dist/es-legacy/components/PayTo/components/PayToPhone.js +2 -0
  311. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -0
  312. package/dist/es-legacy/components/PayTo/components/validate.js +2 -0
  313. package/dist/es-legacy/components/PayTo/components/validate.js.map +1 -0
  314. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  315. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  316. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
  317. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  318. package/dist/es-legacy/components/UPI/components/UPIComponent/useUpiSegmentedControlOptions.js.map +1 -1
  319. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  320. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  321. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
  322. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
  323. package/dist/es-legacy/components/components-name-map.js +1 -1
  324. package/dist/es-legacy/components/components-name-map.js.map +1 -1
  325. package/dist/es-legacy/components/index.js +1 -1
  326. package/dist/es-legacy/components/internal/Alert/Alert.js +1 -1
  327. package/dist/es-legacy/components/internal/Alert/Alert.js.map +1 -1
  328. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  329. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  330. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  331. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  332. package/dist/es-legacy/components/internal/ButtonGroup/ButtonGroup.js +1 -1
  333. package/dist/es-legacy/components/internal/ButtonGroup/ButtonGroup.js.map +1 -1
  334. package/dist/es-legacy/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js +1 -1
  335. package/dist/es-legacy/components/internal/ClickToPay/components/CtPBrand/CtPBrand.js.map +1 -1
  336. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js +1 -1
  337. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  338. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  339. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  340. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js +1 -1
  341. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js.map +1 -1
  342. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  343. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  344. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js +1 -1
  345. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPSection.js.map +1 -1
  346. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  347. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js +1 -1
  348. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  349. package/dist/es-legacy/components/internal/DetailsTable/DetailsTable.js +2 -0
  350. package/dist/es-legacy/components/internal/DetailsTable/DetailsTable.js.map +1 -0
  351. package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js +1 -1
  352. package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js.map +1 -1
  353. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
  354. package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
  355. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  356. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  357. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  358. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  359. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  360. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  361. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js +1 -1
  362. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  363. package/dist/es-legacy/components/internal/FormFields/Select/Select.js +1 -1
  364. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  365. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  366. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  367. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js +1 -1
  368. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  369. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js +1 -1
  370. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
  371. package/dist/es-legacy/components/internal/IFrame/Iframe.js +1 -1
  372. package/dist/es-legacy/components/internal/IFrame/Iframe.js.map +1 -1
  373. package/dist/es-legacy/components/internal/Icon/Icon.js +1 -1
  374. package/dist/es-legacy/components/internal/Icon/Icon.js.map +1 -1
  375. package/dist/es-legacy/components/internal/Img/Img.js +1 -1
  376. package/dist/es-legacy/components/internal/Img/Img.js.map +1 -1
  377. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js +1 -1
  378. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButton.js.map +1 -1
  379. package/dist/es-legacy/components/internal/LoadingWrapper/LoadingWrapper.js +1 -1
  380. package/dist/es-legacy/components/internal/LoadingWrapper/LoadingWrapper.js.map +1 -1
  381. package/dist/es-legacy/components/internal/Modal/Modal.js +1 -1
  382. package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
  383. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  384. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  385. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  386. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js +2 -0
  387. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -0
  388. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +2 -0
  389. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -0
  390. package/dist/es-legacy/components/internal/PhoneInput/validate.js +1 -1
  391. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js +1 -1
  392. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js.map +1 -1
  393. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
  394. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  395. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  396. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  397. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  398. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  399. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  400. package/dist/es-legacy/components/internal/Voucher/Voucher.js +1 -1
  401. package/dist/es-legacy/components/internal/Voucher/Voucher.js.map +1 -1
  402. package/dist/es-legacy/components/tx-variants.js +1 -1
  403. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  404. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js +1 -1
  405. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
  406. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  407. package/dist/es-legacy/core/Services/analytics/collect-id.js.map +1 -1
  408. package/dist/es-legacy/core/core.js +1 -1
  409. package/dist/es-legacy/core/core.js.map +1 -1
  410. package/dist/es-legacy/core/utils.js +1 -1
  411. package/dist/es-legacy/core/utils.js.map +1 -1
  412. package/dist/es-legacy/external/classnames/index.js +2 -2
  413. package/dist/es-legacy/external/classnames/index.js.map +1 -1
  414. package/dist/es-legacy/index.js +1 -1
  415. package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
  416. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  417. package/dist/es-legacy/utils/inIframe.js +2 -0
  418. package/dist/es-legacy/utils/inIframe.js.map +1 -0
  419. package/package.json +29 -23
  420. package/styles/adyen.css +21 -17
  421. package/dist/es/components/ApplePay/ApplePayService.js.map +0 -1
  422. package/dist/es/components/ApplePay/config.js +0 -2
  423. package/dist/es/components/ApplePay/config.js.map +0 -1
  424. package/dist/es/components/ApplePay/payment-request.js +0 -2
  425. package/dist/es/components/ApplePay/payment-request.js.map +0 -1
  426. package/dist/es/components/ApplePay/utils.js +0 -2
  427. package/dist/es/components/ApplePay/utils.js.map +0 -1
  428. package/dist/es/components/internal/PhoneInput/PhoneInput.js +0 -2
  429. package/dist/es/components/internal/PhoneInput/PhoneInput.js.map +0 -1
  430. package/dist/es-legacy/components/ApplePay/ApplePayService.js.map +0 -1
  431. package/dist/es-legacy/components/ApplePay/config.js +0 -2
  432. package/dist/es-legacy/components/ApplePay/config.js.map +0 -1
  433. package/dist/es-legacy/components/ApplePay/payment-request.js +0 -2
  434. package/dist/es-legacy/components/ApplePay/payment-request.js.map +0 -1
  435. package/dist/es-legacy/components/ApplePay/utils.js +0 -2
  436. package/dist/es-legacy/components/ApplePay/utils.js.map +0 -1
  437. package/dist/es-legacy/components/internal/PhoneInput/PhoneInput.js +0 -2
  438. package/dist/es-legacy/components/internal/PhoneInput/PhoneInput.js.map +0 -1
  439. /package/dist/es/components/ApplePay/{ApplePayService.js → services/ApplePayService.js} +0 -0
  440. /package/dist/es-legacy/components/ApplePay/{ApplePayService.js → services/ApplePayService.js} +0 -0
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useState as o,useRef as a,useEffect as t}from"../../../../external/preact/hooks/dist/hooks.js";import r from"../../../../external/classnames/index.js";import n from"./components/AchSecuredFields.js";import s from"../../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import l from"../../../internal/FormFields/Field/Field.js";import d from"../../../internal/LoadingWrapper/LoadingWrapper.js";import c from"./defaultProps.js";import i from"./defaultStyles.js";import{useCoreContext as u}from"../../../../core/Context/CoreProvider.js";import m from"../../../internal/StoreDetails/StoreDetails.js";import h from"../../../internal/FormFields/InputText.js";import p from"../../../internal/FormInstruction/FormInstruction.js";import N from"../../../internal/FormFields/RadioGroup/RadioGroup.js";function f(e,o=!1){return!o||!!e&&"string"==typeof e&&e.trim().length>0}function y(c){const{i18n:y}=u(),g=c.hasHolderName&&(!!c.holderName||!!c.data.holderName),[_,k]=o({}),[x,C]=o({...c.holderNameRequired&&{holderName:g}}),[j,v]=o({bankAccountType:"checking",...c.hasHolderName&&{holderName:c.holderName||c.data.holderName}}),[b,S]=o(!1),[R,q]=o(""),[A,P]=o(!1),T=e=>{const o=e.target.value;v({...j,holderName:o}),k({..._,holderName:!!c.holderNameRequired&&!f(o)}),C({...x,holderName:!c.holderNameRequired||f(o,c.holderNameRequired)})},V=e=>{const o=e.target.value;v({...j,bankAccountType:o})},w=a(null),[E,H]=o("ready"),I=a({});return Object.keys(I.current).length||c.setComponentRef?.(I.current),I.current.showValidation=()=>{w.current.showValidation(),c.holderNameRequired&&!x.holderName&&k({..._,holderName:!0})},I.current.setStatus=H,t((()=>(this.setFocusOn=w.current.setFocusOn,this.updateStyles=w.current.updateStyles,()=>{w.current.destroy()})),[]),t((()=>{const e=f(j.holderName,c.holderNameRequired),o=b&&e;c.onChange({data:j,isValid:o,storePaymentMethod:A})}),[j,x,_,A]),e("div",{className:"adyen-checkout__ach"},e(p,null),e(s,{ref:w,...F(c),styles:{...i,...c.styles},onChange:e=>{const o=e,a=o.autoCompleteName?o.autoCompleteName:j.holderName;v({...j,...o.data,holderName:a}),k({..._,...o.errors}),C({...x,...o.valid,holderName:!c.holderNameRequired||f(a,c.holderNameRequired)}),S(o.isSfpValid)},onFocus:e=>{const o=!0===e.focus;q(e.currentFocusObject),o?c.onFocus(e):c.onBlur(e)},render:({setRootNode:o,setFocusOn:a},t)=>e("div",{ref:o,className:"adyen-checkout__ach-input sf-input__wrapper"},e(d,{status:t.status},e("div",{className:r(["adyen-checkout__fieldset","adyen-checkout__fieldset--ach"])},e("div",{className:"adyen-checkout__fieldset__title"},y.get("ach.bankAccount")),e(l,{classNameModifiers:["bankAccountType","no-borders"],name:"bankAccountType",useLabelElement:!1},e(N,{name:"bankAccountType",value:j.bankAccountType,items:[{id:"checking",name:y.get("ach.checking")},{id:"savings",name:y.get("ach.savings")}],onChange:V,required:!0,style:"button"})),c.hasHolderName&&e(l,{label:y.get("ach.accountHolderNameField.title"),className:"adyen-checkout__pm__holderName",errorMessage:!!_.holderName&&y.get("ach.accountHolderNameField.invalid"),showContextualElement:c.showContextualElement,contextualText:y.get("ach.accountHolderNameField.contextualText"),isValid:!!x.holderName,name:"holderName"},e(h,{className:"adyen-checkout__pm__holderName__input adyen-checkout__input",placeholder:c?.placeholders?.holderName,value:j.holderName,required:c.holderNameRequired,onInput:T})),e(n,{focusedElement:R,onFocusField:a,errors:t.errors,valid:t.valid})),c.enableStoreDetails&&e(m,{onChange:P})))}),c.showPayButton&&c.payButton({status:E,label:y.get("confirmPurchase")}))}y.defaultProps=c;const F=e=>({autoFocus:e.autoFocus,clientKey:e.clientKey,i18n:e.i18n,keypadFix:e.keypadFix,legacyInputMode:e.legacyInputMode,loadingContext:e.loadingContext,onAllValid:e.onAllValid,onConfigSuccess:e.onConfigSuccess,onError:e.onError,onFieldValid:e.onFieldValid,onFocus:e.onFocus,onLoad:e.onLoad,showWarnings:e.showWarnings,styles:e.styles,type:e.type,forceCompat:e.forceCompat,resources:e.resources,placeholders:e.placeholders,handleKeyPress:e.handleKeyPress});export{y as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useState as o,useRef as a,useEffect as t}from"../../../../external/preact/hooks/dist/hooks.js";import r from"../../../../_virtual/index.js";import n from"./components/AchSecuredFields.js";import s from"../../../internal/SecuredFields/SFP/SecuredFieldsProvider.js";import l from"../../../internal/FormFields/Field/Field.js";import d from"../../../internal/LoadingWrapper/LoadingWrapper.js";import c from"./defaultProps.js";import i from"./defaultStyles.js";import{useCoreContext as u}from"../../../../core/Context/CoreProvider.js";import m from"../../../internal/StoreDetails/StoreDetails.js";import h from"../../../internal/FormFields/InputText.js";import p from"../../../internal/FormInstruction/FormInstruction.js";import N from"../../../internal/FormFields/RadioGroup/RadioGroup.js";function f(e,o=!1){return!o||!!e&&"string"==typeof e&&e.trim().length>0}function y(c){const{i18n:y}=u(),F=c.hasHolderName&&(!!c.holderName||!!c.data.holderName),[_,k]=o({}),[v,C]=o({...c.holderNameRequired&&{holderName:F}}),[j,x]=o({bankAccountType:"checking",...c.hasHolderName&&{holderName:c.holderName||c.data.holderName}}),[b,S]=o(!1),[R,q]=o(""),[A,P]=o(!1),T=e=>{const o=e.target.value;x({...j,holderName:o}),k({..._,holderName:!!c.holderNameRequired&&!f(o)}),C({...v,holderName:!c.holderNameRequired||f(o,c.holderNameRequired)})},V=e=>{const o=e.target.value;x({...j,bankAccountType:o})},w=a(null),[E,H]=o("ready"),I=a({});return Object.keys(I.current).length||c.setComponentRef?.(I.current),I.current.showValidation=()=>{w.current.showValidation(),c.holderNameRequired&&!v.holderName&&k({..._,holderName:!0})},I.current.setStatus=H,t((()=>(this.setFocusOn=w.current.setFocusOn,this.updateStyles=w.current.updateStyles,()=>{w.current.destroy()})),[]),t((()=>{const e=f(j.holderName,c.holderNameRequired),o=b&&e;c.onChange({data:j,isValid:o,storePaymentMethod:A})}),[j,v,_,A]),e("div",{className:r({"adyen-checkout__ach":!0,"adyen-checkout__ach--loading":"loading"===E})},e(p,null),e(s,{ref:w,...g(c),styles:{...i,...c.styles},onChange:e=>{const o=e,a=o.autoCompleteName?o.autoCompleteName:j.holderName;x({...j,...o.data,holderName:a}),k({..._,...o.errors}),C({...v,...o.valid,holderName:!c.holderNameRequired||f(a,c.holderNameRequired)}),S(o.isSfpValid)},onFocus:e=>{const o=!0===e.focus;q(e.currentFocusObject),o?c.onFocus(e):c.onBlur(e)},render:({setRootNode:o,setFocusOn:a},t)=>e("div",{ref:o,className:"adyen-checkout__ach-input sf-input__wrapper"},e(d,{status:t.status},e("div",{className:r(["adyen-checkout__fieldset","adyen-checkout__fieldset--ach"])},e("div",{className:"adyen-checkout__fieldset__title"},y.get("ach.bankAccount")),e(l,{classNameModifiers:["bankAccountType","no-borders"],name:"bankAccountType",useLabelElement:!1},e(N,{name:"bankAccountType",value:j.bankAccountType,items:[{id:"checking",name:y.get("ach.checking")},{id:"savings",name:y.get("ach.savings")}],onChange:V,required:!0,style:"button"})),c.hasHolderName&&e(l,{label:y.get("ach.accountHolderNameField.title"),className:"adyen-checkout__pm__holderName",errorMessage:!!_.holderName&&y.get("ach.accountHolderNameField.invalid"),showContextualElement:c.showContextualElement,contextualText:y.get("ach.accountHolderNameField.contextualText"),isValid:!!v.holderName,name:"holderName"},e(h,{className:"adyen-checkout__pm__holderName__input adyen-checkout__input",placeholder:c?.placeholders?.holderName,value:j.holderName,required:c.holderNameRequired,onInput:T})),e(n,{focusedElement:R,onFocusField:a,errors:t.errors,valid:t.valid})),c.enableStoreDetails&&e(m,{onChange:P})))}),c.showPayButton&&c.payButton({status:E,label:y.get("confirmPurchase")}))}y.defaultProps=c;const g=e=>({autoFocus:e.autoFocus,clientKey:e.clientKey,i18n:e.i18n,keypadFix:e.keypadFix,legacyInputMode:e.legacyInputMode,loadingContext:e.loadingContext,onAllValid:e.onAllValid,onConfigSuccess:e.onConfigSuccess,onError:e.onError,onFieldValid:e.onFieldValid,onFocus:e.onFocus,onLoad:e.onLoad,showWarnings:e.showWarnings,styles:e.styles,type:e.type,forceCompat:e.forceCompat,resources:e.resources,placeholders:e.placeholders,handleKeyPress:e.handleKeyPress});export{y as default};
2
2
  //# sourceMappingURL=AchInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AchInput.js","sources":["../../../../../../src/components/Ach/components/AchInput/AchInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport classNames from 'classnames';\nimport AchSecuredFields from './components/AchSecuredFields';\nimport SecuredFieldsProvider from '../../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport Field from '../../../internal/FormFields/Field';\nimport LoadingWrapper from '../../../internal/LoadingWrapper/LoadingWrapper';\nimport defaultProps from './defaultProps';\nimport defaultStyles from './defaultStyles';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport './AchInput.scss';\nimport { ACHInputDataState, ACHInputProps, ACHInputStateError, ACHInputStateValid } from './types';\nimport StoreDetails from '../../../internal/StoreDetails';\nimport InputText from '../../../internal/FormFields/InputText';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport RadioGroup from '../../../internal/FormFields/RadioGroup';\n\nfunction validateHolderName(holderName, holderNameRequired = false) {\n if (holderNameRequired) {\n return !!holderName && typeof holderName === 'string' && holderName.trim().length > 0;\n }\n return true;\n}\n\nfunction AchInput(props: ACHInputProps) {\n const { i18n } = useCoreContext();\n\n const holderNameIsValid = props.hasHolderName && (!!props.holderName || !!props.data.holderName);\n\n const [errors, setErrors] = useState<ACHInputStateError>({});\n const [valid, setValid] = useState<ACHInputStateValid>({\n ...(props.holderNameRequired && { holderName: holderNameIsValid })\n });\n\n const [data, setData] = useState<ACHInputDataState>({\n bankAccountType: 'checking',\n ...(props.hasHolderName && { holderName: props.holderName || props.data.holderName })\n });\n\n const [isSfpValid, setIsSfpValid] = useState(false);\n const [focusedElement, setFocusedElement] = useState('');\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n\n const handleFocus = e => {\n const isFocused = e.focus === true;\n\n setFocusedElement(e.currentFocusObject);\n\n if (isFocused) {\n props.onFocus(e);\n } else {\n props.onBlur(e);\n }\n };\n\n const handleHolderName = e => {\n const holderName = e.target.value;\n\n setData({ ...data, holderName });\n setErrors({ ...errors, holderName: props.holderNameRequired ? !validateHolderName(holderName) : false });\n setValid({ ...valid, holderName: props.holderNameRequired ? validateHolderName(holderName, props.holderNameRequired) : true });\n };\n\n const handleBankAccountType = e => {\n const bankAccountType = e.target.value;\n\n setData({ ...data, bankAccountType });\n };\n\n const handleSecuredFieldsChange = newState => {\n const sfState = newState;\n\n const tempHolderName = sfState.autoCompleteName ? sfState.autoCompleteName : data.holderName;\n\n setData({ ...data, ...sfState.data, holderName: tempHolderName });\n setErrors({ ...errors, ...sfState.errors });\n setValid({\n ...valid,\n ...sfState.valid,\n holderName: props.holderNameRequired ? validateHolderName(tempHolderName, props.holderNameRequired) : true\n });\n\n setIsSfpValid(sfState.isSfpValid);\n };\n\n // Refs\n const sfp = useRef(null);\n\n const [status, setStatus] = useState('ready');\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const achRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(achRef.current).length) {\n props.setComponentRef?.(achRef.current);\n }\n\n achRef.current.showValidation = () => {\n // Validate SecuredFields\n sfp.current.showValidation();\n\n // Validate holderName\n if (props.holderNameRequired && !valid.holderName) {\n setErrors({ ...errors, holderName: true });\n }\n };\n\n achRef.current.setStatus = setStatus;\n\n useEffect(() => {\n this.setFocusOn = sfp.current.setFocusOn;\n this.updateStyles = sfp.current.updateStyles;\n\n return () => {\n sfp.current.destroy();\n };\n }, []);\n\n // Run when state.data, -errors or -valid change\n useEffect(() => {\n // Validate whole component i.e holderName + securedFields\n const holderNameValid = validateHolderName(data.holderName, props.holderNameRequired);\n const sfpValid = isSfpValid;\n\n const isValid = sfpValid && holderNameValid;\n\n props.onChange({ data, isValid, storePaymentMethod });\n }, [data, valid, errors, storePaymentMethod]);\n\n return (\n <div className=\"adyen-checkout__ach\">\n <FormInstruction />\n\n <SecuredFieldsProvider\n ref={sfp}\n {...extractPropsForSFP(props)}\n styles={{ ...defaultStyles, ...props.styles }}\n onChange={handleSecuredFieldsChange}\n onFocus={handleFocus}\n render={({ setRootNode, setFocusOn }, sfpState) => (\n <div ref={setRootNode} className=\"adyen-checkout__ach-input sf-input__wrapper\">\n <LoadingWrapper status={sfpState.status}>\n <div className={classNames(['adyen-checkout__fieldset', 'adyen-checkout__fieldset--ach'])}>\n {<div className=\"adyen-checkout__fieldset__title\">{i18n.get('ach.bankAccount')}</div>}\n\n <Field classNameModifiers={['bankAccountType', 'no-borders']} name={'bankAccountType'} useLabelElement={false}>\n <RadioGroup\n name={'bankAccountType'}\n value={data.bankAccountType}\n items={[\n { id: 'checking', name: i18n.get('ach.checking') },\n { id: 'savings', name: i18n.get('ach.savings') }\n ]}\n onChange={handleBankAccountType}\n required={true}\n style={'button'}\n />\n </Field>\n\n {props.hasHolderName && (\n <Field\n label={i18n.get('ach.accountHolderNameField.title')}\n className={'adyen-checkout__pm__holderName'}\n errorMessage={!!errors.holderName && i18n.get('ach.accountHolderNameField.invalid')}\n showContextualElement={props.showContextualElement}\n contextualText={i18n.get('ach.accountHolderNameField.contextualText')}\n isValid={!!valid.holderName}\n name={'holderName'}\n >\n <InputText\n className=\"adyen-checkout__pm__holderName__input adyen-checkout__input\"\n placeholder={props?.placeholders?.holderName}\n value={data.holderName}\n required={props.holderNameRequired}\n onInput={handleHolderName}\n />\n </Field>\n )}\n\n <AchSecuredFields\n focusedElement={focusedElement}\n onFocusField={setFocusOn}\n errors={sfpState.errors}\n valid={sfpState.valid}\n />\n </div>\n\n {props.enableStoreDetails && <StoreDetails onChange={setStorePaymentMethod} />}\n </LoadingWrapper>\n </div>\n )}\n />\n {props.showPayButton && props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n\nAchInput.defaultProps = defaultProps;\n\nexport default AchInput;\n\nconst extractPropsForSFP = (props: ACHInputProps) => {\n return {\n autoFocus: props.autoFocus,\n clientKey: props.clientKey,\n i18n: props.i18n,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\n onAllValid: props.onAllValid,\n onConfigSuccess: props.onConfigSuccess,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onFocus: props.onFocus,\n onLoad: props.onLoad,\n showWarnings: props.showWarnings,\n styles: props.styles,\n type: props.type,\n forceCompat: props.forceCompat,\n resources: props.resources,\n placeholders: props.placeholders,\n handleKeyPress: props.handleKeyPress\n };\n};\n"],"names":["validateHolderName","holderName","holderNameRequired","trim","length","AchInput","props","i18n","useCoreContext","holderNameIsValid","hasHolderName","data","errors","setErrors","useState","valid","setValid","setData","bankAccountType","isSfpValid","setIsSfpValid","focusedElement","setFocusedElement","storePaymentMethod","setStorePaymentMethod","handleHolderName","e","target","value","handleBankAccountType","sfp","useRef","status","setStatus","achRef","Object","keys","current","setComponentRef","showValidation","useEffect","this","setFocusOn","updateStyles","destroy","holderNameValid","isValid","onChange","h","div","className","FormInstruction","SecuredFieldsProvider","ref","extractPropsForSFP","styles","defaultStyles","newState","sfState","tempHolderName","autoCompleteName","onFocus","isFocused","focus","currentFocusObject","onBlur","render","setRootNode","sfpState","LoadingWrapper","classNames","get","Field","classNameModifiers","name","useLabelElement","RadioGroup","items","id","required","style","label","errorMessage","showContextualElement","contextualText","InputText","placeholder","placeholders","onInput","AchSecuredFields","onFocusField","enableStoreDetails","StoreDetails","showPayButton","payButton","defaultProps","autoFocus","clientKey","keypadFix","legacyInputMode","loadingContext","onAllValid","onConfigSuccess","onError","onFieldValid","onLoad","showWarnings","type","forceCompat","resources","handleKeyPress"],"mappings":"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"}
1
+ {"version":3,"file":"AchInput.js","sources":["../../../../../../src/components/Ach/components/AchInput/AchInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport classNames from 'classnames';\nimport AchSecuredFields from './components/AchSecuredFields';\nimport SecuredFieldsProvider from '../../../internal/SecuredFields/SFP/SecuredFieldsProvider';\nimport Field from '../../../internal/FormFields/Field';\nimport LoadingWrapper from '../../../internal/LoadingWrapper/LoadingWrapper';\nimport defaultProps from './defaultProps';\nimport defaultStyles from './defaultStyles';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport './AchInput.scss';\nimport { ACHInputDataState, ACHInputProps, ACHInputStateError, ACHInputStateValid } from './types';\nimport StoreDetails from '../../../internal/StoreDetails';\nimport InputText from '../../../internal/FormFields/InputText';\nimport FormInstruction from '../../../internal/FormInstruction';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport RadioGroup from '../../../internal/FormFields/RadioGroup';\n\nfunction validateHolderName(holderName, holderNameRequired = false) {\n if (holderNameRequired) {\n return !!holderName && typeof holderName === 'string' && holderName.trim().length > 0;\n }\n return true;\n}\n\nfunction AchInput(props: ACHInputProps) {\n const { i18n } = useCoreContext();\n\n const holderNameIsValid = props.hasHolderName && (!!props.holderName || !!props.data.holderName);\n\n const [errors, setErrors] = useState<ACHInputStateError>({});\n const [valid, setValid] = useState<ACHInputStateValid>({\n ...(props.holderNameRequired && { holderName: holderNameIsValid })\n });\n\n const [data, setData] = useState<ACHInputDataState>({\n bankAccountType: 'checking',\n ...(props.hasHolderName && { holderName: props.holderName || props.data.holderName })\n });\n\n const [isSfpValid, setIsSfpValid] = useState(false);\n const [focusedElement, setFocusedElement] = useState('');\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n\n const handleFocus = e => {\n const isFocused = e.focus === true;\n\n setFocusedElement(e.currentFocusObject);\n\n if (isFocused) {\n props.onFocus(e);\n } else {\n props.onBlur(e);\n }\n };\n\n const handleHolderName = e => {\n const holderName = e.target.value;\n\n setData({ ...data, holderName });\n setErrors({ ...errors, holderName: props.holderNameRequired ? !validateHolderName(holderName) : false });\n setValid({ ...valid, holderName: props.holderNameRequired ? validateHolderName(holderName, props.holderNameRequired) : true });\n };\n\n const handleBankAccountType = e => {\n const bankAccountType = e.target.value;\n\n setData({ ...data, bankAccountType });\n };\n\n const handleSecuredFieldsChange = newState => {\n const sfState = newState;\n\n const tempHolderName = sfState.autoCompleteName ? sfState.autoCompleteName : data.holderName;\n\n setData({ ...data, ...sfState.data, holderName: tempHolderName });\n setErrors({ ...errors, ...sfState.errors });\n setValid({\n ...valid,\n ...sfState.valid,\n holderName: props.holderNameRequired ? validateHolderName(tempHolderName, props.holderNameRequired) : true\n });\n\n setIsSfpValid(sfState.isSfpValid);\n };\n\n // Refs\n const sfp = useRef(null);\n\n const [status, setStatus] = useState('ready');\n\n /** An object by which to expose 'public' members to the parent UIElement */\n const achRef = useRef<ComponentMethodsRef>({});\n // Just call once\n if (!Object.keys(achRef.current).length) {\n props.setComponentRef?.(achRef.current);\n }\n\n achRef.current.showValidation = () => {\n // Validate SecuredFields\n sfp.current.showValidation();\n\n // Validate holderName\n if (props.holderNameRequired && !valid.holderName) {\n setErrors({ ...errors, holderName: true });\n }\n };\n\n achRef.current.setStatus = setStatus;\n\n useEffect(() => {\n this.setFocusOn = sfp.current.setFocusOn;\n this.updateStyles = sfp.current.updateStyles;\n\n return () => {\n sfp.current.destroy();\n };\n }, []);\n\n // Run when state.data, -errors or -valid change\n useEffect(() => {\n // Validate whole component i.e holderName + securedFields\n const holderNameValid = validateHolderName(data.holderName, props.holderNameRequired);\n const sfpValid = isSfpValid;\n\n const isValid = sfpValid && holderNameValid;\n\n props.onChange({ data, isValid, storePaymentMethod });\n }, [data, valid, errors, storePaymentMethod]);\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__ach': true,\n 'adyen-checkout__ach--loading': status === 'loading'\n })}\n >\n <FormInstruction />\n\n <SecuredFieldsProvider\n ref={sfp}\n {...extractPropsForSFP(props)}\n styles={{ ...defaultStyles, ...props.styles }}\n onChange={handleSecuredFieldsChange}\n onFocus={handleFocus}\n render={({ setRootNode, setFocusOn }, sfpState) => (\n <div ref={setRootNode} className=\"adyen-checkout__ach-input sf-input__wrapper\">\n <LoadingWrapper status={sfpState.status}>\n <div className={classNames(['adyen-checkout__fieldset', 'adyen-checkout__fieldset--ach'])}>\n {<div className=\"adyen-checkout__fieldset__title\">{i18n.get('ach.bankAccount')}</div>}\n\n <Field classNameModifiers={['bankAccountType', 'no-borders']} name={'bankAccountType'} useLabelElement={false}>\n <RadioGroup\n name={'bankAccountType'}\n value={data.bankAccountType}\n items={[\n { id: 'checking', name: i18n.get('ach.checking') },\n { id: 'savings', name: i18n.get('ach.savings') }\n ]}\n onChange={handleBankAccountType}\n required={true}\n style={'button'}\n />\n </Field>\n\n {props.hasHolderName && (\n <Field\n label={i18n.get('ach.accountHolderNameField.title')}\n className={'adyen-checkout__pm__holderName'}\n errorMessage={!!errors.holderName && i18n.get('ach.accountHolderNameField.invalid')}\n showContextualElement={props.showContextualElement}\n contextualText={i18n.get('ach.accountHolderNameField.contextualText')}\n isValid={!!valid.holderName}\n name={'holderName'}\n >\n <InputText\n className=\"adyen-checkout__pm__holderName__input adyen-checkout__input\"\n placeholder={props?.placeholders?.holderName}\n value={data.holderName}\n required={props.holderNameRequired}\n onInput={handleHolderName}\n />\n </Field>\n )}\n\n <AchSecuredFields\n focusedElement={focusedElement}\n onFocusField={setFocusOn}\n errors={sfpState.errors}\n valid={sfpState.valid}\n />\n </div>\n\n {props.enableStoreDetails && <StoreDetails onChange={setStorePaymentMethod} />}\n </LoadingWrapper>\n </div>\n )}\n />\n {props.showPayButton && props.payButton({ status, label: i18n.get('confirmPurchase') })}\n </div>\n );\n}\n\nAchInput.defaultProps = defaultProps;\n\nexport default AchInput;\n\nconst extractPropsForSFP = (props: ACHInputProps) => {\n return {\n autoFocus: props.autoFocus,\n clientKey: props.clientKey,\n i18n: props.i18n,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\n onAllValid: props.onAllValid,\n onConfigSuccess: props.onConfigSuccess,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onFocus: props.onFocus,\n onLoad: props.onLoad,\n showWarnings: props.showWarnings,\n styles: props.styles,\n type: props.type,\n forceCompat: props.forceCompat,\n resources: props.resources,\n placeholders: props.placeholders,\n handleKeyPress: props.handleKeyPress\n };\n};\n"],"names":["validateHolderName","holderName","holderNameRequired","trim","length","AchInput","props","i18n","useCoreContext","holderNameIsValid","hasHolderName","data","errors","setErrors","useState","valid","setValid","setData","bankAccountType","isSfpValid","setIsSfpValid","focusedElement","setFocusedElement","storePaymentMethod","setStorePaymentMethod","handleHolderName","e","target","value","handleBankAccountType","sfp","useRef","status","setStatus","achRef","Object","keys","current","setComponentRef","showValidation","useEffect","this","setFocusOn","updateStyles","destroy","holderNameValid","isValid","onChange","h","div","className","classNames","FormInstruction","SecuredFieldsProvider","ref","extractPropsForSFP","styles","defaultStyles","newState","sfState","tempHolderName","autoCompleteName","onFocus","isFocused","focus","currentFocusObject","onBlur","render","setRootNode","sfpState","LoadingWrapper","get","Field","classNameModifiers","name","useLabelElement","RadioGroup","items","id","required","style","label","errorMessage","showContextualElement","contextualText","InputText","placeholder","placeholders","onInput","AchSecuredFields","onFocusField","enableStoreDetails","StoreDetails","showPayButton","payButton","defaultProps","autoFocus","clientKey","keypadFix","legacyInputMode","loadingContext","onAllValid","onConfigSuccess","onError","onFieldValid","onLoad","showWarnings","type","forceCompat","resources","handleKeyPress"],"mappings":"o2BAkBA,SAASA,EAAmBC,EAAYC,GAAqB,GACzD,OAAIA,KACSD,GAAoC,iBAAfA,GAA2BA,EAAWE,OAAOC,OAAS,CAG5F,CAEA,SAASC,EAASC,GACd,MAAMC,KAAEA,GAASC,IAEXC,EAAoBH,EAAMI,kBAAoBJ,EAAML,cAAgBK,EAAMK,KAAKV,aAE9EW,EAAQC,GAAaC,EAA6B,CAAA,IAClDC,EAAOC,GAAYF,EAA6B,IAC/CR,EAAMJ,oBAAsB,CAAED,WAAYQ,MAG3CE,EAAMM,GAAWH,EAA4B,CAChDI,gBAAiB,cACbZ,EAAMI,eAAiB,CAAET,WAAYK,EAAML,YAAcK,EAAMK,KAAKV,eAGrEkB,EAAYC,GAAiBN,GAAS,IACtCO,EAAgBC,GAAqBR,EAAS,KAC9CS,EAAoBC,GAAyBV,GAAS,GAcvDW,EAAmBC,IACrB,MAAMzB,EAAayB,EAAEC,OAAOC,MAE5BX,EAAQ,IAAKN,EAAMV,eACnBY,EAAU,IAAKD,EAAQX,aAAYK,EAAMJ,qBAAsBF,EAAmBC,KAClFe,EAAS,IAAKD,EAAOd,YAAYK,EAAMJ,oBAAqBF,EAAmBC,EAAYK,EAAMJ,qBAA2B,EAG1H2B,EAAwBH,IAC1B,MAAMR,EAAkBQ,EAAEC,OAAOC,MAEjCX,EAAQ,IAAKN,EAAMO,mBAAgB,EAoBjCY,EAAMC,EAAO,OAEZC,EAAQC,GAAanB,EAAS,SAG/BoB,EAASH,EAA4B,IAsC3C,OApCKI,OAAOC,KAAKF,EAAOG,SAASjC,QAC7BE,EAAMgC,kBAAkBJ,EAAOG,SAGnCH,EAAOG,QAAQE,eAAiB,KAE5BT,EAAIO,QAAQE,iBAGRjC,EAAMJ,qBAAuBa,EAAMd,YACnCY,EAAU,IAAKD,EAAQX,YAAY,GACvC,EAGJiC,EAAOG,QAAQJ,UAAYA,EAE3BO,GAAU,KACNC,KAAKC,WAAaZ,EAAIO,QAAQK,WAC9BD,KAAKE,aAAeb,EAAIO,QAAQM,aAEzB,KACHb,EAAIO,QAAQO,SAAO,IAExB,IAGHJ,GAAU,KAEN,MAAMK,EAAkB7C,EAAmBW,EAAKV,WAAYK,EAAMJ,oBAG5D4C,EAFW3B,GAEW0B,EAE5BvC,EAAMyC,SAAS,CAAEpC,OAAMmC,UAASvB,sBAAmB,GACpD,CAACZ,EAAMI,EAAOH,EAAQW,IAGrByB,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,uBAAuB,EACvB,+BAA2C,YAAXnB,KAGpCgB,EAACI,QAEDJ,EAACK,EAAAA,CACGC,IAAKxB,KACDyB,EAAmBjD,GACvBkD,OAAQ,IAAKC,KAAkBnD,EAAMkD,QACrCT,SAzEsBW,IAC9B,MAAMC,EAAUD,EAEVE,EAAiBD,EAAQE,iBAAmBF,EAAQE,iBAAmBlD,EAAKV,WAElFgB,EAAQ,IAAKN,KAASgD,EAAQhD,KAAMV,WAAY2D,IAChD/C,EAAU,IAAKD,KAAW+C,EAAQ/C,SAClCI,EAAS,IACFD,KACA4C,EAAQ5C,MACXd,YAAYK,EAAMJ,oBAAqBF,EAAmB4D,EAAgBtD,EAAMJ,sBAGpFkB,EAAcuC,EAAQxC,WAAU,EA6DxB2C,QApGQpC,IAChB,MAAMqC,GAAwB,IAAZrC,EAAEsC,MAEpB1C,EAAkBI,EAAEuC,oBAEhBF,EACAzD,EAAMwD,QAAQpC,GAEdpB,EAAM4D,OAAOxC,EACjB,EA4FQyC,OAAQ,EAAGC,cAAa1B,cAAc2B,IAClCrB,EAACC,MAAAA,CAAIK,IAAKc,EAAalB,UAAU,+CAC7BF,EAACsB,EAAAA,CAAetC,OAAQqC,EAASrC,QAC7BgB,EAACC,MAAAA,CAAIC,UAAWC,EAAW,CAAC,2BAA4B,mCACnDH,EAACC,MAAAA,CAAIC,UAAU,mCAAmC3C,EAAKgE,IAAI,oBAE5DvB,EAACwB,EAAAA,CAAMC,mBAAoB,CAAC,kBAAmB,cAAeC,KAAM,kBAAmBC,iBAAiB,GACpG3B,EAAC4B,EAAAA,CACGF,KAAM,kBACN9C,MAAOjB,EAAKO,gBACZ2D,MAAO,CACH,CAAEC,GAAI,WAAYJ,KAAMnE,EAAKgE,IAAI,iBACjC,CAAEO,GAAI,UAAWJ,KAAMnE,EAAKgE,IAAI,iBAEpCxB,SAAUlB,EACVkD,UAAU,EACVC,MAAO,YAId1E,EAAMI,eACHsC,EAACwB,EAAAA,CACGS,MAAO1E,EAAKgE,IAAI,oCAChBrB,UAAW,iCACXgC,eAAgBtE,EAAOX,YAAcM,EAAKgE,IAAI,sCAC9CY,sBAAuB7E,EAAM6E,sBAC7BC,eAAgB7E,EAAKgE,IAAI,6CACzBzB,UAAW/B,EAAMd,WACjByE,KAAM,cAEN1B,EAACqC,EAAAA,CACGnC,UAAU,8DACVoC,YAAahF,GAAOiF,cAActF,WAClC2B,MAAOjB,EAAKV,WACZ8E,SAAUzE,EAAMJ,mBAChBsF,QAAS/D,KAKrBuB,EAACyC,EAAAA,CACGpE,eAAgBA,EAChBqE,aAAchD,EACd9B,OAAQyD,EAASzD,OACjBG,MAAOsD,EAAStD,SAIvBT,EAAMqF,oBAAsB3C,EAAC4C,EAAAA,CAAa7C,SAAUvB,QAKpElB,EAAMuF,eAAiBvF,EAAMwF,UAAU,CAAE9D,SAAQiD,MAAO1E,EAAKgE,IAAI,qBAG9E,CAEAlE,EAAS0F,aAAeA,EAIxB,MAAMxC,EAAsBjD,IACjB,CACH0F,UAAW1F,EAAM0F,UACjBC,UAAW3F,EAAM2F,UACjB1F,KAAMD,EAAMC,KACZ2F,UAAW5F,EAAM4F,UACjBC,gBAAiB7F,EAAM6F,gBACvBC,eAAgB9F,EAAM8F,eACtBC,WAAY/F,EAAM+F,WAClBC,gBAAiBhG,EAAMgG,gBACvBC,QAASjG,EAAMiG,QACfC,aAAclG,EAAMkG,aACpB1C,QAASxD,EAAMwD,QACf2C,OAAQnG,EAAMmG,OACdC,aAAcpG,EAAMoG,aACpBlD,OAAQlD,EAAMkD,OACdmD,KAAMrG,EAAMqG,KACZC,YAAatG,EAAMsG,YACnBC,UAAWvG,EAAMuG,UACjBtB,aAAcjF,EAAMiF,aACpBuB,eAAgBxG,EAAMwG"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../external/classnames/index.js";import a from"../../../../internal/FormFields/Field/Field.js";import r from"../../../../Card/components/CardInput/components/DataSfSpan.js";import{alternativeLabelContent as n}from"../../../../Card/components/CardInput/components/FieldLabelAlternative.js";import{capitalizeFirstLetter as o}from"../../../../../utils/textUtils.js";const s=({id:s,dataInfo:i,className:l="",label:d,focused:c,filled:m,errorMessage:p="",isValid:u=!1,onFocusField:f,dir:F})=>{const _=`encrypted${o(s)}`;return e(a,{label:d,focused:c,filled:m,classNameModifiers:[s],onFocusField:()=>f(_),errorMessage:p,isValid:u,className:l,dir:F,name:s,contextVisibleToScreenReader:!1,useLabelElement:!1,renderAlternativeToLabel:n},e(r,{encryptedFieldType:_,"data-info":i,className:t({"adyen-checkout__input":!0,"adyen-checkout__input--large":!0,"adyen-checkout__input--error":p.length,"adyen-checkout__input--focus":c,"adyen-checkout__input--valid":u})}))};export{s as default};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import a from"../../../../internal/FormFields/Field/Field.js";import r from"../../../../Card/components/CardInput/components/DataSfSpan.js";import{alternativeLabelContent as o}from"../../../../Card/components/CardInput/components/FieldLabelAlternative.js";import{capitalizeFirstLetter as n}from"../../../../../utils/textUtils.js";const i=({id:i,dataInfo:s,className:l="",label:d,focused:c,filled:m,errorMessage:p="",isValid:u=!1,onFocusField:f,dir:_})=>{const F=`encrypted${n(i)}`;return e(a,{label:d,focused:c,filled:m,classNameModifiers:[i],onFocusField:()=>f(F),errorMessage:p,isValid:u,className:l,dir:_,name:i,contextVisibleToScreenReader:!1,useLabelElement:!1,renderAlternativeToLabel:o},e(r,{encryptedFieldType:F,"data-info":s,className:t({"adyen-checkout__input":!0,"adyen-checkout__input--large":!0,"adyen-checkout__input--error":p.length,"adyen-checkout__input--focus":c,"adyen-checkout__input--valid":u})}))};export{i as default};
2
2
  //# sourceMappingURL=AchSFInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AchSFInput.js","sources":["../../../../../../../src/components/Ach/components/AchInput/components/AchSFInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport Field from '../../../../internal/FormFields/Field';\nimport DataSfSpan from '../../../../Card/components/CardInput/components/DataSfSpan';\nimport { alternativeLabelContent } from '../../../../Card/components/CardInput/components/FieldLabelAlternative';\nimport { capitalizeFirstLetter } from '../../../../../utils/textUtils';\n\nconst AchSFInput = ({ id, dataInfo, className = '', label, focused, filled, errorMessage = '', isValid = false, onFocusField, dir }) => {\n const capitalisedId = capitalizeFirstLetter(id);\n const encryptedIdStr = `encrypted${capitalisedId}`;\n\n return (\n <Field\n label={label}\n focused={focused}\n filled={filled}\n classNameModifiers={[id]}\n onFocusField={() => onFocusField(encryptedIdStr)}\n errorMessage={errorMessage}\n isValid={isValid}\n className={className}\n dir={dir}\n name={id}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <DataSfSpan\n encryptedFieldType={encryptedIdStr}\n data-info={dataInfo}\n className={classNames({\n 'adyen-checkout__input': true,\n 'adyen-checkout__input--large': true,\n 'adyen-checkout__input--error': errorMessage.length,\n 'adyen-checkout__input--focus': focused,\n 'adyen-checkout__input--valid': isValid\n })}\n />\n </Field>\n );\n};\n\nexport default AchSFInput;\n"],"names":["AchSFInput","id","dataInfo","className","label","focused","filled","errorMessage","isValid","onFocusField","dir","encryptedIdStr","capitalizeFirstLetter","h","Field","classNameModifiers","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","DataSfSpan","encryptedFieldType","data-info","classNames","length"],"mappings":"mdAOMA,MAAAA,EAAa,EAAGC,KAAIC,WAAUC,YAAY,GAAIC,QAAOC,UAASC,SAAQC,eAAe,GAAIC,WAAU,EAAOC,eAAcC,UAC1H,MACMC,EAAiB,YADDC,EAAsBX,KAG5C,OACIY,EAACC,EAAAA,CACGV,MAAOA,EACPC,QAASA,EACTC,OAAQA,EACRS,mBAAoB,CAACd,GACrBQ,aAAc,IAAMA,EAAaE,GACjCJ,aAAcA,EACdC,QAASA,EACTL,UAAWA,EACXO,IAAKA,EACLM,KAAMf,EACNgB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,GAE1BP,EAACQ,EAAAA,CACGC,mBAAoBX,EACpBY,YAAWrB,EACXC,UAAWqB,EAAW,CAClB,yBAAyB,EACzB,gCAAgC,EAChC,+BAAgCjB,EAAakB,OAC7C,+BAAgCpB,EAChC,+BAAgCG"}
1
+ {"version":3,"file":"AchSFInput.js","sources":["../../../../../../../src/components/Ach/components/AchInput/components/AchSFInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport classNames from 'classnames';\nimport Field from '../../../../internal/FormFields/Field';\nimport DataSfSpan from '../../../../Card/components/CardInput/components/DataSfSpan';\nimport { alternativeLabelContent } from '../../../../Card/components/CardInput/components/FieldLabelAlternative';\nimport { capitalizeFirstLetter } from '../../../../../utils/textUtils';\n\nconst AchSFInput = ({ id, dataInfo, className = '', label, focused, filled, errorMessage = '', isValid = false, onFocusField, dir }) => {\n const capitalisedId = capitalizeFirstLetter(id);\n const encryptedIdStr = `encrypted${capitalisedId}`;\n\n return (\n <Field\n label={label}\n focused={focused}\n filled={filled}\n classNameModifiers={[id]}\n onFocusField={() => onFocusField(encryptedIdStr)}\n errorMessage={errorMessage}\n isValid={isValid}\n className={className}\n dir={dir}\n name={id}\n contextVisibleToScreenReader={false}\n useLabelElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <DataSfSpan\n encryptedFieldType={encryptedIdStr}\n data-info={dataInfo}\n className={classNames({\n 'adyen-checkout__input': true,\n 'adyen-checkout__input--large': true,\n 'adyen-checkout__input--error': errorMessage.length,\n 'adyen-checkout__input--focus': focused,\n 'adyen-checkout__input--valid': isValid\n })}\n />\n </Field>\n );\n};\n\nexport default AchSFInput;\n"],"names":["AchSFInput","id","dataInfo","className","label","focused","filled","errorMessage","isValid","onFocusField","dir","encryptedIdStr","capitalizeFirstLetter","h","Field","classNameModifiers","name","contextVisibleToScreenReader","useLabelElement","renderAlternativeToLabel","alternativeLabelContent","DataSfSpan","encryptedFieldType","data-info","classNames","length"],"mappings":"wcAOMA,MAAAA,EAAa,EAAGC,KAAIC,WAAUC,YAAY,GAAIC,QAAOC,UAASC,SAAQC,eAAe,GAAIC,WAAU,EAAOC,eAAcC,UAC1H,MACMC,EAAiB,YADDC,EAAsBX,KAG5C,OACIY,EAACC,EAAAA,CACGV,MAAOA,EACPC,QAASA,EACTC,OAAQA,EACRS,mBAAoB,CAACd,GACrBQ,aAAc,IAAMA,EAAaE,GACjCJ,aAAcA,EACdC,QAASA,EACTL,UAAWA,EACXO,IAAKA,EACLM,KAAMf,EACNgB,8BAA8B,EAC9BC,iBAAiB,EACjBC,yBAA0BC,GAE1BP,EAACQ,EAAAA,CACGC,mBAAoBX,EACpBY,YAAWrB,EACXC,UAAWqB,EAAW,CAClB,yBAAyB,EACzB,gCAAgC,EAChC,+BAAgCjB,EAAakB,OAC7C,+BAAgCpB,EAChC,+BAAgCG"}
@@ -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 s from"./components/ApplePayButton.js";import r from"./ApplePayService.js";import n from"../../utils/base64.js";import i from"./defaultProps.js";import{httpPost as o}from"../../core/Services/http.js";import{APPLEPAY_SESSION_ENDPOINT as a}from"./config.js";import{preparePaymentRequest as p}from"./payment-request.js";import{resolveSupportedVersion as l,mapBrands as c,formatApplePayContactToAdyenAddressFormat as d}from"./utils.js";import h from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as m}from"../tx-variants.js";import{sanitizeResponse as u,verifyPaymentDidNotFail as y}from"../internal/UIElement/utils.js";import{ANALYTICS_SELECTED_STR as A,ANALYTICS_INSTANT_PAYMENT_BUTTON as P}from"../../core/Analytics/constants.js";function f(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class S extends t{formatProps(e){const t=e.version||l(14),s=e.brands?.length?c(e.brands):e.supportedNetworks;return{...e,configuration:e.configuration,supportedNetworks:s,version:t,totalPriceLabel:e.totalPriceLabel||e.configuration?.merchantName}}formatData(){const{applePayToken:e,billingAddress:t,deliveryAddress:s}=this.state,{isExpress:r}=this.props;return{paymentMethod:{type:S.type,applePayToken:e,...r&&{subtype:"express"}},...t&&{billingAddress:t},...s&&{deliveryAddress:s}}}submitAnalytics(e){super.submitAnalytics({...e},this.props)}startSession(){const{version:e,onValidateMerchant:t,onPaymentMethodSelected:s,onShippingMethodSelected:n,onShippingContactSelected:i}=this.props,o=p({companyName:this.props.configuration.merchantName,countryCode:this.core.options.countryCode,...this.props}),a=new r(o,{version:e,onError:e=>{this.handleError(new h("ERROR","ApplePay - Something went wrong on ApplePayService",{cause:e}))},onCancel:e=>{this.handleError(new h("CANCEL","ApplePay UI dismissed",{cause:e}))},onPaymentMethodSelected:s,onShippingMethodSelected:n,onShippingContactSelected:i,onValidateMerchant:t||this.validateMerchant,onPaymentAuthorized:(e,t,s)=>{const r=d(s.payment.billingContact),n=d(s.payment.shippingContact,!0);this.setState({applePayToken:btoa(JSON.stringify(s.payment.token.paymentData)),authorizedEvent:s,...r&&{billingAddress:r},...n&&{deliveryAddress:n}}),this.handleAuthorization().then(this.makePaymentsCall).then(u).then(y).then(this.collectOrderTrackingDetailsIfNeeded).then((({paymentResponse:t,orderDetails:s})=>(e({status:ApplePaySession.STATUS_SUCCESS,...s&&{orderDetails:s}}),t))).then((e=>{this.handleResponse(e)})).catch((e=>{const s=e?.error?.applePayError;t({status:ApplePaySession.STATUS_FAILURE,errors:s?Array.isArray(s)?s:[s]:void 0});const r={...e,error:{applePayError:s}};this.handleFailedResult(r)}))}});return new Promise(((e,t)=>this.props.onClick(e,t))).then((()=>{a.begin()})).catch((()=>({})))}async handleAuthorization(){return new Promise(((e,t)=>{this.props.onAuthorized||e();const{authorizedEvent:s,billingAddress:r,deliveryAddress:n}=this.state;this.props.onAuthorized({authorizedEvent:s,...r&&{billingAddress:r},...n&&{deliveryAddress:n}},{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=>({paymentResponse:e,...t&&{orderDetails:t}}))).catch((()=>({paymentResponse:e})))}async validateMerchant(e,t){const{hostname:s}=window.location,{clientKey:r,configuration:i,loadingContext:p,initiative:l}=this.props,{merchantName:c,merchantId:d}=i,h={loadingContext:p,path:`${a}?clientKey=${r}`},m={displayName:c,domainName:s,initiative:l,merchantIdentifier:d};try{const s=await o(h,m),r=n.decode(s.data);if(r.success){e(JSON.parse(r.data))}else t("Could not decode Apple Pay session")}catch(e){t("Could not get Apple Pay session")}}get isValid(){return!0}async isAvailable(){if("https:"!==document.location.protocol)return Promise.reject(new h("IMPLEMENTATION_ERROR","Trying to start an Apple Pay session from an insecure document"));if(!this.props.onValidateMerchant&&!this.props.clientKey)return Promise.reject(new h("IMPLEMENTATION_ERROR","clientKey was not provided"));try{if(window.ApplePaySession&&ApplePaySession.canMakePayments()&&ApplePaySession.supportsVersion(this.props.version))return Promise.resolve()}catch(e){console.warn(e)}return Promise.reject(new h("ERROR","Apple Pay is not available on this device"))}render(){return this.props.showPayButton?e(s,{i18n:this.props.i18n,buttonColor:this.props.buttonColor,buttonType:this.props.buttonType,onClick:e=>{e.preventDefault(),this.submit()}}):null}constructor(e,t){super(e,t),f(this,"submit",(()=>{this.props.isInstantPayment&&this.submitAnalytics({type:A,target:P}),this.startSession()}));const{isExpress:s,onShippingContactSelected:r,onShippingMethodSelected:n}=this.props;if(!1===s&&(r||n))throw new h("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)}}f(S,"type",m.applepay),f(S,"defaultProps",i);export{S as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import s from"./components/ApplePayButton.js";import i from"./services/ApplePayService.js";import o from"../../utils/base64.js";import r 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 P}from"./utils/map-adyen-brands-to-applepay-brands.js";import A from"./services/ApplePaySdkLoader.js";function b(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class f extends t{formatProps(e){const t=e.brands?.length?P(e.brands):e.supportedNetworks;return{...e,configuration:e.configuration,supportedNetworks:t,buttonLocale:e.buttonLocale??e.i18n?.locale,totalPriceLabel:e.totalPriceLabel||e.configuration?.merchantName}}formatData(){const{applePayToken:e,billingAddress:t,deliveryAddress:s}=this.state,{isExpress:i}=this.props;return{paymentMethod:{type:f.type,applePayToken:e,...i&&{subtype:"express"}},...t&&{billingAddress:t},...s&&{deliveryAddress:s}}}submitAnalytics(e){super.submitAnalytics({...e},this.props)}get isValid(){return!0}async applePayCapabilities(e){const t=e||this.props.configuration.merchantId;try{return await this.sdkLoader.isSdkLoaded(),await(ApplePaySession?.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{return await this.sdkLoader.isSdkLoaded(),ApplePaySession?.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({renderApplePayCodeAs:e,...t&&{onApplePayCodeClose:t}})}}startSession(){const{onValidateMerchant:e,onPaymentMethodSelected:t,onShippingMethodSelected:s,onShippingContactSelected:o}=this.props,r=a({companyName:this.props.configuration.merchantName,countryCode:this.core.options.countryCode,...this.props}),n=new i(r,{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:s,onShippingContactSelected:o,onValidateMerchant:e||this.validateMerchant,onPaymentAuthorized:(e,t,s)=>{const i=m(s.payment.billingContact),o=m(s.payment.shippingContact,!0);this.setState({applePayToken:btoa(JSON.stringify(s.payment.token.paymentData)),authorizedEvent:s,...i&&{billingAddress:i},...o&&{deliveryAddress:o}}),this.handleAuthorization().then(this.makePaymentsCall).then(d).then(c).then(this.collectOrderTrackingDetailsIfNeeded).then((({paymentResponse:t,orderDetails:s})=>(e({status:ApplePaySession.STATUS_SUCCESS,...s&&{orderDetails:s}}),t))).then((e=>{this.handleResponse(e)})).catch((e=>{const s=e?.error?.applePayError;t({status:ApplePaySession.STATUS_FAILURE,errors:s?Array.isArray(s)?s:[s]:void 0});const i={...e,error:{applePayError:s}};this.handleFailedResult(i)}))}});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:s,billingAddress:i,deliveryAddress:o}=this.state;this.props.onAuthorized({authorizedEvent:s,...i&&{billingAddress:i},...o&&{deliveryAddress:o}},{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=>({paymentResponse:e,...t&&{orderDetails:t}}))).catch((()=>({paymentResponse:e})))}async validateMerchant(e,t){const{hostname:s}=window.location,{clientKey:i,configuration:r,loadingContext:a,initiative:p}=this.props,{merchantName:l,merchantId:d}=r,c={loadingContext:a,path:`v1/applePay/sessions?clientKey=${i}`},h={displayName:l,domainName:s,initiative:p,merchantIdentifier:d};try{const s=await n(c,h),i=o.decode(s.data);if(i.success){e(JSON.parse(i.data))}else t("Could not decode Apple Pay session")}catch(e){t("Could not get Apple Pay session")}}render(){return this.props.showPayButton?e(s,{buttonStyle:this.props.buttonColor,buttonType:this.props.buttonType,buttonLocale:this.props.buttonLocale,onClick:this.submit}):null}constructor(e,t){super(e,t),b(this,"sdkLoader",void 0),b(this,"applePayVersionNumber",void 0),b(this,"submit",(()=>{this.props.isInstantPayment&&this.submitAnalytics({type:h,target:u}),this.startSession()}));const{isExpress:s,onShippingContactSelected:i,onShippingMethodSelected:o}=this.props;if(!1===s&&(i||o))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 A,this.sdkLoader.load().then(this.defineApplePayVersionNumber).then(this.configureApplePayWebOptions).catch((e=>{this.handleError(e)}))}}b(f,"type",l.applepay),b(f,"defaultProps",r);export{f 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 './ApplePayService';\nimport base64 from '../../utils/base64';\nimport defaultProps from './defaultProps';\nimport { httpPost } from '../../core/Services/http';\nimport { APPLEPAY_SESSION_ENDPOINT } from './config';\nimport { preparePaymentRequest } from './payment-request';\nimport { resolveSupportedVersion, mapBrands, formatApplePayContactToAdyenAddressFormat } from './utils';\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';\n\nimport type { ApplePayConfiguration, ApplePayElementData, ApplePayPaymentOrderDetails, ApplePaySessionRequest } from './types';\nimport type { ICore } from '../../core/types';\nimport type { PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nconst latestSupportedVersion = 14;\n\nclass ApplePayElement extends UIElement<ApplePayConfiguration> {\n public static type = TxVariants.applepay;\n protected static defaultProps = defaultProps;\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 }\n\n /**\n * Formats the component props\n */\n protected override formatProps(props) {\n const version = props.version || resolveSupportedVersion(latestSupportedVersion);\n const supportedNetworks = props.brands?.length ? mapBrands(props.brands) : props.supportedNetworks;\n\n return {\n ...props,\n configuration: props.configuration,\n supportedNetworks,\n version,\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 private startSession() {\n const { version, 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,\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 = `${APPLEPAY_SESSION_ENDPOINT}?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 /**\n * Validation\n *\n * @remarks\n * Apple Pay does not require any specific validation\n */\n get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from Apple Pay.\n * @returns Promise Resolve/Reject whether the shopper can use Apple Pay\n */\n public override async isAvailable(): Promise<void> {\n if (document.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 if (!this.props.onValidateMerchant && !this.props.clientKey) {\n return Promise.reject(new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'clientKey was not provided'));\n }\n\n try {\n if (window.ApplePaySession && ApplePaySession.canMakePayments() && ApplePaySession.supportsVersion(this.props.version)) {\n return Promise.resolve();\n }\n } catch (error) {\n console.warn(error);\n }\n\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay is not available on this device'));\n }\n\n /**\n * Renders the Apple Pay button or nothing in the Dropin\n */\n render() {\n if (this.props.showPayButton) {\n return (\n <ApplePayButton\n i18n={this.props.i18n}\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n onClick={e => {\n e.preventDefault();\n this.submit();\n }}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default ApplePayElement;\n"],"names":["ApplePayElement","UIElement","formatProps","props","version","resolveSupportedVersion","supportedNetworks","brands","length","mapBrands","configuration","totalPriceLabel","merchantName","formatData","applePayToken","billingAddress","deliveryAddress","this","state","isExpress","paymentMethod","type","subtype","submitAnalytics","analyticsObj","super","startSession","onValidateMerchant","onPaymentMethodSelected","onShippingMethodSelected","onShippingContactSelected","paymentRequest","preparePaymentRequest","companyName","countryCode","core","options","session","ApplePayService","onError","error","handleError","AdyenCheckoutError","cause","onCancel","event","validateMerchant","onPaymentAuthorized","resolve","reject","formatApplePayContactToAdyenAddressFormat","payment","billingContact","shippingContact","setState","btoa","JSON","stringify","token","paymentData","authorizedEvent","handleAuthorization","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","collectOrderTrackingDetailsIfNeeded","paymentResponse","orderDetails","status","ApplePaySession","STATUS_SUCCESS","handleResponse","catch","errors","applePayError","STATUS_FAILURE","Array","isArray","undefined","responseWithError","handleFailedResult","Promise","onClick","begin","onAuthorized","data","onOrderTrackingRequest","hostname","domainName","window","location","clientKey","loadingContext","initiative","merchantId","path","APPLEPAY_SESSION_ENDPOINT","request","displayName","merchantIdentifier","response","httpPost","decodedData","base64","decode","success","parse","e","isValid","isAvailable","document","protocol","canMakePayments","supportsVersion","console","warn","render","showPayButton","h","ApplePayButton","i18n","buttonColor","buttonType","preventDefault","submit","constructor","checkout","_define_property","isInstantPayment","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","bind","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';\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","configuration","buttonLocale","i18n","locale","totalPriceLabel","merchantName","formatData","applePayToken","billingAddress","deliveryAddress","this","state","isExpress","paymentMethod","type","subtype","submitAnalytics","analyticsObj","super","isValid","applePayCapabilities","merchantIdentifier","identifier","merchantId","sdkLoader","isSdkLoaded","ApplePaySession","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,2 +1,2 @@
1
- import{Component as e,createElement as t}from"../../../external/preact/dist/preact.js";import a from"../../../external/classnames/index.js";class p extends e{render({buttonColor:e,buttonType:p}){return t("button",{type:"button","aria-label":this.props.i18n.get("payButton"),lang:this.props.i18n.languageCode,className:a("adyen-checkout__applepay__button",`adyen-checkout__applepay__button--${e}`,`adyen-checkout__applepay__button--${p}`,"apple-pay","apple-pay-button",`apple-pay-button-${e}`,`apple-pay-button--type-${p}`),onClick:this.props.onClick})}}var n,o,l;l={onClick:()=>{},buttonColor:"black",buttonType:"plain"},(o="defaultProps")in(n=p)?Object.defineProperty(n,o,{value:l,enumerable:!0,configurable:!0,writable:!0}):n[o]=l;export{p as default};
1
+ import{createElement as t}from"../../../external/preact/dist/preact.js";const e=({buttonStyle:e,buttonType:a,buttonLocale:o,onClick:l})=>t("apple-pay-button",{"data-testid":"apple-pay-button",buttonstyle:e,type:a,locale:o,onclick:l});export{e as default};
2
2
  //# sourceMappingURL=ApplePayButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplePayButton.js","sources":["../../../../../src/components/ApplePay/components/ApplePayButton.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport cx from 'classnames';\nimport './ApplePayButton.scss';\nimport Language from '../../../language/Language';\nimport { ApplePayButtonType } from '../types';\n\ninterface ApplePayButtonProps {\n i18n: Language;\n buttonColor: 'black' | 'white' | 'white-with-line';\n buttonType: ApplePayButtonType;\n onClick: (event) => void;\n}\n\nclass ApplePayButton extends Component<ApplePayButtonProps> {\n public static defaultProps = {\n onClick: () => {},\n buttonColor: 'black',\n buttonType: 'plain'\n };\n\n render({ buttonColor, buttonType }) {\n return (\n <button\n type=\"button\"\n aria-label={this.props.i18n.get('payButton')}\n lang={this.props.i18n.languageCode}\n className={cx(\n 'adyen-checkout__applepay__button',\n `adyen-checkout__applepay__button--${buttonColor}`,\n `adyen-checkout__applepay__button--${buttonType}`,\n 'apple-pay',\n 'apple-pay-button',\n `apple-pay-button-${buttonColor}`,\n `apple-pay-button--type-${buttonType}`\n )}\n onClick={this.props.onClick}\n />\n );\n }\n}\n\nexport default ApplePayButton;\n"],"names":["ApplePayButton","Component","render","buttonColor","buttonType","h","button","type","aria-label","this","props","i18n","get","lang","languageCode","className","cx","onClick","defaultProps"],"mappings":"4IAaA,MAAMA,UAAuBC,EAOzBC,MAAAA,EAAOC,YAAEA,EAAWC,WAAEA,IAClB,OACIC,EAACC,SAAAA,CACGC,KAAK,SACLC,aAAYC,KAAKC,MAAMC,KAAKC,IAAI,aAChCC,KAAMJ,KAAKC,MAAMC,KAAKG,aACtBC,UAAWC,EACP,mCACA,qCAAqCb,IACrC,qCAAqCC,IACrC,YACA,mBACA,oBAAoBD,IACpB,0BAA0BC,KAE9Ba,QAASR,KAAKC,MAAMO,SAGhC,cAxB6B,CACzBA,QAAS,OACTd,YAAa,QACbC,WAAY,YAHFc,oBADZlB"}
1
+ {"version":3,"file":"ApplePayButton.js","sources":["../../../../../src/components/ApplePay/components/ApplePayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport type { ApplePayButtonStyle, ApplePayButtonType } from '../types';\nimport './ApplePayButton.scss';\n\ninterface ApplePayButtonProps {\n buttonStyle: ApplePayButtonStyle;\n buttonType: ApplePayButtonType;\n buttonLocale: string;\n onClick(): void;\n}\n\nconst ApplePayButton = ({ buttonStyle, buttonType, buttonLocale, onClick }: ApplePayButtonProps) => {\n return <apple-pay-button data-testid=\"apple-pay-button\" buttonstyle={buttonStyle} type={buttonType} locale={buttonLocale} onclick={onClick} />;\n};\n\nexport default ApplePayButton;\n"],"names":["ApplePayButton","buttonStyle","buttonType","buttonLocale","onClick","h","apple-pay-button","data-testid","buttonstyle","type","locale","onclick"],"mappings":"wEAWMA,MAAAA,EAAiB,EAAGC,cAAaC,aAAYC,eAAcC,aACtDC,EAACC,mBAAAA,CAAiBC,cAAY,mBAAmBC,YAAaP,EAAaQ,KAAMP,EAAYQ,OAAQP,EAAcQ,QAASP"}
@@ -1,2 +1,2 @@
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};
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};
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';\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
+ {"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"}
@@ -0,0 +1,2 @@
1
+ import o from"../../../utils/Script.js";import s from"../../../core/Errors/AdyenCheckoutError.js";const e="https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js";class r{async load(){try{const s=new o(e,"body",{crossOrigin:"anonymous"});return this.sdkLoadingPromise=s.load(),await this.sdkLoadingPromise,window?.ApplePaySession}catch(o){throw new s("SCRIPT_ERROR","ApplePaySDK failed to load",{cause:o})}}isSdkLoaded(){return void 0===this.sdkLoadingPromise?Promise.reject():this.sdkLoadingPromise}constructor(){var o,s,e;e=void 0,(s="sdkLoadingPromise")in(o=this)?Object.defineProperty(o,s,{value:e,enumerable:!0,configurable:!0,writable:!0}):o[s]=e}}export{e as APPLE_PAY_SDK_URL,r as default};
2
+ //# sourceMappingURL=ApplePaySdkLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplePaySdkLoader.js","sources":["../../../../../src/components/ApplePay/services/ApplePaySdkLoader.ts"],"sourcesContent":["import Script from '../../../utils/Script';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\n\nexport const APPLE_PAY_SDK_URL = 'https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js';\n\nclass ApplePaySdkLoader {\n private sdkLoadingPromise: Promise<void>;\n\n public async load(): Promise<ApplePaySession> {\n try {\n const scriptElement = new Script(APPLE_PAY_SDK_URL, 'body', { crossOrigin: 'anonymous' });\n this.sdkLoadingPromise = scriptElement.load();\n await this.sdkLoadingPromise;\n return window?.ApplePaySession;\n } catch (error) {\n throw new AdyenCheckoutError('SCRIPT_ERROR', 'ApplePaySDK failed to load', { cause: error });\n }\n }\n\n public isSdkLoaded(): Promise<void> {\n if (this.sdkLoadingPromise === undefined) {\n return Promise.reject();\n }\n\n return this.sdkLoadingPromise;\n }\n}\n\nexport default ApplePaySdkLoader;\n"],"names":["APPLE_PAY_SDK_URL","ApplePaySdkLoader","load","scriptElement","Script","crossOrigin","this","sdkLoadingPromise","window","ApplePaySession","error","AdyenCheckoutError","cause","isSdkLoaded","undefined","Promise","reject"],"mappings":"kGAGO,MAAMA,EAAoB,iEAEjC,MAAMC,EAGF,UAAaC,GACT,IACI,MAAMC,EAAgB,IAAIC,EAAOJ,EAAmB,OAAQ,CAAEK,YAAa,cAG3E,OAFAC,KAAKC,kBAAoBJ,EAAcD,aACjCI,KAAKC,kBACJC,QAAQC,eACnB,CAAE,MAAOC,GACL,MAAM,IAAIC,EAAmB,eAAgB,6BAA8B,CAAEC,MAAOF,GACxF,CACJ,CAEOG,WAAAA,GACH,YAA+BC,IAA3BR,KAAKC,kBACEQ,QAAQC,SAGZV,KAAKC,iBAChB,gCAnBA,KAAQA,yBAARD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplePayService.js","sources":["../../../../../src/components/ApplePay/services/ApplePayService.ts"],"sourcesContent":["import { ApplePayPaymentAuthorizationResult } from '../types';\n\nexport interface ApplePayServiceOptions {\n version: number;\n onValidateMerchant: (resolve, reject, url) => void;\n onError: (error?: unknown) => void;\n onCancel?: (event: ApplePayJS.Event) => void;\n onPaymentMethodSelected?: (resolve, reject, event: ApplePayJS.ApplePayPaymentMethodSelectedEvent) => void;\n onShippingMethodSelected?: (resolve, reject, event: ApplePayJS.ApplePayShippingMethodSelectedEvent) => void;\n onShippingContactSelected?: (resolve, reject, event: ApplePayJS.ApplePayShippingContactSelectedEvent) => void;\n onPaymentAuthorized: (\n resolve: (result: ApplePayPaymentAuthorizationResult) => void,\n reject: (result: ApplePayPaymentAuthorizationResult) => void,\n event: ApplePayJS.ApplePayPaymentAuthorizedEvent\n ) => void;\n}\n\nclass ApplePayService {\n private session: ApplePaySession;\n private readonly options: ApplePayServiceOptions;\n\n constructor(paymentRequest: ApplePayJS.ApplePayPaymentRequest, options: ApplePayServiceOptions) {\n this.options = options;\n\n this.session = new ApplePaySession(options.version, paymentRequest);\n this.session.onvalidatemerchant = event => {\n void this.onvalidatemerchant(event, options.onValidateMerchant);\n };\n this.session.onpaymentauthorized = event => {\n void this.onpaymentauthorized(event, options.onPaymentAuthorized);\n };\n\n this.session.oncancel = event => {\n this.oncancel(event, options.onCancel);\n };\n\n if (typeof options.onPaymentMethodSelected === 'function') {\n this.session.onpaymentmethodselected = event => {\n void this.onpaymentmethodselected(event, options.onPaymentMethodSelected);\n };\n }\n\n if (typeof options.onShippingContactSelected === 'function') {\n this.session.onshippingcontactselected = event => {\n void this.onshippingcontactselected(event, options.onShippingContactSelected);\n };\n }\n\n if (typeof options.onShippingMethodSelected === 'function') {\n this.session.onshippingmethodselected = event => {\n void this.onshippingmethodselected(event, options.onShippingMethodSelected);\n };\n }\n }\n\n /**\n * Begins the merchant validation process.\n * When this method is called, the payment sheet is presented and the merchant validation process is initiated.\n * @see {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/1778001-begin}\n */\n begin() {\n return this.session.begin();\n }\n\n /**\n * An event handler that is called when the payment sheet is displayed.\n * Use this attribute to request and return a merchant session.\n * @param event - An ApplePayValidateMerchantEvent object (contains validationURL)\n * @param onValidateMerchant - A promise implemented by the merchant that will resolve with the merchantSession\n * @see {@link https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/providing_merchant_validation}\n */\n onvalidatemerchant(event: ApplePayJS.ApplePayValidateMerchantEvent, onValidateMerchant) {\n return new Promise((resolve, reject) => onValidateMerchant(resolve, reject, event.validationURL))\n .then(response => {\n this.session.completeMerchantValidation(response);\n })\n .catch(error => {\n console.error(error);\n this.session.abort();\n this.options.onError(error);\n });\n }\n\n /**\n * An event handler that is called when the user has authorized the Apple Pay payment with Touch ID, Face ID, or passcode.\n * The onpaymentauthorized function must complete the payment and respond by calling completePayment before the 30 second timeout.\n *\n * @param event - The event parameter contains the payment (ApplePayPayment) attribute.\n * @param onPaymentAuthorized - A promise that will complete the payment when resolved. Use this promise to process the payment.\n * @see {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/1778020-onpaymentauthorized}\n */\n onpaymentauthorized(\n event: ApplePayJS.ApplePayPaymentAuthorizedEvent,\n onPaymentAuthorized: ApplePayServiceOptions['onPaymentAuthorized']\n ): Promise<void> {\n return new Promise((resolve, reject) => onPaymentAuthorized(resolve, reject, event))\n .then((result: ApplePayPaymentAuthorizationResult) => {\n this.session.completePayment(result);\n })\n .catch((result: ApplePayPaymentAuthorizationResult) => {\n this.session.completePayment(result);\n });\n }\n\n /**\n * An event handler that is called when a new payment method is selected.\n * The onpaymentmethodselected function must resolve before the 30 second timeout\n *\n * @param event - The event parameter contains the payment (ApplePayPayment) attribute.\n * @param onPaymentMethodSelected - A promise that will complete the payment when resolved. Use this promise to process the payment.\n * @see {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/1778013-onpaymentmethodselected}\n */\n onpaymentmethodselected(event: ApplePayJS.ApplePayPaymentMethodSelectedEvent, onPaymentMethodSelected) {\n return new Promise((resolve, reject) => onPaymentMethodSelected(resolve, reject, event))\n .then((paymentMethodUpdate: ApplePayJS.ApplePayPaymentMethodUpdate) => {\n this.session.completePaymentMethodSelection(paymentMethodUpdate);\n })\n .catch((paymentMethodUpdate: ApplePayJS.ApplePayPaymentMethodUpdate) => {\n this.session.completePaymentMethodSelection(paymentMethodUpdate);\n });\n }\n\n /**\n * An event handler that is called when a new payment method is selected.\n * The onpaymentmethodselected function must resolve before the 30 second timeout\n * @param event - The event parameter contains the shippingContact attribute.\n * @param onShippingContactSelected - A promise that will complete the selection of a shipping contact with an update.\n * @see {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/1778009-onshippingcontactselected}\n */\n onshippingcontactselected(event: ApplePayJS.ApplePayShippingContactSelectedEvent, onShippingContactSelected) {\n return new Promise((resolve, reject) => onShippingContactSelected(resolve, reject, event))\n .then((shippingContactUpdate: ApplePayJS.ApplePayShippingContactUpdate) => {\n this.session.completeShippingContactSelection(shippingContactUpdate);\n })\n .catch((shippingContactUpdate: ApplePayJS.ApplePayShippingContactUpdate) => {\n this.session.completeShippingContactSelection(shippingContactUpdate);\n });\n }\n\n /**\n * An event handler that is called when a new payment method is selected.\n * The onpaymentmethodselected function must resolve before the 30 second timeout\n * @param event - The event parameter contains the shippingMethod attribute.\n * @param onShippingMethodSelected - A promise that will complete the selection of a shipping method with an update.\n * @see {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/1778009-onshippingcontactselected}\n */\n onshippingmethodselected(event: ApplePayJS.ApplePayShippingMethodSelectedEvent, onShippingMethodSelected) {\n return new Promise((resolve, reject) => onShippingMethodSelected(resolve, reject, event))\n .then((shippingMethodUpdate: ApplePayJS.ApplePayShippingMethodUpdate) => {\n this.session.completeShippingMethodSelection(shippingMethodUpdate);\n })\n .catch((shippingMethodUpdate: ApplePayJS.ApplePayShippingMethodUpdate) => {\n this.session.completeShippingMethodSelection(shippingMethodUpdate);\n });\n }\n\n /**\n * An event handler that is automatically called when the payment UI is dismissed.\n * This function can be called even after an onpaymentauthorized event has been dispatched.\n * @param event -\n * @param onCancel -\n * @see {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/1778029-oncancel}\n */\n oncancel(event: ApplePayJS.Event, onCancel): void {\n onCancel(event);\n }\n}\n\nexport default ApplePayService;\n"],"names":["ApplePayService","begin","this","session","onvalidatemerchant","event","onValidateMerchant","Promise","resolve","reject","validationURL","then","response","completeMerchantValidation","catch","error","console","abort","options","onError","onpaymentauthorized","onPaymentAuthorized","result","completePayment","onpaymentmethodselected","onPaymentMethodSelected","paymentMethodUpdate","completePaymentMethodSelection","onshippingcontactselected","onShippingContactSelected","shippingContactUpdate","completeShippingContactSelection","onshippingmethodselected","onShippingMethodSelected","shippingMethodUpdate","completeShippingMethodSelection","oncancel","onCancel","constructor","paymentRequest","_define_property","ApplePaySession","version"],"mappings":"wHAiBA,MAAMA,EA2CFC,KAAAA,GACI,OAAOC,KAAKC,QAAQF,OACxB,CASAG,kBAAAA,CAAmBC,EAAiDC,GAChE,OAAO,IAAIC,SAAQ,CAACC,EAASC,IAAWH,EAAmBE,EAASC,EAAQJ,EAAMK,iBAC7EC,MAAKC,IACFV,KAAKC,QAAQU,2BAA2BD,EAAAA,IAE3CE,OAAMC,IACHC,QAAQD,MAAMA,GACdb,KAAKC,QAAQc,QACbf,KAAKgB,QAAQC,QAAQJ,EAAAA,GAEjC,CAUAK,mBAAAA,CACIf,EACAgB,GAEA,OAAO,IAAId,SAAQ,CAACC,EAASC,IAAWY,EAAoBb,EAASC,EAAQJ,KACxEM,MAAMW,IACHpB,KAAKC,QAAQoB,gBAAgBD,EAAAA,IAEhCR,OAAOQ,IACJpB,KAAKC,QAAQoB,gBAAgBD,EAAAA,GAEzC,CAUAE,uBAAAA,CAAwBnB,EAAsDoB,GAC1E,OAAO,IAAIlB,SAAQ,CAACC,EAASC,IAAWgB,EAAwBjB,EAASC,EAAQJ,KAC5EM,MAAMe,IACHxB,KAAKC,QAAQwB,+BAA+BD,EAAAA,IAE/CZ,OAAOY,IACJxB,KAAKC,QAAQwB,+BAA+BD,EAAAA,GAExD,CASAE,yBAAAA,CAA0BvB,EAAwDwB,GAC9E,OAAO,IAAItB,SAAQ,CAACC,EAASC,IAAWoB,EAA0BrB,EAASC,EAAQJ,KAC9EM,MAAMmB,IACH5B,KAAKC,QAAQ4B,iCAAiCD,EAAAA,IAEjDhB,OAAOgB,IACJ5B,KAAKC,QAAQ4B,iCAAiCD,EAAAA,GAE1D,CASAE,wBAAAA,CAAyB3B,EAAuD4B,GAC5E,OAAO,IAAI1B,SAAQ,CAACC,EAASC,IAAWwB,EAAyBzB,EAASC,EAAQJ,KAC7EM,MAAMuB,IACHhC,KAAKC,QAAQgC,gCAAgCD,EAAAA,IAEhDpB,OAAOoB,IACJhC,KAAKC,QAAQgC,gCAAgCD,EAAAA,GAEzD,CASAE,QAAAA,CAAS/B,EAAyBgC,GAC9BA,EAAShC,EACb,CAhJAiC,WAAAA,CAAYC,EAAmDrB,GAH/DsB,EAAAtC,KAAQC,eAAR,GACAqC,EAAAtC,KAAiBgB,eAAjB,GAGIhB,KAAKgB,QAAUA,EAEfhB,KAAKC,QAAU,IAAIsC,gBAAgBvB,EAAQwB,QAASH,GACpDrC,KAAKC,QAAQC,mBAAqBC,IACzBH,KAAKE,mBAAmBC,EAAOa,EAAQZ,mBAAkB,EAElEJ,KAAKC,QAAQiB,oBAAsBf,IAC1BH,KAAKkB,oBAAoBf,EAAOa,EAAQG,oBAAmB,EAGpEnB,KAAKC,QAAQiC,SAAW/B,IACpBH,KAAKkC,SAAS/B,EAAOa,EAAQmB,SAAQ,EAGM,mBAApCnB,EAAQO,0BACfvB,KAAKC,QAAQqB,wBAA0BnB,IAC9BH,KAAKsB,wBAAwBnB,EAAOa,EAAQO,wBAAuB,GAI/B,mBAAtCP,EAAQW,4BACf3B,KAAKC,QAAQyB,0BAA4BvB,IAChCH,KAAK0B,0BAA0BvB,EAAOa,EAAQW,0BAAyB,GAIpC,mBAArCX,EAAQe,2BACf/B,KAAKC,QAAQ6B,yBAA2B3B,IAC/BH,KAAK8B,yBAAyB3B,EAAOa,EAAQe,yBAAwB,EAGtF"}
@@ -0,0 +1,2 @@
1
+ function e(e,t){if(e)return{city:e.locality,country:e.countryCode,houseNumberOrName:"ZZ",postalCode:e.postalCode,street:e.addressLines?.join(" ").trim(),...e.administrativeArea&&{stateOrProvince:e.administrativeArea},...t&&{firstName:e.givenName,lastName:e.familyName}}}export{e as formatApplePayContactToAdyenAddressFormat};
2
+ //# sourceMappingURL=format-applepay-contact-to-adyen-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-applepay-contact-to-adyen-format.js","sources":["../../../../../src/components/ApplePay/utils/format-applepay-contact-to-adyen-format.ts"],"sourcesContent":["import { AddressData } from '../../../types/global-types';\n\n/**\n * This function formats Apple Pay contact format to Adyen address format\n *\n * Setting 'houseNumberOrName' to ZZ won't affect the AVS check, and it will make the algorithm take the\n * house number from the 'street' property.\n */\nexport function formatApplePayContactToAdyenAddressFormat(\n paymentContact: ApplePayJS.ApplePayPaymentContact,\n isDeliveryAddress?: boolean\n): AddressData | undefined {\n if (!paymentContact) {\n return;\n }\n\n return {\n city: paymentContact.locality,\n country: paymentContact.countryCode,\n houseNumberOrName: 'ZZ',\n postalCode: paymentContact.postalCode,\n street: paymentContact.addressLines?.join(' ').trim(),\n ...(paymentContact.administrativeArea && { stateOrProvince: paymentContact.administrativeArea }),\n ...(isDeliveryAddress && {\n firstName: paymentContact.givenName,\n lastName: paymentContact.familyName\n })\n };\n}\n"],"names":["formatApplePayContactToAdyenAddressFormat","paymentContact","isDeliveryAddress","city","locality","country","countryCode","houseNumberOrName","postalCode","street","addressLines","join","trim","administrativeArea","stateOrProvince","firstName","givenName","lastName","familyName"],"mappings":"AAQO,SAASA,EACZC,EACAC,GAEA,GAAKD,EAIL,MAAO,CACHE,KAAMF,EAAeG,SACrBC,QAASJ,EAAeK,YACxBC,kBAAmB,KACnBC,WAAYP,EAAeO,WAC3BC,OAAQR,EAAeS,cAAcC,KAAK,KAAKC,UAC3CX,EAAeY,oBAAsB,CAAEC,gBAAiBb,EAAeY,uBACvEX,GAAqB,CACrBa,UAAWd,EAAee,UAC1BC,SAAUhB,EAAeiB,YAGrC"}
@@ -0,0 +1,2 @@
1
+ function e(e){const r={mc:"masterCard",amex:"amex",visa:"visa",elodebit:"elo",elo:"elo",interac:"interac",discover:"discover",jcb:"jcb",electron:"electron",maestro:"maestro",girocard:"girocard",cartebancaire:"cartesBancaires",eftpos_australia:"eftpos"};return e.reduce(((e,a)=>(r[a]&&!e.includes(r[a])&&e.push(r[a]),e)),[])}export{e as mapBrands};
2
+ //# sourceMappingURL=map-adyen-brands-to-applepay-brands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-adyen-brands-to-applepay-brands.js","sources":["../../../../../src/components/ApplePay/utils/map-adyen-brands-to-applepay-brands.ts"],"sourcesContent":["export function mapBrands(brands) {\n const brandMapping = {\n mc: 'masterCard',\n amex: 'amex',\n visa: 'visa',\n elodebit: 'elo',\n elo: 'elo',\n interac: 'interac',\n discover: 'discover',\n jcb: 'jcb',\n electron: 'electron',\n maestro: 'maestro',\n girocard: 'girocard',\n cartebancaire: 'cartesBancaires',\n eftpos_australia: 'eftpos'\n };\n\n return brands.reduce((accumulator, item) => {\n if (!!brandMapping[item] && !accumulator.includes(brandMapping[item])) {\n accumulator.push(brandMapping[item]);\n }\n return accumulator;\n }, []);\n}\n"],"names":["mapBrands","brands","brandMapping","mc","amex","visa","elodebit","elo","interac","discover","jcb","electron","maestro","girocard","cartebancaire","eftpos_australia","reduce","accumulator","item","includes","push"],"mappings":"AAAO,SAASA,EAAUC,GACtB,MAAMC,EAAe,CACjBC,GAAI,aACJC,KAAM,OACNC,KAAM,OACNC,SAAU,MACVC,IAAK,MACLC,QAAS,UACTC,SAAU,WACVC,IAAK,MACLC,SAAU,WACVC,QAAS,UACTC,SAAU,WACVC,cAAe,kBACfC,iBAAkB,UAGtB,OAAOd,EAAOe,QAAO,CAACC,EAAaC,KACzBhB,EAAagB,KAAUD,EAAYE,SAASjB,EAAagB,KAC3DD,EAAYG,KAAKlB,EAAagB,IAE3BD,IACR,GACP"}
@@ -0,0 +1,2 @@
1
+ import{getDecimalAmount as t}from"../../../utils/amount-util.js";const e=e=>{const{countryCode:i,companyName:n,amount:o,...r}=e,a=(e=>String(t(e.value,e.currency)))(o);return i||console.warn("Apple Pay - Make sure to set the countryCode in the AdyenCheckout configuration or in the Checkout Session creation"),{countryCode:i,currencyCode:o.currency,total:{label:r.totalPriceLabel,amount:a,type:r.totalPriceStatus},lineItems:r.lineItems,shippingMethods:r.shippingMethods,shippingType:r.shippingType,recurringPaymentRequest:r.recurringPaymentRequest,merchantCapabilities:r.merchantCapabilities,supportedCountries:r.supportedCountries,supportedNetworks:r.supportedNetworks,requiredShippingContactFields:r.requiredShippingContactFields,requiredBillingContactFields:r.requiredBillingContactFields,billingContact:r.billingContact,shippingContact:r.shippingContact,applicationData:r.applicationData}};export{e as default,e as preparePaymentRequest};
2
+ //# sourceMappingURL=payment-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment-request.js","sources":["../../../../../src/components/ApplePay/utils/payment-request.ts"],"sourcesContent":["import { getDecimalAmount } from '../../../utils/amount-util';\nimport { PaymentAmount } from '../../../types/global-types';\n\nconst formatAmount = (amount: PaymentAmount) => String(getDecimalAmount(amount.value, amount.currency));\n\nexport const preparePaymentRequest = (paymentRequest): ApplePayJS.ApplePayPaymentRequest => {\n const { countryCode, companyName, amount, ...props } = paymentRequest;\n const formattedAmount = formatAmount(amount);\n\n if (!countryCode) {\n console.warn('Apple Pay - Make sure to set the countryCode in the AdyenCheckout configuration or in the Checkout Session creation');\n }\n\n return {\n countryCode,\n currencyCode: amount.currency,\n\n total: {\n label: props.totalPriceLabel,\n amount: formattedAmount,\n type: props.totalPriceStatus\n },\n\n lineItems: props.lineItems,\n shippingMethods: props.shippingMethods,\n shippingType: props.shippingType,\n\n recurringPaymentRequest: props.recurringPaymentRequest,\n\n merchantCapabilities: props.merchantCapabilities,\n supportedCountries: props.supportedCountries,\n supportedNetworks: props.supportedNetworks,\n\n requiredShippingContactFields: props.requiredShippingContactFields,\n requiredBillingContactFields: props.requiredBillingContactFields,\n\n billingContact: props.billingContact,\n shippingContact: props.shippingContact,\n\n applicationData: props.applicationData\n };\n};\n\nexport default preparePaymentRequest;\n"],"names":["preparePaymentRequest","paymentRequest","countryCode","companyName","amount","props","formattedAmount","String","getDecimalAmount","value","currency","formatAmount","console","warn","currencyCode","total","label","totalPriceLabel","type","totalPriceStatus","lineItems","shippingMethods","shippingType","recurringPaymentRequest","merchantCapabilities","supportedCountries","supportedNetworks","requiredShippingContactFields","requiredBillingContactFields","billingContact","shippingContact","applicationData"],"mappings":"iEAGA,MAEaA,EAAyBC,IAClC,MAAMC,YAAEA,EAAWC,YAAEA,EAAWC,OAAEA,KAAWC,GAAUJ,EACjDK,EAJW,CAACF,GAA0BG,OAAOC,EAAiBJ,EAAOK,MAAOL,EAAOM,WAIjEC,CAAaP,GAMrC,OAJKF,GACDU,QAAQC,KAAK,uHAGV,CACHX,cACAY,aAAcV,EAAOM,SAErBK,MAAO,CACHC,MAAOX,EAAMY,gBACbb,OAAQE,EACRY,KAAMb,EAAMc,kBAGhBC,UAAWf,EAAMe,UACjBC,gBAAiBhB,EAAMgB,gBACvBC,aAAcjB,EAAMiB,aAEpBC,wBAAyBlB,EAAMkB,wBAE/BC,qBAAsBnB,EAAMmB,qBAC5BC,mBAAoBpB,EAAMoB,mBAC1BC,kBAAmBrB,EAAMqB,kBAEzBC,8BAA+BtB,EAAMsB,8BACrCC,6BAA8BvB,EAAMuB,6BAEpCC,eAAgBxB,EAAMwB,eACtBC,gBAAiBzB,EAAMyB,gBAEvBC,gBAAiB1B,EAAM0B,gBAC3B"}
@@ -0,0 +1,2 @@
1
+ function r(r){try{for(let n=r;n>0;n--)if(ApplePaySession?.supportsVersion(n))return n}catch(r){console.warn(r)}return null}export{r as resolveSupportedVersion};
2
+ //# sourceMappingURL=resolve-supported-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-supported-version.js","sources":["../../../../../src/components/ApplePay/utils/resolve-supported-version.ts"],"sourcesContent":["export function resolveSupportedVersion(latestVersion: number): number | null {\n try {\n for (let v = latestVersion; v > 0; v--) {\n if (ApplePaySession?.supportsVersion(v)) {\n return v;\n }\n }\n } catch (error) {\n console.warn(error);\n }\n return null;\n}\n"],"names":["resolveSupportedVersion","latestVersion","v","ApplePaySession","supportsVersion","error","console","warn"],"mappings":"AAAO,SAASA,EAAwBC,GACpC,IACI,IAAK,IAAIC,EAAID,EAAeC,EAAI,EAAGA,IAC/B,GAAIC,iBAAiBC,gBAAgBF,GACjC,OAAOA,CAGnB,CAAE,MAAOG,GACLC,QAAQC,KAAKF,EACjB,CACA,OAAO,IACX"}
@@ -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"../../../external/classnames/index.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import c from"../../internal/FormFields/Field/Field.js";import r 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){const{i18n:N}=t(),_=d(),{handleChangeFor:C,triggerValidation:y,data:v,valid:I,errors:x,isValid:E}=l({schema:["holderName","bankAccountNumber","bankLocationId","shopperEmail","amountConsentCheckbox","accountConsentCheckbox"],defaultData:f.data,formatters:i,rules:s}),[F,j]=a(k);this.setStatus=j,this.showValidation=y;return o((()=>{f.onChange({data:v,valid:I,errors:x,isValid:E})}),[v,I,x,E]),e("div",{className:n({"adyen-checkout__bacs":!0,"adyen-checkout__bacs--confirm":F===g||"loading"===F})},e(b,null),F==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:N.get("edit"),"aria-label":N.get("edit"),readonly:!0,onClick:()=>this.setStatus(k)})),e(c,{className:n({"adyen-checkout__bacs--holder-name":!0,"adyen-checkout__field--inactive":F===g||"loading"===F}),label:N.get("bacs.accountHolderName"),errorMessage:!!x.holderName&&N.get("bacs.accountHolderName.invalid"),isValid:I.holderName,name:"accountHolderName",i18n:N},e(u,{name:"bacs.accountHolderName",className:"adyen-checkout__bacs-input--holder-name",placeholder:f.placeholders.holderName,value:v.holderName,"aria-invalid":!I.holderName,"aria-label":N.get("bacs.accountHolderName"),"aria-required":"true",required:!0,readonly:F===g||"loading"===F,autocorrect:"off",onBlur:C("holderName","blur"),onInput:C("holderName","input")})),e("div",{className:"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper"},e(c,{errorMessage:!!x.bankAccountNumber&&N.get("bacs.accountNumber.invalid"),label:N.get("bacs.accountNumber"),className:n({"adyen-checkout__bacs--bank-account-number":!0,"adyen-checkout__field--inactive":F===g||"loading"===F}),classNameModifiers:["col-70"],isValid:I.bankAccountNumber,name:"bankAccountNumber",i18n:N},e(u,{value:v.bankAccountNumber,className:"adyen-checkout__bacs-input--bank-account-number",placeholder:f.placeholders.bankAccountNumber,"aria-invalid":!I.bankAccountNumber,"aria-label":N.get("bacs.accountNumber"),"aria-required":"true",required:!0,readonly:F===g||"loading"===F,autocorrect:"off",onBlur:C("bankAccountNumber","blur"),onInput:C("bankAccountNumber","input")})),e(c,{errorMessage:!!x.bankLocationId&&N.get("bacs.bankLocationId.invalid"),label:N.get("bacs.bankLocationId"),className:n({"adyen-checkout__bacs--bank-location-id":!0,"adyen-checkout__field--inactive":F===g||"loading"===F}),classNameModifiers:["col-30"],isValid:I.bankLocationId,name:"bankLocationId",i18n:N},e(u,{value:v.bankLocationId,className:"adyen-checkout__bacs-input--bank-location-id",placeholder:f.placeholders.bankLocationId,"aria-invalid":!I.bankLocationId,"aria-label":N.get("bacs.bankLocationId"),"aria-required":"true",required:!0,readonly:F===g||"loading"===F,autocorrect:"off",onBlur:C("bankLocationId","blur"),onInput:C("bankLocationId","input")}))),e(c,{errorMessage:h(N,x.shopperEmail,N.get("shopperEmail")),label:N.get("shopperEmail"),className:n({"adyen-checkout__bacs--shopper-email":!0,"adyen-checkout__field--inactive":F===g||"loading"===F}),isValid:I.shopperEmail,name:"emailAddress",i18n:N},e(m,{value:v.shopperEmail,name:"shopperEmail",className:"adyen-checkout__bacs-input--shopper-email",classNameModifiers:["large"],placeholder:f.placeholders.shopperEmail,spellcheck:!1,"aria-invalid":!I.shopperEmail,"aria-label":N.get("shopperEmail"),"aria-required":"true",required:!0,readonly:F===g||"loading"===F,autocorrect:"off",onInput:C("shopperEmail","input"),onBlur:C("shopperEmail","blur")})),F===k&&e(r,{classNameModifiers:["amountConsentCheckbox"],errorMessage:!!x.amountConsentCheckbox,label:N.get("bacs.consent.amount"),onChange:C("amountConsentCheckbox"),checked:!!v.amountConsentCheckbox,i18n:N}),F===k&&e(r,{classNameModifiers:["accountConsentCheckbox"],errorMessage:!!x.accountConsentCheckbox,label:N.get("bacs.consent.account"),onChange:C("accountConsentCheckbox"),checked:!!v.accountConsentCheckbox,i18n:N}),f.showPayButton&&f.payButton({status:F,label:F===k?N.get("continue"):`${N.get("bacs.confirm")} ${f.amount?.value&&f.amount?.currency?N.amount(f.amount.value,f.amount.currency):""}`,icon:_({imageFolder:"components/"})(`${p}lock`),onClick:()=>E?F===k?this.setStatus(g):F===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{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){const{i18n:N}=t(),_=d(),{handleChangeFor:C,triggerValidation:y,data:v,valid:I,errors:x,isValid:E}=l({schema:["holderName","bankAccountNumber","bankLocationId","shopperEmail","amountConsentCheckbox","accountConsentCheckbox"],defaultData:f.data,formatters:i,rules:s}),[F,j]=a(k);this.setStatus=j,this.showValidation=y;return o((()=>{f.onChange({data:v,valid:I,errors:x,isValid:E})}),[v,I,x,E]),e("div",{className:n({"adyen-checkout__bacs":!0,"adyen-checkout__bacs--confirm":F===g||"loading"===F})},e(b,null),F==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:N.get("edit"),"aria-label":N.get("edit"),readonly:!0,onClick:()=>this.setStatus(k)})),e(r,{className:n({"adyen-checkout__bacs--holder-name":!0,"adyen-checkout__field--inactive":F===g||"loading"===F}),label:N.get("bacs.accountHolderName"),errorMessage:!!x.holderName&&N.get("bacs.accountHolderName.invalid"),isValid:I.holderName,name:"accountHolderName",i18n:N},e(u,{name:"bacs.accountHolderName",className:"adyen-checkout__bacs-input--holder-name",placeholder:f.placeholders.holderName,value:v.holderName,"aria-invalid":!I.holderName,"aria-label":N.get("bacs.accountHolderName"),"aria-required":"true",required:!0,readonly:F===g||"loading"===F,autocorrect:"off",onBlur:C("holderName","blur"),onInput:C("holderName","input")})),e("div",{className:"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper"},e(r,{errorMessage:!!x.bankAccountNumber&&N.get("bacs.accountNumber.invalid"),label:N.get("bacs.accountNumber"),className:n({"adyen-checkout__bacs--bank-account-number":!0,"adyen-checkout__field--inactive":F===g||"loading"===F}),classNameModifiers:["col-70"],isValid:I.bankAccountNumber,name:"bankAccountNumber",i18n:N},e(u,{value:v.bankAccountNumber,className:"adyen-checkout__bacs-input--bank-account-number",placeholder:f.placeholders.bankAccountNumber,"aria-invalid":!I.bankAccountNumber,"aria-label":N.get("bacs.accountNumber"),"aria-required":"true",required:!0,readonly:F===g||"loading"===F,autocorrect:"off",onBlur:C("bankAccountNumber","blur"),onInput:C("bankAccountNumber","input")})),e(r,{errorMessage:!!x.bankLocationId&&N.get("bacs.bankLocationId.invalid"),label:N.get("bacs.bankLocationId"),className:n({"adyen-checkout__bacs--bank-location-id":!0,"adyen-checkout__field--inactive":F===g||"loading"===F}),classNameModifiers:["col-30"],isValid:I.bankLocationId,name:"bankLocationId",i18n:N},e(u,{value:v.bankLocationId,className:"adyen-checkout__bacs-input--bank-location-id",placeholder:f.placeholders.bankLocationId,"aria-invalid":!I.bankLocationId,"aria-label":N.get("bacs.bankLocationId"),"aria-required":"true",required:!0,readonly:F===g||"loading"===F,autocorrect:"off",onBlur:C("bankLocationId","blur"),onInput:C("bankLocationId","input")}))),e(r,{errorMessage:h(N,x.shopperEmail,N.get("shopperEmail")),label:N.get("shopperEmail"),className:n({"adyen-checkout__bacs--shopper-email":!0,"adyen-checkout__field--inactive":F===g||"loading"===F}),isValid:I.shopperEmail,name:"emailAddress",i18n:N},e(m,{value:v.shopperEmail,name:"shopperEmail",className:"adyen-checkout__bacs-input--shopper-email",classNameModifiers:["large"],placeholder:f.placeholders.shopperEmail,spellcheck:!1,"aria-invalid":!I.shopperEmail,"aria-label":N.get("shopperEmail"),"aria-required":"true",required:!0,readonly:F===g||"loading"===F,autocorrect:"off",onInput:C("shopperEmail","input"),onBlur:C("shopperEmail","blur")})),F===k&&e(c,{classNameModifiers:["amountConsentCheckbox"],errorMessage:!!x.amountConsentCheckbox,label:N.get("bacs.consent.amount"),onChange:C("amountConsentCheckbox"),checked:!!v.amountConsentCheckbox,i18n:N}),F===k&&e(c,{classNameModifiers:["accountConsentCheckbox"],errorMessage:!!x.accountConsentCheckbox,label:N.get("bacs.consent.account"),onChange:C("accountConsentCheckbox"),checked:!!v.accountConsentCheckbox,i18n:N}),f.showPayButton&&f.payButton({status:F,label:F===k?N.get("continue"):`${N.get("bacs.confirm")} ${f.amount?.value&&f.amount?.currency?N.amount(f.amount.value,f.amount.currency):""}`,icon:_({imageFolder:"components/"})(`${p}lock`),onClick:()=>E?F===k?this.setStatus(g):F===g?f.onSubmit():void 0:this.showValidation()}))}f.defaultProps={data:{},placeholders:{}};export{f as default};
2
2
  //# sourceMappingURL=BacsInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BacsInput.js","sources":["../../../../../src/components/BacsDD/components/BacsInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport ConsentCheckbox from '../../internal/FormFields/ConsentCheckbox';\nimport { bacsValidationRules, bacsFormatters } from './validate';\nimport { BacsDataState, BacsInputProps } from './types';\nimport './BacsInput.scss';\n\nimport useForm from '../../../utils/useForm';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport { PREFIX } from '../../internal/Icon/constants';\n\nconst ENTER_STATE = 'enter-data';\nconst CONFIRM_STATE = 'confirm-data';\n\nfunction BacsInput(props: BacsInputProps) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BacsDataState>({\n schema: ['holderName', 'bankAccountNumber', 'bankLocationId', 'shopperEmail', 'amountConsentCheckbox', 'accountConsentCheckbox'],\n defaultData: props.data,\n formatters: bacsFormatters,\n rules: bacsValidationRules\n });\n\n const [status, setStatus] = useState(ENTER_STATE);\n this.setStatus = setStatus;\n this.showValidation = triggerValidation;\n\n const handlePayButton = () => {\n if (!isValid) return this.showValidation();\n\n if (status === ENTER_STATE) {\n return this.setStatus(CONFIRM_STATE);\n } else if (status === CONFIRM_STATE) {\n return props.onSubmit();\n }\n };\n\n const handleEdit = () => {\n return this.setStatus(ENTER_STATE);\n };\n\n useEffect(() => {\n props.onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__bacs': true,\n 'adyen-checkout__bacs--confirm': status === CONFIRM_STATE || status === 'loading'\n })}\n >\n <FormInstruction />\n\n {status == CONFIRM_STATE && (\n <div\n className={classNames({\n 'adyen-checkout__bacs--edit': true,\n 'adyen-checkout__bacs--edit-dropin': props.isDropin\n })}\n >\n <InputText\n name={'bacsEdit'}\n className={'adyen-checkout__bacs--edit-button'}\n value={i18n.get('edit')}\n aria-label={i18n.get('edit')}\n readonly={true}\n onClick={handleEdit}\n />\n </div>\n )}\n\n <Field\n className={classNames({\n 'adyen-checkout__bacs--holder-name': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n label={i18n.get('bacs.accountHolderName')}\n errorMessage={errors.holderName ? i18n.get('bacs.accountHolderName.invalid') : false}\n isValid={valid.holderName}\n name={'accountHolderName'}\n i18n={i18n}\n >\n <InputText\n name={'bacs.accountHolderName'}\n className={'adyen-checkout__bacs-input--holder-name'}\n placeholder={props.placeholders.holderName}\n value={data.holderName}\n aria-invalid={!valid.holderName}\n aria-label={i18n.get('bacs.accountHolderName')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n />\n </Field>\n\n <div className=\"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper\">\n <Field\n errorMessage={!!errors.bankAccountNumber && i18n.get('bacs.accountNumber.invalid')}\n label={i18n.get('bacs.accountNumber')}\n className={classNames({\n 'adyen-checkout__bacs--bank-account-number': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-70']}\n isValid={valid.bankAccountNumber}\n name={'bankAccountNumber'}\n i18n={i18n}\n >\n <InputText\n value={data.bankAccountNumber}\n className={'adyen-checkout__bacs-input--bank-account-number'}\n placeholder={props.placeholders.bankAccountNumber}\n aria-invalid={!valid.bankAccountNumber}\n aria-label={i18n.get('bacs.accountNumber')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n />\n </Field>\n\n <Field\n errorMessage={!!errors.bankLocationId && i18n.get('bacs.bankLocationId.invalid')}\n label={i18n.get('bacs.bankLocationId')}\n className={classNames({\n 'adyen-checkout__bacs--bank-location-id': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-30']}\n isValid={valid.bankLocationId}\n name={'bankLocationId'}\n i18n={i18n}\n >\n <InputText\n value={data.bankLocationId}\n className={'adyen-checkout__bacs-input--bank-location-id'}\n placeholder={props.placeholders.bankLocationId}\n aria-invalid={!valid.bankLocationId}\n aria-label={i18n.get('bacs.bankLocationId')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n onInput={handleChangeFor('bankLocationId', 'input')}\n />\n </Field>\n </div>\n\n <Field\n errorMessage={getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n label={i18n.get('shopperEmail')}\n className={classNames({\n 'adyen-checkout__bacs--shopper-email': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n isValid={valid.shopperEmail}\n name={'emailAddress'}\n i18n={i18n}\n >\n <InputEmail\n value={data.shopperEmail}\n name={'shopperEmail'}\n className={'adyen-checkout__bacs-input--shopper-email'}\n classNameModifiers={['large']}\n placeholder={props.placeholders.shopperEmail}\n spellcheck={false}\n aria-invalid={!valid.shopperEmail}\n aria-label={i18n.get('shopperEmail')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n />\n </Field>\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['amountConsentCheckbox']}\n errorMessage={!!errors.amountConsentCheckbox}\n label={i18n.get('bacs.consent.amount')}\n onChange={handleChangeFor('amountConsentCheckbox')}\n checked={!!data.amountConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['accountConsentCheckbox']}\n errorMessage={!!errors.accountConsentCheckbox}\n label={i18n.get('bacs.consent.account')}\n onChange={handleChangeFor('accountConsentCheckbox')}\n checked={!!data.accountConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {props.showPayButton &&\n props.payButton({\n status,\n label:\n status === ENTER_STATE\n ? i18n.get('continue')\n : `${i18n.get('bacs.confirm')} ${\n !!props.amount?.value && !!props.amount?.currency ? i18n.amount(props.amount.value, props.amount.currency) : ''\n }`,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`),\n onClick: handlePayButton\n })}\n </div>\n );\n}\n\nBacsInput.defaultProps = {\n data: {},\n placeholders: {}\n};\n\nexport default BacsInput;\n"],"names":["ENTER_STATE","CONFIRM_STATE","BacsInput","props","i18n","useCoreContext","getImage","useImage","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","defaultData","formatters","bacsFormatters","rules","bacsValidationRules","status","setStatus","useState","this","showValidation","useEffect","onChange","h","div","className","classNames","FormInstruction","isDropin","InputText","name","value","get","aria-label","readonly","onClick","Field","label","errorMessage","holderName","placeholder","placeholders","aria-invalid","aria-required","required","autocorrect","onBlur","onInput","bankAccountNumber","classNameModifiers","bankLocationId","getErrorMessage","shopperEmail","InputEmail","spellcheck","ConsentCheckbox","amountConsentCheckbox","checked","accountConsentCheckbox","showPayButton","payButton","amount","currency","icon","imageFolder","PREFIX","onSubmit","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"BacsInput.js","sources":["../../../../../src/components/BacsDD/components/BacsInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport ConsentCheckbox from '../../internal/FormFields/ConsentCheckbox';\nimport { bacsValidationRules, bacsFormatters } from './validate';\nimport { BacsDataState, BacsInputProps } from './types';\nimport './BacsInput.scss';\n\nimport useForm from '../../../utils/useForm';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport { PREFIX } from '../../internal/Icon/constants';\n\nconst ENTER_STATE = 'enter-data';\nconst CONFIRM_STATE = 'confirm-data';\n\nfunction BacsInput(props: BacsInputProps) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BacsDataState>({\n schema: ['holderName', 'bankAccountNumber', 'bankLocationId', 'shopperEmail', 'amountConsentCheckbox', 'accountConsentCheckbox'],\n defaultData: props.data,\n formatters: bacsFormatters,\n rules: bacsValidationRules\n });\n\n const [status, setStatus] = useState(ENTER_STATE);\n this.setStatus = setStatus;\n this.showValidation = triggerValidation;\n\n const handlePayButton = () => {\n if (!isValid) return this.showValidation();\n\n if (status === ENTER_STATE) {\n return this.setStatus(CONFIRM_STATE);\n } else if (status === CONFIRM_STATE) {\n return props.onSubmit();\n }\n };\n\n const handleEdit = () => {\n return this.setStatus(ENTER_STATE);\n };\n\n useEffect(() => {\n props.onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__bacs': true,\n 'adyen-checkout__bacs--confirm': status === CONFIRM_STATE || status === 'loading'\n })}\n >\n <FormInstruction />\n\n {status == CONFIRM_STATE && (\n <div\n className={classNames({\n 'adyen-checkout__bacs--edit': true,\n 'adyen-checkout__bacs--edit-dropin': props.isDropin\n })}\n >\n <InputText\n name={'bacsEdit'}\n className={'adyen-checkout__bacs--edit-button'}\n value={i18n.get('edit')}\n aria-label={i18n.get('edit')}\n readonly={true}\n onClick={handleEdit}\n />\n </div>\n )}\n\n <Field\n className={classNames({\n 'adyen-checkout__bacs--holder-name': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n label={i18n.get('bacs.accountHolderName')}\n errorMessage={errors.holderName ? i18n.get('bacs.accountHolderName.invalid') : false}\n isValid={valid.holderName}\n name={'accountHolderName'}\n i18n={i18n}\n >\n <InputText\n name={'bacs.accountHolderName'}\n className={'adyen-checkout__bacs-input--holder-name'}\n placeholder={props.placeholders.holderName}\n value={data.holderName}\n aria-invalid={!valid.holderName}\n aria-label={i18n.get('bacs.accountHolderName')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n />\n </Field>\n\n <div className=\"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper\">\n <Field\n errorMessage={!!errors.bankAccountNumber && i18n.get('bacs.accountNumber.invalid')}\n label={i18n.get('bacs.accountNumber')}\n className={classNames({\n 'adyen-checkout__bacs--bank-account-number': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-70']}\n isValid={valid.bankAccountNumber}\n name={'bankAccountNumber'}\n i18n={i18n}\n >\n <InputText\n value={data.bankAccountNumber}\n className={'adyen-checkout__bacs-input--bank-account-number'}\n placeholder={props.placeholders.bankAccountNumber}\n aria-invalid={!valid.bankAccountNumber}\n aria-label={i18n.get('bacs.accountNumber')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n />\n </Field>\n\n <Field\n errorMessage={!!errors.bankLocationId && i18n.get('bacs.bankLocationId.invalid')}\n label={i18n.get('bacs.bankLocationId')}\n className={classNames({\n 'adyen-checkout__bacs--bank-location-id': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-30']}\n isValid={valid.bankLocationId}\n name={'bankLocationId'}\n i18n={i18n}\n >\n <InputText\n value={data.bankLocationId}\n className={'adyen-checkout__bacs-input--bank-location-id'}\n placeholder={props.placeholders.bankLocationId}\n aria-invalid={!valid.bankLocationId}\n aria-label={i18n.get('bacs.bankLocationId')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n onInput={handleChangeFor('bankLocationId', 'input')}\n />\n </Field>\n </div>\n\n <Field\n errorMessage={getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n label={i18n.get('shopperEmail')}\n className={classNames({\n 'adyen-checkout__bacs--shopper-email': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n isValid={valid.shopperEmail}\n name={'emailAddress'}\n i18n={i18n}\n >\n <InputEmail\n value={data.shopperEmail}\n name={'shopperEmail'}\n className={'adyen-checkout__bacs-input--shopper-email'}\n classNameModifiers={['large']}\n placeholder={props.placeholders.shopperEmail}\n spellcheck={false}\n aria-invalid={!valid.shopperEmail}\n aria-label={i18n.get('shopperEmail')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n />\n </Field>\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['amountConsentCheckbox']}\n errorMessage={!!errors.amountConsentCheckbox}\n label={i18n.get('bacs.consent.amount')}\n onChange={handleChangeFor('amountConsentCheckbox')}\n checked={!!data.amountConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['accountConsentCheckbox']}\n errorMessage={!!errors.accountConsentCheckbox}\n label={i18n.get('bacs.consent.account')}\n onChange={handleChangeFor('accountConsentCheckbox')}\n checked={!!data.accountConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {props.showPayButton &&\n props.payButton({\n status,\n label:\n status === ENTER_STATE\n ? i18n.get('continue')\n : `${i18n.get('bacs.confirm')} ${\n !!props.amount?.value && !!props.amount?.currency ? i18n.amount(props.amount.value, props.amount.currency) : ''\n }`,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`),\n onClick: handlePayButton\n })}\n </div>\n );\n}\n\nBacsInput.defaultProps = {\n data: {},\n placeholders: {}\n};\n\nexport default BacsInput;\n"],"names":["ENTER_STATE","CONFIRM_STATE","BacsInput","props","i18n","useCoreContext","getImage","useImage","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","defaultData","formatters","bacsFormatters","rules","bacsValidationRules","status","setStatus","useState","this","showValidation","useEffect","onChange","h","div","className","classNames","FormInstruction","isDropin","InputText","name","value","get","aria-label","readonly","onClick","Field","label","errorMessage","holderName","placeholder","placeholders","aria-invalid","aria-required","required","autocorrect","onBlur","onInput","bankAccountNumber","classNameModifiers","bankLocationId","getErrorMessage","shopperEmail","InputEmail","spellcheck","ConsentCheckbox","amountConsentCheckbox","checked","accountConsentCheckbox","showPayButton","payButton","amount","currency","icon","imageFolder","PREFIX","onSubmit","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Boleto.js","sources":["../../../../src/components/Boleto/Boleto.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport BoletoInput from './components/BoletoInput';\nimport { cleanCPFCNPJ } from '../internal/SocialSecurityNumberBrazil/utils';\nimport BoletoVoucherResult from './components/BoletoVoucherResult';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { TxVariants } from '../tx-variants';\nimport { VoucherConfiguration } from '../internal/Voucher/types';\n\nexport class BoletoElement extends UIElement<VoucherConfiguration> {\n public static type = TxVariants.boletobancario;\n\n public static txVariants = [\n TxVariants.boletobancario,\n TxVariants.boletobancario_itau,\n TxVariants.boletobancario_santander,\n TxVariants.primeiropay_boleto\n ];\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const { data = {} } = this.state;\n const { billingAddress, shopperEmail, firstName, lastName, socialSecurityNumber = '' } = data;\n\n return {\n paymentMethod: {\n type: this.type\n },\n ...(billingAddress && { billingAddress }),\n ...(shopperEmail && { shopperEmail }),\n ...(firstName && lastName && { shopperName: { firstName, lastName } }),\n ...(socialSecurityNumber && { socialSecurityNumber: cleanCPFCNPJ(socialSecurityNumber) })\n };\n }\n\n private handleRef = ref => {\n this.componentRef = ref;\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.reference ? (\n <BoletoVoucherResult ref={this.handleRef} icon={this.icon} {...this.props} onActionHandled={this.onActionHandled} />\n ) : (\n <BoletoInput\n setComponentRef={this.handleRef}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n )}\n </CoreProvider>\n );\n }\n}\n\nexport default BoletoElement;\n"],"names":["BoletoElement","UIElement","isValid","this","state","formatData","data","billingAddress","shopperEmail","firstName","lastName","socialSecurityNumber","paymentMethod","type","shopperName","cleanCPFCNPJ","render","h","CoreProvider","i18n","props","loadingContext","resources","reference","BoletoVoucherResult","ref","handleRef","icon","onActionHandled","BoletoInput","setComponentRef","onChange","setState","onSubmit","submit","payButton","super","args","_define_property","componentRef","TxVariants","boletobancario","txVariants","boletobancario_itau","boletobancario_santander","primeiropay_boleto"],"mappings":"0jBASO,MAAMA,UAAsBC,EAU/B,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAMC,KAAEA,EAAO,IAAOH,KAAKC,OACrBG,eAAEA,EAAcC,aAAEA,EAAYC,UAAEA,EAASC,SAAEA,EAAQC,qBAAEA,EAAuB,IAAOL,EAEzF,MAAO,CACHM,cAAe,CACXC,KAAMV,KAAKU,SAEXN,GAAkB,CAAEA,qBACpBC,GAAgB,CAAEA,mBAClBC,GAAaC,GAAY,CAAEI,YAAa,CAAEL,YAAWC,gBACrDC,GAAwB,CAAEA,qBAAsBI,EAAaJ,IAEzE,CAMAK,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMhB,KAAKiB,MAAMD,KAAME,eAAgBlB,KAAKiB,MAAMC,eAAgBC,UAAWnB,KAAKmB,WAC3FnB,KAAKiB,MAAMG,UACRN,EAACO,EAAAA,CAAoBC,IAAKtB,KAAKuB,UAAWC,KAAMxB,KAAKwB,QAAUxB,KAAKiB,MAAOQ,gBAAiBzB,KAAKyB,kBAEjGX,EAACY,EAAAA,CACGC,gBAAiB3B,KAAKuB,aAClBvB,KAAKiB,MACTW,SAAU5B,KAAK6B,SACfC,SAAU9B,KAAK+B,OACfC,UAAWhC,KAAKgC,YAKpC,mBApDGC,SAgCHC,GAAAC,EAAAnC,KAAQuB,aAAYD,IAChBtB,KAAKoC,aAAed,CAAAA,KAhCxBa,EADStC,EACKa,OAAO2B,EAAWC,gBAEhCH,EAHStC,EAGK0C,aAAa,CACvBF,EAAWC,eACXD,EAAWG,oBACXH,EAAWI,yBACXJ,EAAWK"}
1
+ {"version":3,"file":"Boleto.js","sources":["../../../../src/components/Boleto/Boleto.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport BoletoInput from './components/BoletoInput';\nimport { cleanCPFCNPJ } from '../internal/SocialSecurityNumberBrazil/utils';\nimport BoletoVoucherResult from './components/BoletoVoucherResult';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { TxVariants } from '../tx-variants';\n\nimport type { BoletoConfiguration } from './types';\n\nexport class BoletoElement extends UIElement<BoletoConfiguration> {\n public static type = TxVariants.boletobancario;\n\n public static txVariants = [\n TxVariants.boletobancario,\n TxVariants.boletobancario_itau,\n TxVariants.boletobancario_santander,\n TxVariants.primeiropay_boleto\n ];\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const { data = {} } = this.state;\n const { billingAddress, shopperEmail, firstName, lastName, socialSecurityNumber = '' } = data;\n\n return {\n paymentMethod: {\n type: this.type\n },\n ...(billingAddress && { billingAddress }),\n ...(shopperEmail && { shopperEmail }),\n ...(firstName && lastName && { shopperName: { firstName, lastName } }),\n ...(socialSecurityNumber && { socialSecurityNumber: cleanCPFCNPJ(socialSecurityNumber) })\n };\n }\n\n private handleRef = ref => {\n this.componentRef = ref;\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.reference ? (\n <BoletoVoucherResult ref={this.handleRef} icon={this.icon} {...this.props} onActionHandled={this.onActionHandled} />\n ) : (\n <BoletoInput\n setComponentRef={this.handleRef}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n )}\n </CoreProvider>\n );\n }\n}\n\nexport default BoletoElement;\n"],"names":["BoletoElement","UIElement","isValid","this","state","formatData","data","billingAddress","shopperEmail","firstName","lastName","socialSecurityNumber","paymentMethod","type","shopperName","cleanCPFCNPJ","render","h","CoreProvider","i18n","props","loadingContext","resources","reference","BoletoVoucherResult","ref","handleRef","icon","onActionHandled","BoletoInput","setComponentRef","onChange","setState","onSubmit","submit","payButton","super","args","_define_property","componentRef","TxVariants","boletobancario","txVariants","boletobancario_itau","boletobancario_santander","primeiropay_boleto"],"mappings":"0jBAUO,MAAMA,UAAsBC,EAU/B,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAMC,KAAEA,EAAO,IAAOH,KAAKC,OACrBG,eAAEA,EAAcC,aAAEA,EAAYC,UAAEA,EAASC,SAAEA,EAAQC,qBAAEA,EAAuB,IAAOL,EAEzF,MAAO,CACHM,cAAe,CACXC,KAAMV,KAAKU,SAEXN,GAAkB,CAAEA,qBACpBC,GAAgB,CAAEA,mBAClBC,GAAaC,GAAY,CAAEI,YAAa,CAAEL,YAAWC,gBACrDC,GAAwB,CAAEA,qBAAsBI,EAAaJ,IAEzE,CAMAK,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMhB,KAAKiB,MAAMD,KAAME,eAAgBlB,KAAKiB,MAAMC,eAAgBC,UAAWnB,KAAKmB,WAC3FnB,KAAKiB,MAAMG,UACRN,EAACO,EAAAA,CAAoBC,IAAKtB,KAAKuB,UAAWC,KAAMxB,KAAKwB,QAAUxB,KAAKiB,MAAOQ,gBAAiBzB,KAAKyB,kBAEjGX,EAACY,EAAAA,CACGC,gBAAiB3B,KAAKuB,aAClBvB,KAAKiB,MACTW,SAAU5B,KAAK6B,SACfC,SAAU9B,KAAK+B,OACfC,UAAWhC,KAAKgC,YAKpC,mBApDGC,SAgCHC,GAAAC,EAAAnC,KAAQuB,aAAYD,IAChBtB,KAAKoC,aAAed,CAAAA,KAhCxBa,EADStC,EACKa,OAAO2B,EAAWC,gBAEhCH,EAHStC,EAGK0C,aAAa,CACvBF,EAAWC,eACXD,EAAWG,oBACXH,EAAWI,yBACXJ,EAAWK"}