@adyen/adyen-web 6.0.0-alpha.2 → 6.0.0-alpha.3

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 (322) hide show
  1. package/README.md +166 -0
  2. package/dist/cjs/adyen.css +2 -2
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +1932 -1968
  6. package/dist/es/adyen.css +2 -2
  7. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  8. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  9. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  10. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  11. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  12. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  13. package/dist/es/components/ApplePay/defaultProps.js +1 -1
  14. package/dist/es/components/ApplePay/defaultProps.js.map +1 -1
  15. package/dist/es/components/ApplePay/payment-request.js.map +1 -1
  16. package/dist/es/components/Boleto/components/BoletoInput/validate.js +1 -1
  17. package/dist/es/components/Boleto/components/BoletoInput/validate.js.map +1 -1
  18. package/dist/es/components/Card/Card.js +1 -1
  19. package/dist/es/components/Card/Card.js.map +1 -1
  20. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  21. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  22. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  23. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  24. package/dist/es/components/Card/components/CardInput/components/CardHolderName.js +1 -1
  25. package/dist/es/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  26. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
  27. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  28. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  29. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  30. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  31. package/dist/es/components/Card/components/CardInput/validate.js +1 -1
  32. package/dist/es/components/Card/components/CardInput/validate.js.map +1 -1
  33. package/dist/es/components/CashAppPay/defaultProps.js +1 -1
  34. package/dist/es/components/CashAppPay/defaultProps.js.map +1 -1
  35. package/dist/es/components/Donation/Donation.js.map +1 -1
  36. package/dist/es/components/Dragonpay/Dragonpay.js +1 -1
  37. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  38. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  39. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  40. package/dist/es/components/Econtext/Econtext.js +1 -1
  41. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  42. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  43. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  44. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  45. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  46. package/dist/es/components/Giropay/Giropay.js +1 -1
  47. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  48. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  49. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  50. package/dist/es/components/GooglePay/GooglePayService.js +1 -1
  51. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  52. package/dist/es/components/GooglePay/defaultProps.js +1 -1
  53. package/dist/es/components/GooglePay/defaultProps.js.map +1 -1
  54. package/dist/es/components/GooglePay/requests.js.map +1 -1
  55. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  56. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  57. package/dist/es/components/Pix/Pix.js +1 -1
  58. package/dist/es/components/Pix/Pix.js.map +1 -1
  59. package/dist/es/components/Pix/PixInput/PixInput.js +1 -1
  60. package/dist/es/components/Pix/PixInput/PixInput.js.map +1 -1
  61. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  62. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  63. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  64. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  65. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  66. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  67. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  68. package/dist/es/components/ThreeDS2/components/utils.js +1 -1
  69. package/dist/es/components/ThreeDS2/components/utils.js.map +1 -1
  70. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  71. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  72. package/dist/es/components/internal/Address/Address.js +1 -1
  73. package/dist/es/components/internal/Address/Address.js.map +1 -1
  74. package/dist/es/components/internal/Address/validate.js +1 -1
  75. package/dist/es/components/internal/Address/validate.js.map +1 -1
  76. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  77. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  78. package/dist/es/components/internal/CompanyDetails/validate.js +1 -1
  79. package/dist/es/components/internal/CompanyDetails/validate.js.map +1 -1
  80. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  81. package/dist/es/components/internal/Img/Img.js +1 -1
  82. package/dist/es/components/internal/Img/Img.js.map +1 -1
  83. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  84. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  85. package/dist/es/components/internal/PersonalDetails/validate.js +1 -1
  86. package/dist/es/components/internal/PersonalDetails/validate.js.map +1 -1
  87. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  88. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  89. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  90. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  91. package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js +1 -1
  92. package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  93. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  94. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
  95. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  96. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/processErrors.js +1 -1
  97. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
  98. package/dist/es/components/internal/SecuredFields/lib/configuration/constants.js +1 -1
  99. package/dist/es/components/internal/SecuredFields/lib/configuration/constants.js.map +1 -1
  100. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  101. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  102. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  103. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
  104. package/dist/es/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
  105. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  106. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  107. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  108. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  109. package/dist/es/components/internal/UIElement/utils.js +1 -1
  110. package/dist/es/components/internal/UIElement/utils.js.map +1 -1
  111. package/dist/es/core/Analytics/Analytics.js +1 -1
  112. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  113. package/dist/es/core/Analytics/constants.js +1 -1
  114. package/dist/es/core/Analytics/constants.js.map +1 -1
  115. package/dist/es/core/Analytics/utils.js +1 -1
  116. package/dist/es/core/Analytics/utils.js.map +1 -1
  117. package/dist/es/core/Errors/constants.js +1 -1
  118. package/dist/es/core/Errors/constants.js.map +1 -1
  119. package/dist/es/core/Errors/utils.js +1 -1
  120. package/dist/es/core/Errors/utils.js.map +1 -1
  121. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  122. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  123. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  124. package/dist/es/core/Services/analytics/log-event.js +1 -1
  125. package/dist/es/core/core.js +1 -1
  126. package/dist/es/core/core.js.map +1 -1
  127. package/dist/es/core/utils.js +1 -1
  128. package/dist/es/core/utils.js.map +1 -1
  129. package/dist/es/index.d.ts +1932 -1968
  130. package/dist/es/language/locales/ar.json.js +1 -1
  131. package/dist/es/language/locales/cs-CZ.json.js +1 -1
  132. package/dist/es/language/locales/da-DK.json.js +1 -1
  133. package/dist/es/language/locales/de-DE.json.js +1 -1
  134. package/dist/es/language/locales/el-GR.json.js +1 -1
  135. package/dist/es/language/locales/en-US.json.js +1 -1
  136. package/dist/es/language/locales/es-ES.json.js +1 -1
  137. package/dist/es/language/locales/fi-FI.json.js +1 -1
  138. package/dist/es/language/locales/fr-FR.json.js +1 -1
  139. package/dist/es/language/locales/hr-HR.json.js +1 -1
  140. package/dist/es/language/locales/hu-HU.json.js +1 -1
  141. package/dist/es/language/locales/it-IT.json.js +1 -1
  142. package/dist/es/language/locales/ja-JP.json.js +1 -1
  143. package/dist/es/language/locales/ko-KR.json.js +1 -1
  144. package/dist/es/language/locales/nl-NL.json.js +1 -1
  145. package/dist/es/language/locales/no-NO.json.js +1 -1
  146. package/dist/es/language/locales/pl-PL.json.js +1 -1
  147. package/dist/es/language/locales/pt-BR.json.js +1 -1
  148. package/dist/es/language/locales/pt-PT.json.js +1 -1
  149. package/dist/es/language/locales/ro-RO.json.js +1 -1
  150. package/dist/es/language/locales/ru-RU.json.js +1 -1
  151. package/dist/es/language/locales/sk-SK.json.js +1 -1
  152. package/dist/es/language/locales/sl-SI.json.js +1 -1
  153. package/dist/es/language/locales/sv-SE.json.js +1 -1
  154. package/dist/es/language/locales/zh-CN.json.js +1 -1
  155. package/dist/es/language/locales/zh-TW.json.js +1 -1
  156. package/dist/es/utils/Formatters/formatters.js.map +1 -1
  157. package/dist/es/utils/Validator/defaultRules.js +1 -1
  158. package/dist/es/utils/Validator/defaultRules.js.map +1 -1
  159. package/dist/es/utils/base64.js +1 -1
  160. package/dist/es/utils/base64.js.map +1 -1
  161. package/dist/es/utils/getErrorMessage.js +1 -1
  162. package/dist/es/utils/getErrorMessage.js.map +1 -1
  163. package/dist/es-legacy/adyen.css +2 -2
  164. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  165. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  166. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  167. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  168. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  169. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  170. package/dist/es-legacy/components/ApplePay/defaultProps.js +1 -1
  171. package/dist/es-legacy/components/ApplePay/defaultProps.js.map +1 -1
  172. package/dist/es-legacy/components/ApplePay/payment-request.js.map +1 -1
  173. package/dist/es-legacy/components/Boleto/components/BoletoInput/validate.js +1 -1
  174. package/dist/es-legacy/components/Boleto/components/BoletoInput/validate.js.map +1 -1
  175. package/dist/es-legacy/components/Card/Card.js +1 -1
  176. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  177. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  178. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  179. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  180. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  181. package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js +1 -1
  182. package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  183. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
  184. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  185. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  186. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  187. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  188. package/dist/es-legacy/components/Card/components/CardInput/validate.js +1 -1
  189. package/dist/es-legacy/components/Card/components/CardInput/validate.js.map +1 -1
  190. package/dist/es-legacy/components/CashAppPay/defaultProps.js +1 -1
  191. package/dist/es-legacy/components/CashAppPay/defaultProps.js.map +1 -1
  192. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  193. package/dist/es-legacy/components/Dragonpay/Dragonpay.js +1 -1
  194. package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
  195. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  196. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  197. package/dist/es-legacy/components/Econtext/Econtext.js +1 -1
  198. package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
  199. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  200. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  201. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  202. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  203. package/dist/es-legacy/components/Giropay/Giropay.js +1 -1
  204. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  205. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  206. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  207. package/dist/es-legacy/components/GooglePay/GooglePayService.js +1 -1
  208. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  209. package/dist/es-legacy/components/GooglePay/defaultProps.js +1 -1
  210. package/dist/es-legacy/components/GooglePay/defaultProps.js.map +1 -1
  211. package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
  212. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  213. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  214. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  215. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  216. package/dist/es-legacy/components/Pix/PixInput/PixInput.js +1 -1
  217. package/dist/es-legacy/components/Pix/PixInput/PixInput.js.map +1 -1
  218. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  219. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  220. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  221. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  222. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  223. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  224. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  225. package/dist/es-legacy/components/ThreeDS2/components/utils.js +1 -1
  226. package/dist/es-legacy/components/ThreeDS2/components/utils.js.map +1 -1
  227. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  228. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  229. package/dist/es-legacy/components/internal/Address/Address.js +1 -1
  230. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  231. package/dist/es-legacy/components/internal/Address/validate.js +1 -1
  232. package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
  233. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  234. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  235. package/dist/es-legacy/components/internal/CompanyDetails/validate.js +1 -1
  236. package/dist/es-legacy/components/internal/CompanyDetails/validate.js.map +1 -1
  237. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  238. package/dist/es-legacy/components/internal/Img/Img.js +1 -1
  239. package/dist/es-legacy/components/internal/Img/Img.js.map +1 -1
  240. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  241. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  242. package/dist/es-legacy/components/internal/PersonalDetails/validate.js +1 -1
  243. package/dist/es-legacy/components/internal/PersonalDetails/validate.js.map +1 -1
  244. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  245. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  246. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  247. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  248. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js +1 -1
  249. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  250. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  251. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
  252. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  253. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/processErrors.js +1 -1
  254. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
  255. package/dist/es-legacy/components/internal/SecuredFields/lib/configuration/constants.js +1 -1
  256. package/dist/es-legacy/components/internal/SecuredFields/lib/configuration/constants.js.map +1 -1
  257. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  258. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  259. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  260. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
  261. package/dist/es-legacy/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
  262. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  263. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  264. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  265. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  266. package/dist/es-legacy/components/internal/UIElement/utils.js +1 -1
  267. package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
  268. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  269. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  270. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  271. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  272. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  273. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  274. package/dist/es-legacy/core/Errors/constants.js +1 -1
  275. package/dist/es-legacy/core/Errors/constants.js.map +1 -1
  276. package/dist/es-legacy/core/Errors/utils.js +1 -1
  277. package/dist/es-legacy/core/Errors/utils.js.map +1 -1
  278. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  279. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  280. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  281. package/dist/es-legacy/core/Services/analytics/log-event.js +1 -1
  282. package/dist/es-legacy/core/core.js +1 -1
  283. package/dist/es-legacy/core/core.js.map +1 -1
  284. package/dist/es-legacy/core/utils.js +1 -1
  285. package/dist/es-legacy/core/utils.js.map +1 -1
  286. package/dist/es-legacy/language/locales/ar.json.js +1 -1
  287. package/dist/es-legacy/language/locales/cs-CZ.json.js +1 -1
  288. package/dist/es-legacy/language/locales/da-DK.json.js +1 -1
  289. package/dist/es-legacy/language/locales/de-DE.json.js +1 -1
  290. package/dist/es-legacy/language/locales/el-GR.json.js +1 -1
  291. package/dist/es-legacy/language/locales/en-US.json.js +1 -1
  292. package/dist/es-legacy/language/locales/es-ES.json.js +1 -1
  293. package/dist/es-legacy/language/locales/fi-FI.json.js +1 -1
  294. package/dist/es-legacy/language/locales/fr-FR.json.js +1 -1
  295. package/dist/es-legacy/language/locales/hr-HR.json.js +1 -1
  296. package/dist/es-legacy/language/locales/hu-HU.json.js +1 -1
  297. package/dist/es-legacy/language/locales/it-IT.json.js +1 -1
  298. package/dist/es-legacy/language/locales/ja-JP.json.js +1 -1
  299. package/dist/es-legacy/language/locales/ko-KR.json.js +1 -1
  300. package/dist/es-legacy/language/locales/nl-NL.json.js +1 -1
  301. package/dist/es-legacy/language/locales/no-NO.json.js +1 -1
  302. package/dist/es-legacy/language/locales/pl-PL.json.js +1 -1
  303. package/dist/es-legacy/language/locales/pt-BR.json.js +1 -1
  304. package/dist/es-legacy/language/locales/pt-PT.json.js +1 -1
  305. package/dist/es-legacy/language/locales/ro-RO.json.js +1 -1
  306. package/dist/es-legacy/language/locales/ru-RU.json.js +1 -1
  307. package/dist/es-legacy/language/locales/sk-SK.json.js +1 -1
  308. package/dist/es-legacy/language/locales/sl-SI.json.js +1 -1
  309. package/dist/es-legacy/language/locales/sv-SE.json.js +1 -1
  310. package/dist/es-legacy/language/locales/zh-CN.json.js +1 -1
  311. package/dist/es-legacy/language/locales/zh-TW.json.js +1 -1
  312. package/dist/es-legacy/utils/Formatters/formatters.js.map +1 -1
  313. package/dist/es-legacy/utils/Validator/defaultRules.js +1 -1
  314. package/dist/es-legacy/utils/Validator/defaultRules.js.map +1 -1
  315. package/dist/es-legacy/utils/base64.js +1 -1
  316. package/dist/es-legacy/utils/base64.js.map +1 -1
  317. package/dist/es-legacy/utils/getErrorMessage.js +1 -1
  318. package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
  319. package/dist/umd/adyen.css +2 -2
  320. package/dist/umd/adyen.js +2 -2
  321. package/dist/umd/adyen.js.map +1 -1
  322. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"requests.js","sources":["../../../../src/components/GooglePay/requests.ts"],"sourcesContent":["import { getDecimalAmount } from '../../utils/amount-util';\nimport config from './config';\nimport { GooglePaymentDataRequest, GooglePayConfiguration } from './types';\n\n/**\n * Configure your site's support for payment methods supported by the Google Pay API.\n *\n * @see {@link https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest|isReadyToPayRequest}\n * @returns Google Pay API version, payment methods supported by the site\n */\nexport function isReadyToPayRequest({\n allowedAuthMethods,\n allowedCardNetworks,\n existingPaymentMethodRequired = false\n}): google.payments.api.IsReadyToPayRequest {\n return {\n apiVersion: config.API_VERSION,\n apiVersionMinor: config.API_VERSION_MINOR,\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n allowedAuthMethods,\n allowedCardNetworks\n },\n tokenizationSpecification: {\n type: 'PAYMENT_GATEWAY',\n parameters: {}\n }\n }\n ],\n existingPaymentMethodRequired\n };\n}\n\n/**\n * Provide Google Pay API with a payment amount, currency, and amount status\n *\n * @see {@link https://developers.google.com/pay/api/web/reference/object#TransactionInfo|TransactionInfo}\n * @returns transaction info, suitable for use as transactionInfo property of PaymentDataRequest\n */\nexport function getTransactionInfo({\n amount,\n countryCode = 'US',\n totalPriceStatus = 'FINAL',\n ...props\n}: GooglePayConfiguration): google.payments.api.TransactionInfo {\n const formattedPrice = String(getDecimalAmount(amount.value, amount.currency));\n\n return {\n countryCode,\n currencyCode: amount.currency,\n totalPrice: formattedPrice,\n totalPriceStatus: totalPriceStatus as google.payments.api.TotalPriceStatus,\n ...props.transactionInfo\n };\n}\n\nexport function initiatePaymentRequest({ configuration, ...props }: GooglePayConfiguration, countryCode: string): GooglePaymentDataRequest {\n return {\n apiVersion: config.API_VERSION,\n apiVersionMinor: config.API_VERSION_MINOR,\n transactionInfo: getTransactionInfo({ countryCode, ...props }),\n merchantInfo: {\n merchantId: configuration.merchantId,\n merchantName: configuration.merchantName,\n ...(configuration.merchantOrigin ? { merchantOrigin: configuration.merchantOrigin } : {}),\n ...(configuration.authJwt ? { authJwt: configuration.authJwt } : {})\n },\n allowedPaymentMethods: [\n {\n type: 'CARD',\n tokenizationSpecification: {\n type: 'PAYMENT_GATEWAY',\n parameters: {\n gateway: config.GATEWAY,\n gatewayMerchantId: configuration.gatewayMerchantId\n }\n },\n parameters: {\n allowedAuthMethods: props.allowedAuthMethods,\n allowedCardNetworks: props.allowedCardNetworks,\n assuranceDetailsRequired: props.assuranceDetailsRequired,\n allowPrepaidCards: props.allowPrepaidCards,\n allowCreditCards: props.allowCreditCards,\n billingAddressRequired: props.billingAddressRequired,\n billingAddressParameters: props.billingAddressParameters\n }\n }\n ],\n emailRequired: props.emailRequired,\n shippingAddressRequired: props.shippingAddressRequired,\n shippingAddressParameters: props.shippingAddressParameters,\n shippingOptionRequired: props.shippingOptionRequired,\n shippingOptionParameters: props.shippingOptionParameters,\n callbackIntents: props.callbackIntents\n };\n}\n"],"names":["isReadyToPayRequest","allowedAuthMethods","allowedCardNetworks","existingPaymentMethodRequired","apiVersion","config","API_VERSION","apiVersionMinor","API_VERSION_MINOR","allowedPaymentMethods","type","parameters","tokenizationSpecification","getTransactionInfo","amount","countryCode","totalPriceStatus","props","formattedPrice","String","getDecimalAmount","value","currency","currencyCode","totalPrice","transactionInfo","initiatePaymentRequest","configuration","merchantInfo","merchantId","merchantName","merchantOrigin","authJwt","gateway","GATEWAY","gatewayMerchantId","assuranceDetailsRequired","allowPrepaidCards","allowCreditCards","billingAddressRequired","billingAddressParameters","emailRequired","shippingAddressRequired","shippingAddressParameters","shippingOptionRequired","shippingOptionParameters","callbackIntents"],"mappings":"yFAUO,SAASA,GAAoBC,mBAChCA,EAAkBC,oBAClBA,EAAmBC,8BACnBA,GAAgC,IAEhC,MAAO,CACHC,WAAYC,EAAOC,YACnBC,gBAAiBF,EAAOG,kBACxBC,sBAAuB,CACnB,CACIC,KAAM,OACNC,WAAY,CACRV,qBACAC,uBAEJU,0BAA2B,CACvBF,KAAM,kBACNC,WAAY,CAAC,KAIzBR,gCAER,CAQO,SAASU,GAAmBC,OAC/BA,EAAMC,YACNA,EAAc,KAAIC,iBAClBA,EAAmB,WAChBC,IAEH,MAAMC,EAAiBC,OAAOC,EAAiBN,EAAOO,MAAOP,EAAOQ,WAEpE,MAAO,CACHP,cACAQ,aAAcT,EAAOQ,SACrBE,WAAYN,EACZF,iBAAkBA,KACfC,EAAMQ,gBAEjB,CAEO,SAASC,GAAuBC,cAAEA,KAAkBV,GAAiCF,GACxF,MAAO,CACHX,WAAYC,EAAOC,YACnBC,gBAAiBF,EAAOG,kBACxBiB,gBAAiBZ,EAAmB,CAAEE,iBAAgBE,IACtDW,aAAc,CACVC,WAAYF,EAAcE,WAC1BC,aAAcH,EAAcG,gBACxBH,EAAcI,eAAiB,CAAEA,eAAgBJ,EAAcI,gBAAmB,CAAE,KACpFJ,EAAcK,QAAU,CAAEA,QAASL,EAAcK,SAAY,CAAE,GAEvEvB,sBAAuB,CACnB,CACIC,KAAM,OACNE,0BAA2B,CACvBF,KAAM,kBACNC,WAAY,CACRsB,QAAS5B,EAAO6B,QAChBC,kBAAmBR,EAAcQ,oBAGzCxB,WAAY,CACRV,mBAAoBgB,EAAMhB,mBAC1BC,oBAAqBe,EAAMf,oBAC3BkC,yBAA0BnB,EAAMmB,yBAChCC,kBAAmBpB,EAAMoB,kBACzBC,iBAAkBrB,EAAMqB,iBACxBC,uBAAwBtB,EAAMsB,uBAC9BC,yBAA0BvB,EAAMuB,4BAI5CC,cAAexB,EAAMwB,cACrBC,wBAAyBzB,EAAMyB,wBAC/BC,0BAA2B1B,EAAM0B,0BACjCC,uBAAwB3B,EAAM2B,uBAC9BC,yBAA0B5B,EAAM4B,yBAChCC,gBAAiB7B,EAAM6B,gBAE/B"}
1
+ {"version":3,"file":"requests.js","sources":["../../../../src/components/GooglePay/requests.ts"],"sourcesContent":["import { getDecimalAmount } from '../../utils/amount-util';\nimport config from './config';\nimport { GooglePaymentDataRequest, GooglePayConfiguration } from './types';\n\n/**\n * Configure your site's support for payment methods supported by the Google Pay API.\n *\n * @see {@link https://developers.google.com/pay/api/web/reference/object#IsReadyToPayRequest|isReadyToPayRequest}\n * @returns Google Pay API version, payment methods supported by the site\n */\nexport function isReadyToPayRequest({\n allowedAuthMethods,\n allowedCardNetworks,\n existingPaymentMethodRequired = false\n}: Pick<\n GooglePayConfiguration,\n 'allowedAuthMethods' | 'allowedCardNetworks' | 'existingPaymentMethodRequired'\n>): google.payments.api.IsReadyToPayRequest {\n return {\n apiVersion: config.API_VERSION,\n apiVersionMinor: config.API_VERSION_MINOR,\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n allowedAuthMethods,\n allowedCardNetworks\n },\n tokenizationSpecification: {\n type: 'PAYMENT_GATEWAY',\n parameters: {}\n }\n }\n ],\n existingPaymentMethodRequired\n };\n}\n\n/**\n * Provide Google Pay API with a payment amount, currency, and amount status\n *\n * @see {@link https://developers.google.com/pay/api/web/reference/object#TransactionInfo|TransactionInfo}\n * @returns transaction info, suitable for use as transactionInfo property of PaymentDataRequest\n */\nexport function getTransactionInfo({\n amount,\n countryCode = 'US',\n totalPriceStatus = 'FINAL',\n ...props\n}: GooglePayConfiguration): google.payments.api.TransactionInfo {\n const formattedPrice = String(getDecimalAmount(amount.value, amount.currency));\n\n return {\n countryCode,\n currencyCode: amount.currency,\n totalPrice: formattedPrice,\n totalPriceStatus: totalPriceStatus as google.payments.api.TotalPriceStatus,\n ...props.transactionInfo\n };\n}\n\nexport function initiatePaymentRequest({ configuration, ...props }: GooglePayConfiguration, countryCode: string): GooglePaymentDataRequest {\n return {\n apiVersion: config.API_VERSION,\n apiVersionMinor: config.API_VERSION_MINOR,\n transactionInfo: getTransactionInfo({ countryCode, ...props }),\n merchantInfo: {\n merchantId: configuration.merchantId,\n merchantName: configuration.merchantName,\n ...(configuration.merchantOrigin ? { merchantOrigin: configuration.merchantOrigin } : {}),\n ...(configuration.authJwt ? { authJwt: configuration.authJwt } : {})\n },\n allowedPaymentMethods: [\n {\n type: 'CARD',\n tokenizationSpecification: {\n type: 'PAYMENT_GATEWAY',\n parameters: {\n gateway: config.GATEWAY,\n gatewayMerchantId: configuration.gatewayMerchantId\n }\n },\n parameters: {\n allowedAuthMethods: props.allowedAuthMethods,\n allowedCardNetworks: props.allowedCardNetworks,\n assuranceDetailsRequired: props.assuranceDetailsRequired,\n allowPrepaidCards: props.allowPrepaidCards,\n allowCreditCards: props.allowCreditCards,\n billingAddressRequired: props.billingAddressRequired,\n billingAddressParameters: props.billingAddressParameters\n }\n }\n ],\n emailRequired: props.emailRequired,\n shippingAddressRequired: props.shippingAddressRequired,\n shippingAddressParameters: props.shippingAddressParameters,\n shippingOptionRequired: props.shippingOptionRequired,\n shippingOptionParameters: props.shippingOptionParameters,\n callbackIntents: props.callbackIntents\n };\n}\n"],"names":["isReadyToPayRequest","allowedAuthMethods","allowedCardNetworks","existingPaymentMethodRequired","apiVersion","config","API_VERSION","apiVersionMinor","API_VERSION_MINOR","allowedPaymentMethods","type","parameters","tokenizationSpecification","getTransactionInfo","amount","countryCode","totalPriceStatus","props","formattedPrice","String","getDecimalAmount","value","currency","currencyCode","totalPrice","transactionInfo","initiatePaymentRequest","configuration","merchantInfo","merchantId","merchantName","merchantOrigin","authJwt","gateway","GATEWAY","gatewayMerchantId","assuranceDetailsRequired","allowPrepaidCards","allowCreditCards","billingAddressRequired","billingAddressParameters","emailRequired","shippingAddressRequired","shippingAddressParameters","shippingOptionRequired","shippingOptionParameters","callbackIntents"],"mappings":"yFAUO,SAASA,GAAoBC,mBAChCA,EAAkBC,oBAClBA,EAAmBC,8BACnBA,GAAgC,IAKhC,MAAO,CACHC,WAAYC,EAAOC,YACnBC,gBAAiBF,EAAOG,kBACxBC,sBAAuB,CACnB,CACIC,KAAM,OACNC,WAAY,CACRV,qBACAC,uBAEJU,0BAA2B,CACvBF,KAAM,kBACNC,WAAY,CAAC,KAIzBR,gCAER,CAQO,SAASU,GAAmBC,OAC/BA,EAAMC,YACNA,EAAc,KAAIC,iBAClBA,EAAmB,WAChBC,IAEH,MAAMC,EAAiBC,OAAOC,EAAiBN,EAAOO,MAAOP,EAAOQ,WAEpE,MAAO,CACHP,cACAQ,aAAcT,EAAOQ,SACrBE,WAAYN,EACZF,iBAAkBA,KACfC,EAAMQ,gBAEjB,CAEO,SAASC,GAAuBC,cAAEA,KAAkBV,GAAiCF,GACxF,MAAO,CACHX,WAAYC,EAAOC,YACnBC,gBAAiBF,EAAOG,kBACxBiB,gBAAiBZ,EAAmB,CAAEE,iBAAgBE,IACtDW,aAAc,CACVC,WAAYF,EAAcE,WAC1BC,aAAcH,EAAcG,gBACxBH,EAAcI,eAAiB,CAAEA,eAAgBJ,EAAcI,gBAAmB,CAAE,KACpFJ,EAAcK,QAAU,CAAEA,QAASL,EAAcK,SAAY,CAAE,GAEvEvB,sBAAuB,CACnB,CACIC,KAAM,OACNE,0BAA2B,CACvBF,KAAM,kBACNC,WAAY,CACRsB,QAAS5B,EAAO6B,QAChBC,kBAAmBR,EAAcQ,oBAGzCxB,WAAY,CACRV,mBAAoBgB,EAAMhB,mBAC1BC,oBAAqBe,EAAMf,oBAC3BkC,yBAA0BnB,EAAMmB,yBAChCC,kBAAmBpB,EAAMoB,kBACzBC,iBAAkBrB,EAAMqB,iBACxBC,uBAAwBtB,EAAMsB,uBAC9BC,yBAA0BvB,EAAMuB,4BAI5CC,cAAexB,EAAMwB,cACrBC,wBAAyBzB,EAAMyB,wBAC/BC,0BAA2B1B,EAAM0B,0BACjCC,uBAAwB3B,EAAM2B,uBAC9BC,yBAA0B5B,EAAM4B,yBAChCC,gBAAiB7B,EAAM6B,gBAE/B"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/MultibancoVoucherResult/MultibancoVoucherResult.js";import r from"../../core/Context/CoreProvider.js";import s from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as n}from"../tx-variants.js";class i extends e{static type=n.multibanco;static defaultProps={showPayButton:!0};get isValid(){return!0}formatProps(t){return{...t,name:t.name||"Multibanco"}}formatData(){return{paymentMethod:{type:this.props.type||i.type}}}handleRef=t=>{this.componentRef=t};render(){return this.props.reference?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(o,{ref:this.handleRef,...this.props})):this.props.showPayButton?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,{name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}})):null}}export{i as MultibancoElement,i as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/MultibancoVoucherResult/MultibancoVoucherResult.js";import r from"../../core/Context/CoreProvider.js";import s from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as n}from"../tx-variants.js";class i extends e{static type=n.multibanco;get isValid(){return!0}formatProps(t){return{...t,name:t.name||"Multibanco"}}formatData(){return{paymentMethod:{type:this.props.type||i.type}}}handleRef=t=>{this.componentRef=t};render(){return this.props.reference?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(o,{ref:this.handleRef,...this.props})):this.props.showPayButton?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,{name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}})):null}}export{i as MultibancoElement,i as default};
2
2
  //# sourceMappingURL=Multibanco.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Multibanco.js","sources":["../../../../src/components/Multibanco/Multibanco.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport MultibancoVoucherResult from './components/MultibancoVoucherResult';\nimport CoreProvider from '../../core/Context/CoreProvider';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { VoucherConfiguration } from '../internal/Voucher/types';\n\nexport class MultibancoElement extends UIElement<VoucherConfiguration> {\n public static type = TxVariants.multibanco;\n public static defaultProps = { showPayButton: true };\n\n get isValid() {\n return true;\n }\n\n formatProps(props) {\n return {\n ...props,\n name: props.name || 'Multibanco'\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n paymentMethod: {\n type: this.props.type || MultibancoElement.type\n }\n };\n }\n\n private handleRef = ref => {\n this.componentRef = ref;\n };\n\n render() {\n if (this.props.reference) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <MultibancoVoucherResult ref={this.handleRef} {...this.props} />\n </CoreProvider>\n );\n }\n\n if (this.props.showPayButton) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <RedirectButton\n name={this.displayName}\n amount={this.props.amount}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </CoreProvider>\n );\n }\n\n return null;\n }\n}\n\nexport default MultibancoElement;\n"],"names":["MultibancoElement","UIElement","static","TxVariants","multibanco","showPayButton","isValid","formatProps","props","name","formatData","paymentMethod","type","this","handleRef","ref","componentRef","render","reference","h","CoreProvider","i18n","loadingContext","resources","MultibancoVoucherResult","RedirectButton","displayName","amount","payButton","onSubmit","submit"],"mappings":"gXAQO,MAAMA,UAA0BC,EACnCC,YAAqBC,EAAWC,WAChCF,oBAA6B,CAAEG,eAAe,GAE9C,WAAIC,GACA,OAAO,CACX,CAEAC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAMD,EAAMC,MAAQ,aAE5B,CAKAC,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKL,MAAMI,MAAQZ,EAAkBY,MAGvD,CAEQE,UAAYC,IAChBF,KAAKG,aAAeD,CAAAA,EAGxBE,MAAAA,GACI,OAAIJ,KAAKL,MAAMU,UAEPC,EAACC,EAAAA,CAAaC,KAAMR,KAAKL,MAAMa,KAAMC,eAAgBT,KAAKL,MAAMc,eAAgBC,UAAWV,KAAKU,WAC5FJ,EAACK,EAAAA,CAAwBT,IAAKF,KAAKC,aAAeD,KAAKL,SAK/DK,KAAKL,MAAMH,cAEPc,EAACC,EAAAA,CAAaC,KAAMR,KAAKL,MAAMa,KAAMC,eAAgBT,KAAKL,MAAMc,eAAgBC,UAAWV,KAAKU,WAC5FJ,EAACM,EAAAA,CACGhB,KAAMI,KAAKa,YACXC,OAAQd,KAAKL,MAAMmB,OACnBC,UAAWf,KAAKe,UAChBC,SAAUhB,KAAKiB,OACff,IAAKA,IACDF,KAAKG,aAAeD,CAAAA,KAOjC,IACX"}
1
+ {"version":3,"file":"Multibanco.js","sources":["../../../../src/components/Multibanco/Multibanco.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport MultibancoVoucherResult from './components/MultibancoVoucherResult';\nimport CoreProvider from '../../core/Context/CoreProvider';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { VoucherConfiguration } from '../internal/Voucher/types';\n\nexport class MultibancoElement extends UIElement<VoucherConfiguration> {\n public static type = TxVariants.multibanco;\n\n get isValid() {\n return true;\n }\n\n formatProps(props) {\n return {\n ...props,\n name: props.name || 'Multibanco'\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n return {\n paymentMethod: {\n type: this.props.type || MultibancoElement.type\n }\n };\n }\n\n private handleRef = ref => {\n this.componentRef = ref;\n };\n\n render() {\n if (this.props.reference) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <MultibancoVoucherResult ref={this.handleRef} {...this.props} />\n </CoreProvider>\n );\n }\n\n if (this.props.showPayButton) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <RedirectButton\n name={this.displayName}\n amount={this.props.amount}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </CoreProvider>\n );\n }\n\n return null;\n }\n}\n\nexport default MultibancoElement;\n"],"names":["MultibancoElement","UIElement","static","TxVariants","multibanco","isValid","formatProps","props","name","formatData","paymentMethod","type","this","handleRef","ref","componentRef","render","reference","h","CoreProvider","i18n","loadingContext","resources","MultibancoVoucherResult","showPayButton","RedirectButton","displayName","amount","payButton","onSubmit","submit"],"mappings":"gXAQO,MAAMA,UAA0BC,EACnCC,YAAqBC,EAAWC,WAEhC,WAAIC,GACA,OAAO,CACX,CAEAC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAMD,EAAMC,MAAQ,aAE5B,CAKAC,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKL,MAAMI,MAAQX,EAAkBW,MAGvD,CAEQE,UAAYC,IAChBF,KAAKG,aAAeD,CAAAA,EAGxBE,MAAAA,GACI,OAAIJ,KAAKL,MAAMU,UAEPC,EAACC,EAAAA,CAAaC,KAAMR,KAAKL,MAAMa,KAAMC,eAAgBT,KAAKL,MAAMc,eAAgBC,UAAWV,KAAKU,WAC5FJ,EAACK,EAAAA,CAAwBT,IAAKF,KAAKC,aAAeD,KAAKL,SAK/DK,KAAKL,MAAMiB,cAEPN,EAACC,EAAAA,CAAaC,KAAMR,KAAKL,MAAMa,KAAMC,eAAgBT,KAAKL,MAAMc,eAAgBC,UAAWV,KAAKU,WAC5FJ,EAACO,EAAAA,CACGjB,KAAMI,KAAKc,YACXC,OAAQf,KAAKL,MAAMoB,OACnBC,UAAWhB,KAAKgB,UAChBC,SAAUjB,KAAKkB,OACfhB,IAAKA,IACDF,KAAKG,aAAeD,CAAAA,KAOjC,IACX"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import e from"../helpers/QRLoaderContainer/QRLoaderContainer.js";import r from"../../core/Context/CoreProvider.js";import s from"./PixInput/PixInput.js";import{cleanCPFCNPJ as o}from"../internal/SocialSecurityNumberBrazil/utils.js";import{TxVariants as a}from"../tx-variants.js";class i extends e{static type=a.pix;static defaultProps={showPayButton:!1,personalDetailsRequired:!1,countdownTime:15,delay:2e3,...e.defaultProps};get isValid(){return!!this.state.isValid}formatProps(t){return{copyBtn:!0,introduction:"pix.instructions",...super.formatProps(t)}}formatData(){const{data:t={}}=this.state,{firstName:e,lastName:r,socialSecurityNumber:s=""}=t;return{paymentMethod:{type:this.props.type||this.constructor.type},...e&&r&&{shopperName:{firstName:e,lastName:r}},...s&&{socialSecurityNumber:o(s)}}}render(){return this.props.paymentData?this.renderQRCode():t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,{ref:t=>{this.componentRef=t},...this.props,showPayButton:this.props.showPayButton,personalDetailsRequired:this.props.personalDetailsRequired,name:this.displayName,onChange:this.setState,payButton:this.payButton}))}}export{i as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import e from"../helpers/QRLoaderContainer/QRLoaderContainer.js";import r from"../../core/Context/CoreProvider.js";import s from"./PixInput/PixInput.js";import{cleanCPFCNPJ as o}from"../internal/SocialSecurityNumberBrazil/utils.js";import{TxVariants as i}from"../tx-variants.js";class a extends e{static type=i.pix;static defaultProps={personalDetailsRequired:!1,countdownTime:15,delay:2e3,...e.defaultProps};get isValid(){return!!this.state.isValid}formatProps(t){return{copyBtn:!0,introduction:"pix.instructions",...super.formatProps(t)}}formatData(){const{data:t={}}=this.state,{firstName:e,lastName:r,socialSecurityNumber:s=""}=t;return{paymentMethod:{type:this.props.type||this.constructor.type},...e&&r&&{shopperName:{firstName:e,lastName:r}},...s&&{socialSecurityNumber:o(s)}}}render(){return this.props.paymentData?this.renderQRCode():t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,{ref:t=>{this.componentRef=t},...this.props,showPayButton:this.props.showPayButton,personalDetailsRequired:this.props.personalDetailsRequired,name:this.displayName,onChange:this.setState,payButton:this.payButton}))}}export{a as default};
2
2
  //# sourceMappingURL=Pix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pix.js","sources":["../../../../src/components/Pix/Pix.tsx"],"sourcesContent":["import { h } from 'preact';\nimport QRLoaderContainer from '../helpers/QRLoaderContainer/QRLoaderContainer';\nimport CoreProvider from '../../core/Context/CoreProvider';\nimport PixInput from './PixInput';\nimport { cleanCPFCNPJ } from '../internal/SocialSecurityNumberBrazil/utils';\nimport { PixElementData, PixConfiguration } from './types';\nimport { TxVariants } from '../tx-variants';\n\nclass PixElement extends QRLoaderContainer<PixConfiguration> {\n public static type = TxVariants.pix;\n\n public static defaultProps = {\n showPayButton: false,\n personalDetailsRequired: false,\n countdownTime: 15,\n delay: 2000,\n ...QRLoaderContainer.defaultProps\n };\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n formatProps(props): PixConfiguration {\n return {\n copyBtn: true,\n introduction: 'pix.instructions',\n ...super.formatProps(props)\n };\n }\n\n formatData(): PixElementData {\n const { data = {} } = this.state;\n const { firstName, lastName, socialSecurityNumber = '' } = data;\n\n return {\n paymentMethod: {\n type: this.props.type || this.constructor['type']\n },\n ...(firstName && lastName && { shopperName: { firstName, lastName } }),\n ...(socialSecurityNumber && { socialSecurityNumber: cleanCPFCNPJ(socialSecurityNumber) })\n };\n }\n\n render() {\n if (this.props.paymentData) {\n return this.renderQRCode();\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PixInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n showPayButton={this.props.showPayButton}\n personalDetailsRequired={this.props.personalDetailsRequired}\n name={this.displayName}\n onChange={this.setState}\n payButton={this.payButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default PixElement;\n"],"names":["PixElement","QRLoaderContainer","static","TxVariants","pix","showPayButton","personalDetailsRequired","countdownTime","delay","defaultProps","isValid","this","state","formatProps","props","copyBtn","introduction","super","formatData","data","firstName","lastName","socialSecurityNumber","paymentMethod","type","constructor","shopperName","cleanCPFCNPJ","render","paymentData","renderQRCode","h","CoreProvider","i18n","loadingContext","resources","PixInput","ref","componentRef","name","displayName","onChange","setState","payButton"],"mappings":"4VAQA,MAAMA,UAAmBC,EACrBC,YAAqBC,EAAWC,IAEhCF,oBAA6B,CACzBG,eAAe,EACfC,yBAAyB,EACzBC,cAAe,GACfC,MAAO,OACJP,EAAkBQ,cAGzB,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAEAG,WAAAA,CAAYC,GACR,MAAO,CACHC,SAAS,EACTC,aAAc,sBACXC,MAAMJ,YAAYC,GAE7B,CAEAI,UAAAA,GACI,MAAMC,KAAEA,EAAO,CAAA,GAAOR,KAAKC,OACrBQ,UAAEA,EAASC,SAAEA,EAAQC,qBAAEA,EAAuB,IAAOH,EAE3D,MAAO,CACHI,cAAe,CACXC,KAAMb,KAAKG,MAAMU,MAAQb,KAAKc,YAAmB,SAEjDL,GAAaC,GAAY,CAAEK,YAAa,CAAEN,YAAWC,gBACrDC,GAAwB,CAAEA,qBAAsBK,EAAaL,IAEzE,CAEAM,MAAAA,GACI,OAAIjB,KAAKG,MAAMe,YACJlB,KAAKmB,eAIZC,EAACC,EAAAA,CAAaC,KAAMtB,KAAKG,MAAMmB,KAAMC,eAAgBvB,KAAKG,MAAMoB,eAAgBC,UAAWxB,KAAKwB,WAC5FJ,EAACK,EAAAA,CACGC,IAAKA,IACD1B,KAAK2B,aAAeD,CAAAA,KAEpB1B,KAAKG,MACTT,cAAeM,KAAKG,MAAMT,cAC1BC,wBAAyBK,KAAKG,MAAMR,wBACpCiC,KAAM5B,KAAK6B,YACXC,SAAU9B,KAAK+B,SACfC,UAAWhC,KAAKgC,YAIhC"}
1
+ {"version":3,"file":"Pix.js","sources":["../../../../src/components/Pix/Pix.tsx"],"sourcesContent":["import { h } from 'preact';\nimport QRLoaderContainer from '../helpers/QRLoaderContainer/QRLoaderContainer';\nimport CoreProvider from '../../core/Context/CoreProvider';\nimport PixInput from './PixInput';\nimport { cleanCPFCNPJ } from '../internal/SocialSecurityNumberBrazil/utils';\nimport { PixElementData, PixConfiguration } from './types';\nimport { TxVariants } from '../tx-variants';\n\nclass PixElement extends QRLoaderContainer<PixConfiguration> {\n public static type = TxVariants.pix;\n\n public static defaultProps = {\n personalDetailsRequired: false,\n countdownTime: 15,\n delay: 2000,\n ...QRLoaderContainer.defaultProps\n };\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n formatProps(props): PixConfiguration {\n return {\n copyBtn: true,\n introduction: 'pix.instructions',\n ...super.formatProps(props)\n };\n }\n\n formatData(): PixElementData {\n const { data = {} } = this.state;\n const { firstName, lastName, socialSecurityNumber = '' } = data;\n\n return {\n paymentMethod: {\n type: this.props.type || this.constructor['type']\n },\n ...(firstName && lastName && { shopperName: { firstName, lastName } }),\n ...(socialSecurityNumber && { socialSecurityNumber: cleanCPFCNPJ(socialSecurityNumber) })\n };\n }\n\n render() {\n if (this.props.paymentData) {\n return this.renderQRCode();\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PixInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n showPayButton={this.props.showPayButton}\n personalDetailsRequired={this.props.personalDetailsRequired}\n name={this.displayName}\n onChange={this.setState}\n payButton={this.payButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default PixElement;\n"],"names":["PixElement","QRLoaderContainer","static","TxVariants","pix","personalDetailsRequired","countdownTime","delay","defaultProps","isValid","this","state","formatProps","props","copyBtn","introduction","super","formatData","data","firstName","lastName","socialSecurityNumber","paymentMethod","type","constructor","shopperName","cleanCPFCNPJ","render","paymentData","renderQRCode","h","CoreProvider","i18n","loadingContext","resources","PixInput","ref","componentRef","showPayButton","name","displayName","onChange","setState","payButton"],"mappings":"4VAQA,MAAMA,UAAmBC,EACrBC,YAAqBC,EAAWC,IAEhCF,oBAA6B,CACzBG,yBAAyB,EACzBC,cAAe,GACfC,MAAO,OACJN,EAAkBO,cAGzB,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAEAG,WAAAA,CAAYC,GACR,MAAO,CACHC,SAAS,EACTC,aAAc,sBACXC,MAAMJ,YAAYC,GAE7B,CAEAI,UAAAA,GACI,MAAMC,KAAEA,EAAO,CAAA,GAAOR,KAAKC,OACrBQ,UAAEA,EAASC,SAAEA,EAAQC,qBAAEA,EAAuB,IAAOH,EAE3D,MAAO,CACHI,cAAe,CACXC,KAAMb,KAAKG,MAAMU,MAAQb,KAAKc,YAAmB,SAEjDL,GAAaC,GAAY,CAAEK,YAAa,CAAEN,YAAWC,gBACrDC,GAAwB,CAAEA,qBAAsBK,EAAaL,IAEzE,CAEAM,MAAAA,GACI,OAAIjB,KAAKG,MAAMe,YACJlB,KAAKmB,eAIZC,EAACC,EAAAA,CAAaC,KAAMtB,KAAKG,MAAMmB,KAAMC,eAAgBvB,KAAKG,MAAMoB,eAAgBC,UAAWxB,KAAKwB,WAC5FJ,EAACK,EAAAA,CACGC,IAAKA,IACD1B,KAAK2B,aAAeD,CAAAA,KAEpB1B,KAAKG,MACTyB,cAAe5B,KAAKG,MAAMyB,cAC1BjC,wBAAyBK,KAAKG,MAAMR,wBACpCkC,KAAM7B,KAAK8B,YACXC,SAAU/B,KAAKgC,SACfC,UAAWjC,KAAKiC,YAIhC"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../../external/preact/dist/preact.js";import{useEffect as a,useState as e}from"../../../external/preact/hooks/dist/hooks.js";import{pixValidationRules as s}from"./validate.js";import{pixFormatters as r}from"./utils.js";import o from"../../../core/Context/useCoreContext.js";import i from"../../../utils/useForm/useForm.js";import{BrazilPersonalDetail as l}from"../../internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js";function n({name:n,data:m,personalDetailsRequired:d,showPayButton:u=!1,onChange:c,payButton:f}){const{i18n:p}=o(),h=["firstName","lastName","socialSecurityNumber"],{handleChangeFor:y,triggerValidation:j,setSchema:g,data:x,valid:C,errors:N,isValid:S}=i({schema:h,defaultData:m,rules:s,formatters:r});a((()=>{const t=d?[...h]:[];g(t)}),[d]);const[v,B]=e("ready");this.setStatus=B,this.showValidation=()=>{j()},a((()=>{c({data:x,valid:C,errors:N,isValid:S})}),[c,x,C,N]);const F=d?[]:["standalone"];return t("div",{className:"adyen-checkout__pix-input__field",style:u||d?null:{display:"none"}},d&&t(l,{i18n:p,data:x,handleChangeFor:y,errors:N,valid:C}),u&&f({status:v,label:`${p.get("continueTo")} ${n}`,classNameModifiers:F}))}export{n as default};
1
+ import{createElement as t}from"../../../external/preact/dist/preact.js";import{useEffect as a,useState as e}from"../../../external/preact/hooks/dist/hooks.js";import{pixValidationRules as s}from"./validate.js";import{pixFormatters as r}from"./utils.js";import o from"../../../core/Context/useCoreContext.js";import i from"../../../utils/useForm/useForm.js";import{BrazilPersonalDetail as l}from"../../internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js";function n({name:n,data:m,personalDetailsRequired:d,showPayButton:u,onChange:c,payButton:f}){const{i18n:p}=o(),h=["firstName","lastName","socialSecurityNumber"],{handleChangeFor:y,triggerValidation:j,setSchema:g,data:x,valid:C,errors:N,isValid:S}=i({schema:h,defaultData:m,rules:s,formatters:r});a((()=>{const t=d?[...h]:[];g(t)}),[d]);const[v,B]=e("ready");this.setStatus=B,this.showValidation=()=>{j()},a((()=>{c({data:x,valid:C,errors:N,isValid:S})}),[c,x,C,N]);const F=d?[]:["standalone"];return t("div",{className:"adyen-checkout__pix-input__field",style:u||d?null:{display:"none"}},d&&t(l,{i18n:p,data:x,handleChangeFor:y,errors:N,valid:C}),u&&f({status:v,label:`${p.get("continueTo")} ${n}`,classNameModifiers:F}))}export{n as default};
2
2
  //# sourceMappingURL=PixInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PixInput.js","sources":["../../../../../src/components/Pix/PixInput/PixInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { pixValidationRules } from './validate';\nimport { pixFormatters } from './utils';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport useForm from '../../../utils/useForm';\nimport { BrazilPersonalDetail } from '../../internal/SocialSecurityNumberBrazil/BrazilPersonalDetail';\nimport { PixInputDataState, PixInputProps } from './types';\n\nfunction PixInput({ name, data: dataProps, personalDetailsRequired, showPayButton = false, onChange, payButton }: PixInputProps) {\n const { i18n } = useCoreContext();\n const formSchema = ['firstName', 'lastName', 'socialSecurityNumber'];\n const { handleChangeFor, triggerValidation, setSchema, data, valid, errors, isValid } = useForm<PixInputDataState>({\n schema: formSchema,\n defaultData: dataProps,\n rules: pixValidationRules,\n formatters: pixFormatters\n });\n\n // Handle form schema updates\n useEffect(() => {\n const newSchema = personalDetailsRequired ? [...formSchema] : [];\n setSchema(newSchema);\n }, [personalDetailsRequired]);\n\n const [status, setStatus] = useState('ready');\n this.setStatus = setStatus;\n\n this.showValidation = () => {\n triggerValidation();\n };\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [onChange, data, valid, errors]);\n\n const buttonModifiers = !personalDetailsRequired ? ['standalone'] : [];\n\n return (\n <div className=\"adyen-checkout__pix-input__field\" style={!showPayButton && !personalDetailsRequired ? { display: 'none' } : null}>\n {personalDetailsRequired && (\n <BrazilPersonalDetail i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} valid={valid} />\n )}\n\n {showPayButton &&\n payButton({\n status,\n label: `${i18n.get('continueTo')} ${name}`,\n classNameModifiers: buttonModifiers\n })}\n </div>\n );\n}\n\nexport default PixInput;\n"],"names":["PixInput","name","data","dataProps","personalDetailsRequired","showPayButton","onChange","payButton","i18n","useCoreContext","formSchema","handleChangeFor","triggerValidation","setSchema","valid","errors","isValid","useForm","schema","defaultData","rules","pixValidationRules","formatters","pixFormatters","useEffect","newSchema","status","setStatus","useState","this","showValidation","buttonModifiers","h","div","className","style","display","BrazilPersonalDetail","label","get","classNameModifiers"],"mappings":"8cASA,SAASA,GAASC,KAAEA,EAAMC,KAAMC,EAASC,wBAAEA,EAAuBC,cAAEA,GAAgB,EAAKC,SAAEA,EAAQC,UAAEA,IACjG,MAAMC,KAAEA,GAASC,IACXC,EAAa,CAAC,YAAa,WAAY,yBACvCC,gBAAEA,EAAeC,kBAAEA,EAAiBC,UAAEA,EAASX,KAAEA,EAAIY,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA2B,CAC/GC,OAAQR,EACRS,YAAahB,EACbiB,MAAOC,EACPC,WAAYC,IAIhBC,GAAU,KACN,MAAMC,EAAYrB,EAA0B,IAAIM,GAAc,GAC9DG,EAAUY,EAAAA,GACX,CAACrB,IAEJ,MAAOsB,EAAQC,GAAaC,EAAS,SACrCC,KAAKF,UAAYA,EAEjBE,KAAKC,eAAiB,KAClBlB,GAAAA,EAGJY,GAAU,KACNlB,EAAS,CAAEJ,OAAMY,QAAOC,SAAQC,WAAQ,GACzC,CAACV,EAAUJ,EAAMY,EAAOC,IAE3B,MAAMgB,EAAmB3B,EAA2C,GAAjB,CAAC,cAEpD,OACI4B,EAACC,MAAAA,CAAIC,UAAU,mCAAmCC,MAAQ9B,GAAkBD,EAAgD,KAAtB,CAAEgC,QAAS,SAC5GhC,GACG4B,EAACK,EAAAA,CAAqB7B,KAAMA,EAAMN,KAAMA,EAAMS,gBAAiBA,EAAiBI,OAAQA,EAAQD,MAAOA,IAG1GT,GACGE,EAAU,CACNmB,SACAY,MAAO,GAAG9B,EAAK+B,IAAI,iBAAiBtC,IACpCuC,mBAAoBT,IAIxC"}
1
+ {"version":3,"file":"PixInput.js","sources":["../../../../../src/components/Pix/PixInput/PixInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { pixValidationRules } from './validate';\nimport { pixFormatters } from './utils';\nimport useCoreContext from '../../../core/Context/useCoreContext';\nimport useForm from '../../../utils/useForm';\nimport { BrazilPersonalDetail } from '../../internal/SocialSecurityNumberBrazil/BrazilPersonalDetail';\nimport { PixInputDataState, PixInputProps } from './types';\n\nfunction PixInput({ name, data: dataProps, personalDetailsRequired, showPayButton, onChange, payButton }: PixInputProps) {\n const { i18n } = useCoreContext();\n const formSchema = ['firstName', 'lastName', 'socialSecurityNumber'];\n const { handleChangeFor, triggerValidation, setSchema, data, valid, errors, isValid } = useForm<PixInputDataState>({\n schema: formSchema,\n defaultData: dataProps,\n rules: pixValidationRules,\n formatters: pixFormatters\n });\n\n // Handle form schema updates\n useEffect(() => {\n const newSchema = personalDetailsRequired ? [...formSchema] : [];\n setSchema(newSchema);\n }, [personalDetailsRequired]);\n\n const [status, setStatus] = useState('ready');\n this.setStatus = setStatus;\n\n this.showValidation = () => {\n triggerValidation();\n };\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [onChange, data, valid, errors]);\n\n const buttonModifiers = !personalDetailsRequired ? ['standalone'] : [];\n\n return (\n <div className=\"adyen-checkout__pix-input__field\" style={!showPayButton && !personalDetailsRequired ? { display: 'none' } : null}>\n {personalDetailsRequired && (\n <BrazilPersonalDetail i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} valid={valid} />\n )}\n\n {showPayButton &&\n payButton({\n status,\n label: `${i18n.get('continueTo')} ${name}`,\n classNameModifiers: buttonModifiers\n })}\n </div>\n );\n}\n\nexport default PixInput;\n"],"names":["PixInput","name","data","dataProps","personalDetailsRequired","showPayButton","onChange","payButton","i18n","useCoreContext","formSchema","handleChangeFor","triggerValidation","setSchema","valid","errors","isValid","useForm","schema","defaultData","rules","pixValidationRules","formatters","pixFormatters","useEffect","newSchema","status","setStatus","useState","this","showValidation","buttonModifiers","h","div","className","style","display","BrazilPersonalDetail","label","get","classNameModifiers"],"mappings":"8cASA,SAASA,GAASC,KAAEA,EAAMC,KAAMC,EAASC,wBAAEA,EAAuBC,cAAEA,EAAaC,SAAEA,EAAQC,UAAEA,IACzF,MAAMC,KAAEA,GAASC,IACXC,EAAa,CAAC,YAAa,WAAY,yBACvCC,gBAAEA,EAAeC,kBAAEA,EAAiBC,UAAEA,EAASX,KAAEA,EAAIY,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA2B,CAC/GC,OAAQR,EACRS,YAAahB,EACbiB,MAAOC,EACPC,WAAYC,IAIhBC,GAAU,KACN,MAAMC,EAAYrB,EAA0B,IAAIM,GAAc,GAC9DG,EAAUY,EAAAA,GACX,CAACrB,IAEJ,MAAOsB,EAAQC,GAAaC,EAAS,SACrCC,KAAKF,UAAYA,EAEjBE,KAAKC,eAAiB,KAClBlB,GAAAA,EAGJY,GAAU,KACNlB,EAAS,CAAEJ,OAAMY,QAAOC,SAAQC,WAAQ,GACzC,CAACV,EAAUJ,EAAMY,EAAOC,IAE3B,MAAMgB,EAAmB3B,EAA2C,GAAjB,CAAC,cAEpD,OACI4B,EAACC,MAAAA,CAAIC,UAAU,mCAAmCC,MAAQ9B,GAAkBD,EAAgD,KAAtB,CAAEgC,QAAS,SAC5GhC,GACG4B,EAACK,EAAAA,CAAqB7B,KAAMA,EAAMN,KAAMA,EAAMS,gBAAiBA,EAAiBI,OAAQA,EAAQD,MAAOA,IAG1GT,GACGE,EAAU,CACNmB,SACAY,MAAO,GAAG9B,EAAK+B,IAAI,iBAAiBtC,IACpCuC,mBAAoBT,IAIxC"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/DeviceFingerprint/PrepareFingerprint3DS2.js";import i from"./callSubmit3DS2Fingerprint.js";import{existy as n}from"../internal/SecuredFields/lib/utilities/commonUtils.js";import{TxVariants as s}from"../tx-variants.js";import o,{API_ERROR as p}from"../../core/Errors/AdyenCheckoutError.js";import{ANALYTICS_RENDERED_STR as m,ANALYTICS_ERROR_CODE_ACTION_IS_MISSING_PAYMENT_DATA as a,ANALYTICS_API_ERROR as l}from"../../core/Analytics/constants.js";import{THREEDS2_FINGERPRINT as c,THREEDS2_ERROR as u,THREEDS2_FINGERPRINT_ERROR as y}from"./config.js";class f extends e{static type=s.threeDS2Fingerprint;static defaultProps={dataKey:"fingerprintResult",type:c};callSubmit3DS2Fingerprint=i.bind(this);submitAnalytics=t=>{t.type!==m&&super.submitAnalytics(t)};onComplete(t){super.onComplete(t),this.unmount()}render(){return n(this.props.paymentData)?t(r,{...this.props,onComplete:this.props.isMDFlow?this.onComplete:this.callSubmit3DS2Fingerprint,onSubmitAnalytics:this.submitAnalytics}):(this.props.onError(new o(p,"No paymentData received. 3DS2 Fingerprint cannot proceed")),this.submitAnalytics({type:u,code:a,errorType:l,message:`${y}: Missing 'paymentData' property from threeDS2 action`}),null)}}export{f as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import r from"./components/DeviceFingerprint/PrepareFingerprint3DS2.js";import i from"./callSubmit3DS2Fingerprint.js";import{existy as n}from"../internal/SecuredFields/lib/utilities/commonUtils.js";import{TxVariants as s}from"../tx-variants.js";import o,{API_ERROR as p}from"../../core/Errors/AdyenCheckoutError.js";import{ANALYTICS_RENDERED_STR as a,ANALYTICS_ERROR_CODE_ACTION_IS_MISSING_PAYMENT_DATA as m,ANALYTICS_API_ERROR as l}from"../../core/Analytics/constants.js";import{THREEDS2_FINGERPRINT as c,THREEDS2_ERROR as u,THREEDS2_FINGERPRINT_ERROR as y}from"./config.js";class h extends e{static type=s.threeDS2Fingerprint;static defaultProps={dataKey:"fingerprintResult",type:c};callSubmit3DS2Fingerprint=i.bind(this);submitAnalytics=t=>{t.type!==a&&super.submitAnalytics(t)};onComplete(t){super.onComplete(t),this.unmount()}render(){return n(this.props.paymentData)?t(r,{...this.props,onComplete:this.props.isMDFlow?this.onComplete:this.callSubmit3DS2Fingerprint,onSubmitAnalytics:this.submitAnalytics,isMDFlow:this.props.paymentData.length<15}):(this.props.onError(new o(p,"No paymentData received. 3DS2 Fingerprint cannot proceed")),this.submitAnalytics({type:u,code:m,errorType:l,message:`${y}: Missing 'paymentData' property from threeDS2 action`}),null)}}export{h as default};
2
2
  //# sourceMappingURL=ThreeDS2DeviceFingerprint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreeDS2DeviceFingerprint.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2DeviceFingerprint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareFingerprint from './components/DeviceFingerprint';\nimport callSubmit3DS2Fingerprint from './callSubmit3DS2Fingerprint';\nimport { existy } from '../internal/SecuredFields/lib/utilities/commonUtils';\nimport { TxVariants } from '../tx-variants';\nimport { ThreeDS2DeviceFingerprintConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ANALYTICS_API_ERROR, ANALYTICS_ERROR_CODE_ACTION_IS_MISSING_PAYMENT_DATA, ANALYTICS_RENDERED_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\nimport { THREEDS2_ERROR, THREEDS2_FINGERPRINT, THREEDS2_FINGERPRINT_ERROR } from './config';\n\nclass ThreeDS2DeviceFingerprint extends UIElement<ThreeDS2DeviceFingerprintConfiguration> {\n public static type = TxVariants.threeDS2Fingerprint;\n\n public static defaultProps = {\n dataKey: 'fingerprintResult',\n type: THREEDS2_FINGERPRINT\n };\n\n private callSubmit3DS2Fingerprint = callSubmit3DS2Fingerprint.bind(this); // New 3DS2 flow\n\n protected submitAnalytics = (aObj: SendAnalyticsObject) => {\n if (aObj.type === ANALYTICS_RENDERED_STR) return; // suppress the rendered event (it will have the same timestamp as the \"threeDSMethodData sent\" event)\n\n super.submitAnalytics(aObj);\n };\n\n onComplete(state) {\n super.onComplete(state);\n this.unmount(); // re. fixing issue around back to back fingerprinting calls\n }\n\n render() {\n /**\n * In the regular components (aka \"native\") flow we can't proceed because something has gone wrong with the payment if paymentData is missing from the threeDS2 action.\n * In the MDFlow the paymentData is always present (albeit an empty string, which is why we use 'existy' since we should be allowed to proceed with this)\n */\n if (!existy(this.props.paymentData)) {\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No paymentData received. 3DS2 Fingerprint cannot proceed`));\n\n // TODO - check logs to see if this *ever* happens\n this.submitAnalytics({\n type: THREEDS2_ERROR,\n code: ANALYTICS_ERROR_CODE_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ANALYTICS_API_ERROR,\n message: `${THREEDS2_FINGERPRINT_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n return null;\n }\n\n /**\n * this.props.isMDFlow indicates a threeds2InMDFlow process. It means the action to create this component came from the threeds2InMDFlow process\n * and upon completion should call the passed onComplete callback (instead of the /submitThreeDS2Fingerprint endpoint for the regular, \"native\" flow)\n */\n return (\n <PrepareFingerprint\n {...this.props}\n onComplete={this.props.isMDFlow ? this.onComplete : this.callSubmit3DS2Fingerprint}\n onSubmitAnalytics={this.submitAnalytics}\n />\n );\n }\n}\n\nexport default ThreeDS2DeviceFingerprint;\n"],"names":["ThreeDS2DeviceFingerprint","UIElement","static","TxVariants","threeDS2Fingerprint","dataKey","type","THREEDS2_FINGERPRINT","callSubmit3DS2Fingerprint","bind","this","submitAnalytics","aObj","ANALYTICS_RENDERED_STR","super","onComplete","state","unmount","render","existy","props","paymentData","h","PrepareFingerprint","isMDFlow","onSubmitAnalytics","onError","AdyenCheckoutError","API_ERROR","THREEDS2_ERROR","code","ANALYTICS_ERROR_CODE_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ANALYTICS_API_ERROR","message","THREEDS2_FINGERPRINT_ERROR"],"mappings":"osBAYA,MAAMA,UAAkCC,EACpCC,YAAqBC,EAAWC,oBAEhCF,oBAA6B,CACzBG,QAAS,oBACTC,KAAMC,GAGFC,0BAA4BA,EAA0BC,KAAKC,MAEzDC,gBAAmBC,IACrBA,EAAKN,OAASO,GAElBC,MAAMH,gBAAgBC,EAAAA,EAG1BG,UAAAA,CAAWC,GACPF,MAAMC,WAAWC,GACjBN,KAAKO,SACT,CAEAC,MAAAA,GAKI,OAAKC,EAAOT,KAAKU,MAAMC,aAmBnBC,EAACC,EAAAA,IACOb,KAAKU,MACTL,WAAYL,KAAKU,MAAMI,SAAWd,KAAKK,WAAaL,KAAKF,0BACzDiB,kBAAmBf,KAAKC,mBArB5BD,KAAKU,MAAMM,QAAQ,IAAIC,EAAmBC,EAAW,6DAGrDlB,KAAKC,gBAAgB,CACjBL,KAAMuB,EACNC,KAAMC,EACNC,UAAWC,EACXC,QAAS,GAAGC,2DAGT,KAcf"}
1
+ {"version":3,"file":"ThreeDS2DeviceFingerprint.js","sources":["../../../../src/components/ThreeDS2/ThreeDS2DeviceFingerprint.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PrepareFingerprint from './components/DeviceFingerprint';\nimport callSubmit3DS2Fingerprint from './callSubmit3DS2Fingerprint';\nimport { existy } from '../internal/SecuredFields/lib/utilities/commonUtils';\nimport { TxVariants } from '../tx-variants';\nimport { ThreeDS2DeviceFingerprintConfiguration } from './types';\nimport AdyenCheckoutError, { API_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { ANALYTICS_API_ERROR, ANALYTICS_ERROR_CODE_ACTION_IS_MISSING_PAYMENT_DATA, ANALYTICS_RENDERED_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\nimport { THREEDS2_ERROR, THREEDS2_FINGERPRINT, THREEDS2_FINGERPRINT_ERROR } from './config';\n\nclass ThreeDS2DeviceFingerprint extends UIElement<ThreeDS2DeviceFingerprintConfiguration> {\n public static type = TxVariants.threeDS2Fingerprint;\n\n public static defaultProps = {\n dataKey: 'fingerprintResult',\n type: THREEDS2_FINGERPRINT\n };\n\n private callSubmit3DS2Fingerprint = callSubmit3DS2Fingerprint.bind(this); // New 3DS2 flow\n\n protected submitAnalytics = (aObj: SendAnalyticsObject) => {\n if (aObj.type === ANALYTICS_RENDERED_STR) return; // suppress the rendered event (it will have the same timestamp as the \"threeDSMethodData sent\" event)\n\n super.submitAnalytics(aObj);\n };\n\n onComplete(state) {\n super.onComplete(state);\n this.unmount(); // re. fixing issue around back to back fingerprinting calls\n }\n\n render() {\n /**\n * In the regular components (aka \"native\") flow we can't proceed because something has gone wrong with the payment if paymentData is missing from the threeDS2 action.\n * In the MDFlow the paymentData is always present (albeit an empty string, which is why we use 'existy' since we should be allowed to proceed with this)\n */\n if (!existy(this.props.paymentData)) {\n this.props.onError(new AdyenCheckoutError(API_ERROR, `No paymentData received. 3DS2 Fingerprint cannot proceed`));\n\n // TODO - check logs to see if this *ever* happens\n this.submitAnalytics({\n type: THREEDS2_ERROR,\n code: ANALYTICS_ERROR_CODE_ACTION_IS_MISSING_PAYMENT_DATA,\n errorType: ANALYTICS_API_ERROR,\n message: `${THREEDS2_FINGERPRINT_ERROR}: Missing 'paymentData' property from threeDS2 action`\n });\n\n return null;\n }\n\n /**\n * this.props.isMDFlow indicates a threeds2InMDFlow process. It means the action to create this component came from the threeds2InMDFlow process\n * and upon completion should call the passed onComplete callback (instead of the /submitThreeDS2Fingerprint endpoint for the regular, \"native\" flow)\n */\n return (\n <PrepareFingerprint\n {...this.props}\n onComplete={this.props.isMDFlow ? this.onComplete : this.callSubmit3DS2Fingerprint}\n onSubmitAnalytics={this.submitAnalytics}\n isMDFlow={this.props.paymentData.length < 15}\n />\n );\n }\n}\n\nexport default ThreeDS2DeviceFingerprint;\n"],"names":["ThreeDS2DeviceFingerprint","UIElement","static","TxVariants","threeDS2Fingerprint","dataKey","type","THREEDS2_FINGERPRINT","callSubmit3DS2Fingerprint","bind","this","submitAnalytics","aObj","ANALYTICS_RENDERED_STR","super","onComplete","state","unmount","render","existy","props","paymentData","h","PrepareFingerprint","isMDFlow","onSubmitAnalytics","length","onError","AdyenCheckoutError","API_ERROR","THREEDS2_ERROR","code","ANALYTICS_ERROR_CODE_ACTION_IS_MISSING_PAYMENT_DATA","errorType","ANALYTICS_API_ERROR","message","THREEDS2_FINGERPRINT_ERROR"],"mappings":"osBAYA,MAAMA,UAAkCC,EACpCC,YAAqBC,EAAWC,oBAEhCF,oBAA6B,CACzBG,QAAS,oBACTC,KAAMC,GAGFC,0BAA4BA,EAA0BC,KAAKC,MAEzDC,gBAAmBC,IACrBA,EAAKN,OAASO,GAElBC,MAAMH,gBAAgBC,EAAAA,EAG1BG,UAAAA,CAAWC,GACPF,MAAMC,WAAWC,GACjBN,KAAKO,SACT,CAEAC,MAAAA,GAKI,OAAKC,EAAOT,KAAKU,MAAMC,aAmBnBC,EAACC,EAAAA,IACOb,KAAKU,MACTL,WAAYL,KAAKU,MAAMI,SAAWd,KAAKK,WAAaL,KAAKF,0BACzDiB,kBAAmBf,KAAKC,gBACxBa,SAAUd,KAAKU,MAAMC,YAAYK,OAAS,MAtB9ChB,KAAKU,MAAMO,QAAQ,IAAIC,EAAmBC,EAAW,6DAGrDnB,KAAKC,gBAAgB,CACjBL,KAAMwB,EACNC,KAAMC,EACNC,UAAWC,EACXC,QAAS,GAAGC,2DAGT,KAef"}
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as s}from"../../../../external/preact/dist/preact.js";import t from"../../../../external/classnames/index.js";import a from"../../../internal/IFrame/Iframe.js";import r from"../../../internal/Spinner/Spinner.js";import n from"../Form/ThreeDS2Form.js";import o from"../../../../utils/get-process-message-handler.js";import{encodeBase64URL as i}from"../utils.js";import m from"../../../../utils/promiseTimeout.js";import{CHALLENGE_TIMEOUT as l,CHALLENGE_TIMEOUT_REJECT_OBJECT as c}from"../../config.js";const h="threeDSIframe";class p extends e{processMessageHandler;challengePromise;constructor(e){super(e);const s=JSON.stringify(this.props.cReqData),t=i(s);this.state={base64URLencodedData:t,status:"init"}}iframeCallback=()=>{this.setState({status:"iframeLoaded"}),"init"===this.state.status&&this.props.onActionHandled({componentType:"3DS2Challenge",actionDescription:"challenge-iframe-loaded"})};get3DS2ChallengePromise(){return new Promise(((e,s)=>{this.processMessageHandler=o(this.props.postMessageDomain,e,s,"challengeResult"),window.addEventListener("message",this.processMessageHandler)}))}componentDidMount(){this.challengePromise=m(l,this.get3DS2ChallengePromise(),c),this.challengePromise.promise.then((e=>{window.removeEventListener("message",this.processMessageHandler),this.props.onCompleteChallenge(e)})).catch((e=>{window.removeEventListener("message",this.processMessageHandler),this.props.onErrorChallenge(e)}))}componentWillUnmount(){this.challengePromise&&this.challengePromise.cancel(),window.removeEventListener("message",this.processMessageHandler)}render({acsURL:e,cReqData:o,iframeSizeArr:i,onFormSubmit:m},{base64URLencodedData:l,status:c}){const[p,d]=i;return s("div",{className:t(["adyen-checkout__threeds2__challenge",`adyen-checkout__threeds2__challenge--${o.challengeWindowSize}`])},"iframeLoaded"!==c&&s(r,null),s(a,{name:h,width:p,height:d,callback:this.iframeCallback}),s(n,{name:"cReqForm",action:e,target:h,inputName:"creq",inputValue:l,onFormSubmit:m}))}}export{p as default};
1
+ import{Component as e,createElement as s}from"../../../../external/preact/dist/preact.js";import t from"../../../../external/classnames/index.js";import a from"../../../internal/IFrame/Iframe.js";import r from"../../../internal/Spinner/Spinner.js";import n from"../Form/ThreeDS2Form.js";import o from"../../../../utils/get-process-message-handler.js";import{encodeBase64URL as i}from"../utils.js";import m from"../../../../utils/promiseTimeout.js";import{THREEDS2_NUM as l,CHALLENGE_TIMEOUT as c,CHALLENGE_TIMEOUT_REJECT_OBJECT as h}from"../../config.js";const p="threeDSIframe";class d extends e{processMessageHandler;challengePromise;constructor(e){super(e);const s=JSON.stringify(this.props.cReqData),t=i(s);this.state={base64URLencodedData:t,status:"init"}}iframeCallback=()=>{this.setState({status:"iframeLoaded"}),"init"===this.state.status&&this.props.onActionHandled({componentType:"3DS2Challenge",actionDescription:`${l} challenge iframe loaded`})};get3DS2ChallengePromise(){return new Promise(((e,s)=>{this.processMessageHandler=o(this.props.postMessageDomain,e,s,"challengeResult"),window.addEventListener("message",this.processMessageHandler)}))}componentDidMount(){this.challengePromise=m(c,this.get3DS2ChallengePromise(),h),this.challengePromise.promise.then((e=>{window.removeEventListener("message",this.processMessageHandler),this.props.onCompleteChallenge(e)})).catch((e=>{window.removeEventListener("message",this.processMessageHandler),this.props.onErrorChallenge(e)}))}componentWillUnmount(){this.challengePromise&&this.challengePromise.cancel(),window.removeEventListener("message",this.processMessageHandler)}render({acsURL:e,cReqData:o,iframeSizeArr:i,onFormSubmit:m},{base64URLencodedData:l,status:c}){const[h,d]=i;return s("div",{className:t(["adyen-checkout__threeds2__challenge",`adyen-checkout__threeds2__challenge--${o.challengeWindowSize}`])},"iframeLoaded"!==c&&s(r,null),s(a,{name:p,width:h,height:d,callback:this.iframeCallback}),s(n,{name:"cReqForm",action:e,target:p,inputName:"creq",inputValue:l,onFormSubmit:m}))}}export{d as default};
2
2
  //# sourceMappingURL=DoChallenge3DS2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DoChallenge3DS2.js","sources":["../../../../../../src/components/ThreeDS2/components/Challenge/DoChallenge3DS2.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Iframe from '../../../internal/IFrame';\nimport Spinner from '../../../internal/Spinner';\nimport ThreeDS2Form from '../Form';\nimport getProcessMessageHandler from '../../../../utils/get-process-message-handler';\nimport { encodeBase64URL } from '../utils';\nimport promiseTimeout from '../../../../utils/promiseTimeout';\nimport { CHALLENGE_TIMEOUT, CHALLENGE_TIMEOUT_REJECT_OBJECT } from '../../config';\nimport { DoChallenge3DS2Props, DoChallenge3DS2State } from './types';\nimport { ThreeDS2FlowObject } from '../../types';\n\nconst iframeName = 'threeDSIframe';\n\nclass DoChallenge3DS2 extends Component<DoChallenge3DS2Props, DoChallenge3DS2State> {\n private processMessageHandler;\n private challengePromise: { cancel: () => void; promise: Promise<any> };\n\n constructor(props) {\n super(props);\n\n /**\n * Create and Base64Url encode a JSON object containing the serverTransactionID & threeDSMethodNotificationURL\n */\n const jsonStr = JSON.stringify(this.props.cReqData);\n const base64URLencodedData = encodeBase64URL(jsonStr);\n this.state = { base64URLencodedData, status: 'init' };\n }\n\n private iframeCallback = () => {\n this.setState({ status: 'iframeLoaded' });\n // On Test - actually calls-back 3 times: once for challenge screen, once again as challenge.html reloads after the challenge is submitted, and once for redirect to threeDSNotificationURL.\n // But for the purposes of calling the merchant defined onActionHandled callback - we only want to do it once\n if (this.state.status === 'init') {\n this.props.onActionHandled({ componentType: '3DS2Challenge', actionDescription: 'challenge-iframe-loaded' });\n }\n };\n\n private get3DS2ChallengePromise(): Promise<any> {\n return new Promise((resolve, reject) => {\n /**\n * Listen for postMessage responses from the notification url\n */\n this.processMessageHandler = getProcessMessageHandler(this.props.postMessageDomain, resolve, reject, 'challengeResult');\n\n /* eslint-disable-next-line */\n window.addEventListener('message', this.processMessageHandler);\n });\n }\n\n componentDidMount() {\n // Render challenge\n this.challengePromise = promiseTimeout(CHALLENGE_TIMEOUT, this.get3DS2ChallengePromise(), CHALLENGE_TIMEOUT_REJECT_OBJECT);\n this.challengePromise.promise\n .then((resolveObject: ThreeDS2FlowObject) => {\n window.removeEventListener('message', this.processMessageHandler);\n this.props.onCompleteChallenge(resolveObject);\n })\n /** Catch, for when Challenge times-out */\n .catch((rejectObject: ThreeDS2FlowObject) => {\n window.removeEventListener('message', this.processMessageHandler);\n this.props.onErrorChallenge(rejectObject);\n });\n }\n\n componentWillUnmount() {\n if (this.challengePromise) this.challengePromise.cancel();\n window.removeEventListener('message', this.processMessageHandler);\n }\n\n render({ acsURL, cReqData, iframeSizeArr, onFormSubmit }, { base64URLencodedData, status }) {\n const [width, height] = iframeSizeArr;\n\n return (\n <div\n className={classNames([\n 'adyen-checkout__threeds2__challenge',\n `adyen-checkout__threeds2__challenge--${cReqData.challengeWindowSize}`\n ])}\n >\n {status !== 'iframeLoaded' && <Spinner />}\n\n <Iframe name={iframeName} width={width} height={height} callback={this.iframeCallback} />\n <ThreeDS2Form\n name={'cReqForm'}\n action={acsURL}\n target={iframeName}\n inputName={'creq'}\n inputValue={base64URLencodedData}\n onFormSubmit={onFormSubmit}\n />\n </div>\n );\n }\n}\n\nexport default DoChallenge3DS2;\n"],"names":["iframeName","DoChallenge3DS2","Component","processMessageHandler","challengePromise","constructor","props","super","jsonStr","JSON","stringify","this","cReqData","base64URLencodedData","encodeBase64URL","state","status","iframeCallback","setState","onActionHandled","componentType","actionDescription","get3DS2ChallengePromise","Promise","resolve","reject","getProcessMessageHandler","postMessageDomain","window","addEventListener","componentDidMount","promiseTimeout","CHALLENGE_TIMEOUT","CHALLENGE_TIMEOUT_REJECT_OBJECT","promise","then","resolveObject","removeEventListener","onCompleteChallenge","catch","rejectObject","onErrorChallenge","componentWillUnmount","cancel","render","acsURL","iframeSizeArr","onFormSubmit","width","height","h","div","className","classNames","challengeWindowSize","Spinner","Iframe","name","callback","ThreeDS2Form","action","target","inputName","inputValue"],"mappings":"yhBAYA,MAAMA,EAAa,gBAEnB,MAAMC,UAAwBC,EAClBC,sBACAC,iBAERC,WAAAA,CAAYC,GACRC,MAAMD,GAKN,MAAME,EAAUC,KAAKC,UAAUC,KAAKL,MAAMM,UACpCC,EAAuBC,EAAgBN,GAC7CG,KAAKI,MAAQ,CAAEF,uBAAsBG,OAAQ,OACjD,CAEQC,eAAiB,KACrBN,KAAKO,SAAS,CAAEF,OAAQ,iBAGE,SAAtBL,KAAKI,MAAMC,QACXL,KAAKL,MAAMa,gBAAgB,CAAEC,cAAe,gBAAiBC,kBAAmB,2BACpF,EAGIC,uBAAAA,GACJ,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAIzBd,KAAKR,sBAAwBuB,EAAyBf,KAAKL,MAAMqB,kBAAmBH,EAASC,EAAQ,mBAGrGG,OAAOC,iBAAiB,UAAWlB,KAAKR,sBAAqB,GAErE,CAEA2B,iBAAAA,GAEInB,KAAKP,iBAAmB2B,EAAeC,EAAmBrB,KAAKW,0BAA2BW,GAC1FtB,KAAKP,iBAAiB8B,QACjBC,MAAMC,IACHR,OAAOS,oBAAoB,UAAW1B,KAAKR,uBAC3CQ,KAAKL,MAAMgC,oBAAoBF,EAAAA,IAGlCG,OAAOC,IACJZ,OAAOS,oBAAoB,UAAW1B,KAAKR,uBAC3CQ,KAAKL,MAAMmC,iBAAiBD,EAAAA,GAExC,CAEAE,oBAAAA,GACQ/B,KAAKP,kBAAkBO,KAAKP,iBAAiBuC,SACjDf,OAAOS,oBAAoB,UAAW1B,KAAKR,sBAC/C,CAEAyC,MAAAA,EAAOC,OAAEA,EAAMjC,SAAEA,EAAQkC,cAAEA,EAAaC,aAAEA,IAAgBlC,qBAAEA,EAAoBG,OAAEA,IAC9E,MAAOgC,EAAOC,GAAUH,EAExB,OACII,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,sCACA,wCAAwCzC,EAAS0C,yBAGzC,iBAAXtC,GAA6BkC,EAACK,EAAAA,MAE/BL,EAACM,EAAAA,CAAOC,KAAMzD,EAAYgD,MAAOA,EAAOC,OAAQA,EAAQS,SAAU/C,KAAKM,iBACvEiC,EAACS,EAAAA,CACGF,KAAM,WACNG,OAAQf,EACRgB,OAAQ7D,EACR8D,UAAW,OACXC,WAAYlD,EACZkC,aAAcA,IAI9B"}
1
+ {"version":3,"file":"DoChallenge3DS2.js","sources":["../../../../../../src/components/ThreeDS2/components/Challenge/DoChallenge3DS2.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport Iframe from '../../../internal/IFrame';\nimport Spinner from '../../../internal/Spinner';\nimport ThreeDS2Form from '../Form';\nimport getProcessMessageHandler from '../../../../utils/get-process-message-handler';\nimport { encodeBase64URL } from '../utils';\nimport promiseTimeout from '../../../../utils/promiseTimeout';\nimport { CHALLENGE_TIMEOUT, CHALLENGE_TIMEOUT_REJECT_OBJECT, THREEDS2_NUM } from '../../config';\nimport { DoChallenge3DS2Props, DoChallenge3DS2State } from './types';\nimport { ThreeDS2FlowObject } from '../../types';\n\nconst iframeName = 'threeDSIframe';\n\nclass DoChallenge3DS2 extends Component<DoChallenge3DS2Props, DoChallenge3DS2State> {\n private processMessageHandler;\n private challengePromise: { cancel: () => void; promise: Promise<any> };\n\n constructor(props) {\n super(props);\n\n /**\n * Create and Base64Url encode a JSON object containing the serverTransactionID & threeDSMethodNotificationURL\n */\n const jsonStr = JSON.stringify(this.props.cReqData);\n const base64URLencodedData = encodeBase64URL(jsonStr);\n this.state = { base64URLencodedData, status: 'init' };\n }\n\n private iframeCallback = () => {\n this.setState({ status: 'iframeLoaded' });\n // On Test - actually calls-back 3 times: once for challenge screen, once again as challenge.html reloads after the challenge is submitted, and once for redirect to threeDSNotificationURL.\n // But for the purposes of calling the merchant defined onActionHandled callback - we only want to do it once\n if (this.state.status === 'init') {\n this.props.onActionHandled({ componentType: '3DS2Challenge', actionDescription: `${THREEDS2_NUM} challenge iframe loaded` });\n }\n };\n\n private get3DS2ChallengePromise(): Promise<any> {\n return new Promise((resolve, reject) => {\n /**\n * Listen for postMessage responses from the notification url\n */\n this.processMessageHandler = getProcessMessageHandler(this.props.postMessageDomain, resolve, reject, 'challengeResult');\n\n /* eslint-disable-next-line */\n window.addEventListener('message', this.processMessageHandler);\n });\n }\n\n componentDidMount() {\n // Render challenge\n this.challengePromise = promiseTimeout(CHALLENGE_TIMEOUT, this.get3DS2ChallengePromise(), CHALLENGE_TIMEOUT_REJECT_OBJECT);\n this.challengePromise.promise\n .then((resolveObject: ThreeDS2FlowObject) => {\n window.removeEventListener('message', this.processMessageHandler);\n this.props.onCompleteChallenge(resolveObject);\n })\n /** Catch, for when Challenge times-out */\n .catch((rejectObject: ThreeDS2FlowObject) => {\n window.removeEventListener('message', this.processMessageHandler);\n this.props.onErrorChallenge(rejectObject);\n });\n }\n\n componentWillUnmount() {\n if (this.challengePromise) this.challengePromise.cancel();\n window.removeEventListener('message', this.processMessageHandler);\n }\n\n render({ acsURL, cReqData, iframeSizeArr, onFormSubmit }, { base64URLencodedData, status }) {\n const [width, height] = iframeSizeArr;\n\n return (\n <div\n className={classNames([\n 'adyen-checkout__threeds2__challenge',\n `adyen-checkout__threeds2__challenge--${cReqData.challengeWindowSize}`\n ])}\n >\n {status !== 'iframeLoaded' && <Spinner />}\n\n <Iframe name={iframeName} width={width} height={height} callback={this.iframeCallback} />\n <ThreeDS2Form\n name={'cReqForm'}\n action={acsURL}\n target={iframeName}\n inputName={'creq'}\n inputValue={base64URLencodedData}\n onFormSubmit={onFormSubmit}\n />\n </div>\n );\n }\n}\n\nexport default DoChallenge3DS2;\n"],"names":["iframeName","DoChallenge3DS2","Component","processMessageHandler","challengePromise","constructor","props","super","jsonStr","JSON","stringify","this","cReqData","base64URLencodedData","encodeBase64URL","state","status","iframeCallback","setState","onActionHandled","componentType","actionDescription","THREEDS2_NUM","get3DS2ChallengePromise","Promise","resolve","reject","getProcessMessageHandler","postMessageDomain","window","addEventListener","componentDidMount","promiseTimeout","CHALLENGE_TIMEOUT","CHALLENGE_TIMEOUT_REJECT_OBJECT","promise","then","resolveObject","removeEventListener","onCompleteChallenge","catch","rejectObject","onErrorChallenge","componentWillUnmount","cancel","render","acsURL","iframeSizeArr","onFormSubmit","width","height","h","div","className","classNames","challengeWindowSize","Spinner","Iframe","name","callback","ThreeDS2Form","action","target","inputName","inputValue"],"mappings":"2iBAYA,MAAMA,EAAa,gBAEnB,MAAMC,UAAwBC,EAClBC,sBACAC,iBAERC,WAAAA,CAAYC,GACRC,MAAMD,GAKN,MAAME,EAAUC,KAAKC,UAAUC,KAAKL,MAAMM,UACpCC,EAAuBC,EAAgBN,GAC7CG,KAAKI,MAAQ,CAAEF,uBAAsBG,OAAQ,OACjD,CAEQC,eAAiB,KACrBN,KAAKO,SAAS,CAAEF,OAAQ,iBAGE,SAAtBL,KAAKI,MAAMC,QACXL,KAAKL,MAAMa,gBAAgB,CAAEC,cAAe,gBAAiBC,kBAAmB,GAAGC,6BACvF,EAGIC,uBAAAA,GACJ,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAIzBf,KAAKR,sBAAwBwB,EAAyBhB,KAAKL,MAAMsB,kBAAmBH,EAASC,EAAQ,mBAGrGG,OAAOC,iBAAiB,UAAWnB,KAAKR,sBAAqB,GAErE,CAEA4B,iBAAAA,GAEIpB,KAAKP,iBAAmB4B,EAAeC,EAAmBtB,KAAKY,0BAA2BW,GAC1FvB,KAAKP,iBAAiB+B,QACjBC,MAAMC,IACHR,OAAOS,oBAAoB,UAAW3B,KAAKR,uBAC3CQ,KAAKL,MAAMiC,oBAAoBF,EAAAA,IAGlCG,OAAOC,IACJZ,OAAOS,oBAAoB,UAAW3B,KAAKR,uBAC3CQ,KAAKL,MAAMoC,iBAAiBD,EAAAA,GAExC,CAEAE,oBAAAA,GACQhC,KAAKP,kBAAkBO,KAAKP,iBAAiBwC,SACjDf,OAAOS,oBAAoB,UAAW3B,KAAKR,sBAC/C,CAEA0C,MAAAA,EAAOC,OAAEA,EAAMlC,SAAEA,EAAQmC,cAAEA,EAAaC,aAAEA,IAAgBnC,qBAAEA,EAAoBG,OAAEA,IAC9E,MAAOiC,EAAOC,GAAUH,EAExB,OACII,EAACC,MAAAA,CACGC,UAAWC,EAAW,CAClB,sCACA,wCAAwC1C,EAAS2C,yBAGzC,iBAAXvC,GAA6BmC,EAACK,EAAAA,MAE/BL,EAACM,EAAAA,CAAOC,KAAM1D,EAAYiD,MAAOA,EAAOC,OAAQA,EAAQS,SAAUhD,KAAKM,iBACvEkC,EAACS,EAAAA,CACGF,KAAM,WACNG,OAAQf,EACRgB,OAAQ9D,EACR+D,UAAW,OACXC,WAAYnD,EACZmC,aAAcA,IAI9B"}
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as t}from"../../../../external/preact/dist/preact.js";import r from"./DoChallenge3DS2.js";import{prepareChallengeData as s,createOldChallengeResolveData as o,createChallengeResolveData as n}from"../utils.js";import a from"../../../internal/Img/Img.js";import{hasOwnProperty as i}from"../../../../utils/hasOwnProperty.js";import l from"../../../../core/Context/useImage.js";import p,{ERROR as c}from"../../../../core/Errors/AdyenCheckoutError.js";import{THREEDS2_FULL as m,THREEDS2_NUM as h,THREEDS2_CHALLENGE_ERROR as u}from"../../config.js";class d extends e{static defaultProps={onComplete:()=>{},onError:()=>{},onActionHandled:()=>{}};constructor(e){if(super(e),this.props.token){const e=s({token:this.props.token,size:this.props.challengeWindowSize||this.props.size}),{acsTransID:t,messageVersion:r,threeDSServerTransID:o}=e.cReqData;if(!(e.acsURL&&t&&r&&o))return void this.setStatusError({errorInfo:"Challenge Data missing one or more of the following properties (acsURL | acsTransID | messageVersion | threeDSServerTransID)",errorObj:e});this.state={status:"retrievingChallengeToken",challengeData:e,errorInfo:null}}else this.setStatusError({errorInfo:"Missing challengeToken parameter"})}onActionHandled=e=>{this.props.onSubmitAnalytics({type:m,message:e.actionDescription}),this.props.onActionHandled(e)};onFormSubmit=e=>{this.props.onSubmitAnalytics({type:m,message:e})};setStatusComplete(e){this.setState({status:"complete"},(()=>{const t=(this.props.isMDFlow?o:n)(this.props.dataKey,e.transStatus,this.props.paymentData),r={type:m,message:`${h} challenge has completed`,metadata:{...e}};this.props.onSubmitAnalytics(r),this.props.onComplete(t)}))}setStatusError(e){this.setState({status:"error",errorInfo:e.errorInfo}),this.props.onError(e)}render(e,{challengeData:s}){const o=l();return"retrievingChallengeToken"===this.state.status?t(r,{onCompleteChallenge:e=>{i(e.result,"errorCode")&&e.result.errorCode.length&&this.props.onError(new p(c,`${u}: ${e.result.errorDescription?e.result.errorDescription:"no transStatus could be retrieved"}`,{cause:e.result.errorCode})),this.setStatusComplete(e.result)},onErrorChallenge:e=>{if(i(e,"errorCode"))return this.props.onError(new p(c,`${u}: '3DS2 challenge timed out'`,{cause:e.errorCode})),void this.setStatusComplete(e.result)},...s,onActionHandled:this.onActionHandled,onFormSubmit:this.onFormSubmit}):"error"===this.state.status?t("div",{className:"adyen-checkout__threeds2-challenge-error"},t(a,{className:"adyen-checkout__status__icon adyen-checkout__status__icon--error",src:o({imageFolder:"components/"})("error"),alt:""}),t("div",{className:"adyen-checkout__status__text"},this.state.errorInfo?this.state.errorInfo:this.props.i18n.get("error.message.unknown"))):null}}export{d as default};
1
+ import{Component as e,createElement as t}from"../../../../external/preact/dist/preact.js";import r from"./DoChallenge3DS2.js";import{prepareChallengeData as s,createOldChallengeResolveData as o,createChallengeResolveData as n}from"../utils.js";import a from"../../../internal/Img/Img.js";import{hasOwnProperty as i}from"../../../../utils/hasOwnProperty.js";import l from"../../../../core/Context/useImage.js";import p,{ERROR as c}from"../../../../core/Errors/AdyenCheckoutError.js";import{THREEDS2_FULL as m,THREEDS2_NUM as h,THREEDS2_CHALLENGE_ERROR as u}from"../../config.js";class d extends e{static defaultProps={onComplete:()=>{},onError:()=>{},onActionHandled:()=>{}};constructor(e){if(super(e),this.props.token){const e=s({token:this.props.token,size:this.props.challengeWindowSize||this.props.size}),{acsTransID:t,messageVersion:r,threeDSServerTransID:o}=e.cReqData,{acsURL:n}=e;if(!(n&&t&&r&&o))return void this.setStatusError({errorInfo:"Challenge Data missing one or more of the following properties (acsURL | acsTransID | messageVersion | threeDSServerTransID)",errorObj:e});this.state={status:"retrievingChallengeToken",challengeData:e,errorInfo:null}}else this.setStatusError({errorInfo:"Missing challengeToken parameter"})}onActionHandled=e=>{this.props.onSubmitAnalytics({type:m,message:e.actionDescription}),this.props.onActionHandled(e)};onFormSubmit=e=>{this.props.onSubmitAnalytics({type:m,message:e})};setStatusComplete(e){this.setState({status:"complete"},(()=>{const t=(this.props.isMDFlow?o:n)(this.props.dataKey,e.transStatus,this.props.paymentData),r={type:m,message:`${h} challenge has completed`,metadata:{...e}};this.props.onSubmitAnalytics(r),this.props.onComplete(t)}))}setStatusError(e){this.setState({status:"error",errorInfo:e.errorInfo}),this.props.onError(e)}render(e,{challengeData:s}){const o=l();return"retrievingChallengeToken"===this.state.status?t(r,{onCompleteChallenge:e=>{i(e.result,"errorCode")&&e.result.errorCode.length&&this.props.onError(new p(c,`${u}: ${e.result.errorDescription?e.result.errorDescription:"no transStatus could be retrieved"}`,{cause:e.result.errorCode})),this.setStatusComplete(e.result)},onErrorChallenge:e=>{if(i(e,"errorCode"))return this.props.onError(new p(c,`${u}: '3DS2 challenge timed out'`,{cause:e.errorCode})),void this.setStatusComplete(e.result)},...s,onActionHandled:this.onActionHandled,onFormSubmit:this.onFormSubmit}):"error"===this.state.status?t("div",{className:"adyen-checkout__threeds2-challenge-error"},t(a,{className:"adyen-checkout__status__icon adyen-checkout__status__icon--error",src:o({imageFolder:"components/"})("error"),alt:""}),t("div",{className:"adyen-checkout__status__text"},this.state.errorInfo?this.state.errorInfo:this.props.i18n.get("error.message.unknown"))):null}}export{d as default};
2
2
  //# sourceMappingURL=PrepareChallenge3DS2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrepareChallenge3DS2.js","sources":["../../../../../../src/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport DoChallenge3DS2 from './DoChallenge3DS2';\nimport { createChallengeResolveData, prepareChallengeData, createOldChallengeResolveData } from '../utils';\nimport { PrepareChallenge3DS2Props, PrepareChallenge3DS2State } from './types';\nimport { ChallengeData, ThreeDS2FlowObject } from '../../types';\nimport '../../ThreeDS2.scss';\nimport Img from '../../../internal/Img';\nimport './challenge.scss';\nimport { hasOwnProperty } from '../../../../utils/hasOwnProperty';\nimport useImage from '../../../../core/Context/useImage';\nimport AdyenCheckoutError, { ERROR } from '../../../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_CHALLENGE_ERROR } from '../../config';\nimport { ActionHandledReturnObject } from '../../../../types/global-types';\nimport { THREEDS2_FULL, THREEDS2_NUM } from '../../config';\nimport { SendAnalyticsObject } from '../../../../core/Analytics/types';\n\nclass PrepareChallenge3DS2 extends Component<PrepareChallenge3DS2Props, PrepareChallenge3DS2State> {\n public static defaultProps = {\n onComplete: () => {},\n onError: () => {},\n onActionHandled: () => {}\n };\n\n constructor(props) {\n super(props);\n\n if (this.props.token) {\n const challengeData: ChallengeData = prepareChallengeData({\n token: this.props.token,\n size: this.props.challengeWindowSize || this.props.size\n });\n\n /**\n * Check the structure of the created challengeData\n */\n const { acsTransID, messageVersion, threeDSServerTransID } = challengeData.cReqData;\n\n /** Missing props */\n if (!challengeData.acsURL || !acsTransID || !messageVersion || !threeDSServerTransID) {\n this.setStatusError({\n errorInfo:\n 'Challenge Data missing one or more of the following properties (acsURL | acsTransID | messageVersion | threeDSServerTransID)',\n errorObj: challengeData\n });\n return;\n }\n\n /** All good */\n this.state = {\n status: 'retrievingChallengeToken',\n challengeData,\n errorInfo: null\n };\n } else {\n this.setStatusError({\n errorInfo: 'Missing challengeToken parameter'\n });\n }\n }\n\n public onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n this.props.onSubmitAnalytics({ type: THREEDS2_FULL, message: rtnObj.actionDescription });\n\n this.props.onActionHandled(rtnObj);\n };\n\n public onFormSubmit = (msg: string) => {\n this.props.onSubmitAnalytics({\n type: THREEDS2_FULL,\n message: msg\n });\n };\n\n setStatusComplete(resultObj) {\n this.setState({ status: 'complete' }, () => {\n /**\n * Create the data in the way that the /details endpoint expects.\n * This is different for the flow triggered by the threeds2InMDFlow process than for the new, v67, 'threeDS2' action\n */\n const resolveDataFunction = this.props.isMDFlow ? createOldChallengeResolveData : createChallengeResolveData;\n const data = resolveDataFunction(this.props.dataKey, resultObj.transStatus, this.props.paymentData);\n\n // Create log object - the process is completed, one way or another\n const analyticsObject: SendAnalyticsObject = {\n type: THREEDS2_FULL,\n message: `${THREEDS2_NUM} challenge has completed`,\n metadata: { ...resultObj }\n };\n\n // Send log to analytics endpoint\n this.props.onSubmitAnalytics(analyticsObject);\n\n this.props.onComplete(data); // (equals onAdditionalDetails - except for 3DS2InMDFlow)\n });\n }\n\n setStatusError(errorInfoObj) {\n this.setState({ status: 'error', errorInfo: errorInfoObj.errorInfo });\n this.props.onError(errorInfoObj); // For some reason this doesn't fire if it's in a callback passed to the setState function\n }\n\n render(_, { challengeData }) {\n const getImage = useImage();\n if (this.state.status === 'retrievingChallengeToken') {\n return (\n <DoChallenge3DS2\n onCompleteChallenge={(challenge: ThreeDS2FlowObject) => {\n // Challenge has resulted in an error (no transStatus could be retrieved) - but we still treat this as a valid scenario\n if (hasOwnProperty(challenge.result, 'errorCode') && challenge.result.errorCode.length) {\n // Tell the merchant there's been an error\n this.props.onError(\n new AdyenCheckoutError(\n ERROR,\n `${THREEDS2_CHALLENGE_ERROR}: ${\n challenge.result.errorDescription ? challenge.result.errorDescription : 'no transStatus could be retrieved'\n }`,\n { cause: challenge.result.errorCode }\n )\n );\n }\n\n this.setStatusComplete(challenge.result);\n }}\n onErrorChallenge={(challenge: ThreeDS2FlowObject) => {\n /**\n * Called when challenge times-out (which is still a valid scenario)...\n */\n if (hasOwnProperty(challenge, 'errorCode')) {\n this.props.onError(\n new AdyenCheckoutError(ERROR, `${THREEDS2_CHALLENGE_ERROR}: '3DS2 challenge timed out'`, {\n cause: challenge.errorCode\n })\n );\n\n this.setStatusComplete(challenge.result);\n return;\n }\n }}\n {...challengeData}\n onActionHandled={this.onActionHandled}\n onFormSubmit={this.onFormSubmit}\n />\n );\n }\n\n if (this.state.status === 'error') {\n return (\n <div className=\"adyen-checkout__threeds2-challenge-error\">\n <Img\n className=\"adyen-checkout__status__icon adyen-checkout__status__icon--error\"\n src={getImage({\n imageFolder: 'components/'\n })('error')}\n alt={''}\n />\n <div className=\"adyen-checkout__status__text\">\n {this.state.errorInfo ? this.state.errorInfo : this.props.i18n.get('error.message.unknown')}\n </div>\n </div>\n );\n }\n\n return null;\n }\n}\n\nexport default PrepareChallenge3DS2;\n"],"names":["PrepareChallenge3DS2","Component","static","onComplete","onError","onActionHandled","constructor","props","super","this","token","challengeData","prepareChallengeData","size","challengeWindowSize","acsTransID","messageVersion","threeDSServerTransID","cReqData","acsURL","setStatusError","errorInfo","errorObj","state","status","rtnObj","onSubmitAnalytics","type","THREEDS2_FULL","message","actionDescription","onFormSubmit","msg","setStatusComplete","resultObj","setState","data","isMDFlow","createOldChallengeResolveData","createChallengeResolveData","dataKey","transStatus","paymentData","analyticsObject","THREEDS2_NUM","metadata","errorInfoObj","render","_","getImage","useImage","h","DoChallenge3DS2","onCompleteChallenge","challenge","hasOwnProperty","result","errorCode","length","AdyenCheckoutError","ERROR","THREEDS2_CHALLENGE_ERROR","errorDescription","cause","onErrorChallenge","div","className","Img","src","imageFolder","alt","i18n","get"],"mappings":"kkBAgBA,MAAMA,UAA6BC,EAC/BC,oBAA6B,CACzBC,WAAY,OACZC,QAAS,OACTC,gBAAiB,QAGrBC,WAAAA,CAAYC,GAGR,GAFAC,MAAMD,GAEFE,KAAKF,MAAMG,MAAO,CAClB,MAAMC,EAA+BC,EAAqB,CACtDF,MAAOD,KAAKF,MAAMG,MAClBG,KAAMJ,KAAKF,MAAMO,qBAAuBL,KAAKF,MAAMM,QAMjDE,WAAEA,EAAUC,eAAEA,EAAcC,qBAAEA,GAAyBN,EAAcO,SAG3E,KAAKP,EAAcQ,QAAWJ,GAAeC,GAAmBC,GAM5D,YALAR,KAAKW,eAAe,CAChBC,UACI,+HACJC,SAAUX,IAMlBF,KAAKc,MAAQ,CACTC,OAAQ,2BACRb,gBACAU,UAAW,WAGfZ,KAAKW,eAAe,CAChBC,UAAW,oCAGvB,CAEOhB,gBAAmBoB,IACtBhB,KAAKF,MAAMmB,kBAAkB,CAAEC,KAAMC,EAAeC,QAASJ,EAAOK,oBAEpErB,KAAKF,MAAMF,gBAAgBoB,EAAAA,EAGxBM,aAAgBC,IACnBvB,KAAKF,MAAMmB,kBAAkB,CACzBC,KAAMC,EACNC,QAASG,GACb,EAGJC,iBAAAA,CAAkBC,GACdzB,KAAK0B,SAAS,CAAEX,OAAQ,aAAc,KAKlC,MACMY,GADsB3B,KAAKF,MAAM8B,SAAWC,EAAgCC,GACjD9B,KAAKF,MAAMiC,QAASN,EAAUO,YAAahC,KAAKF,MAAMmC,aAGjFC,EAAuC,CACzChB,KAAMC,EACNC,QAAS,GAAGe,4BACZC,SAAU,IAAKX,IAInBzB,KAAKF,MAAMmB,kBAAkBiB,GAE7BlC,KAAKF,MAAMJ,WAAWiC,KAE9B,CAEAhB,cAAAA,CAAe0B,GACXrC,KAAK0B,SAAS,CAAEX,OAAQ,QAASH,UAAWyB,EAAazB,YACzDZ,KAAKF,MAAMH,QAAQ0C,EACvB,CAEAC,MAAAA,CAAOC,GAAGrC,cAAEA,IACR,MAAMsC,EAAWC,IACjB,MAA0B,6BAAtBzC,KAAKc,MAAMC,OAEP2B,EAACC,EAAAA,CACGC,oBAAsBC,IAEdC,EAAeD,EAAUE,OAAQ,cAAgBF,EAAUE,OAAOC,UAAUC,QAE5EjD,KAAKF,MAAMH,QACP,IAAIuD,EACAC,EACA,GAAGC,MACCP,EAAUE,OAAOM,iBAAmBR,EAAUE,OAAOM,iBAAmB,sCAE5E,CAAEC,MAAOT,EAAUE,OAAOC,aAKtChD,KAAKwB,kBAAkBqB,EAAUE,OAAM,EAE3CQ,iBAAmBV,IAIf,GAAIC,EAAeD,EAAW,aAQ1B,OAPA7C,KAAKF,MAAMH,QACP,IAAIuD,EAAmBC,EAAO,GAAGC,gCAAwD,CACrFE,MAAOT,EAAUG,kBAIzBhD,KAAKwB,kBAAkBqB,EAAUE,OAErC,KAEA7C,EACJN,gBAAiBI,KAAKJ,gBACtB0B,aAActB,KAAKsB,eAKL,UAAtBtB,KAAKc,MAAMC,OAEP2B,EAACc,MAAAA,CAAIC,UAAU,4CACXf,EAACgB,EAAAA,CACGD,UAAU,mEACVE,IAAKnB,EAAS,CACVoB,YAAa,eADZpB,CAEF,SACHqB,IAAK,KAETnB,EAACc,MAAAA,CAAIC,UAAU,gCACVzD,KAAKc,MAAMF,UAAYZ,KAAKc,MAAMF,UAAYZ,KAAKF,MAAMgE,KAAKC,IAAI,2BAM5E,IACX"}
1
+ {"version":3,"file":"PrepareChallenge3DS2.js","sources":["../../../../../../src/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport DoChallenge3DS2 from './DoChallenge3DS2';\nimport { createChallengeResolveData, prepareChallengeData, createOldChallengeResolveData } from '../utils';\nimport { PrepareChallenge3DS2Props, PrepareChallenge3DS2State } from './types';\nimport { ChallengeData, ThreeDS2FlowObject } from '../../types';\nimport '../../ThreeDS2.scss';\nimport Img from '../../../internal/Img';\nimport './challenge.scss';\nimport { hasOwnProperty } from '../../../../utils/hasOwnProperty';\nimport useImage from '../../../../core/Context/useImage';\nimport AdyenCheckoutError, { ERROR } from '../../../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_CHALLENGE_ERROR } from '../../config';\nimport { ActionHandledReturnObject } from '../../../../types/global-types';\nimport { THREEDS2_FULL, THREEDS2_NUM } from '../../config';\nimport { SendAnalyticsObject } from '../../../../core/Analytics/types';\nimport { ErrorObject } from '../../../../core/Errors/types';\n\nclass PrepareChallenge3DS2 extends Component<PrepareChallenge3DS2Props, PrepareChallenge3DS2State> {\n public static defaultProps = {\n onComplete: () => {},\n onError: () => {},\n onActionHandled: () => {}\n };\n\n constructor(props) {\n super(props);\n\n if (this.props.token) {\n const challengeData: ChallengeData | ErrorObject = prepareChallengeData({\n token: this.props.token,\n size: this.props.challengeWindowSize || this.props.size\n });\n\n /**\n * Check the structure of the created challengeData\n */\n const { acsTransID, messageVersion, threeDSServerTransID } = (challengeData as ChallengeData).cReqData;\n\n const { acsURL } = challengeData as ChallengeData;\n\n /** Missing props */\n if (!acsURL || !acsTransID || !messageVersion || !threeDSServerTransID) {\n this.setStatusError({\n errorInfo:\n 'Challenge Data missing one or more of the following properties (acsURL | acsTransID | messageVersion | threeDSServerTransID)',\n errorObj: challengeData\n });\n return;\n }\n\n /** All good */\n this.state = {\n status: 'retrievingChallengeToken',\n challengeData: challengeData as ChallengeData,\n errorInfo: null\n };\n } else {\n this.setStatusError({\n errorInfo: 'Missing challengeToken parameter'\n });\n }\n }\n\n public onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n this.props.onSubmitAnalytics({ type: THREEDS2_FULL, message: rtnObj.actionDescription });\n\n this.props.onActionHandled(rtnObj);\n };\n\n public onFormSubmit = (msg: string) => {\n this.props.onSubmitAnalytics({\n type: THREEDS2_FULL,\n message: msg\n });\n };\n\n setStatusComplete(resultObj) {\n this.setState({ status: 'complete' }, () => {\n /**\n * Create the data in the way that the /details endpoint expects.\n * This is different for the flow triggered by the threeds2InMDFlow process than for the new, v67, 'threeDS2' action\n */\n const resolveDataFunction = this.props.isMDFlow ? createOldChallengeResolveData : createChallengeResolveData;\n const data = resolveDataFunction(this.props.dataKey, resultObj.transStatus, this.props.paymentData);\n\n // Create log object - the process is completed, one way or another\n const analyticsObject: SendAnalyticsObject = {\n type: THREEDS2_FULL,\n message: `${THREEDS2_NUM} challenge has completed`,\n metadata: { ...resultObj }\n };\n\n // Send log to analytics endpoint\n this.props.onSubmitAnalytics(analyticsObject);\n\n this.props.onComplete(data); // (equals onAdditionalDetails - except for 3DS2InMDFlow)\n });\n }\n\n setStatusError(errorInfoObj) {\n this.setState({ status: 'error', errorInfo: errorInfoObj.errorInfo });\n this.props.onError(errorInfoObj); // For some reason this doesn't fire if it's in a callback passed to the setState function\n }\n\n render(_, { challengeData }) {\n const getImage = useImage();\n if (this.state.status === 'retrievingChallengeToken') {\n return (\n <DoChallenge3DS2\n onCompleteChallenge={(challenge: ThreeDS2FlowObject) => {\n // Challenge has resulted in an error (no transStatus could be retrieved) - but we still treat this as a valid scenario\n if (hasOwnProperty(challenge.result, 'errorCode') && challenge.result.errorCode.length) {\n // Tell the merchant there's been an error\n this.props.onError(\n new AdyenCheckoutError(\n ERROR,\n `${THREEDS2_CHALLENGE_ERROR}: ${\n challenge.result.errorDescription ? challenge.result.errorDescription : 'no transStatus could be retrieved'\n }`,\n { cause: challenge.result.errorCode }\n )\n );\n }\n\n this.setStatusComplete(challenge.result);\n }}\n onErrorChallenge={(challenge: ThreeDS2FlowObject) => {\n /**\n * Called when challenge times-out (which is still a valid scenario)...\n */\n if (hasOwnProperty(challenge, 'errorCode')) {\n this.props.onError(\n new AdyenCheckoutError(ERROR, `${THREEDS2_CHALLENGE_ERROR}: '3DS2 challenge timed out'`, {\n cause: challenge.errorCode\n })\n );\n\n this.setStatusComplete(challenge.result);\n return;\n }\n }}\n {...challengeData}\n onActionHandled={this.onActionHandled}\n onFormSubmit={this.onFormSubmit}\n />\n );\n }\n\n if (this.state.status === 'error') {\n return (\n <div className=\"adyen-checkout__threeds2-challenge-error\">\n <Img\n className=\"adyen-checkout__status__icon adyen-checkout__status__icon--error\"\n src={getImage({\n imageFolder: 'components/'\n })('error')}\n alt={''}\n />\n <div className=\"adyen-checkout__status__text\">\n {this.state.errorInfo ? this.state.errorInfo : this.props.i18n.get('error.message.unknown')}\n </div>\n </div>\n );\n }\n\n return null;\n }\n}\n\nexport default PrepareChallenge3DS2;\n"],"names":["PrepareChallenge3DS2","Component","static","onComplete","onError","onActionHandled","constructor","props","super","this","token","challengeData","prepareChallengeData","size","challengeWindowSize","acsTransID","messageVersion","threeDSServerTransID","cReqData","acsURL","setStatusError","errorInfo","errorObj","state","status","rtnObj","onSubmitAnalytics","type","THREEDS2_FULL","message","actionDescription","onFormSubmit","msg","setStatusComplete","resultObj","setState","data","isMDFlow","createOldChallengeResolveData","createChallengeResolveData","dataKey","transStatus","paymentData","analyticsObject","THREEDS2_NUM","metadata","errorInfoObj","render","_","getImage","useImage","h","DoChallenge3DS2","onCompleteChallenge","challenge","hasOwnProperty","result","errorCode","length","AdyenCheckoutError","ERROR","THREEDS2_CHALLENGE_ERROR","errorDescription","cause","onErrorChallenge","div","className","Img","src","imageFolder","alt","i18n","get"],"mappings":"kkBAiBA,MAAMA,UAA6BC,EAC/BC,oBAA6B,CACzBC,WAAY,OACZC,QAAS,OACTC,gBAAiB,QAGrBC,WAAAA,CAAYC,GAGR,GAFAC,MAAMD,GAEFE,KAAKF,MAAMG,MAAO,CAClB,MAAMC,EAA6CC,EAAqB,CACpEF,MAAOD,KAAKF,MAAMG,MAClBG,KAAMJ,KAAKF,MAAMO,qBAAuBL,KAAKF,MAAMM,QAMjDE,WAAEA,EAAUC,eAAEA,EAAcC,qBAAEA,GAAyBN,EAAiCO,UAExFC,OAAEA,GAAWR,EAGnB,KAAKQ,GAAWJ,GAAeC,GAAmBC,GAM9C,YALAR,KAAKW,eAAe,CAChBC,UACI,+HACJC,SAAUX,IAMlBF,KAAKc,MAAQ,CACTC,OAAQ,2BACRb,cAAeA,EACfU,UAAW,WAGfZ,KAAKW,eAAe,CAChBC,UAAW,oCAGvB,CAEOhB,gBAAmBoB,IACtBhB,KAAKF,MAAMmB,kBAAkB,CAAEC,KAAMC,EAAeC,QAASJ,EAAOK,oBAEpErB,KAAKF,MAAMF,gBAAgBoB,EAAAA,EAGxBM,aAAgBC,IACnBvB,KAAKF,MAAMmB,kBAAkB,CACzBC,KAAMC,EACNC,QAASG,GACb,EAGJC,iBAAAA,CAAkBC,GACdzB,KAAK0B,SAAS,CAAEX,OAAQ,aAAc,KAKlC,MACMY,GADsB3B,KAAKF,MAAM8B,SAAWC,EAAgCC,GACjD9B,KAAKF,MAAMiC,QAASN,EAAUO,YAAahC,KAAKF,MAAMmC,aAGjFC,EAAuC,CACzChB,KAAMC,EACNC,QAAS,GAAGe,4BACZC,SAAU,IAAKX,IAInBzB,KAAKF,MAAMmB,kBAAkBiB,GAE7BlC,KAAKF,MAAMJ,WAAWiC,KAE9B,CAEAhB,cAAAA,CAAe0B,GACXrC,KAAK0B,SAAS,CAAEX,OAAQ,QAASH,UAAWyB,EAAazB,YACzDZ,KAAKF,MAAMH,QAAQ0C,EACvB,CAEAC,MAAAA,CAAOC,GAAGrC,cAAEA,IACR,MAAMsC,EAAWC,IACjB,MAA0B,6BAAtBzC,KAAKc,MAAMC,OAEP2B,EAACC,EAAAA,CACGC,oBAAsBC,IAEdC,EAAeD,EAAUE,OAAQ,cAAgBF,EAAUE,OAAOC,UAAUC,QAE5EjD,KAAKF,MAAMH,QACP,IAAIuD,EACAC,EACA,GAAGC,MACCP,EAAUE,OAAOM,iBAAmBR,EAAUE,OAAOM,iBAAmB,sCAE5E,CAAEC,MAAOT,EAAUE,OAAOC,aAKtChD,KAAKwB,kBAAkBqB,EAAUE,OAAM,EAE3CQ,iBAAmBV,IAIf,GAAIC,EAAeD,EAAW,aAQ1B,OAPA7C,KAAKF,MAAMH,QACP,IAAIuD,EAAmBC,EAAO,GAAGC,gCAAwD,CACrFE,MAAOT,EAAUG,kBAIzBhD,KAAKwB,kBAAkBqB,EAAUE,OAErC,KAEA7C,EACJN,gBAAiBI,KAAKJ,gBACtB0B,aAActB,KAAKsB,eAKL,UAAtBtB,KAAKc,MAAMC,OAEP2B,EAACc,MAAAA,CAAIC,UAAU,4CACXf,EAACgB,EAAAA,CACGD,UAAU,mEACVE,IAAKnB,EAAS,CACVoB,YAAa,eADZpB,CAEF,SACHqB,IAAK,KAETnB,EAACc,MAAAA,CAAIC,UAAU,gCACVzD,KAAKc,MAAMF,UAAYZ,KAAKc,MAAMF,UAAYZ,KAAKF,MAAMgE,KAAKC,IAAI,2BAM5E,IACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"PrepareFingerprint3DS2.js","sources":["../../../../../../src/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport DoFingerprint3DS2 from './DoFingerprint3DS2';\nimport { createFingerprintResolveData, createOldFingerprintResolveData, handleErrorCode, prepareFingerPrintData } from '../utils';\nimport { PrepareFingerprint3DS2Props, PrepareFingerprint3DS2State } from './types';\nimport { FingerPrintData, ResultObject } from '../../types';\nimport AdyenCheckoutError, { ERROR } from '../../../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT_ERROR } from '../../config';\nimport { ActionHandledReturnObject } from '../../../../types/global-types';\nimport { THREEDS2_FULL, THREEDS2_NUM } from '../../config';\nimport { SendAnalyticsObject } from '../../../../core/Analytics/types';\n\nclass PrepareFingerprint3DS2 extends Component<PrepareFingerprint3DS2Props, PrepareFingerprint3DS2State> {\n public static type = 'scheme';\n\n public static defaultProps = {\n onComplete: () => {},\n onError: () => {},\n paymentData: '',\n showSpinner: true,\n onActionHandled: () => {}\n };\n\n constructor(props) {\n super(props);\n\n const { token, notificationURL } = this.props; // See comments on prepareFingerPrintData regarding notificationURL\n\n if (token) {\n const fingerPrintData: FingerPrintData = prepareFingerPrintData({ token, notificationURL });\n\n this.state = {\n status: 'init',\n fingerPrintData\n };\n } else {\n this.state = { status: 'error' };\n // TODO - confirm that we should do this, or is it possible to proceed to the challenge anyway?\n // ...in which case we should console.debug the error object and then call: this.setStatusComplete({ threeDSCompInd: 'N' });\n this.props.onError(new AdyenCheckoutError(ERROR, `${THREEDS2_FINGERPRINT_ERROR}: Missing \"token\" property from 3DS2Fingerprint action`));\n }\n }\n\n public onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n // Leads to an \"iframe loaded\" log action\n this.props.onSubmitAnalytics({ type: THREEDS2_FULL, message: rtnObj.actionDescription });\n this.props.onActionHandled(rtnObj);\n };\n\n public onFormSubmit = (msg: string) => {\n this.props.onSubmitAnalytics({\n type: THREEDS2_FULL,\n message: msg\n });\n };\n\n componentDidMount() {\n // If no fingerPrintData or no threeDSMethodURL - don't render component. Instead exit with threeDSCompInd: 'U'\n if (!this.state.fingerPrintData || !this.state.fingerPrintData.threeDSMethodURL) {\n this.setStatusComplete({ threeDSCompInd: 'U' });\n console.debug('### PrepareFingerprint3DS2::exiting:: no fingerPrintData or no threeDSMethodURL');\n return;\n }\n\n // Render\n this.setState({ status: 'retrievingFingerPrint' });\n }\n\n setStatusComplete(resultObj: ResultObject) {\n this.setState({ status: 'complete' }, () => {\n /**\n * Create the data in the way that the /details endpoint expects.\n * This is different for the flow triggered by the threeds2InMDFlow process than for the new, v67, 'threeDS2' action\n */\n const resolveDataFunction = this.props.isMDFlow ? createOldFingerprintResolveData : createFingerprintResolveData;\n const data = resolveDataFunction(this.props.dataKey, resultObj, this.props.paymentData);\n\n /** The fingerprint process is completed, one way or another */\n const analyticsObject: SendAnalyticsObject = {\n type: THREEDS2_FULL,\n message: `${THREEDS2_NUM} fingerprinting has completed`,\n metadata: { ...resultObj }\n };\n\n // Send log to analytics endpoint\n this.props.onSubmitAnalytics(analyticsObject);\n\n /**\n * For 'threeDS2' action = call to callSubmit3DS2Fingerprint\n * For 'threeDS2Fingerprint' action = equals call to onAdditionalDetails (except for in 3DS2InMDFlow)\n */\n this.props.onComplete(data);\n });\n }\n\n render({ showSpinner }, { status, fingerPrintData }) {\n if (status === 'retrievingFingerPrint') {\n return (\n <DoFingerprint3DS2\n onCompleteFingerprint={fingerprint => {\n this.setStatusComplete(fingerprint.result);\n }}\n onErrorFingerprint={fingerprint => {\n /**\n * Called when fingerprint times-out (which is still a valid scenario)...\n */\n const errorCodeObject = handleErrorCode(fingerprint.errorCode);\n console.debug('### PrepareFingerprint3DS2::fingerprint timed-out:: errorCodeObject=', errorCodeObject);\n this.setStatusComplete(fingerprint.result);\n }}\n showSpinner={showSpinner}\n {...fingerPrintData}\n onActionHandled={this.onActionHandled}\n onFormSubmit={this.onFormSubmit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default PrepareFingerprint3DS2;\n"],"names":["PrepareFingerprint3DS2","Component","static","onComplete","onError","paymentData","showSpinner","onActionHandled","constructor","props","super","token","notificationURL","this","fingerPrintData","prepareFingerPrintData","state","status","AdyenCheckoutError","ERROR","THREEDS2_FINGERPRINT_ERROR","rtnObj","onSubmitAnalytics","type","THREEDS2_FULL","message","actionDescription","onFormSubmit","msg","componentDidMount","threeDSMethodURL","setStatusComplete","threeDSCompInd","console","debug","setState","resultObj","data","isMDFlow","createOldFingerprintResolveData","createFingerprintResolveData","dataKey","analyticsObject","THREEDS2_NUM","metadata","render","h","DoFingerprint3DS2","onCompleteFingerprint","fingerprint","result","onErrorFingerprint","errorCodeObject","handleErrorCode","errorCode"],"mappings":"4bAWA,MAAMA,UAA+BC,EACjCC,YAAqB,SAErBA,oBAA6B,CACzBC,WAAY,OACZC,QAAS,OACTC,YAAa,GACbC,aAAa,EACbC,gBAAiB,QAGrBC,WAAAA,CAAYC,GACRC,MAAMD,GAEN,MAAME,MAAEA,EAAKC,gBAAEA,GAAoBC,KAAKJ,MAExC,GAAIE,EAAO,CACP,MAAMG,EAAmCC,EAAuB,CAAEJ,QAAOC,oBAEzEC,KAAKG,MAAQ,CACTC,OAAQ,OACRH,wBAGJD,KAAKG,MAAQ,CAAEC,OAAQ,SAGvBJ,KAAKJ,MAAML,QAAQ,IAAIc,EAAmBC,EAAO,GAAGC,2DAE5D,CAEOb,gBAAmBc,IAEtBR,KAAKJ,MAAMa,kBAAkB,CAAEC,KAAMC,EAAeC,QAASJ,EAAOK,oBACpEb,KAAKJ,MAAMF,gBAAgBc,EAAAA,EAGxBM,aAAgBC,IACnBf,KAAKJ,MAAMa,kBAAkB,CACzBC,KAAMC,EACNC,QAASG,GACb,EAGJC,iBAAAA,GAEI,IAAKhB,KAAKG,MAAMF,kBAAoBD,KAAKG,MAAMF,gBAAgBgB,iBAG3D,OAFAjB,KAAKkB,kBAAkB,CAAEC,eAAgB,WACzCC,QAAQC,MAAM,mFAKlBrB,KAAKsB,SAAS,CAAElB,OAAQ,yBAC5B,CAEAc,iBAAAA,CAAkBK,GACdvB,KAAKsB,SAAS,CAAElB,OAAQ,aAAc,KAKlC,MACMoB,GADsBxB,KAAKJ,MAAM6B,SAAWC,EAAkCC,GACnD3B,KAAKJ,MAAMgC,QAASL,EAAWvB,KAAKJ,MAAMJ,aAGrEqC,EAAuC,CACzCnB,KAAMC,EACNC,QAAS,GAAGkB,iCACZC,SAAU,IAAKR,IAInBvB,KAAKJ,MAAMa,kBAAkBoB,GAM7B7B,KAAKJ,MAAMN,WAAWkC,EAAAA,GAE9B,CAEAQ,MAAAA,EAAOvC,YAAEA,IAAeW,OAAEA,EAAMH,gBAAEA,IAC9B,MAAe,0BAAXG,EAEI6B,EAACC,EAAAA,CACGC,sBAAuBC,IACnBpC,KAAKkB,kBAAkBkB,EAAYC,OAAM,EAE7CC,mBAAoBF,IAIhB,MAAMG,EAAkBC,EAAgBJ,EAAYK,WACpDrB,QAAQC,MAAM,uEAAwEkB,GACtFvC,KAAKkB,kBAAkBkB,EAAYC,OAAM,EAE7C5C,YAAaA,KACTQ,EACJP,gBAAiBM,KAAKN,gBACtBoB,aAAcd,KAAKc,eAKxB,IACX"}
1
+ {"version":3,"file":"PrepareFingerprint3DS2.js","sources":["../../../../../../src/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport DoFingerprint3DS2 from './DoFingerprint3DS2';\nimport { createFingerprintResolveData, createOldFingerprintResolveData, handleErrorCode, prepareFingerPrintData } from '../utils';\nimport { PrepareFingerprint3DS2Props, PrepareFingerprint3DS2State } from './types';\nimport { FingerPrintData, ResultObject } from '../../types';\nimport { ErrorObject } from '../../../../core/Errors/types';\nimport AdyenCheckoutError, { ERROR } from '../../../../core/Errors/AdyenCheckoutError';\nimport { THREEDS2_FINGERPRINT_ERROR } from '../../config';\nimport { ActionHandledReturnObject } from '../../../../types/global-types';\nimport { THREEDS2_FULL, THREEDS2_NUM } from '../../config';\nimport { SendAnalyticsObject } from '../../../../core/Analytics/types';\n\nclass PrepareFingerprint3DS2 extends Component<PrepareFingerprint3DS2Props, PrepareFingerprint3DS2State> {\n public static type = 'scheme';\n\n public static defaultProps = {\n onComplete: () => {},\n onError: () => {},\n paymentData: '',\n showSpinner: true,\n onActionHandled: () => {}\n };\n\n constructor(props) {\n super(props);\n\n const { token, notificationURL } = this.props; // See comments on prepareFingerPrintData regarding notificationURL\n\n if (token) {\n const fingerPrintData: FingerPrintData | ErrorObject = prepareFingerPrintData({ token, notificationURL });\n\n this.state = {\n status: 'init',\n fingerPrintData\n };\n } else {\n this.state = { status: 'error' };\n // TODO - confirm that we should do this, or is it possible to proceed to the challenge anyway?\n // ...in which case we should console.debug the error object and then call: this.setStatusComplete({ threeDSCompInd: 'N' });\n this.props.onError(new AdyenCheckoutError(ERROR, `${THREEDS2_FINGERPRINT_ERROR}: Missing \"token\" property from 3DS2Fingerprint action`));\n }\n }\n\n public onActionHandled = (rtnObj: ActionHandledReturnObject) => {\n // Leads to an \"iframe loaded\" log action\n this.props.onSubmitAnalytics({ type: THREEDS2_FULL, message: rtnObj.actionDescription });\n this.props.onActionHandled(rtnObj);\n };\n\n public onFormSubmit = (msg: string) => {\n this.props.onSubmitAnalytics({\n type: THREEDS2_FULL,\n message: msg\n });\n };\n\n componentDidMount() {\n // If no fingerPrintData or no threeDSMethodURL - don't render component. Instead exit with threeDSCompInd: 'U'\n if (!this.state.fingerPrintData || !(this.state.fingerPrintData as FingerPrintData).threeDSMethodURL) {\n this.setStatusComplete({ threeDSCompInd: 'U' });\n console.debug('### PrepareFingerprint3DS2::exiting:: no fingerPrintData or no threeDSMethodURL');\n return;\n }\n\n // Render\n this.setState({ status: 'retrievingFingerPrint' });\n }\n\n setStatusComplete(resultObj: ResultObject) {\n this.setState({ status: 'complete' }, () => {\n /**\n * Create the data in the way that the /details endpoint expects.\n * This is different for the flow triggered by the threeds2InMDFlow process than for the new, v67, 'threeDS2' action\n */\n const resolveDataFunction = this.props.isMDFlow ? createOldFingerprintResolveData : createFingerprintResolveData;\n const data = resolveDataFunction(this.props.dataKey, resultObj, this.props.paymentData);\n\n /** The fingerprint process is completed, one way or another */\n const analyticsObject: SendAnalyticsObject = {\n type: THREEDS2_FULL,\n message: `${THREEDS2_NUM} fingerprinting has completed`,\n metadata: { ...resultObj }\n };\n\n // Send log to analytics endpoint\n this.props.onSubmitAnalytics(analyticsObject);\n\n /**\n * For 'threeDS2' action = call to callSubmit3DS2Fingerprint\n * For 'threeDS2Fingerprint' action = equals call to onAdditionalDetails (except for in 3DS2InMDFlow)\n */\n this.props.onComplete(data);\n });\n }\n\n render({ showSpinner }, { status, fingerPrintData }) {\n if (status === 'retrievingFingerPrint') {\n return (\n <DoFingerprint3DS2\n onCompleteFingerprint={fingerprint => {\n this.setStatusComplete(fingerprint.result);\n }}\n onErrorFingerprint={fingerprint => {\n /**\n * Called when fingerprint times-out (which is still a valid scenario)...\n */\n const errorCodeObject = handleErrorCode(fingerprint.errorCode);\n console.debug('### PrepareFingerprint3DS2::fingerprint timed-out:: errorCodeObject=', errorCodeObject);\n this.setStatusComplete(fingerprint.result);\n }}\n showSpinner={showSpinner}\n {...fingerPrintData}\n onActionHandled={this.onActionHandled}\n onFormSubmit={this.onFormSubmit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default PrepareFingerprint3DS2;\n"],"names":["PrepareFingerprint3DS2","Component","static","onComplete","onError","paymentData","showSpinner","onActionHandled","constructor","props","super","token","notificationURL","this","fingerPrintData","prepareFingerPrintData","state","status","AdyenCheckoutError","ERROR","THREEDS2_FINGERPRINT_ERROR","rtnObj","onSubmitAnalytics","type","THREEDS2_FULL","message","actionDescription","onFormSubmit","msg","componentDidMount","threeDSMethodURL","setStatusComplete","threeDSCompInd","console","debug","setState","resultObj","data","isMDFlow","createOldFingerprintResolveData","createFingerprintResolveData","dataKey","analyticsObject","THREEDS2_NUM","metadata","render","h","DoFingerprint3DS2","onCompleteFingerprint","fingerprint","result","onErrorFingerprint","errorCodeObject","handleErrorCode","errorCode"],"mappings":"4bAYA,MAAMA,UAA+BC,EACjCC,YAAqB,SAErBA,oBAA6B,CACzBC,WAAY,OACZC,QAAS,OACTC,YAAa,GACbC,aAAa,EACbC,gBAAiB,QAGrBC,WAAAA,CAAYC,GACRC,MAAMD,GAEN,MAAME,MAAEA,EAAKC,gBAAEA,GAAoBC,KAAKJ,MAExC,GAAIE,EAAO,CACP,MAAMG,EAAiDC,EAAuB,CAAEJ,QAAOC,oBAEvFC,KAAKG,MAAQ,CACTC,OAAQ,OACRH,wBAGJD,KAAKG,MAAQ,CAAEC,OAAQ,SAGvBJ,KAAKJ,MAAML,QAAQ,IAAIc,EAAmBC,EAAO,GAAGC,2DAE5D,CAEOb,gBAAmBc,IAEtBR,KAAKJ,MAAMa,kBAAkB,CAAEC,KAAMC,EAAeC,QAASJ,EAAOK,oBACpEb,KAAKJ,MAAMF,gBAAgBc,EAAAA,EAGxBM,aAAgBC,IACnBf,KAAKJ,MAAMa,kBAAkB,CACzBC,KAAMC,EACNC,QAASG,GACb,EAGJC,iBAAAA,GAEI,IAAKhB,KAAKG,MAAMF,kBAAoBD,KAAMG,MAAMF,gBAAoCgB,iBAGhF,OAFAjB,KAAKkB,kBAAkB,CAAEC,eAAgB,WACzCC,QAAQC,MAAM,mFAKlBrB,KAAKsB,SAAS,CAAElB,OAAQ,yBAC5B,CAEAc,iBAAAA,CAAkBK,GACdvB,KAAKsB,SAAS,CAAElB,OAAQ,aAAc,KAKlC,MACMoB,GADsBxB,KAAKJ,MAAM6B,SAAWC,EAAkCC,GACnD3B,KAAKJ,MAAMgC,QAASL,EAAWvB,KAAKJ,MAAMJ,aAGrEqC,EAAuC,CACzCnB,KAAMC,EACNC,QAAS,GAAGkB,iCACZC,SAAU,IAAKR,IAInBvB,KAAKJ,MAAMa,kBAAkBoB,GAM7B7B,KAAKJ,MAAMN,WAAWkC,EAAAA,GAE9B,CAEAQ,MAAAA,EAAOvC,YAAEA,IAAeW,OAAEA,EAAMH,gBAAEA,IAC9B,MAAe,0BAAXG,EAEI6B,EAACC,EAAAA,CACGC,sBAAuBC,IACnBpC,KAAKkB,kBAAkBkB,EAAYC,OAAM,EAE7CC,mBAAoBF,IAIhB,MAAMG,EAAkBC,EAAgBJ,EAAYK,WACpDrB,QAAQC,MAAM,uEAAwEkB,GACtFvC,KAAKkB,kBAAkBkB,EAAYC,OAAM,EAE7C5C,YAAaA,KACTQ,EACJP,gBAAiBM,KAAKN,gBACtBoB,aAAcd,KAAKc,eAKxB,IACX"}
@@ -1,2 +1,2 @@
1
- import{CHALLENGE_WINDOW_SIZES as e,DEFAULT_CHALLENGE_WINDOW_SIZE as t,ERROR_MESSAGES as r,ERRORS as n}from"../config.js";import{getOrigin as o}from"../../../utils/getOrigin.js";import a from"../../../utils/base64.js";import{pick as s}from"../../internal/SecuredFields/utils.js";const i=e=>{const t=a.decode(e);try{return t&&JSON.parse(t)}catch(e){throw new Error("Could not decode token")}},c=e=>{if(!e||!Object.keys(e).length)throw new Error("No (populated) data object to encode");return a.encode(JSON.stringify(e))},d=r=>{const n=1===r.length?`0${r}`:r;return Object.prototype.hasOwnProperty.call(e,n)?n:t},l=t=>e[d(t)],p=({token:e,size:t})=>{const r=i(e),{acsTransID:n,acsURL:a,messageVersion:s,threeDSNotificationURL:c,threeDSServerTransID:p}=r,h=o(c);return{acsURL:a,cReqData:{acsTransID:n,messageVersion:s,threeDSServerTransID:p,messageType:"CReq",challengeWindowSize:d(t)},iframeSizeArr:l(t),postMessageDomain:h}},h=({token:e,notificationURL:t})=>{const r=i(e),{threeDSMethodNotificationURL:n,threeDSMethodUrl:a,threeDSServerTransID:s}=r,c=t||n;return{threeDSServerTransID:s,threeDSMethodURL:a,threeDSMethodNotificationURL:c,postMessageDomain:o(c)}},m=(e,t,r)=>({data:{[e]:c({threeDSCompInd:t.threeDSCompInd}),paymentData:r}}),D=(e,t,r)=>({data:{details:{"threeds2.fingerprint":c(t)},paymentData:r}}),S=(e,t,r)=>({data:{details:{[e]:c({transStatus:t,authorisationToken:r})}}}),u=(e,t,r)=>({data:{details:{"threeds2.challengeResult":c({transStatus:t})},paymentData:r}}),g=(e,t)=>{const o=r[n.UNKNOWN];return{errorCode:e,message:r[e]||t||o}},f=e=>{let t=window.btoa(e).split("=")[0];return t=t.replace(/\+/g,"-"),t=t.replace(/\//g,"_"),t},R=["elementRef"],y=["createFromAction","onAdditionalDetails"],T=(e,t)=>{if("fingerprint"===e){const e=t.elementRef?R:y,r=s(e).from(t);return r.showSpinner=!t.isDropin,r.statusType="loading",r}return{statusType:"custom",i18n:t.i18n}};export{S as createChallengeResolveData,m as createFingerprintResolveData,u as createOldChallengeResolveData,D as createOldFingerprintResolveData,i as decodeAndParseToken,f as encodeBase64URL,c as encodeObject,T as get3DS2FlowProps,l as getChallengeWindowSize,g as handleErrorCode,p as prepareChallengeData,h as prepareFingerPrintData,d as validateChallengeWindowSize};
1
+ import{CHALLENGE_WINDOW_SIZES as e,DEFAULT_CHALLENGE_WINDOW_SIZE as t,ERROR_MESSAGES as r,ERRORS as s}from"../config.js";import{getOrigin as n}from"../../../utils/getOrigin.js";import a from"../../../utils/base64.js";import{pick as o}from"../../internal/SecuredFields/utils.js";const i=e=>"success"in e&&!e.success,c=e=>{const t=a.decode(e);if(t.success)try{return JSON.parse(t.data)}catch(e){return{success:!1,error:"Could not JSON parse token"}}return t},d=e=>{if(!e||!Object.keys(e).length)throw new Error("No (populated) data object to encode");return a.encode(JSON.stringify(e))},u=r=>{const s=1===r.length?`0${r}`:r;return Object.prototype.hasOwnProperty.call(e,s)?s:t},l=t=>e[u(t)],p=({token:e,size:t})=>{const r=c(e);if(i(r))return r;const{acsTransID:s,acsURL:a,messageVersion:o,threeDSNotificationURL:d,threeDSServerTransID:p}=r,h=n(d);return{acsURL:a,cReqData:{acsTransID:s,messageVersion:o,threeDSServerTransID:p,messageType:"CReq",challengeWindowSize:u(t)},iframeSizeArr:l(t),postMessageDomain:h}},h=({token:e,notificationURL:t})=>{const r=c(e);if(i(r))return r;const{threeDSMethodNotificationURL:s,threeDSMethodUrl:a,threeDSServerTransID:o}=r,d=t||s;return{threeDSServerTransID:o,threeDSMethodURL:a,threeDSMethodNotificationURL:d,postMessageDomain:n(d)}},m=(e,t,r)=>({data:{[e]:d({threeDSCompInd:t.threeDSCompInd}),paymentData:r}}),D=(e,t,r)=>({data:{details:{"threeds2.fingerprint":d(t)},paymentData:r}}),S=(e,t,r)=>({data:{details:{[e]:d({transStatus:t,authorisationToken:r})}}}),f=(e,t,r)=>({data:{details:{"threeds2.challengeResult":d({transStatus:t})},paymentData:r}}),g=(e,t)=>{const n=r[s.UNKNOWN];return{errorCode:e,message:r[e]||t||n}},R=e=>{let t=window.btoa(e).split("=")[0];return t=t.replace(/\+/g,"-"),t=t.replace(/\//g,"_"),t},y=["elementRef"],N=["createFromAction","onAdditionalDetails"],T=(e,t)=>{if("fingerprint"===e){const e=t.elementRef?y:N,r=o(e).from(t);return r.showSpinner=!t.isDropin,r.statusType="loading",r}return{statusType:"custom",i18n:t.i18n}};export{S as createChallengeResolveData,m as createFingerprintResolveData,f as createOldChallengeResolveData,D as createOldFingerprintResolveData,c as decodeAndParseToken,R as encodeBase64URL,d as encodeObject,T as get3DS2FlowProps,l as getChallengeWindowSize,g as handleErrorCode,i as isErrorObject,p as prepareChallengeData,h as prepareFingerPrintData,u as validateChallengeWindowSize};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/components/ThreeDS2/components/utils.ts"],"sourcesContent":["import { ERROR_MESSAGES, ERRORS, CHALLENGE_WINDOW_SIZES, DEFAULT_CHALLENGE_WINDOW_SIZE } from '../config';\nimport { getOrigin } from '../../../utils/getOrigin';\nimport base64 from '../../../utils/base64';\nimport { ChallengeData, ThreeDS2Token, FingerPrintData, ResultObject } from '../types';\nimport { pick } from '../../internal/SecuredFields/utils';\n\nexport interface FingerprintResolveData {\n data: {\n [key: string]: string;\n paymentData: string;\n };\n}\n\nexport interface ChallengeResolveData {\n data: {\n details: {\n [key: string]: string;\n };\n };\n}\n\nexport interface ErrorCodeObject {\n errorCode: string;\n message: string;\n}\n\nexport const decodeAndParseToken = (token: string): ThreeDS2Token => {\n const decodedToken = base64.decode(token);\n try {\n return decodedToken && JSON.parse(decodedToken);\n } catch (e) {\n throw new Error('Could not decode token');\n }\n};\n\n/**\n * Performs JSON.stringify on passed object & and base64 encodes result\n * @param obj -\n * @returns encoded result\n */\nexport const encodeObject = obj => {\n if (!obj || !Object.keys(obj).length) {\n throw new Error('No (populated) data object to encode');\n }\n return base64.encode(JSON.stringify(obj));\n};\n\n/**\n * Accepts a size string for the challenge window & returns it if it is valid else returns a default value\n * @param sizeStr - the size string to check the validity of\n * @returns a valid size string\n */\nexport const validateChallengeWindowSize = (sizeStr: string): string => {\n const sizeString = sizeStr.length === 1 ? `0${sizeStr}` : sizeStr;\n const hasSize = Object.prototype.hasOwnProperty.call(CHALLENGE_WINDOW_SIZES, sizeString);\n return hasSize ? sizeString : DEFAULT_CHALLENGE_WINDOW_SIZE;\n};\n\n/**\n * Accepts a size string for the challenge window & returns the corresponding array of w/h values\n * @param sizeStr -\n */\nexport const getChallengeWindowSize = (sizeStr: string): string[] => CHALLENGE_WINDOW_SIZES[validateChallengeWindowSize(sizeStr)];\n\n/**\n * prepareChallengeData\n *\n * Requires an object containing the challenge parameters:\n * @param token - challengeToken string received from /submitThreeDS2Fingerprint, /details or /payments call: contains acsTransID, acsURL, messageVersion,\n * threeDSNotificationURL and threeDSServerTransID\n * @param size - one of five possible challenge window sizes\n */\nexport const prepareChallengeData = ({ token, size }): ChallengeData => {\n const decodedChallengeToken = decodeAndParseToken(token);\n const { acsTransID, acsURL, messageVersion, threeDSNotificationURL, threeDSServerTransID } = decodedChallengeToken;\n const notificationURLOrigin = getOrigin(threeDSNotificationURL);\n\n return {\n acsURL,\n cReqData: {\n acsTransID,\n messageVersion,\n threeDSServerTransID,\n messageType: 'CReq',\n challengeWindowSize: validateChallengeWindowSize(size)\n },\n iframeSizeArr: getChallengeWindowSize(size),\n postMessageDomain: notificationURLOrigin\n };\n};\n\n/**\n * prepareFingerPrintData\n *\n * Requires an object containing the fingerprint parameters:\n * @param token - fingerprintToken string received from /payments call: contains threeDSMethodNotificationURL, threeDSMethodUrl and\n * threeDSServerTransID\n * @param notificationURL - the URL that the final notification is expected to be postMessaged from.\n *\n * NOTE: we don't expect merchants to alter the default by passing in a notificationURL of their own via props;\n * and if 3DS2 is being done via createFromAction or handleAction we won't accept it.\n * But if the merchant is using checkout.create('threeDS2DeviceFingerprint') we still support the fact that they might want to set their own\n * notificationURL (aka threeDSMethodNotificationURL)\n */\nexport const prepareFingerPrintData = ({ token, notificationURL }): FingerPrintData => {\n const decodedFingerPrintToken = decodeAndParseToken(token);\n const { threeDSMethodNotificationURL, threeDSMethodUrl: threeDSMethodURL, threeDSServerTransID } = decodedFingerPrintToken;\n const receivedNotificationURL = notificationURL || threeDSMethodNotificationURL;\n const notificationURLOrigin = getOrigin(receivedNotificationURL);\n\n return {\n threeDSServerTransID,\n threeDSMethodURL,\n threeDSMethodNotificationURL: receivedNotificationURL,\n postMessageDomain: notificationURLOrigin\n };\n};\n\nexport const createFingerprintResolveData = (dataKey: string, resultObj: ResultObject, paymentData: string): FingerprintResolveData => ({\n data: {\n [dataKey]: encodeObject({ threeDSCompInd: resultObj.threeDSCompInd }),\n paymentData\n }\n});\n\n// Old 3DS2 flow\nexport const createOldFingerprintResolveData = (dataKey: string, resultObj: ResultObject, paymentData: string): any => ({\n data: {\n details: { 'threeds2.fingerprint': encodeObject(resultObj) },\n paymentData\n }\n});\n\nexport const createChallengeResolveData = (dataKey: string, transStatus: string, authorisationToken: string): ChallengeResolveData => ({\n data: {\n details: { [dataKey]: encodeObject({ transStatus, authorisationToken }) }\n }\n});\n\n// Needed for old 3DS2 flow & threeds2InMDFlow\nexport const createOldChallengeResolveData = (dataKey: string, transStatus: string, authorisationToken: string): any => ({\n data: {\n details: { 'threeds2.challengeResult': encodeObject({ transStatus }) },\n paymentData: authorisationToken\n }\n});\n\nexport const handleErrorCode = (errorCode: string, errorDescription?: string): ErrorCodeObject => {\n const unknownMessage = ERROR_MESSAGES[ERRORS.UNKNOWN];\n const message = ERROR_MESSAGES[errorCode] || errorDescription || unknownMessage;\n return { errorCode, message };\n};\n\n/**\n *\n * Takes a string and encodes it as a base64url string\n * (https://en.wikipedia.org/wiki/Base64#URL_applications)\n * (See also https://tools.ietf.org/html/rfc7515)\n *\n * @example\n * ```\n * const jsonStr = JSON.stringify( {name:'john', surname:'smith'} );\n * const base64url = encodeBase64URL(jsonStr);\n * ```\n *\n * @param dataStr - data, as a string, to be encoded\n *\n * @returns base64URL - a base64url encoded string\n */\nexport const encodeBase64URL = (dataStr: string): string => {\n const base64Data = window.btoa(dataStr);\n let base64url = base64Data.split('=')[0]; // Remove any trailing '='s\n\n base64url = base64url.replace(/\\+/g, '-'); // 62nd char of encoding\n base64url = base64url.replace(/\\//g, '_'); // 63rd char of encoding\n\n return base64url;\n};\n\nconst fingerprintFlowPropsDropin = ['elementRef'];\n\n/**\n * Must contain all props needed for the challenge stage since, in the new 3DS2 flow, the fingerprint component will be the \"component\" reference\n * if the /submitThreeDS2Fingerprint response dictates we \"handleAction\" to create a challenge\n */\nconst fingerprintFlowProps = ['createFromAction', 'onAdditionalDetails'];\n\n/**\n * Add props specifically needed for the type of 3DS2 flow: fingerprint or challenge\n *\n * @param actionSubtype - 3DS2 flow type: fingerprint or challenge\n * @param props - object from which to extract particular properties\n */\nexport const get3DS2FlowProps = (actionSubtype, props) => {\n if (actionSubtype === 'fingerprint') {\n // elementRef exists when the fingerprint component is created from the Dropin\n const fingerprintProps = props.elementRef ? fingerprintFlowPropsDropin : fingerprintFlowProps;\n const rtnObj = pick(fingerprintProps).from(props);\n rtnObj.showSpinner = !props.isDropin;\n rtnObj.statusType = 'loading';\n return rtnObj;\n }\n\n // Challenge\n return {\n statusType: 'custom',\n i18n: props.i18n\n };\n};\n"],"names":["decodeAndParseToken","token","decodedToken","base64","decode","JSON","parse","e","Error","encodeObject","obj","Object","keys","length","encode","stringify","validateChallengeWindowSize","sizeStr","sizeString","prototype","hasOwnProperty","call","CHALLENGE_WINDOW_SIZES","DEFAULT_CHALLENGE_WINDOW_SIZE","getChallengeWindowSize","prepareChallengeData","size","decodedChallengeToken","acsTransID","acsURL","messageVersion","threeDSNotificationURL","threeDSServerTransID","notificationURLOrigin","getOrigin","cReqData","messageType","challengeWindowSize","iframeSizeArr","postMessageDomain","prepareFingerPrintData","notificationURL","decodedFingerPrintToken","threeDSMethodNotificationURL","threeDSMethodUrl","threeDSMethodURL","receivedNotificationURL","createFingerprintResolveData","dataKey","resultObj","paymentData","data","threeDSCompInd","createOldFingerprintResolveData","details","createChallengeResolveData","transStatus","authorisationToken","createOldChallengeResolveData","handleErrorCode","errorCode","errorDescription","unknownMessage","ERROR_MESSAGES","ERRORS","UNKNOWN","message","encodeBase64URL","dataStr","base64url","window","btoa","split","replace","fingerprintFlowPropsDropin","fingerprintFlowProps","get3DS2FlowProps","actionSubtype","props","fingerprintProps","elementRef","rtnObj","pick","from","showSpinner","isDropin","statusType","i18n"],"mappings":"sRA0BO,MAAMA,EAAuBC,IAChC,MAAMC,EAAeC,EAAOC,OAAOH,GACnC,IACI,OAAOC,GAAgBG,KAAKC,MAAMJ,EACtC,CAAE,MAAOK,GACL,MAAM,IAAIC,MAAM,yBACpB,GAQSC,EAAeC,IACxB,IAAKA,IAAQC,OAAOC,KAAKF,GAAKG,OAC1B,MAAM,IAAIL,MAAM,wCAEpB,OAAOL,EAAOW,OAAOT,KAAKU,UAAUL,GAAAA,EAQ3BM,EAA+BC,IACxC,MAAMC,EAAgC,IAAnBD,EAAQJ,OAAe,IAAII,IAAYA,EAE1D,OADgBN,OAAOQ,UAAUC,eAAeC,KAAKC,EAAwBJ,GAC5DA,EAAaK,CAAAA,EAOrBC,EAA0BP,GAA8BK,EAAuBN,EAA4BC,IAU3GQ,EAAuB,EAAGxB,QAAOyB,WAC1C,MAAMC,EAAwB3B,EAAoBC,IAC5C2B,WAAEA,EAAUC,OAAEA,EAAMC,eAAEA,EAAcC,uBAAEA,EAAsBC,qBAAEA,GAAyBL,EACvFM,EAAwBC,EAAUH,GAExC,MAAO,CACHF,SACAM,SAAU,CACNP,aACAE,iBACAE,uBACAI,YAAa,OACbC,oBAAqBrB,EAA4BU,IAErDY,cAAed,EAAuBE,GACtCa,kBAAmBN,EACvB,EAgBSO,EAAyB,EAAGvC,QAAOwC,sBAC5C,MAAMC,EAA0B1C,EAAoBC,IAC9C0C,6BAAEA,EAA8BC,iBAAkBC,EAAgBb,qBAAEA,GAAyBU,EAC7FI,EAA0BL,GAAmBE,EAGnD,MAAO,CACHX,uBACAa,mBACAF,6BAA8BG,EAC9BP,kBAN0BL,EAAUY,GAOxC,EAGSC,EAA+B,CAACC,EAAiBC,EAAyBC,KAAiD,CACpIC,KAAM,CACFH,CAACA,GAAUvC,EAAa,CAAE2C,eAAgBH,EAAUG,iBACpDF,iBAKKG,EAAkC,CAACL,EAAiBC,EAAyBC,KAA8B,CACpHC,KAAM,CACFG,QAAS,CAAE,uBAAwB7C,EAAawC,IAChDC,iBAIKK,EAA6B,CAACP,EAAiBQ,EAAqBC,KAAsD,CACnIN,KAAM,CACFG,QAAS,CAAEN,CAACA,GAAUvC,EAAa,CAAE+C,cAAaC,2BAK7CC,EAAgC,CAACV,EAAiBQ,EAAqBC,KAAqC,CACrHN,KAAM,CACFG,QAAS,CAAE,2BAA4B7C,EAAa,CAAE+C,iBACtDN,YAAaO,KAIRE,EAAkB,CAACC,EAAmBC,KAC/C,MAAMC,EAAiBC,EAAeC,EAAOC,SAE7C,MAAO,CAAEL,YAAWM,QADJH,EAAeH,IAAcC,GAAoBC,EACrC,EAmBnBK,EAAmBC,IAE5B,IAAIC,EADeC,OAAOC,KAAKH,GACJI,MAAM,KAAK,GAKtC,OAHAH,EAAYA,EAAUI,QAAQ,MAAO,KACrCJ,EAAYA,EAAUI,QAAQ,MAAO,KAE9BJ,CAAAA,EAGLK,EAA6B,CAAC,cAM9BC,EAAuB,CAAC,mBAAoB,uBAQrCC,EAAmB,CAACC,EAAeC,KAC5C,GAAsB,gBAAlBD,EAAiC,CAEjC,MAAME,EAAmBD,EAAME,WAAaN,EAA6BC,EACnEM,EAASC,EAAKH,GAAkBI,KAAKL,GAG3C,OAFAG,EAAOG,aAAeN,EAAMO,SAC5BJ,EAAOK,WAAa,UACbL,CACX,CAGA,MAAO,CACHK,WAAY,SACZC,KAAMT,EAAMS,KAChB"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/components/ThreeDS2/components/utils.ts"],"sourcesContent":["import { ERROR_MESSAGES, ERRORS, CHALLENGE_WINDOW_SIZES, DEFAULT_CHALLENGE_WINDOW_SIZE } from '../config';\nimport { getOrigin } from '../../../utils/getOrigin';\nimport base64 from '../../../utils/base64';\nimport { ChallengeData, ThreeDS2Token, FingerPrintData, ResultObject } from '../types';\nimport { pick } from '../../internal/SecuredFields/utils';\nimport { DecodeObject } from '../../../types/global-types';\nimport { ErrorObject } from '../../../core/Errors/types';\n\nexport interface FingerprintResolveData {\n data: {\n [key: string]: string;\n paymentData: string;\n };\n}\n\nexport interface ChallengeResolveData {\n data: {\n details: {\n [key: string]: string;\n };\n };\n}\n\nexport interface ErrorCodeObject {\n errorCode: string;\n message: string;\n}\n\n/**\n * Check if we have been passed an ErrorObject because either base64 decoding or JSON.parse failed\n * @param obj -\n */\nexport const isErrorObject = (obj: ErrorObject | ThreeDS2Token): boolean => {\n return 'success' in obj && !obj.success;\n};\n\nexport const decodeAndParseToken = (token: string): ThreeDS2Token | ErrorObject => {\n const decodedToken: DecodeObject = base64.decode(token);\n if (decodedToken.success) {\n try {\n return JSON.parse(decodedToken.data) as ThreeDS2Token;\n } catch (e) {\n return {\n success: false,\n error: 'Could not JSON parse token'\n };\n }\n }\n\n // base64.decode failed - object will contain error msg: 'not base64' or 'malformed URI sequence'\n return decodedToken as ErrorObject;\n};\n\n/**\n * Performs JSON.stringify on passed object & and base64 encodes result\n * @param obj -\n * @returns encoded result\n */\nexport const encodeObject = obj => {\n if (!obj || !Object.keys(obj).length) {\n throw new Error('No (populated) data object to encode');\n }\n return base64.encode(JSON.stringify(obj));\n};\n\n/**\n * Accepts a size string for the challenge window & returns it if it is valid else returns a default value\n * @param sizeStr - the size string to check the validity of\n * @returns a valid size string\n */\nexport const validateChallengeWindowSize = (sizeStr: string): string => {\n const sizeString = sizeStr.length === 1 ? `0${sizeStr}` : sizeStr;\n const hasSize = Object.prototype.hasOwnProperty.call(CHALLENGE_WINDOW_SIZES, sizeString);\n return hasSize ? sizeString : DEFAULT_CHALLENGE_WINDOW_SIZE;\n};\n\n/**\n * Accepts a size string for the challenge window & returns the corresponding array of w/h values\n * @param sizeStr -\n */\nexport const getChallengeWindowSize = (sizeStr: string): string[] => CHALLENGE_WINDOW_SIZES[validateChallengeWindowSize(sizeStr)];\n\n/**\n * prepareChallengeData\n *\n * Requires an object containing the challenge parameters:\n * @param token - challengeToken string received from /submitThreeDS2Fingerprint, /details or /payments call: contains acsTransID, acsURL, messageVersion,\n * threeDSNotificationURL and threeDSServerTransID\n * @param size - one of five possible challenge window sizes\n */\nexport const prepareChallengeData = ({ token, size }): ChallengeData | ErrorObject => {\n const decodedChallengeToken = decodeAndParseToken(token);\n\n if (isErrorObject(decodedChallengeToken)) {\n return decodedChallengeToken as ErrorObject;\n }\n\n const { acsTransID, acsURL, messageVersion, threeDSNotificationURL, threeDSServerTransID } = decodedChallengeToken as ThreeDS2Token;\n const notificationURLOrigin = getOrigin(threeDSNotificationURL);\n\n return {\n acsURL,\n cReqData: {\n acsTransID,\n messageVersion,\n threeDSServerTransID,\n messageType: 'CReq',\n challengeWindowSize: validateChallengeWindowSize(size)\n },\n iframeSizeArr: getChallengeWindowSize(size),\n postMessageDomain: notificationURLOrigin\n } as ChallengeData;\n};\n\n/**\n * prepareFingerPrintData\n *\n * Requires an object containing the fingerprint parameters:\n * @param token - fingerprintToken string received from /payments call: contains threeDSMethodNotificationURL, threeDSMethodUrl and\n * threeDSServerTransID\n * @param notificationURL - the URL that the final notification is expected to be postMessaged from.\n *\n * NOTE: we don't expect merchants to alter the default by passing in a notificationURL of their own via props;\n * and if 3DS2 is being done via createFromAction or handleAction we won't accept it.\n * But if the merchant is using checkout.create('threeDS2DeviceFingerprint') we still support the fact that they might want to set their own\n * notificationURL (aka threeDSMethodNotificationURL)\n */\nexport const prepareFingerPrintData = ({ token, notificationURL }): FingerPrintData | ErrorObject => {\n const decodedFingerPrintToken = decodeAndParseToken(token);\n\n if (isErrorObject(decodedFingerPrintToken)) {\n return decodedFingerPrintToken as ErrorObject;\n }\n\n const { threeDSMethodNotificationURL, threeDSMethodUrl: threeDSMethodURL, threeDSServerTransID } = decodedFingerPrintToken as ThreeDS2Token;\n const receivedNotificationURL = notificationURL || threeDSMethodNotificationURL;\n const notificationURLOrigin = getOrigin(receivedNotificationURL);\n\n return {\n threeDSServerTransID,\n threeDSMethodURL,\n threeDSMethodNotificationURL: receivedNotificationURL,\n postMessageDomain: notificationURLOrigin\n } as FingerPrintData;\n};\n\nexport const createFingerprintResolveData = (dataKey: string, resultObj: ResultObject, paymentData: string): FingerprintResolveData => ({\n data: {\n [dataKey]: encodeObject({ threeDSCompInd: resultObj.threeDSCompInd }),\n paymentData\n }\n});\n\n// Old 3DS2 flow\nexport const createOldFingerprintResolveData = (dataKey: string, resultObj: ResultObject, paymentData: string): any => ({\n data: {\n details: { 'threeds2.fingerprint': encodeObject(resultObj) },\n paymentData\n }\n});\n\nexport const createChallengeResolveData = (dataKey: string, transStatus: string, authorisationToken: string): ChallengeResolveData => ({\n data: {\n details: { [dataKey]: encodeObject({ transStatus, authorisationToken }) }\n }\n});\n\n// Needed for old 3DS2 flow & threeds2InMDFlow\nexport const createOldChallengeResolveData = (dataKey: string, transStatus: string, authorisationToken: string): any => ({\n data: {\n details: { 'threeds2.challengeResult': encodeObject({ transStatus }) },\n paymentData: authorisationToken\n }\n});\n\nexport const handleErrorCode = (errorCode: string, errorDescription?: string): ErrorCodeObject => {\n const unknownMessage = ERROR_MESSAGES[ERRORS.UNKNOWN];\n const message = ERROR_MESSAGES[errorCode] || errorDescription || unknownMessage;\n return { errorCode, message };\n};\n\n/**\n *\n * Takes a string and encodes it as a base64url string\n * (https://en.wikipedia.org/wiki/Base64#URL_applications)\n * (See also https://tools.ietf.org/html/rfc7515)\n *\n * @example\n * ```\n * const jsonStr = JSON.stringify( {name:'john', surname:'smith'} );\n * const base64url = encodeBase64URL(jsonStr);\n * ```\n *\n * @param dataStr - data, as a string, to be encoded\n *\n * @returns base64URL - a base64url encoded string\n */\nexport const encodeBase64URL = (dataStr: string): string => {\n const base64Data = window.btoa(dataStr);\n let base64url = base64Data.split('=')[0]; // Remove any trailing '='s\n\n base64url = base64url.replace(/\\+/g, '-'); // 62nd char of encoding\n base64url = base64url.replace(/\\//g, '_'); // 63rd char of encoding\n\n return base64url;\n};\n\nconst fingerprintFlowPropsDropin = ['elementRef'];\n\n/**\n * Must contain all props needed for the challenge stage since, in the new 3DS2 flow, the fingerprint component will be the \"component\" reference\n * if the /submitThreeDS2Fingerprint response dictates we \"handleAction\" to create a challenge\n */\nconst fingerprintFlowProps = ['createFromAction', 'onAdditionalDetails'];\n\n/**\n * Add props specifically needed for the type of 3DS2 flow: fingerprint or challenge\n *\n * @param actionSubtype - 3DS2 flow type: fingerprint or challenge\n * @param props - object from which to extract particular properties\n */\nexport const get3DS2FlowProps = (actionSubtype, props) => {\n if (actionSubtype === 'fingerprint') {\n // elementRef exists when the fingerprint component is created from the Dropin\n const fingerprintProps = props.elementRef ? fingerprintFlowPropsDropin : fingerprintFlowProps;\n const rtnObj = pick(fingerprintProps).from(props);\n rtnObj.showSpinner = !props.isDropin;\n rtnObj.statusType = 'loading';\n return rtnObj;\n }\n\n // Challenge\n return {\n statusType: 'custom',\n i18n: props.i18n\n };\n};\n"],"names":["isErrorObject","obj","success","decodeAndParseToken","token","decodedToken","base64","decode","JSON","parse","data","e","error","encodeObject","Object","keys","length","Error","encode","stringify","validateChallengeWindowSize","sizeStr","sizeString","prototype","hasOwnProperty","call","CHALLENGE_WINDOW_SIZES","DEFAULT_CHALLENGE_WINDOW_SIZE","getChallengeWindowSize","prepareChallengeData","size","decodedChallengeToken","acsTransID","acsURL","messageVersion","threeDSNotificationURL","threeDSServerTransID","notificationURLOrigin","getOrigin","cReqData","messageType","challengeWindowSize","iframeSizeArr","postMessageDomain","prepareFingerPrintData","notificationURL","decodedFingerPrintToken","threeDSMethodNotificationURL","threeDSMethodUrl","threeDSMethodURL","receivedNotificationURL","createFingerprintResolveData","dataKey","resultObj","paymentData","threeDSCompInd","createOldFingerprintResolveData","details","createChallengeResolveData","transStatus","authorisationToken","createOldChallengeResolveData","handleErrorCode","errorCode","errorDescription","unknownMessage","ERROR_MESSAGES","ERRORS","UNKNOWN","message","encodeBase64URL","dataStr","base64url","window","btoa","split","replace","fingerprintFlowPropsDropin","fingerprintFlowProps","get3DS2FlowProps","actionSubtype","props","fingerprintProps","elementRef","rtnObj","pick","from","showSpinner","isDropin","statusType","i18n"],"mappings":"sRAgCaA,MAAAA,EAAiBC,GACnB,YAAaA,IAAQA,EAAIC,QAGvBC,EAAuBC,IAChC,MAAMC,EAA6BC,EAAOC,OAAOH,GACjD,GAAIC,EAAaH,QACb,IACI,OAAOM,KAAKC,MAAMJ,EAAaK,KACnC,CAAE,MAAOC,GACL,MAAO,CACHT,SAAS,EACTU,MAAO,6BAEf,CAIJ,OAAOP,CAAAA,EAQEQ,EAAeZ,IACxB,IAAKA,IAAQa,OAAOC,KAAKd,GAAKe,OAC1B,MAAM,IAAIC,MAAM,wCAEpB,OAAOX,EAAOY,OAAOV,KAAKW,UAAUlB,GAAAA,EAQ3BmB,EAA+BC,IACxC,MAAMC,EAAgC,IAAnBD,EAAQL,OAAe,IAAIK,IAAYA,EAE1D,OADgBP,OAAOS,UAAUC,eAAeC,KAAKC,EAAwBJ,GAC5DA,EAAaK,CAAAA,EAOrBC,EAA0BP,GAA8BK,EAAuBN,EAA4BC,IAU3GQ,EAAuB,EAAGzB,QAAO0B,WAC1C,MAAMC,EAAwB5B,EAAoBC,GAElD,GAAIJ,EAAc+B,GACd,OAAOA,EAGX,MAAMC,WAAEA,EAAUC,OAAEA,EAAMC,eAAEA,EAAcC,uBAAEA,EAAsBC,qBAAEA,GAAyBL,EACvFM,EAAwBC,EAAUH,GAExC,MAAO,CACHF,SACAM,SAAU,CACNP,aACAE,iBACAE,uBACAI,YAAa,OACbC,oBAAqBrB,EAA4BU,IAErDY,cAAed,EAAuBE,GACtCa,kBAAmBN,EACvB,EAgBSO,EAAyB,EAAGxC,QAAOyC,sBAC5C,MAAMC,EAA0B3C,EAAoBC,GAEpD,GAAIJ,EAAc8C,GACd,OAAOA,EAGX,MAAMC,6BAAEA,EAA8BC,iBAAkBC,EAAgBb,qBAAEA,GAAyBU,EAC7FI,EAA0BL,GAAmBE,EAGnD,MAAO,CACHX,uBACAa,mBACAF,6BAA8BG,EAC9BP,kBAN0BL,EAAUY,GAOxC,EAGSC,EAA+B,CAACC,EAAiBC,EAAyBC,KAAiD,CACpI5C,KAAM,CACF0C,CAACA,GAAUvC,EAAa,CAAE0C,eAAgBF,EAAUE,iBACpDD,iBAKKE,EAAkC,CAACJ,EAAiBC,EAAyBC,KAA8B,CACpH5C,KAAM,CACF+C,QAAS,CAAE,uBAAwB5C,EAAawC,IAChDC,iBAIKI,EAA6B,CAACN,EAAiBO,EAAqBC,KAAsD,CACnIlD,KAAM,CACF+C,QAAS,CAAEL,CAACA,GAAUvC,EAAa,CAAE8C,cAAaC,2BAK7CC,EAAgC,CAACT,EAAiBO,EAAqBC,KAAqC,CACrHlD,KAAM,CACF+C,QAAS,CAAE,2BAA4B5C,EAAa,CAAE8C,iBACtDL,YAAaM,KAIRE,EAAkB,CAACC,EAAmBC,KAC/C,MAAMC,EAAiBC,EAAeC,EAAOC,SAE7C,MAAO,CAAEL,YAAWM,QADJH,EAAeH,IAAcC,GAAoBC,EACrC,EAmBnBK,EAAmBC,IAE5B,IAAIC,EADeC,OAAOC,KAAKH,GACJI,MAAM,KAAK,GAKtC,OAHAH,EAAYA,EAAUI,QAAQ,MAAO,KACrCJ,EAAYA,EAAUI,QAAQ,MAAO,KAE9BJ,CAAAA,EAGLK,EAA6B,CAAC,cAM9BC,EAAuB,CAAC,mBAAoB,uBAQrCC,EAAmB,CAACC,EAAeC,KAC5C,GAAsB,gBAAlBD,EAAiC,CAEjC,MAAME,EAAmBD,EAAME,WAAaN,EAA6BC,EACnEM,EAASC,EAAKH,GAAkBI,KAAKL,GAG3C,OAFAG,EAAOG,aAAeN,EAAMO,SAC5BJ,EAAOK,WAAa,UACbL,CACX,CAGA,MAAO,CACHK,WAAY,SACZC,KAAMT,EAAMS,KAChB"}
@@ -1,2 +1,2 @@
1
- import{createElement as s}from"../../../external/preact/dist/preact.js";import{UIElement as t}from"../../internal/UIElement/UIElement.js";import e from"../../internal/IssuerList/IssuerList.js";import i from"../../../utils/get-issuer-image.js";import{FALLBACK_CONTEXT as r}from"../../../core/config.js";import o from"../../../core/Context/CoreProvider.js";import n from"../../internal/RedirectButton/RedirectButton.js";import p from"../../../core/Errors/SRPanelProvider.js";class a extends t{static defaultProps={showImage:!0,issuers:[],highlightedIssuers:[],loadingContext:r,showPaymentMethodItemImages:!1};constructor(s,t){super(s,t);const e=s=>this.resources.getImage(s);if(this.props.showImage){const s=i({loadingContext:this.props.loadingContext},this.constructor.type,e);this.props.issuers=this.props.issuers.map((t=>({...t,icon:s(t.id)})))}}formatProps(s){const t=s.details&&s.details.length&&(s.details.find((s=>"issuer"===s.key))||{}).items||s.issuers||[];return{...s,issuers:t}}formatData(){return{paymentMethod:{type:this.type,issuer:this.state?.data?.issuer}}}get isValid(){return 0===this.props.issuers.length||!!this.state?.isValid}get brands(){return this.props.showPaymentMethodItemImages?this.props.issuers.map((s=>({icon:s.icon,name:s.id}))):[]}render(){return s(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},this.props.issuers.length>0?s(p,{srPanel:this.props.modules.srPanel},s(e,{ref:s=>{this.componentRef=s},items:this.props.issuers,highlightedIds:this.props.highlightedIssuers,...this.props,...this.state,showImage:this.props.showImage,type:this.constructor.type,onChange:this.setState,onSubmit:this.submit,payButton:this.payButton,contextualText:this.props.i18n.get("issuerList.selectField.contextualText"),onSubmitAnalytics:this.submitAnalytics})):this.props.showPayButton&&s(n,{name:this.props.name,...this.props,onSubmit:this.submit,payButton:this.payButton,ref:s=>{this.componentRef=s}}))}}export{a as default};
1
+ import{createElement as s}from"../../../external/preact/dist/preact.js";import{UIElement as t}from"../../internal/UIElement/UIElement.js";import e from"../../internal/IssuerList/IssuerList.js";import i from"../../../utils/get-issuer-image.js";import{FALLBACK_CONTEXT as r}from"../../../core/config.js";import o from"../../../core/Context/CoreProvider.js";import n from"../../internal/RedirectButton/RedirectButton.js";import p from"../../../core/Errors/SRPanelProvider.js";class a extends t{static defaultProps={showImage:!0,issuers:[],highlightedIssuers:[],loadingContext:r,showPaymentMethodItemImages:!1,showPayButton:!0};constructor(s,t){super(s,t);const e=s=>this.resources.getImage(s);if(this.props.showImage){const s=i({loadingContext:this.props.loadingContext},this.constructor.type,e);this.props.issuers=this.props.issuers.map((t=>({...t,icon:s(t.id)})))}}formatProps(s){const t=s.details&&s.details.length&&(s.details.find((s=>"issuer"===s.key))||{}).items||s.issuers||[];return{...s,issuers:t}}formatData(){return{paymentMethod:{type:this.type,issuer:this.state?.data?.issuer}}}get isValid(){return 0===this.props.issuers.length||!!this.state?.isValid}get brands(){return this.props.showPaymentMethodItemImages?this.props.issuers.map((s=>({icon:s.icon,name:s.id}))):[]}render(){return s(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},this.props.issuers.length>0?s(p,{srPanel:this.props.modules.srPanel},s(e,{ref:s=>{this.componentRef=s},items:this.props.issuers,highlightedIds:this.props.highlightedIssuers,...this.props,...this.state,showImage:this.props.showImage,type:this.constructor.type,onChange:this.setState,onSubmit:this.submit,payButton:this.payButton,contextualText:this.props.i18n.get("issuerList.selectField.contextualText"),onSubmitAnalytics:this.submitAnalytics})):this.props.showPayButton&&s(n,{name:this.props.name,...this.props,onSubmit:this.submit,payButton:this.payButton,ref:s=>{this.componentRef=s}}))}}export{a as default};
2
2
  //# sourceMappingURL=IssuerListContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IssuerListContainer.js","sources":["../../../../../src/components/helpers/IssuerListContainer/IssuerListContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../../internal/UIElement/UIElement';\nimport IssuerList from '../../internal/IssuerList';\nimport getIssuerImageUrl from '../../../utils/get-issuer-image';\nimport { FALLBACK_CONTEXT } from '../../../core/config';\nimport CoreProvider from '../../../core/Context/CoreProvider';\nimport RedirectButton from '../../internal/RedirectButton';\nimport SRPanelProvider from '../../../core/Errors/SRPanelProvider';\nimport { IssuerListConfiguration, IssuerListData } from './types';\nimport type { ICore } from '../../../core/types';\n\nclass IssuerListContainer extends UIElement<IssuerListConfiguration> {\n protected static defaultProps = {\n showImage: true,\n issuers: [],\n highlightedIssuers: [],\n loadingContext: FALLBACK_CONTEXT,\n showPaymentMethodItemImages: false\n };\n\n constructor(checkout: ICore, props?: IssuerListConfiguration) {\n super(checkout, props);\n\n const getImage = props => this.resources.getImage(props);\n\n if (this.props.showImage) {\n const getIssuerIcon = getIssuerImageUrl({ loadingContext: this.props.loadingContext }, this.constructor['type'], getImage);\n\n this.props.issuers = this.props.issuers.map(item => ({\n ...item,\n icon: getIssuerIcon(item.id)\n }));\n }\n }\n\n formatProps(props) {\n const issuers = (props.details && props.details.length && (props.details.find(d => d.key === 'issuer') || {}).items) || props.issuers || [];\n return { ...props, issuers };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): IssuerListData {\n return {\n paymentMethod: {\n type: this.type,\n issuer: this.state?.data?.issuer\n }\n };\n }\n\n /**\n * Returns whether the component state is valid or not\n */\n get isValid() {\n if (this.props.issuers.length === 0) {\n return true;\n }\n return !!this.state?.isValid;\n }\n\n /**\n * Returns brands array (similar to card) depending on showPaymentMethodItemImages\n * This is used to show the brands in the PaymentMethodItem\n * Requires brands icons to be loaded in the payment method\n */\n get brands(): { icon: any; name: string }[] {\n if (this.props.showPaymentMethodItemImages) {\n return this.props.issuers.map(brand => {\n const brandIcon = brand.icon;\n return { icon: brandIcon, name: brand.id };\n });\n }\n\n return [];\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.issuers.length > 0 ? (\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <IssuerList\n ref={ref => {\n this.componentRef = ref;\n }}\n items={this.props.issuers}\n highlightedIds={this.props.highlightedIssuers}\n {...this.props}\n {...this.state}\n showImage={this.props.showImage}\n type={this.constructor['type']}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n contextualText={this.props.i18n.get('issuerList.selectField.contextualText')}\n onSubmitAnalytics={this.submitAnalytics}\n />\n </SRPanelProvider>\n ) : (\n this.props.showPayButton && (\n <RedirectButton\n name={this.props.name}\n {...this.props}\n onSubmit={this.submit}\n payButton={this.payButton}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n )\n )}\n </CoreProvider>\n );\n }\n}\n\nexport default IssuerListContainer;\n"],"names":["IssuerListContainer","UIElement","static","showImage","issuers","highlightedIssuers","loadingContext","FALLBACK_CONTEXT","showPaymentMethodItemImages","constructor","checkout","props","super","getImage","this","resources","getIssuerIcon","getIssuerImageUrl","map","item","icon","id","formatProps","details","length","find","d","key","items","formatData","paymentMethod","type","issuer","state","data","isValid","brands","brand","name","render","h","CoreProvider","i18n","SRPanelProvider","srPanel","modules","IssuerList","ref","componentRef","highlightedIds","onChange","setState","onSubmit","submit","payButton","contextualText","get","onSubmitAnalytics","submitAnalytics","showPayButton","RedirectButton"],"mappings":"ydAWA,MAAMA,UAA4BC,EAC9BC,oBAAgC,CAC5BC,WAAW,EACXC,QAAS,GACTC,mBAAoB,GACpBC,eAAgBC,EAChBC,6BAA6B,GAGjCC,WAAAA,CAAYC,EAAiBC,GACzBC,MAAMF,EAAUC,GAEhB,MAAME,EAAWF,GAASG,KAAKC,UAAUF,SAASF,GAElD,GAAIG,KAAKH,MAAMR,UAAW,CACtB,MAAMa,EAAgBC,EAAkB,CAAEX,eAAgBQ,KAAKH,MAAML,gBAAkBQ,KAAKL,iBAAqBI,GAEjHC,KAAKH,MAAMP,QAAUU,KAAKH,MAAMP,QAAQc,KAAIC,IAAS,IAC9CA,EACHC,KAAMJ,EAAcG,EAAKE,OAEjC,CACJ,CAEAC,WAAAA,CAAYX,GACR,MAAMP,EAAWO,EAAMY,SAAWZ,EAAMY,QAAQC,SAAWb,EAAMY,QAAQE,MAAKC,GAAe,WAAVA,EAAEC,OAAqB,CAAC,GAAGC,OAAUjB,EAAMP,SAAW,GACzI,MAAO,IAAKO,EAAOP,UACvB,CAKAyB,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMjB,KAAKiB,KACXC,OAAQlB,KAAKmB,OAAOC,MAAMF,QAGtC,CAKA,WAAIG,GACA,OAAkC,IAA9BrB,KAAKH,MAAMP,QAAQoB,UAGdV,KAAKmB,OAAOE,OACzB,CAOA,UAAIC,GACA,OAAItB,KAAKH,MAAMH,4BACJM,KAAKH,MAAMP,QAAQc,KAAImB,IAEnB,CAAEjB,KADSiB,EAAMjB,KACEkB,KAAMD,EAAMhB,OAIvC,EACX,CAEAkB,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAM5B,KAAKH,MAAM+B,KAAMpC,eAAgBQ,KAAKH,MAAML,eAAgBS,UAAWD,KAAKC,WAC3FD,KAAKH,MAAMP,QAAQoB,OAAS,EACzBgB,EAACG,EAAAA,CAAgBC,QAAS9B,KAAKH,MAAMkC,QAAQD,SACzCJ,EAACM,EAAAA,CACGC,IAAKA,IACDjC,KAAKkC,aAAeD,CAAAA,EAExBnB,MAAOd,KAAKH,MAAMP,QAClB6C,eAAgBnC,KAAKH,MAAMN,sBACvBS,KAAKH,SACLG,KAAKmB,MACT9B,UAAWW,KAAKH,MAAMR,UACtB4B,KAAMjB,KAAKL,YAAmB,KAC9ByC,SAAUpC,KAAKqC,SACfC,SAAUtC,KAAKuC,OACfC,UAAWxC,KAAKwC,UAChBC,eAAgBzC,KAAKH,MAAM+B,KAAKc,IAAI,yCACpCC,kBAAmB3C,KAAK4C,mBAIhC5C,KAAKH,MAAMgD,eACPnB,EAACoB,EAAAA,CACGtB,KAAMxB,KAAKH,MAAM2B,QACbxB,KAAKH,MACTyC,SAAUtC,KAAKuC,OACfC,UAAWxC,KAAKwC,UAChBP,IAAKA,IACDjC,KAAKkC,aAAeD,CAAAA,IAOhD"}
1
+ {"version":3,"file":"IssuerListContainer.js","sources":["../../../../../src/components/helpers/IssuerListContainer/IssuerListContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../../internal/UIElement/UIElement';\nimport IssuerList from '../../internal/IssuerList';\nimport getIssuerImageUrl from '../../../utils/get-issuer-image';\nimport { FALLBACK_CONTEXT } from '../../../core/config';\nimport CoreProvider from '../../../core/Context/CoreProvider';\nimport RedirectButton from '../../internal/RedirectButton';\nimport SRPanelProvider from '../../../core/Errors/SRPanelProvider';\nimport { IssuerListConfiguration, IssuerListData } from './types';\nimport type { ICore } from '../../../core/types';\n\nclass IssuerListContainer extends UIElement<IssuerListConfiguration> {\n protected static defaultProps = {\n showImage: true,\n issuers: [],\n highlightedIssuers: [],\n loadingContext: FALLBACK_CONTEXT,\n showPaymentMethodItemImages: false,\n showPayButton: true\n };\n\n constructor(checkout: ICore, props?: IssuerListConfiguration) {\n super(checkout, props);\n\n const getImage = props => this.resources.getImage(props);\n\n if (this.props.showImage) {\n const getIssuerIcon = getIssuerImageUrl({ loadingContext: this.props.loadingContext }, this.constructor['type'], getImage);\n\n this.props.issuers = this.props.issuers.map(item => ({\n ...item,\n icon: getIssuerIcon(item.id)\n }));\n }\n }\n\n formatProps(props) {\n const issuers = (props.details && props.details.length && (props.details.find(d => d.key === 'issuer') || {}).items) || props.issuers || [];\n return { ...props, issuers };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): IssuerListData {\n return {\n paymentMethod: {\n type: this.type,\n issuer: this.state?.data?.issuer\n }\n };\n }\n\n /**\n * Returns whether the component state is valid or not\n */\n get isValid() {\n if (this.props.issuers.length === 0) {\n return true;\n }\n return !!this.state?.isValid;\n }\n\n /**\n * Returns brands array (similar to card) depending on showPaymentMethodItemImages\n * This is used to show the brands in the PaymentMethodItem\n * Requires brands icons to be loaded in the payment method\n */\n get brands(): { icon: any; name: string }[] {\n if (this.props.showPaymentMethodItemImages) {\n return this.props.issuers.map(brand => {\n const brandIcon = brand.icon;\n return { icon: brandIcon, name: brand.id };\n });\n }\n\n return [];\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.issuers.length > 0 ? (\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <IssuerList\n ref={ref => {\n this.componentRef = ref;\n }}\n items={this.props.issuers}\n highlightedIds={this.props.highlightedIssuers}\n {...this.props}\n {...this.state}\n showImage={this.props.showImage}\n type={this.constructor['type']}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n contextualText={this.props.i18n.get('issuerList.selectField.contextualText')}\n onSubmitAnalytics={this.submitAnalytics}\n />\n </SRPanelProvider>\n ) : (\n this.props.showPayButton && (\n <RedirectButton\n name={this.props.name}\n {...this.props}\n onSubmit={this.submit}\n payButton={this.payButton}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n )\n )}\n </CoreProvider>\n );\n }\n}\n\nexport default IssuerListContainer;\n"],"names":["IssuerListContainer","UIElement","static","showImage","issuers","highlightedIssuers","loadingContext","FALLBACK_CONTEXT","showPaymentMethodItemImages","showPayButton","constructor","checkout","props","super","getImage","this","resources","getIssuerIcon","getIssuerImageUrl","map","item","icon","id","formatProps","details","length","find","d","key","items","formatData","paymentMethod","type","issuer","state","data","isValid","brands","brand","name","render","h","CoreProvider","i18n","SRPanelProvider","srPanel","modules","IssuerList","ref","componentRef","highlightedIds","onChange","setState","onSubmit","submit","payButton","contextualText","get","onSubmitAnalytics","submitAnalytics","RedirectButton"],"mappings":"ydAWA,MAAMA,UAA4BC,EAC9BC,oBAAgC,CAC5BC,WAAW,EACXC,QAAS,GACTC,mBAAoB,GACpBC,eAAgBC,EAChBC,6BAA6B,EAC7BC,eAAe,GAGnBC,WAAAA,CAAYC,EAAiBC,GACzBC,MAAMF,EAAUC,GAEhB,MAAME,EAAWF,GAASG,KAAKC,UAAUF,SAASF,GAElD,GAAIG,KAAKH,MAAMT,UAAW,CACtB,MAAMc,EAAgBC,EAAkB,CAAEZ,eAAgBS,KAAKH,MAAMN,gBAAkBS,KAAKL,iBAAqBI,GAEjHC,KAAKH,MAAMR,QAAUW,KAAKH,MAAMR,QAAQe,KAAIC,IAAS,IAC9CA,EACHC,KAAMJ,EAAcG,EAAKE,OAEjC,CACJ,CAEAC,WAAAA,CAAYX,GACR,MAAMR,EAAWQ,EAAMY,SAAWZ,EAAMY,QAAQC,SAAWb,EAAMY,QAAQE,MAAKC,GAAe,WAAVA,EAAEC,OAAqB,CAAC,GAAGC,OAAUjB,EAAMR,SAAW,GACzI,MAAO,IAAKQ,EAAOR,UACvB,CAKA0B,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMjB,KAAKiB,KACXC,OAAQlB,KAAKmB,OAAOC,MAAMF,QAGtC,CAKA,WAAIG,GACA,OAAkC,IAA9BrB,KAAKH,MAAMR,QAAQqB,UAGdV,KAAKmB,OAAOE,OACzB,CAOA,UAAIC,GACA,OAAItB,KAAKH,MAAMJ,4BACJO,KAAKH,MAAMR,QAAQe,KAAImB,IAEnB,CAAEjB,KADSiB,EAAMjB,KACEkB,KAAMD,EAAMhB,OAIvC,EACX,CAEAkB,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAM5B,KAAKH,MAAM+B,KAAMrC,eAAgBS,KAAKH,MAAMN,eAAgBU,UAAWD,KAAKC,WAC3FD,KAAKH,MAAMR,QAAQqB,OAAS,EACzBgB,EAACG,EAAAA,CAAgBC,QAAS9B,KAAKH,MAAMkC,QAAQD,SACzCJ,EAACM,EAAAA,CACGC,IAAKA,IACDjC,KAAKkC,aAAeD,CAAAA,EAExBnB,MAAOd,KAAKH,MAAMR,QAClB8C,eAAgBnC,KAAKH,MAAMP,sBACvBU,KAAKH,SACLG,KAAKmB,MACT/B,UAAWY,KAAKH,MAAMT,UACtB6B,KAAMjB,KAAKL,YAAmB,KAC9ByC,SAAUpC,KAAKqC,SACfC,SAAUtC,KAAKuC,OACfC,UAAWxC,KAAKwC,UAChBC,eAAgBzC,KAAKH,MAAM+B,KAAKc,IAAI,yCACpCC,kBAAmB3C,KAAK4C,mBAIhC5C,KAAKH,MAAMH,eACPgC,EAACmB,EAAAA,CACGrB,KAAMxB,KAAKH,MAAM2B,QACbxB,KAAKH,MACTyC,SAAUtC,KAAKuC,OACfC,UAAWxC,KAAKwC,UAChBP,IAAKA,IACDjC,KAAKkC,aAAeD,CAAAA,IAOhD"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as t}from"../../../external/preact/dist/preact.js";import{useRef as o,useMemo as s,useState as r,useCallback as a,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import i from"../FormFields/Fieldset/Fieldset.js";import l from"./components/ReadOnlyAddress.js";import{getAddressValidationRules as d}from"./validate.js";import{addressFormatters as c,countrySpecificFormatters as u}from"./validate.formats.js";import m from"./components/FieldContainer.js";import p from"../../../utils/useForm/useForm.js";import f from"./Specifications.js";import{FALLBACK_VALUE as y,ADDRESS_SCHEMA as h}from"./constants.js";import{getMaxLengthByFieldAndCountry as F}from"../../../utils/validator-utils.js";import C from"../../../core/Context/useCoreContext.js";import g from"./components/AddressSearch.js";function A(A){const{i18n:b}=C(),{label:v="",requiredFields:j,visibility:x,iOSFocusedField:S=null,showContextualElement:k}=A,M=o({});Object.keys(M.current).length||A.setComponentRef?.(M.current);const O=s((()=>new f(A.specifications)),[A.specifications]),w=O.getAddressSchemaForCountryFlat(A.countryCode).filter((e=>j.includes(e))),[B,D]=r(!1),[E,N]=r(!1),[P,L]=r(""),R=!!A.onAddressLookup,V=!A.onAddressLookup||(B||E),{data:q,errors:H,valid:T,isValid:_,handleChangeFor:I,triggerValidation:$,setData:z}=p({schema:w,defaultData:A.data,rules:{...d(O),...A.validationRules},formatters:c}),G=a((e=>{h.forEach((t=>{const o=e[t];null!=o&&z(t,String(o))})),$(),D(!0)}),[D,$,z]),J=a((()=>{N(!0)}),[]);M.current.showValidation=()=>{$(),L(!R||V||_?"":b.get("address.errors.incomplete"))};const K=w.filter((e=>!S||e===S));if(n((()=>{const e=O.countryHasDataset(q.country)?"":y,t={...q,stateOrProvince:e};j.forEach((e=>{I(e,"input")(t[e]??"")})),t.postalCode&&I("postalCode","blur")(q.postalCode)}),[q.country]),n((()=>{const e=j.includes("stateOrProvince"),t=q.country&&O.countryHasDataset(q.country),o=e&&t,s=q.stateOrProvince||(o?"":y);I("stateOrProvince","input")(s)}),[]),n((()=>{const e=O.getOptionalFieldsForCountry(q.country),t=h.reduce(((t,o)=>{const s=e.includes(o),r=j.includes(o),a=q[o],n=A.data[o],i=s&&!a||!r?r||a||!n?y:n:a;return i?.length&&(t[o]=i),t}),{});A.onChange({data:t,valid:T,errors:H,isValid:_})}),[q,T,H,_]),"hidden"===x)return null;if("readOnly"===x)return e(l,{data:q,label:v});const Q=(t,{classNameModifiers:o=[]})=>j.includes(t)?e(m,{key:t,allowedCountries:A.allowedCountries,classNameModifiers:[...o,t],data:q,errors:H,valid:T,fieldName:t,onInput:I(t,"input"),onBlur:I(t,"blur"),onDropdownChange:I(t,"blur"),specifications:O,maxLength:F(u,t,q.country,!0),trimOnBlur:!0,disabled:!K.includes(t),onFieldFocusAnalytics:A.onFieldFocusAnalytics,onFieldBlurAnalytics:A.onFieldBlurAnalytics}):null,U=O.getAddressSchemaForCountry(q.country);return e(t,null,e(i,{classNameModifiers:[v||"address"],label:v},R&&e(g,{onAddressLookup:A.onAddressLookup,onAddressSelected:A.onAddressSelected,onSelect:G,onManualAddress:J,externalErrorMessage:P,hideManualButton:V,showContextualElement:k,contextualText:b.get("address.search.contextualText"),addressSearchDebounceMs:A.addressSearchDebounceMs}),V&&e(t,null,U.map((t=>t instanceof Array?e("div",{className:"adyen-checkout__field-group"},t.map((([e,t])=>Q(e,{classNameModifiers:[`col-${t}`]})))):Q(t,{}))))),A.showPayButton&&A.payButton({label:b.get("continue")}))}A.defaultProps={countryCode:null,validationRules:null,data:{},onChange:()=>{},visibility:"editable",requiredFields:h,specifications:{}};export{A as default};
1
+ import{createElement as e,Fragment as t}from"../../../external/preact/dist/preact.js";import{useRef as s,useMemo as o,useState as r,useCallback as a,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import i from"../FormFields/Fieldset/Fieldset.js";import l from"./components/ReadOnlyAddress.js";import{getAddressValidationRules as d}from"./validate.js";import{addressFormatters as c,countrySpecificFormatters as u}from"./validate.formats.js";import m from"./components/FieldContainer.js";import p from"../../../utils/useForm/useForm.js";import f from"./Specifications.js";import{FALLBACK_VALUE as y,ADDRESS_SCHEMA as F}from"./constants.js";import{getMaxLengthByFieldAndCountry as h}from"../../../utils/validator-utils.js";import C from"../../../core/Context/useCoreContext.js";import g from"./components/AddressSearch.js";function A(A){const{i18n:v}=C(),{label:b="",requiredFields:j,visibility:x,iOSFocusedField:S=null,showContextualElement:k}=A,M=s({});Object.keys(M.current).length||A.setComponentRef?.(M.current);const O=o((()=>new f(A.specifications)),[A.specifications]),w=O.getAddressSchemaForCountryFlat(A.countryCode).filter((e=>j.includes(e))),[D,E]=r(!1),[B,N]=r(!1),[L,P]=r(""),R=!!A.onAddressLookup,V=!A.onAddressLookup||(D||B),{data:q,errors:H,valid:T,isValid:_,handleChangeFor:I,triggerValidation:$,setData:z}=p({schema:w,defaultData:A.data,rules:{...d(O),...A.validationRules},formatters:c}),G=a((e=>{F.forEach((t=>{const s=e[t];null!=s&&z(t,String(s))})),$(),E(!0)}),[E,$,z]),J=a((()=>{N(!0)}),[]);M.current.showValidation=()=>{$(),P(!R||V||_?"":v.get("address.errors.incomplete"))};const K=w.filter((e=>!S||e===S));if(n((()=>{const e=O.countryHasDataset(q.country)?"":y,t={...q,stateOrProvince:e};j.forEach((e=>{I(e,"input")(t[e]??"")})),t.postalCode&&I("postalCode","blur")(q.postalCode)}),[q.country]),n((()=>{const e=j.includes("stateOrProvince"),t=q.country&&O.countryHasDataset(q.country),s=e&&t,o=q.stateOrProvince||(s?"":y);I("stateOrProvince","input")(o)}),[]),n((()=>{const e=O.getOptionalFieldsForCountry(q.country),t=F.reduce(((t,s)=>{const o=e.includes(s),r=j.includes(s),a=q[s],n=A.data[s],i=o&&!a||!r?r||a||!n?y:n:a;return i?.length&&(t[s]=i),t}),{});A.onChange({data:t,valid:T,errors:H,isValid:_})}),[q,T,H,_]),"hidden"===x)return null;if("readOnly"===x)return e(l,{data:q,label:b});const Q=(t,{classNameModifiers:s=[]})=>j.includes(t)?e(m,{key:t,allowedCountries:A.allowedCountries,classNameModifiers:[...s,t],data:q,errors:H,valid:T,fieldName:t,onInput:I(t,"input"),onBlur:I(t,"blur"),onDropdownChange:I(t,"blur"),specifications:O,maxLength:h(u,t,q.country,!0),trimOnBlur:!0,disabled:!K.includes(t),onFieldFocusAnalytics:A.onFieldFocusAnalytics,onFieldBlurAnalytics:A.onFieldBlurAnalytics}):null,U=O.getAddressSchemaForCountry(q.country);return e(t,null,e(i,{classNameModifiers:[b||"address"],label:b},R&&e(g,{onAddressLookup:A.onAddressLookup,onAddressSelected:A.onAddressSelected,onSelect:G,onManualAddress:J,externalErrorMessage:L,hideManualButton:V,showContextualElement:k,contextualText:v.get("address.search.contextualText"),addressSearchDebounceMs:A.addressSearchDebounceMs}),V&&e(t,null,U.map((t=>t instanceof Array?e("div",{className:"adyen-checkout__field-group"},t.map((([e,t])=>Q(e,{classNameModifiers:[`col-${t}`]})))):Q(t,{}))))))}A.defaultProps={countryCode:null,validationRules:null,data:{},onChange:()=>{},visibility:"editable",requiredFields:F,specifications:{},onFieldFocusAnalytics:()=>{},onFieldBlurAnalytics:()=>{}};export{A as default};
2
2
  //# sourceMappingURL=Address.js.map