@paykka/card-checkout-ui 0.13.16 → 0.14.0

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