@paykka/card-checkout-ui 0.13.17 → 0.15.1

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 (381) hide show
  1. package/README.md +1 -1
  2. package/dist/card-checkout-ui.js +53 -25
  3. package/dist/card-checkout-ui.umd.cjs +53 -25
  4. package/dist/es/api/http.js +1 -1
  5. package/dist/es/api/index.js +1 -1
  6. package/dist/es/api/modules/checkout/index.js +1 -3
  7. package/dist/es/api/modules/checkout/map.js +12 -4
  8. package/dist/es/api/modules/encrypted-card/index.js +3 -2
  9. package/dist/es/api/modules/get-browser-params.js +4 -8
  10. package/dist/es/api/modules/index.js +1 -1
  11. package/dist/es/api/modules/map.js +4 -1
  12. package/dist/es/api/modules/threeDS/index.js +16 -2
  13. package/dist/es/components/AccordionItem/AccordionItem.js +1 -3
  14. package/dist/es/components/AccountNameField/index.js +1 -1
  15. package/dist/es/components/AddressField/index.js +14 -4
  16. package/dist/es/components/ApplePay/index.js +74 -58
  17. package/dist/es/components/CPFField/index.js +3 -2
  18. package/dist/es/components/Card/index.js +192 -157
  19. package/dist/es/components/CardBrands/index.js +1 -1
  20. package/dist/es/components/CardExpireDateField/index.js +3 -2
  21. package/dist/es/components/CardHolderNameField/index.js +1 -1
  22. package/dist/es/components/CardIBANField/index.js +1 -1
  23. package/dist/es/components/CardNo/index.js +3 -3
  24. package/dist/es/components/CardNumberField/index.js +3 -2
  25. package/dist/es/components/CardSecurityCodeField/index.js +3 -2
  26. package/dist/es/components/CardSelector/index.js +5 -4
  27. package/dist/es/components/CombinedCardInfo/index.js +1 -1
  28. package/dist/es/components/DropIn/index.js +141 -144
  29. package/dist/es/components/EmailField/EmailField.js +1 -1
  30. package/dist/es/components/EncryptedCard/index.js +5 -5
  31. package/dist/es/components/GooglePay/index.js +126 -114
  32. package/dist/es/components/GuideCard/index.js +2 -2
  33. package/dist/es/components/PaymentButton/index.js +23 -8
  34. package/dist/es/components/RecurringTip/index.js +1 -1
  35. package/dist/es/components/SecuredFieldsProvider/index.js +31 -9
  36. package/dist/es/components/SecuredIframe/index.js +43 -27
  37. package/dist/es/components/Sepa/index.js +15 -7
  38. package/dist/es/components/SubmitButton/index.js +3 -3
  39. package/dist/es/components/ThreeDS/index.js +59 -30
  40. package/dist/es/components/Tip/index.js +1 -1
  41. package/dist/es/components/business/BlikCodeField/BlikCodeField.js +1 -1
  42. package/dist/es/components/business/BlikCodeField/index.js +1 -1
  43. package/dist/es/components/business/BlikConfirmModal/BlikConfirmModal.js +3 -3
  44. package/dist/es/components/business/BlikConfirmModal/index.js +2 -2
  45. package/dist/es/components/business/NameField/NameField.js +1 -1
  46. package/dist/es/components/business/NameField/index.js +1 -1
  47. package/dist/es/components/business/PhoneField/PhoneField.js +2 -1
  48. package/dist/es/components/business/PhoneField/index.js +1 -1
  49. package/dist/es/components/business/QRCodeModal/QRCodeModal.js +2 -2
  50. package/dist/es/components/business/QRCodeModal/index.js +1 -1
  51. package/dist/es/components/business/Tooltip/Tooltip.js +1 -1
  52. package/dist/es/components/business/Tooltip/index.js +1 -1
  53. package/dist/es/components/business/index.js +2 -2
  54. package/dist/es/components/index.js +11 -11
  55. package/dist/es/components/internal/Accordion/index.js +1 -1
  56. package/dist/es/components/internal/Button/{Button.js → Button2.js} +2 -2
  57. package/dist/es/components/internal/Button/index.js +2 -2
  58. package/dist/es/components/internal/CheckBox/CheckBox.js +3 -3
  59. package/dist/es/components/internal/CheckBox/index.js +1 -1
  60. package/dist/es/components/internal/Form/type.js +1 -1
  61. package/dist/es/components/internal/Info/Info.js +1 -1
  62. package/dist/es/components/internal/Info/index.js +1 -1
  63. package/dist/es/components/internal/Input/Input.js +1 -1
  64. package/dist/es/components/internal/Input/type.js +1 -1
  65. package/dist/es/components/internal/Loading/Loading2.js +20 -0
  66. package/dist/es/{api/modules/vietqr → components/internal/Loading}/index.js +3 -2
  67. package/dist/es/components/internal/Loading/loading.js +1 -0
  68. package/dist/es/components/internal/LoadingCheck/LoadingCheck.js +1 -1
  69. package/dist/es/components/internal/LoadingCheck/index.js +1 -1
  70. package/dist/es/components/internal/Modal/Modal.js +1 -1
  71. package/dist/es/components/internal/QRCode/QRCode.js +1 -1
  72. package/dist/es/components/internal/QRCode/index.js +1 -1
  73. package/dist/es/components/internal/Select/Select.js +5 -2
  74. package/dist/es/components/internal/Select/SelectMenu.js +1 -1
  75. package/dist/es/components/internal/Select/SelectMenuItem.js +1 -1
  76. package/dist/es/components/internal/icons/IconAlipayPlus.js +116 -0
  77. package/dist/es/components/internal/icons/IconArrowDown.js +4 -4
  78. package/dist/es/components/internal/icons/IconBancontact.js +69 -14
  79. package/dist/es/components/internal/icons/IconBlik.js +541 -21
  80. package/dist/es/components/internal/icons/IconError.js +2 -2
  81. package/dist/es/components/internal/icons/IconIdeal.js +61 -29
  82. package/dist/es/components/internal/icons/IconSkrill.js +14 -7
  83. package/dist/es/components/internal/icons/IconSuccess.js +2 -2
  84. package/dist/es/components/internal/icons/IconTrustly.js +11 -44
  85. package/dist/es/components/internal/icons/IconWechatPayGlobal.js +45 -0
  86. package/dist/es/components/internal/icons/IconWechatPayGlobalComplete.js +107 -0
  87. package/dist/es/components/wallets/AliPay/AliPay.js +186 -0
  88. package/dist/es/components/wallets/AliPay/ali-pay.js +1 -0
  89. package/dist/es/components/wallets/AliPay/index.js +1 -0
  90. package/dist/es/components/wallets/AliPay/type.js +1 -0
  91. package/dist/es/components/wallets/Bancontact/Bancontact.js +18 -18
  92. package/dist/es/components/wallets/Blik/Blik.js +26 -20
  93. package/dist/es/components/wallets/Boost/Boost.js +180 -0
  94. package/dist/es/components/wallets/Boost/boost2.js +1 -0
  95. package/dist/es/components/wallets/Boost/index.js +1 -0
  96. package/dist/es/components/wallets/Boost/type.js +1 -0
  97. package/dist/es/components/wallets/GCash/GCash.js +68 -261
  98. package/dist/es/components/wallets/GrabPay/GrabPay.js +176 -0
  99. package/dist/es/components/wallets/GrabPay/grab-pay.js +1 -0
  100. package/dist/es/components/wallets/GrabPay/index.js +1 -0
  101. package/dist/es/components/wallets/GrabPay/type.js +1 -0
  102. package/dist/es/components/wallets/IDeal/IDeal.js +18 -18
  103. package/dist/es/components/wallets/LinePay/LinePay.js +180 -0
  104. package/dist/es/components/wallets/LinePay/index.js +1 -0
  105. package/dist/es/components/wallets/LinePay/line-pay.js +1 -0
  106. package/dist/es/components/wallets/LinePay/type.js +1 -0
  107. package/dist/es/components/wallets/MayBankQRPay/MayBankQRPay.js +184 -0
  108. package/dist/es/components/wallets/MayBankQRPay/index.js +1 -0
  109. package/dist/es/components/wallets/MayBankQRPay/may-bank-qr-pay.js +1 -0
  110. package/dist/es/components/wallets/MayBankQRPay/type.js +1 -0
  111. package/dist/es/components/wallets/NinePay/NinePay.js +182 -0
  112. package/dist/es/components/wallets/NinePay/index.js +1 -0
  113. package/dist/es/components/wallets/NinePay/nine-pay.js +1 -0
  114. package/dist/es/components/wallets/NinePay/type.js +1 -0
  115. package/dist/es/components/wallets/OVO/OVO.js +14 -15
  116. package/dist/es/components/wallets/OpayWallet/OpayWallet.js +61 -226
  117. package/dist/es/components/wallets/P24/P24.js +18 -18
  118. package/dist/es/components/wallets/PagaWallet/PagaWallet.js +61 -226
  119. package/dist/es/components/wallets/Paymaya/Paymaya.js +61 -229
  120. package/dist/es/components/wallets/PicPay/PicPay.js +83 -243
  121. package/dist/es/components/wallets/Pix/Pix.js +77 -244
  122. package/dist/es/components/wallets/ShopeePay/ShopeePay.js +182 -0
  123. package/dist/es/components/wallets/ShopeePay/index.js +1 -0
  124. package/dist/es/components/wallets/ShopeePay/shopee-pay.js +1 -0
  125. package/dist/es/components/wallets/ShopeePay/type.js +1 -0
  126. package/dist/es/components/wallets/Skrill/Skrill.js +34 -35
  127. package/dist/es/components/wallets/TNGWallet/TNGWallet.js +182 -0
  128. package/dist/es/components/wallets/TNGWallet/index.js +1 -0
  129. package/dist/es/components/wallets/TNGWallet/tng-wallet.js +1 -0
  130. package/dist/es/components/wallets/TNGWallet/type.js +1 -0
  131. package/dist/es/components/wallets/Trustly/Trustly.js +22 -25
  132. package/dist/es/components/wallets/Vietqr/Vietqr.js +69 -258
  133. package/dist/es/components/wallets/WechatPay/WechatPay.js +250 -0
  134. package/dist/es/components/wallets/WechatPay/index.js +1 -0
  135. package/dist/es/components/wallets/WechatPay/type.js +1 -0
  136. package/dist/es/components/wallets/WechatPay/util.js +47 -0
  137. package/dist/es/components/wallets/WechatPay/wechat-pay.js +1 -0
  138. package/dist/es/components/wallets/Zalopay/Zalopay.js +67 -258
  139. package/dist/es/components/wallets/index.js +9 -0
  140. package/dist/es/constant.js +7 -0
  141. package/dist/es/core/checkout.js +50 -49
  142. package/dist/es/core/create-child.js +5 -4
  143. package/dist/es/core/index.js +1 -1
  144. package/dist/es/core/logger.js +1 -1
  145. package/dist/es/core/payment.js +78 -0
  146. package/dist/es/core/preview.js +29 -0
  147. package/dist/es/core/query.js +12 -3
  148. package/dist/es/core/session.js +36 -6
  149. package/dist/es/core/theme.js +1 -1
  150. package/dist/es/hooks/index.js +1 -1
  151. package/dist/es/hooks/useBaseWallet.js +136 -65
  152. package/dist/es/hooks/useI18n.js +3 -3
  153. package/dist/es/hooks/usePayState.js +37 -25
  154. package/dist/es/hooks/useRetry.js +50 -26
  155. package/dist/es/i18n/locales/de-DE.js +7 -0
  156. package/dist/es/i18n/locales/en-GB.js +7 -0
  157. package/dist/es/i18n/locales/es-ES.js +7 -0
  158. package/dist/es/i18n/locales/fr-FR.js +7 -0
  159. package/dist/es/i18n/locales/ja-JP.js +7 -0
  160. package/dist/es/i18n/locales/ko-KR.js +7 -0
  161. package/dist/es/i18n/locales/nl-NL.js +7 -0
  162. package/dist/es/i18n/locales/pt-PT.js +7 -0
  163. package/dist/es/i18n/locales/ru-RU.js +7 -0
  164. package/dist/es/i18n/locales/zh-CN.js +7 -0
  165. package/dist/es/i18n/locales/zh-HK.js +7 -0
  166. package/dist/es/i18n/locales/zh-TW.js +7 -0
  167. package/dist/es/i18n/util.js +10 -10
  168. package/dist/es/index.js +14 -12
  169. package/dist/es/out/base-fraud-detection.js +5 -2
  170. package/dist/es/out/fraud-detection.js +68 -54
  171. package/dist/es/out/paykka-detection.js +5 -7
  172. package/dist/es/out/stripe-radar.js +1 -1
  173. package/dist/es/out/worldpay-ddc-manager.js +9 -13
  174. package/dist/es/out/worldpay-ddc.js +8 -6
  175. package/dist/es/style.css +1 -1
  176. package/dist/es/types/event.js +11 -1
  177. package/dist/es/types/index.js +7 -0
  178. package/dist/es/types/message.js +2 -0
  179. package/dist/es/utils/array.js +19 -5
  180. package/dist/es/utils/business/amount.js +15 -0
  181. package/dist/es/utils/business/index.js +1 -0
  182. package/dist/es/utils/detect.js +8 -0
  183. package/dist/es/utils/index.js +7 -9
  184. package/dist/es/utils/location.js +8 -0
  185. package/dist/es/utils/number.js +19 -0
  186. package/dist/es/utils/payment.js +12 -12
  187. package/dist/es/utils/redirect.js +2 -0
  188. package/dist/es/utils/system-info/is-ua-webview.js +1 -20
  189. package/dist/style.css +1 -1
  190. package/dist/types/api/modules/checkout/type.d.ts +1 -1
  191. package/dist/types/api/modules/index.d.ts +0 -17
  192. package/dist/types/api/modules/threeDS/index.d.ts +19 -4
  193. package/dist/types/components/AddressField/type.d.ts +2 -2
  194. package/dist/types/components/ApplePay/type.d.ts +6 -2
  195. package/dist/types/components/CPFField/type.d.ts +1 -1
  196. package/dist/types/components/Card/type.d.ts +2 -18
  197. package/dist/types/components/CardExpireDateField/type.d.ts +1 -1
  198. package/dist/types/components/CardNo/type.d.ts +3 -2
  199. package/dist/types/components/CardNumberField/type.d.ts +1 -1
  200. package/dist/types/components/CardSecurityCodeField/type.d.ts +1 -1
  201. package/dist/types/components/CardSelector/type.d.ts +4 -4
  202. package/dist/types/components/DropIn/layout.d.ts +33 -0
  203. package/dist/types/components/DropIn/type.d.ts +6 -6
  204. package/dist/types/components/GooglePay/createGooglePay.d.ts +1 -1
  205. package/dist/types/components/GooglePay/type.d.ts +12 -2
  206. package/dist/types/components/PaymentButton/type.d.ts +2 -0
  207. package/dist/types/components/SecuredFieldsProvider/type.d.ts +2 -0
  208. package/dist/types/components/Sepa/type.d.ts +3 -4
  209. package/dist/types/components/ThreeDS/components/ThreeDSIframe/ThreeDSIframe.d.ts +0 -6
  210. package/dist/types/components/business/QRCodeModal/type.d.ts +12 -3
  211. package/dist/types/components/index.d.ts +0 -9
  212. package/dist/types/components/internal/CheckBox/type.d.ts +2 -1
  213. package/dist/types/components/internal/Loading/Loading.d.ts +2 -1
  214. package/dist/types/components/internal/Loading/type.d.ts +8 -0
  215. package/dist/types/components/internal/ResultMessage/ResultMessage.d.ts +3 -0
  216. package/dist/types/components/internal/ResultMessage/index.d.ts +2 -0
  217. package/dist/types/components/internal/ResultMessage/type.d.ts +13 -0
  218. package/dist/types/components/internal/Select/type.d.ts +1 -1
  219. package/dist/types/components/internal/icons/IconAlipayPlus.d.ts +2 -0
  220. package/dist/types/components/internal/icons/IconArrowDown.d.ts +1 -1
  221. package/dist/types/components/internal/icons/IconError.d.ts +1 -1
  222. package/dist/types/components/internal/icons/IconSuccess.d.ts +1 -1
  223. package/dist/types/components/internal/icons/IconWechatPayGlobal.d.ts +2 -0
  224. package/dist/types/components/internal/icons/IconWechatPayGlobalComplete.d.ts +2 -0
  225. package/dist/types/components/internal/icons/index.d.ts +3 -0
  226. package/dist/types/components/{AliPay → wallets/AliPay}/AliPay.d.ts +9 -4
  227. package/dist/types/components/wallets/AliPay/type.d.ts +7 -0
  228. package/dist/types/components/wallets/Bancontact/type.d.ts +2 -24
  229. package/dist/types/components/wallets/Blik/type.d.ts +2 -24
  230. package/dist/types/components/{Boost → wallets/Boost}/Boost.d.ts +9 -4
  231. package/dist/types/components/wallets/Boost/type.d.ts +6 -0
  232. package/dist/types/components/wallets/GCash/GCash.d.ts +5 -0
  233. package/dist/types/components/wallets/GCash/type.d.ts +2 -24
  234. package/dist/types/components/{GrabPay → wallets/GrabPay}/GrabPay.d.ts +4 -4
  235. package/dist/types/components/wallets/GrabPay/type.d.ts +7 -0
  236. package/dist/types/components/wallets/IDeal/type.d.ts +2 -24
  237. package/dist/types/components/{LinePay → wallets/LinePay}/LinePay.d.ts +9 -4
  238. package/dist/types/components/wallets/LinePay/type.d.ts +6 -0
  239. package/dist/types/components/wallets/MayBankQRPay/MayBankQRPay.d.ts +15 -0
  240. package/dist/types/components/wallets/MayBankQRPay/type.d.ts +6 -0
  241. package/dist/types/components/wallets/NinePay/NinePay.d.ts +15 -0
  242. package/dist/types/components/wallets/NinePay/type.d.ts +6 -0
  243. package/dist/types/components/wallets/OVO/type.d.ts +2 -24
  244. package/dist/types/components/wallets/OpayWallet/OpayWallet.d.ts +5 -0
  245. package/dist/types/components/wallets/OpayWallet/type.d.ts +2 -24
  246. package/dist/types/components/wallets/P24/type.d.ts +2 -24
  247. package/dist/types/components/wallets/PagaWallet/PagaWallet.d.ts +5 -0
  248. package/dist/types/components/wallets/PagaWallet/type.d.ts +2 -24
  249. package/dist/types/components/wallets/Paymaya/Paymaya.d.ts +5 -0
  250. package/dist/types/components/wallets/Paymaya/type.d.ts +2 -24
  251. package/dist/types/components/wallets/PicPay/type.d.ts +2 -24
  252. package/dist/types/components/wallets/Pix/type.d.ts +2 -24
  253. package/dist/types/components/{ShopeePay → wallets/ShopeePay}/ShopeePay.d.ts +9 -4
  254. package/dist/types/components/wallets/ShopeePay/type.d.ts +6 -0
  255. package/dist/types/components/wallets/Skrill/type.d.ts +2 -24
  256. package/dist/types/components/{TNGWallet → wallets/TNGWallet}/TNGWallet.d.ts +9 -4
  257. package/dist/types/components/wallets/TNGWallet/type.d.ts +6 -0
  258. package/dist/types/components/wallets/Trustly/type.d.ts +2 -16
  259. package/dist/types/components/wallets/Vietqr/Vietqr.d.ts +5 -0
  260. package/dist/types/components/wallets/Vietqr/type.d.ts +2 -24
  261. package/dist/types/components/wallets/WechatPay/WechatPay.d.ts +16 -0
  262. package/dist/types/components/wallets/WechatPay/type.d.ts +12 -0
  263. package/dist/types/components/wallets/WechatPay/util.d.ts +13 -0
  264. package/dist/types/components/wallets/Zalopay/Zalopay.d.ts +5 -0
  265. package/dist/types/components/wallets/Zalopay/type.d.ts +2 -24
  266. package/dist/types/components/wallets/index.d.ts +9 -0
  267. package/dist/types/components/wallets/type.d.ts +0 -14
  268. package/dist/types/constant.d.ts +8 -0
  269. package/dist/types/core/checkout.d.ts +2 -9
  270. package/dist/types/core/index.d.ts +1 -0
  271. package/dist/types/core/payment.d.ts +21 -0
  272. package/dist/types/core/preview.d.ts +1 -0
  273. package/dist/types/core/session.d.ts +2 -2
  274. package/dist/types/hooks/index.d.ts +0 -1
  275. package/dist/types/hooks/useBaseWallet.d.ts +27 -5
  276. package/dist/types/hooks/useI18n.d.ts +1 -1
  277. package/dist/types/hooks/usePayState.d.ts +3 -4
  278. package/dist/types/hooks/useRetry.d.ts +22 -3
  279. package/dist/types/i18n/I18n.d.ts +1 -0
  280. package/dist/types/i18n/locales/de-DE.d.ts +7 -0
  281. package/dist/types/i18n/locales/en-GB.d.ts +7 -0
  282. package/dist/types/i18n/locales/es-ES.d.ts +7 -0
  283. package/dist/types/i18n/locales/fr-FR.d.ts +7 -0
  284. package/dist/types/i18n/locales/ja-JP.d.ts +7 -0
  285. package/dist/types/i18n/locales/ko-KR.d.ts +7 -0
  286. package/dist/types/i18n/locales/nl-NL.d.ts +7 -0
  287. package/dist/types/i18n/locales/pt-PT.d.ts +7 -0
  288. package/dist/types/i18n/locales/ru-RU.d.ts +7 -0
  289. package/dist/types/i18n/locales/zh-CN.d.ts +7 -0
  290. package/dist/types/i18n/locales/zh-HK.d.ts +7 -0
  291. package/dist/types/i18n/locales/zh-TW.d.ts +7 -0
  292. package/dist/types/i18n/util.d.ts +8 -1
  293. package/dist/types/index.d.ts +2 -1
  294. package/dist/types/out/base-fraud-detection.d.ts +1 -0
  295. package/dist/types/out/config.d.ts +1 -1
  296. package/dist/types/out/fraud-detection.d.ts +3 -12
  297. package/dist/types/out/types.d.ts +7 -6
  298. package/dist/types/out/worldpay-ddc-manager.d.ts +7 -7
  299. package/dist/types/types/event.d.ts +30 -3
  300. package/dist/types/types/index.d.ts +14 -0
  301. package/dist/types/types/message.d.ts +27 -4
  302. package/dist/types/types/payment.d.ts +30 -3
  303. package/dist/types/utils/app-payment.d.ts +1 -0
  304. package/dist/types/utils/array.d.ts +17 -0
  305. package/dist/types/utils/business/amount.d.ts +7 -0
  306. package/dist/types/utils/business/index.d.ts +1 -0
  307. package/dist/types/utils/detect.d.ts +3 -0
  308. package/dist/types/utils/iframe.d.ts +1 -1
  309. package/dist/types/utils/index.d.ts +1 -6
  310. package/dist/types/utils/number.d.ts +4 -0
  311. package/dist/types/utils/payment.d.ts +10 -10
  312. package/dist/types/utils/redirect.d.ts +10 -0
  313. package/dist/types/utils/system-info/get-browser-info.d.ts +4 -0
  314. package/package.json +11 -5
  315. package/dist/es/api/modules/ali-pay/index.js +0 -16
  316. package/dist/es/api/modules/boost/index.js +0 -16
  317. package/dist/es/api/modules/gcash/index.js +0 -16
  318. package/dist/es/api/modules/grab-pay/index.js +0 -16
  319. package/dist/es/api/modules/line-pay/index.js +0 -16
  320. package/dist/es/api/modules/may-bank-qr-pay/index.js +0 -16
  321. package/dist/es/api/modules/nine-pay/index.js +0 -16
  322. package/dist/es/api/modules/opay-wallet/index.js +0 -16
  323. package/dist/es/api/modules/paga-wallet/index.js +0 -16
  324. package/dist/es/api/modules/paymaya/index.js +0 -16
  325. package/dist/es/api/modules/pic-pay/index.js +0 -16
  326. package/dist/es/api/modules/pix/index.js +0 -16
  327. package/dist/es/api/modules/shopee-pay/index.js +0 -16
  328. package/dist/es/api/modules/tng-wallet/index.js +0 -16
  329. package/dist/es/api/modules/wechat-pay/index.js +0 -16
  330. package/dist/es/api/modules/zalopay/index.js +0 -16
  331. package/dist/es/components/AliPay/index.js +0 -330
  332. package/dist/es/components/Boost/index.js +0 -349
  333. package/dist/es/components/GrabPay/index.js +0 -349
  334. package/dist/es/components/LinePay/index.js +0 -349
  335. package/dist/es/components/MayBankQRPay/index.js +0 -355
  336. package/dist/es/components/NinePay/index.js +0 -349
  337. package/dist/es/components/ShopeePay/index.js +0 -349
  338. package/dist/es/components/TNGWallet/index.js +0 -349
  339. package/dist/es/components/WechatPay/index.js +0 -339
  340. package/dist/es/hooks/usePayment.js +0 -14
  341. package/dist/types/api/modules/ali-pay/index.d.ts +0 -4
  342. package/dist/types/api/modules/boost/index.d.ts +0 -4
  343. package/dist/types/api/modules/gcash/index.d.ts +0 -4
  344. package/dist/types/api/modules/grab-pay/index.d.ts +0 -4
  345. package/dist/types/api/modules/line-pay/index.d.ts +0 -4
  346. package/dist/types/api/modules/may-bank-qr-pay/index.d.ts +0 -4
  347. package/dist/types/api/modules/nine-pay/index.d.ts +0 -4
  348. package/dist/types/api/modules/opay-wallet/index.d.ts +0 -4
  349. package/dist/types/api/modules/paga-wallet/index.d.ts +0 -4
  350. package/dist/types/api/modules/paymaya/index.d.ts +0 -4
  351. package/dist/types/api/modules/pic-pay/index.d.ts +0 -4
  352. package/dist/types/api/modules/pix/index.d.ts +0 -4
  353. package/dist/types/api/modules/shopee-pay/index.d.ts +0 -4
  354. package/dist/types/api/modules/tng-wallet/index.d.ts +0 -4
  355. package/dist/types/api/modules/vietqr/index.d.ts +0 -4
  356. package/dist/types/api/modules/wechat-pay/index.d.ts +0 -4
  357. package/dist/types/api/modules/zalopay/index.d.ts +0 -4
  358. package/dist/types/components/AliPay/type.d.ts +0 -26
  359. package/dist/types/components/Boost/type.d.ts +0 -28
  360. package/dist/types/components/GrabPay/type.d.ts +0 -28
  361. package/dist/types/components/LinePay/type.d.ts +0 -28
  362. package/dist/types/components/MayBankQRPay/MayBankQRPay.d.ts +0 -10
  363. package/dist/types/components/MayBankQRPay/type.d.ts +0 -28
  364. package/dist/types/components/NinePay/NinePay.d.ts +0 -10
  365. package/dist/types/components/NinePay/type.d.ts +0 -28
  366. package/dist/types/components/ShopeePay/type.d.ts +0 -28
  367. package/dist/types/components/TNGWallet/type.d.ts +0 -28
  368. package/dist/types/components/WechatPay/WechatPay.d.ts +0 -10
  369. package/dist/types/components/WechatPay/type.d.ts +0 -28
  370. package/dist/types/hooks/usePayment.d.ts +0 -8
  371. package/dist/types/utils/behavior-tracker.d.ts +0 -36
  372. /package/dist/es/components/internal/Button/{button2.js → button.js} +0 -0
  373. /package/dist/types/components/{AliPay → wallets/AliPay}/index.d.ts +0 -0
  374. /package/dist/types/components/{Boost → wallets/Boost}/index.d.ts +0 -0
  375. /package/dist/types/components/{GrabPay → wallets/GrabPay}/index.d.ts +0 -0
  376. /package/dist/types/components/{LinePay → wallets/LinePay}/index.d.ts +0 -0
  377. /package/dist/types/components/{MayBankQRPay → wallets/MayBankQRPay}/index.d.ts +0 -0
  378. /package/dist/types/components/{NinePay → wallets/NinePay}/index.d.ts +0 -0
  379. /package/dist/types/components/{ShopeePay → wallets/ShopeePay}/index.d.ts +0 -0
  380. /package/dist/types/components/{TNGWallet → wallets/TNGWallet}/index.d.ts +0 -0
  381. /package/dist/types/components/{WechatPay → wallets/WechatPay}/index.d.ts +0 -0
@@ -1,349 +0,0 @@
1
- import { w, F, A, h, y, q, u, b } from "../../core.js";
2
- import { useBEM } from "../../hooks/useBEM.js";
3
- import { CoreContext } from "../../core/context.js";
4
- import "../../utils/card-brand/brands.js";
5
- import "../../utils/system-info/get-browser-info.js";
6
- import { normalizedClass, formatAmount } from "../../utils/format.js";
7
- import { redirectToPayment } from "../../utils/redirect.js";
8
- import { formatPaymentResult } from "../../utils/payment.js";
9
- import { isTimeoutError } from "../../api/http.js";
10
- import { getBrowserParams } from "../../api/modules/get-browser-params.js";
11
- import { PaymentCategory, COMMON_CLASS_NAME, PaymentMethod, SessionMode } from "../../constant.js";
12
- import { getBoostPayInfo, boostPay } from "../../api/modules/boost/index.js";
13
- import { PayKKaError } from "../../core/error.js";
14
- import "../../out/worldpay-jsc-origin.js";
15
- import { usePayState } from "../../hooks/usePayState.js";
16
- import { useRetry } from "../../hooks/useRetry.js";
17
- import { createEmailCore, EmailField } from "../EmailField/EmailField.js";
18
- import { SubmitButton } from "../SubmitButton/index.js";
19
- import "../internal/Form/type.js";
20
- import "../internal/Form/context.js";
21
- import "../internal/Form/FormItem.js";
22
- import { Form } from "../internal/Form/Form.js";
23
- import { AddressField } from "../AddressField/index.js";
24
- import { Info } from "../internal/Info/Info.js";
25
- import { GuideCard } from "../GuideCard/index.js";
26
- const { bem } = useBEM("boost");
27
- const fieldClassNames = bem("field");
28
- const Boost = w((props, ref) => {
29
- const {
30
- session,
31
- showEmail = false,
32
- showAddress = false,
33
- redirectMode = "auto",
34
- core,
35
- autoQuery = true,
36
- showGuideCard = true,
37
- hidePaymentButton = false
38
- } = props;
39
- F(ref, () => ({
40
- stopRetry: () => {
41
- setSubmitButtonStatus("unSubmit");
42
- stopReFetchPayInfo();
43
- },
44
- startRetry: (timeout) => {
45
- setSubmitButtonStatus("loading");
46
- startReFetchPayInfo({ timeout });
47
- },
48
- updateAddress: () => {
49
- var _a;
50
- if (!(fieldStatus == null ? void 0 : fieldStatus.address.show))
51
- return;
52
- const newForm = Object.assign(form, { address: addressCore.getAddressState() });
53
- setForm(newForm);
54
- (_a = addressFieldRef.current) == null ? void 0 : _a.update(addressCore.getAddressState());
55
- validateForm();
56
- },
57
- updateEmail: () => {
58
- var _a;
59
- if (!(fieldStatus == null ? void 0 : fieldStatus.email.show))
60
- return;
61
- const newForm = Object.assign(form, { email: emailState.email });
62
- setForm(newForm);
63
- (_a = emailFieldRef.current) == null ? void 0 : _a.update(emailState.email);
64
- validateForm();
65
- },
66
- payment: () => {
67
- hidePaymentButton && onSubmit();
68
- }
69
- }));
70
- const addressCore = core.getAddressCore();
71
- const emailState = createEmailCore();
72
- const addressFieldRef = A(null);
73
- const emailFieldRef = A(null);
74
- const [isCheckoutEnabled, setIsCheckoutEnabled] = h(false);
75
- const { setErrorMsg, fraudDetection, i18n, errorMsg, sessionReady } = usePayState(session, props.core);
76
- const [submitButtonStatus, setSubmitButtonStatus] = h("unSubmit");
77
- const formRef = A(null);
78
- const [form, setForm] = h({
79
- email: "",
80
- address: {
81
- country: void 0,
82
- province: void 0,
83
- city: void 0,
84
- area: void 0,
85
- postCode: void 0,
86
- address1: void 0,
87
- address2: void 0
88
- }
89
- });
90
- const [validated, setValidated] = h(false);
91
- const [fieldStatus, setFieldStatus] = h();
92
- const getPaymentMethodContext = () => ({
93
- paymentMethod: PaymentMethod.BOOST
94
- });
95
- const initFieldStatus = () => {
96
- const { field, sessionMode } = session.checkout;
97
- const { email, address } = field;
98
- if (sessionMode === SessionMode.COMPONENT) {
99
- if (email.disabled) {
100
- email.show = showEmail;
101
- }
102
- if (showAddress && !(address == null ? void 0 : address.show)) {
103
- address.show = true;
104
- }
105
- }
106
- setFieldStatus({ ...field });
107
- };
108
- const processOnSuccess = (res) => {
109
- var _a, _b;
110
- setSubmitButtonStatus("success");
111
- (_b = props.onSuccess) == null ? void 0 : _b.call(props, formatPaymentResult({
112
- ...res,
113
- returnUrl: (_a = session == null ? void 0 : session.checkout) == null ? void 0 : _a.returnUrl
114
- }), getPaymentMethodContext());
115
- };
116
- y(() => {
117
- if (!sessionReady) {
118
- return;
119
- }
120
- const { bill = {}, supportMethods = [], country } = (session == null ? void 0 : session.checkout) || {};
121
- if (!supportMethods.includes(PaymentMethod.BOOST)) {
122
- return;
123
- }
124
- initFieldStatus();
125
- setIsCheckoutEnabled(true);
126
- country && addressCore.setCountry(country);
127
- form.email = bill.email ?? "";
128
- form.address.country = country;
129
- if (autoQuery && core.processingPaymentMethod === PaymentMethod.BOOST) {
130
- setSubmitButtonStatus("loading");
131
- startReFetchPayInfo();
132
- }
133
- }, [sessionReady]);
134
- const processOnError = (error) => {
135
- var _a;
136
- (_a = props.onError) == null ? void 0 : _a.call(props, error, getPaymentMethodContext());
137
- core.resetEnablePaymentMethod();
138
- };
139
- const onTimeout = q(
140
- (message) => {
141
- var _a;
142
- setErrorMsg(message || i18n.get("common.payTimeout"));
143
- setSubmitButtonStatus("unSubmit");
144
- (_a = props.onTimeout) == null ? void 0 : _a.call(props, "retry", getPaymentMethodContext());
145
- core.resetEnablePaymentMethod();
146
- },
147
- [i18n, props.onTimeout]
148
- );
149
- const { start: startReFetchPayInfo, stop: stopReFetchPayInfo } = useRetry(
150
- (timeout) => pay(true, timeout),
151
- { onTimeout: () => onTimeout(i18n.get("common.queryTimeout")) }
152
- );
153
- const getPaymentParams = async () => {
154
- return {
155
- sessionId: session.sessionId,
156
- clientKey: session.clientKey,
157
- payment: {
158
- paymentMethod: PaymentMethod.BOOST
159
- },
160
- bill: {
161
- email: form.email,
162
- addressLine1: form.address.address1,
163
- addressLine2: form.address.address2,
164
- postalCode: form.address.postCode,
165
- country: form.address.country,
166
- district: form.address.area,
167
- state: form.address.province ? addressCore.getLabel(form.address.province, addressCore.getProvinceOption()) ?? form.address.province : void 0,
168
- city: form.address.city ? addressCore.getLabel(form.address.city, addressCore.getCityOptions()) ?? form.address.city : void 0
169
- },
170
- browser: await getBrowserParams({
171
- fraudDetectionId: await (fraudDetection == null ? void 0 : fraudDetection.getFraudDetectionId())
172
- })
173
- };
174
- };
175
- const pay = async (search = false, timeout) => {
176
- var _a, _b, _c, _d, _e, _f, _g;
177
- try {
178
- const requestOptions = { locale: i18n.locale, timeout };
179
- let res = null;
180
- if (search) {
181
- const extraParams = (_b = (_a = core.config)._getExtraParams) == null ? void 0 : _b.call(_a, "query", PaymentMethod.BOOST);
182
- res = await getBoostPayInfo(
183
- {
184
- sessionId: session.sessionId,
185
- clientKey: session.clientKey,
186
- paymentMethod: PaymentMethod.BOOST
187
- },
188
- extraParams,
189
- requestOptions
190
- );
191
- } else {
192
- const extraParams = (_d = (_c = core.config)._getExtraParams) == null ? void 0 : _d.call(_c, "payment", PaymentMethod.BOOST);
193
- res = await boostPay(await getPaymentParams(), extraParams, requestOptions);
194
- }
195
- !search && ((_e = props.onSubmitResponse) == null ? void 0 : _e.call(props, res, getPaymentMethodContext()));
196
- const { status, orderStatus, errorMessage, errorCode, payInfo, sessionId } = res;
197
- sessionId && (session.sessionId = sessionId);
198
- if (status === "PROCESSING") {
199
- if (!orderStatus) {
200
- setSubmitButtonStatus("unSubmit");
201
- return { end: true };
202
- } else if (orderStatus === "SUCCESS") {
203
- processOnSuccess(res);
204
- return { end: true };
205
- } else if (orderStatus === "FAILURE") {
206
- errorMessage && setErrorMsg(errorMessage);
207
- setSubmitButtonStatus("unSubmit");
208
- processOnError(new PayKKaError("API_ERROR", errorMessage, { code: errorCode }));
209
- return { end: true };
210
- } else if (orderStatus === "PROCESSING") {
211
- if (!search) {
212
- if (redirectMode === "auto" && payInfo) {
213
- redirectToPayment(payInfo);
214
- return { end: true };
215
- } else {
216
- startReFetchPayInfo();
217
- }
218
- }
219
- return { end: false };
220
- } else if (orderStatus === "CANCELED") {
221
- setSubmitButtonStatus("unSubmit");
222
- (_f = props.onTimeout) == null ? void 0 : _f.call(props, "channel", getPaymentMethodContext());
223
- core.resetEnablePaymentMethod();
224
- return { end: true };
225
- }
226
- } else if (status === "SUCCESS") {
227
- processOnSuccess(res);
228
- return { end: true };
229
- } else if (status === "EXPIRED") {
230
- setSubmitButtonStatus("unSubmit");
231
- (_g = props.onExpired) == null ? void 0 : _g.call(props, getPaymentMethodContext());
232
- return { end: true };
233
- }
234
- setSubmitButtonStatus("unSubmit");
235
- return { end: true };
236
- } catch (error) {
237
- if (isTimeoutError(error)) {
238
- if (search) {
239
- return { end: false };
240
- } else {
241
- onTimeout();
242
- return { end: true };
243
- }
244
- } else {
245
- const message = error.i18nKey ? i18n.get(error.i18nKey) : error.message;
246
- message && setErrorMsg(message);
247
- processOnError(new PayKKaError("API_ERROR", message, { code: error.code, cause: error }));
248
- setSubmitButtonStatus("unSubmit");
249
- return { end: true };
250
- }
251
- }
252
- };
253
- const validateForm = () => {
254
- var _a;
255
- (_a = formRef.current) == null ? void 0 : _a.validate(void 0, false).then(() => {
256
- setValidated(true);
257
- }).catch(() => {
258
- setValidated(false);
259
- });
260
- };
261
- y(() => {
262
- validateForm();
263
- }, [form]);
264
- const onSubmit = async () => {
265
- var _a;
266
- setErrorMsg("");
267
- (_a = formRef.current) == null ? void 0 : _a.validate(async (errors) => {
268
- var _a2;
269
- (fieldStatus == null ? void 0 : fieldStatus.address.show) && addressCore.setValidateAllFields(true);
270
- (_a2 = props.onSubmit) == null ? void 0 : _a2.call(props, errors, getPaymentMethodContext());
271
- if (errors) {
272
- setSubmitButtonStatus("unSubmit");
273
- return;
274
- }
275
- setErrorMsg("");
276
- setSubmitButtonStatus("loading");
277
- await pay();
278
- });
279
- };
280
- const setFormRef = (dom) => {
281
- formRef.current = dom;
282
- dom && validateForm();
283
- };
284
- const Button = () => {
285
- var _a;
286
- const transAmount = (_a = session == null ? void 0 : session.checkout) == null ? void 0 : _a.transAmount;
287
- const amountText = (transAmount == null ? void 0 : transAmount.amount) ? formatAmount(transAmount).jointSymbol() : "";
288
- const text = i18n.get("common.pay") + (amountText ? ` ${amountText}` : "");
289
- return /* @__PURE__ */ u(
290
- SubmitButton,
291
- {
292
- className: bem("button"),
293
- status: submitButtonStatus,
294
- text,
295
- loadingText: i18n.get("common.payProcessing"),
296
- successText: i18n.get("common.paySuccess"),
297
- onClick: onSubmit,
298
- verified: validated
299
- }
300
- );
301
- };
302
- const Email = () => {
303
- return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.email.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
304
- EmailField,
305
- {
306
- ref: emailFieldRef,
307
- value: form.email,
308
- disabled: fieldStatus == null ? void 0 : fieldStatus.email.disabled
309
- }
310
- ) }) });
311
- };
312
- const ErrorMessage = () => {
313
- return /* @__PURE__ */ u(b, { children: !!errorMsg && /* @__PURE__ */ u(Info, { content: errorMsg }) });
314
- };
315
- const Address = () => {
316
- return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.address.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
317
- AddressField,
318
- {
319
- ref: addressFieldRef,
320
- value: form.address,
321
- onChange: (value) => setForm(Object.assign(form, { address: value }))
322
- }
323
- ) }) });
324
- };
325
- return /* @__PURE__ */ u(
326
- CoreContext.Provider,
327
- {
328
- value: {
329
- i18n,
330
- session,
331
- core
332
- },
333
- children: isCheckoutEnabled && i18n.ready.value && /* @__PURE__ */ u("div", { className: core.theme.className, children: [
334
- showGuideCard && /* @__PURE__ */ u(GuideCard, { type: PaymentCategory.BOOST }),
335
- /* @__PURE__ */ u(Form, { form, ref: setFormRef, onFormChange: (form2) => setForm(form2), children: /* @__PURE__ */ u("div", { className: normalizedClass(COMMON_CLASS_NAME, bem()), children: [
336
- Email(),
337
- Address(),
338
- /* @__PURE__ */ u("div", { className: bem("footer-wrapper"), children: [
339
- ErrorMessage(),
340
- !hidePaymentButton && Button()
341
- ] })
342
- ] }) })
343
- ] })
344
- }
345
- );
346
- });
347
- export {
348
- Boost
349
- };
@@ -1,349 +0,0 @@
1
- import { w, F, A, h, y, q, u, b } from "../../core.js";
2
- import { useBEM } from "../../hooks/useBEM.js";
3
- import { CoreContext } from "../../core/context.js";
4
- import "../../utils/card-brand/brands.js";
5
- import "../../utils/system-info/get-browser-info.js";
6
- import { normalizedClass, formatAmount } from "../../utils/format.js";
7
- import { redirectToPayment } from "../../utils/redirect.js";
8
- import { formatPaymentResult } from "../../utils/payment.js";
9
- import { isTimeoutError } from "../../api/http.js";
10
- import { getBrowserParams } from "../../api/modules/get-browser-params.js";
11
- import { PaymentCategory, COMMON_CLASS_NAME, PaymentMethod, SessionMode } from "../../constant.js";
12
- import { getGrabPayInfo, grabPay } from "../../api/modules/grab-pay/index.js";
13
- import { PayKKaError } from "../../core/error.js";
14
- import "../../out/worldpay-jsc-origin.js";
15
- import { usePayState } from "../../hooks/usePayState.js";
16
- import { useRetry } from "../../hooks/useRetry.js";
17
- import { createEmailCore, EmailField } from "../EmailField/EmailField.js";
18
- import { SubmitButton } from "../SubmitButton/index.js";
19
- import "../internal/Form/type.js";
20
- import "../internal/Form/context.js";
21
- import "../internal/Form/FormItem.js";
22
- import { Form } from "../internal/Form/Form.js";
23
- import { AddressField } from "../AddressField/index.js";
24
- import { Info } from "../internal/Info/Info.js";
25
- import { GuideCard } from "../GuideCard/index.js";
26
- const { bem } = useBEM("grab-pay");
27
- const fieldClassNames = bem("field");
28
- const GrabPay = w((props, ref) => {
29
- const {
30
- session,
31
- showEmail = false,
32
- showAddress = false,
33
- core,
34
- redirectMode = "auto",
35
- autoQuery = true,
36
- showGuideCard = true,
37
- hidePaymentButton = false
38
- } = props;
39
- F(ref, () => ({
40
- stopRetry: () => {
41
- setSubmitButtonStatus("unSubmit");
42
- stopReFetchPayInfo();
43
- },
44
- startRetry: (timeout) => {
45
- setSubmitButtonStatus("loading");
46
- startReFetchPayInfo({ timeout });
47
- },
48
- updateAddress: () => {
49
- var _a;
50
- if (!(fieldStatus == null ? void 0 : fieldStatus.address.show))
51
- return;
52
- const newForm = Object.assign(form, { address: addressCore.getAddressState() });
53
- setForm(newForm);
54
- (_a = addressFieldRef.current) == null ? void 0 : _a.update(addressCore.getAddressState());
55
- validateForm();
56
- },
57
- updateEmail: () => {
58
- var _a;
59
- if (!(fieldStatus == null ? void 0 : fieldStatus.email.show))
60
- return;
61
- const newForm = Object.assign(form, { email: emailState.email });
62
- setForm(newForm);
63
- (_a = emailFieldRef.current) == null ? void 0 : _a.update(emailState.email);
64
- validateForm();
65
- },
66
- payment: () => {
67
- hidePaymentButton && onSubmit();
68
- }
69
- }));
70
- const addressCore = core.getAddressCore();
71
- const emailState = createEmailCore();
72
- const addressFieldRef = A(null);
73
- const emailFieldRef = A(null);
74
- const [isCheckoutEnabled, setIsCheckoutEnabled] = h(false);
75
- const { setErrorMsg, fraudDetection, i18n, errorMsg, sessionReady } = usePayState(session, props.core);
76
- const [submitButtonStatus, setSubmitButtonStatus] = h("unSubmit");
77
- const formRef = A(null);
78
- const [form, setForm] = h({
79
- email: "",
80
- address: {
81
- country: void 0,
82
- province: void 0,
83
- city: void 0,
84
- area: void 0,
85
- postCode: void 0,
86
- address1: void 0,
87
- address2: void 0
88
- }
89
- });
90
- const [validated, setValidated] = h(false);
91
- const [fieldStatus, setFieldStatus] = h();
92
- const getPaymentMethodContext = () => ({
93
- paymentMethod: PaymentMethod.GRAB_PAY
94
- });
95
- const initFieldStatus = () => {
96
- const { field, sessionMode } = session.checkout;
97
- const { email, address } = field;
98
- if (sessionMode === SessionMode.COMPONENT) {
99
- if (email.disabled) {
100
- email.show = showEmail;
101
- }
102
- if (showAddress && !(address == null ? void 0 : address.show)) {
103
- address.show = true;
104
- }
105
- }
106
- setFieldStatus({ ...field });
107
- };
108
- const processOnSuccess = (res) => {
109
- var _a, _b;
110
- setSubmitButtonStatus("success");
111
- (_b = props.onSuccess) == null ? void 0 : _b.call(props, formatPaymentResult({
112
- ...res,
113
- returnUrl: (_a = session == null ? void 0 : session.checkout) == null ? void 0 : _a.returnUrl
114
- }), getPaymentMethodContext());
115
- };
116
- y(() => {
117
- if (!sessionReady) {
118
- return;
119
- }
120
- const { bill = {}, supportMethods = [], country } = (session == null ? void 0 : session.checkout) || {};
121
- if (!supportMethods.includes(PaymentMethod.GRAB_PAY)) {
122
- return;
123
- }
124
- initFieldStatus();
125
- setIsCheckoutEnabled(true);
126
- country && addressCore.setCountry(country);
127
- form.email = bill.email ?? "";
128
- form.address.country = country;
129
- if (autoQuery && core.processingPaymentMethod === PaymentMethod.GRAB_PAY) {
130
- setSubmitButtonStatus("loading");
131
- startReFetchPayInfo();
132
- }
133
- }, [sessionReady]);
134
- const processOnError = (error) => {
135
- var _a;
136
- (_a = props.onError) == null ? void 0 : _a.call(props, error, getPaymentMethodContext());
137
- core.resetEnablePaymentMethod();
138
- };
139
- const onTimeout = q(
140
- (message) => {
141
- var _a;
142
- setErrorMsg(message || i18n.get("common.payTimeout"));
143
- setSubmitButtonStatus("unSubmit");
144
- (_a = props.onTimeout) == null ? void 0 : _a.call(props, "retry", getPaymentMethodContext());
145
- core.resetEnablePaymentMethod();
146
- },
147
- [i18n, props.onTimeout]
148
- );
149
- const { start: startReFetchPayInfo, stop: stopReFetchPayInfo } = useRetry(
150
- (timeout) => pay(true, timeout),
151
- { onTimeout: () => onTimeout(i18n.get("common.queryTimeout")) }
152
- );
153
- const getPaymentParams = async () => {
154
- return {
155
- sessionId: session.sessionId,
156
- clientKey: session.clientKey,
157
- payment: {
158
- paymentMethod: PaymentMethod.GRAB_PAY
159
- },
160
- bill: {
161
- email: form.email,
162
- addressLine1: form.address.address1,
163
- addressLine2: form.address.address2,
164
- postalCode: form.address.postCode,
165
- country: form.address.country,
166
- district: form.address.area,
167
- state: form.address.province ? addressCore.getLabel(form.address.province, addressCore.getProvinceOption()) ?? form.address.province : void 0,
168
- city: form.address.city ? addressCore.getLabel(form.address.city, addressCore.getCityOptions()) ?? form.address.city : void 0
169
- },
170
- browser: await getBrowserParams({
171
- fraudDetectionId: await (fraudDetection == null ? void 0 : fraudDetection.getFraudDetectionId())
172
- })
173
- };
174
- };
175
- const pay = async (search = false, timeout) => {
176
- var _a, _b, _c, _d, _e, _f, _g;
177
- try {
178
- const requestOptions = { locale: i18n.locale, timeout };
179
- let res = null;
180
- if (search) {
181
- const extraParams = (_b = (_a = core.config)._getExtraParams) == null ? void 0 : _b.call(_a, "query", PaymentMethod.GRAB_PAY);
182
- res = await getGrabPayInfo(
183
- {
184
- sessionId: session.sessionId,
185
- clientKey: session.clientKey,
186
- paymentMethod: PaymentMethod.GRAB_PAY
187
- },
188
- extraParams,
189
- requestOptions
190
- );
191
- } else {
192
- const extraParams = (_d = (_c = core.config)._getExtraParams) == null ? void 0 : _d.call(_c, "payment", PaymentMethod.GRAB_PAY);
193
- res = await grabPay(await getPaymentParams(), extraParams, requestOptions);
194
- }
195
- !search && ((_e = props.onSubmitResponse) == null ? void 0 : _e.call(props, res, getPaymentMethodContext()));
196
- const { status, orderStatus, errorMessage, errorCode, payInfo, sessionId } = res;
197
- sessionId && (session.sessionId = sessionId);
198
- if (status === "PROCESSING") {
199
- if (!orderStatus) {
200
- setSubmitButtonStatus("unSubmit");
201
- return { end: true };
202
- } else if (orderStatus === "SUCCESS") {
203
- processOnSuccess(res);
204
- return { end: true };
205
- } else if (orderStatus === "FAILURE") {
206
- errorMessage && setErrorMsg(errorMessage);
207
- setSubmitButtonStatus("unSubmit");
208
- processOnError(new PayKKaError("API_ERROR", errorMessage, { code: errorCode }));
209
- return { end: true };
210
- } else if (orderStatus === "PROCESSING") {
211
- if (!search) {
212
- if (redirectMode === "auto" && payInfo) {
213
- redirectToPayment(payInfo);
214
- return { end: true };
215
- } else {
216
- startReFetchPayInfo();
217
- }
218
- }
219
- return { end: false };
220
- } else if (orderStatus === "CANCELED") {
221
- setSubmitButtonStatus("unSubmit");
222
- (_f = props.onTimeout) == null ? void 0 : _f.call(props, "channel", getPaymentMethodContext());
223
- core.resetEnablePaymentMethod();
224
- return { end: true };
225
- }
226
- } else if (status === "SUCCESS") {
227
- processOnSuccess(res);
228
- return { end: true };
229
- } else if (status === "EXPIRED") {
230
- setSubmitButtonStatus("unSubmit");
231
- (_g = props.onExpired) == null ? void 0 : _g.call(props, getPaymentMethodContext());
232
- return { end: true };
233
- }
234
- setSubmitButtonStatus("unSubmit");
235
- return { end: true };
236
- } catch (error) {
237
- if (isTimeoutError(error)) {
238
- if (search) {
239
- return { end: false };
240
- } else {
241
- onTimeout();
242
- return { end: true };
243
- }
244
- } else {
245
- const message = error.i18nKey ? i18n.get(error.i18nKey) : error.message;
246
- message && setErrorMsg(message);
247
- processOnError(new PayKKaError("API_ERROR", message, { code: error.code, cause: error }));
248
- setSubmitButtonStatus("unSubmit");
249
- return { end: true };
250
- }
251
- }
252
- };
253
- const validateForm = () => {
254
- var _a;
255
- (_a = formRef.current) == null ? void 0 : _a.validate(void 0, false).then(() => {
256
- setValidated(true);
257
- }).catch(() => {
258
- setValidated(false);
259
- });
260
- };
261
- y(() => {
262
- validateForm();
263
- }, [form]);
264
- const onSubmit = async () => {
265
- var _a;
266
- setErrorMsg("");
267
- (_a = formRef.current) == null ? void 0 : _a.validate(async (errors) => {
268
- var _a2;
269
- (fieldStatus == null ? void 0 : fieldStatus.address.show) && addressCore.setValidateAllFields(true);
270
- (_a2 = props.onSubmit) == null ? void 0 : _a2.call(props, errors, getPaymentMethodContext());
271
- if (errors) {
272
- setSubmitButtonStatus("unSubmit");
273
- return;
274
- }
275
- setErrorMsg("");
276
- setSubmitButtonStatus("loading");
277
- await pay();
278
- });
279
- };
280
- const setFormRef = (dom) => {
281
- formRef.current = dom;
282
- dom && validateForm();
283
- };
284
- const Button = () => {
285
- var _a;
286
- const transAmount = (_a = session == null ? void 0 : session.checkout) == null ? void 0 : _a.transAmount;
287
- const amountText = (transAmount == null ? void 0 : transAmount.amount) ? formatAmount(transAmount).jointSymbol() : "";
288
- const text = i18n.get("common.pay") + (amountText ? ` ${amountText}` : "");
289
- return /* @__PURE__ */ u(
290
- SubmitButton,
291
- {
292
- className: bem("button"),
293
- status: submitButtonStatus,
294
- text,
295
- loadingText: i18n.get("common.payProcessing"),
296
- successText: i18n.get("common.paySuccess"),
297
- onClick: onSubmit,
298
- verified: validated
299
- }
300
- );
301
- };
302
- const Email = () => {
303
- return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.email.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
304
- EmailField,
305
- {
306
- ref: emailFieldRef,
307
- value: form.email,
308
- disabled: fieldStatus == null ? void 0 : fieldStatus.email.disabled
309
- }
310
- ) }) });
311
- };
312
- const ErrorMessage = () => {
313
- return /* @__PURE__ */ u(b, { children: !!errorMsg && /* @__PURE__ */ u(Info, { content: errorMsg }) });
314
- };
315
- const Address = () => {
316
- return /* @__PURE__ */ u(b, { children: (fieldStatus == null ? void 0 : fieldStatus.address.show) && /* @__PURE__ */ u("div", { className: fieldClassNames, children: /* @__PURE__ */ u(
317
- AddressField,
318
- {
319
- ref: addressFieldRef,
320
- value: form.address,
321
- onChange: (value) => setForm(Object.assign(form, { address: value }))
322
- }
323
- ) }) });
324
- };
325
- return /* @__PURE__ */ u(
326
- CoreContext.Provider,
327
- {
328
- value: {
329
- i18n,
330
- session,
331
- core
332
- },
333
- children: isCheckoutEnabled && i18n.ready.value && /* @__PURE__ */ u("div", { className: core.theme.className, children: [
334
- showGuideCard && /* @__PURE__ */ u(GuideCard, { type: PaymentCategory.GRAB_PAY }),
335
- /* @__PURE__ */ u(Form, { form, ref: setFormRef, onFormChange: (form2) => setForm(form2), children: /* @__PURE__ */ u("div", { className: normalizedClass(COMMON_CLASS_NAME, bem()), children: [
336
- Email(),
337
- Address(),
338
- /* @__PURE__ */ u("div", { className: bem("footer-wrapper"), children: [
339
- ErrorMessage(),
340
- !hidePaymentButton && Button()
341
- ] })
342
- ] }) })
343
- ] })
344
- }
345
- );
346
- });
347
- export {
348
- GrabPay
349
- };