@multiversx/sdk-dapp-liquidity 1.0.12 → 1.0.14

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 (302) hide show
  1. package/ConstantsUtil-BinYIDR2.mjs +8 -0
  2. package/ConstantsUtil-CbnVdQ5P.js +8 -0
  3. package/add-D-ECcdUh.mjs +19 -0
  4. package/add-Diz8heiY.js +20 -0
  5. package/all-wallets-_iOQf3bl.js +11 -0
  6. package/all-wallets-puIIQy3Y.mjs +10 -0
  7. package/app-store-BGTKFL27.js +22 -0
  8. package/app-store-Bsf7w3pv.mjs +21 -0
  9. package/apple-Cw8e8IGH.mjs +22 -0
  10. package/apple-DF7n_Yzl.js +23 -0
  11. package/arrow-bottom-Cp2C4fQv.mjs +12 -0
  12. package/arrow-bottom-DTvIR3s3.js +13 -0
  13. package/arrow-bottom-circle-CN6i5mHz.mjs +15 -0
  14. package/arrow-bottom-circle-CzPwiwWH.js +16 -0
  15. package/arrow-left-9VFYHQSW.js +13 -0
  16. package/arrow-left-BDQHoEvX.mjs +12 -0
  17. package/arrow-right-BxkuSpWU.mjs +12 -0
  18. package/arrow-right-DBLQ6w92.js +13 -0
  19. package/arrow-top-BiQd5Aey.js +13 -0
  20. package/arrow-top-BrLVX4Rj.mjs +12 -0
  21. package/bank-B7EC6Kdz.mjs +18 -0
  22. package/bank-CvPn9sfV.js +19 -0
  23. package/{bignumber-CKZkoo0g.mjs → bignumber-2Z7uapuD.mjs} +6 -6
  24. package/{bignumber-B8vjg9qn.js → bignumber-D1Wl54dL.js} +6 -6
  25. package/bin-BXO1kNZh.js +9 -0
  26. package/bin-CwiYVJ1L.mjs +8 -0
  27. package/bitcoin-C3kBVar_.mjs +17 -0
  28. package/bitcoin-DAvQGpeP.js +3251 -0
  29. package/bitcoin-dNBGbS2B.mjs +3251 -0
  30. package/bitcoin-k6bvmzMA.js +18 -0
  31. package/browser-ShRLuKKz.mjs +18 -0
  32. package/browser-t7nfT7HL.js +19 -0
  33. package/card-BJg5bdoM.mjs +18 -0
  34. package/card-hxUDXttT.js +19 -0
  35. package/checkmark-BpR0Yy93.mjs +15 -0
  36. package/checkmark-D9AVWgl5.js +16 -0
  37. package/checkmark-bold-D3Xcby1U.mjs +12 -0
  38. package/checkmark-bold-De02hde8.js +13 -0
  39. package/chevron-bottom-DcBf7T5F.js +13 -0
  40. package/chevron-bottom-DfGpWIz7.mjs +12 -0
  41. package/chevron-left-BKvYVnUo.js +13 -0
  42. package/chevron-left-DGSG9WJQ.mjs +12 -0
  43. package/chevron-right-BLgYIEeO.js +13 -0
  44. package/chevron-right-C2nsTx_Y.mjs +12 -0
  45. package/chevron-top-CwFOEFy8.js +13 -0
  46. package/chevron-top-vk-9DvUU.mjs +12 -0
  47. package/chrome-store-4H_ie3vA.mjs +65 -0
  48. package/chrome-store-BWarxVMl.js +66 -0
  49. package/circle-BtqWJU0_.mjs +8 -0
  50. package/circle-DYjG6o7-.js +9 -0
  51. package/clock-Ba5SM-pl.mjs +12 -0
  52. package/clock-DPzNREdU.js +13 -0
  53. package/close-CJHKFOyp.mjs +12 -0
  54. package/close-DDWnJdJe.js +13 -0
  55. package/coinPlaceholder-Cbba3D1H.mjs +12 -0
  56. package/coinPlaceholder-DdxQIc2D.js +13 -0
  57. package/compass-CugCxeSC.js +13 -0
  58. package/compass-DbN5DkTl.mjs +12 -0
  59. package/copy-CHSZprYJ.mjs +19 -0
  60. package/copy-En5h5Uhu.js +20 -0
  61. package/cursor-DCRkvEhr.mjs +7 -0
  62. package/cursor-DnEQtrUK.js +8 -0
  63. package/cursor-transparent-CU8lk-xg.js +17 -0
  64. package/cursor-transparent-CliETg4d.mjs +16 -0
  65. package/desktop-BgD7aypB.js +14 -0
  66. package/desktop-Cg5I32-p.mjs +13 -0
  67. package/disconnect-CCyMbAdw.js +13 -0
  68. package/disconnect-Cp2vRWB2.mjs +12 -0
  69. package/discord-B1d-qeSk.mjs +21 -0
  70. package/discord-BEB5klec.js +22 -0
  71. package/email-CorlePKz.js +873 -0
  72. package/email-Znno7H8_.mjs +878 -0
  73. package/embedded-wallet-B9ro9Tel.js +549 -0
  74. package/embedded-wallet-CnTWeseG.mjs +552 -0
  75. package/ethereum-BRcsRjUU.mjs +14 -0
  76. package/ethereum-CZ_xe09e.js +15 -0
  77. package/etherscan-BZKGpKp8.mjs +10 -0
  78. package/etherscan-DtLi-C3z.js +11 -0
  79. package/exclamation-triangle-BLNnBLEc.js +9 -0
  80. package/exclamation-triangle-CFThXxRT.mjs +8 -0
  81. package/extension-CwUepr-W.mjs +12 -0
  82. package/extension-DOD67G1k.js +13 -0
  83. package/external-link-CZkQS5XK.js +13 -0
  84. package/external-link-ClYNKSPt.mjs +12 -0
  85. package/facebook-CFjrd4my.mjs +30 -0
  86. package/facebook-CbE6K6AK.js +31 -0
  87. package/farcaster-Ba7_C-Vm.js +17 -0
  88. package/farcaster-DyVJtVS9.mjs +16 -0
  89. package/filters-CpHaFNjT.mjs +12 -0
  90. package/filters-w5LC-r6e.js +13 -0
  91. package/github-CeO70C3E.mjs +22 -0
  92. package/github-uLFBWAa5.js +23 -0
  93. package/google-CyOdUlbw.mjs +22 -0
  94. package/google-ILGK-opP.js +23 -0
  95. package/help-circle-Dh3dRNoB.mjs +16 -0
  96. package/help-circle-HUMbz_KN.js +17 -0
  97. package/id-Cy3Qkrvb.js +17 -0
  98. package/id-D-Q0uPFM.mjs +16 -0
  99. package/if-defined-CJ5EZLw2.js +815 -0
  100. package/if-defined-DjC5UMfF.mjs +815 -0
  101. package/image-BTGOf8bb.mjs +8 -0
  102. package/image-WFQO5bWa.js +9 -0
  103. package/index--O5ypTeK.mjs +70 -0
  104. package/index--Vg7VI9t.js +173 -0
  105. package/index-2iRSO1sa.mjs +9964 -0
  106. package/index-42Rpweo5.mjs +95 -0
  107. package/index-70kjE43k.mjs +90 -0
  108. package/index-8VyNYS01.js +273 -0
  109. package/index-B-dx8l0g.mjs +82 -0
  110. package/index-BB0nW9RB.mjs +198 -0
  111. package/index-BBwuv2SS.js +97 -0
  112. package/index-BIe-kofv.mjs +273 -0
  113. package/index-BQf6VHil.js +278 -0
  114. package/index-BWIZXhFv.mjs +630 -0
  115. package/index-BXkamf-I.js +337 -0
  116. package/index-BYTxCmKH.js +64 -0
  117. package/index-BYoOxo0S.js +218 -0
  118. package/index-Ba0tVdql.js +200 -0
  119. package/index-BdOAPWyt.mjs +210 -0
  120. package/index-BirWzf8c.mjs +71 -0
  121. package/index-BnCJUHtW.mjs +346 -0
  122. package/index-BuL2FC61.mjs +216 -0
  123. package/index-BxSUTfaY.js +88 -0
  124. package/index-C49C5Rxf.js +743 -0
  125. package/index-CNMDBpW7.js +346 -0
  126. package/index-CP0CGjqQ.mjs +263 -0
  127. package/index-CQaHcTZM.mjs +86 -0
  128. package/index-CRGXQei1.js +178 -0
  129. package/index-CSykUIfV.mjs +176 -0
  130. package/index-CWIHaLkQ.mjs +101 -0
  131. package/index-CZSDJd0P.mjs +1070 -0
  132. package/index-CZaV8JgR.mjs +49 -0
  133. package/index-CZjdy6QP.js +101 -0
  134. package/index-C_lIGGlC.js +632 -0
  135. package/index-CcgeRPs2.mjs +57 -0
  136. package/index-CeY_DRuc.js +566 -0
  137. package/index-ChFNkSxT.js +92 -0
  138. package/index-CkjZc20w.js +677 -0
  139. package/index-CtFcWwAd.js +72 -0
  140. package/index-D0mOfznC.mjs +362 -0
  141. package/index-DAtWLY21.js +84 -0
  142. package/index-DEs8H3w2.js +262 -0
  143. package/index-DLnxotbC.mjs +566 -0
  144. package/index-DN4fGDgg.mjs +743 -0
  145. package/index-DT_mc1hV.mjs +335 -0
  146. package/index-DZEwxUMS.js +59 -0
  147. package/index-DaRH_4bD.js +9939 -0
  148. package/index-Daok2ZKn.js +73 -0
  149. package/index-DomzHmwk.js +210 -0
  150. package/index-Dx7NyDyv.mjs +101 -0
  151. package/index-DyGir6_2.mjs +675 -0
  152. package/index-GglJmM2C.js +2237 -0
  153. package/index-H5b7UTeJ.mjs +173 -0
  154. package/index-NNZ1lNuc.mjs +168 -0
  155. package/index-RJd-gQcv.mjs +2235 -0
  156. package/index-dnFzVpGy.js +103 -0
  157. package/index-kwVLu8EV.js +168 -0
  158. package/index-miQwZPmn.js +51 -0
  159. package/index-oCj_SpOa.mjs +62 -0
  160. package/index-pNK-h_x9.js +1069 -0
  161. package/index-r6Kre1rx.js +362 -0
  162. package/index-xBD0nXoB.mjs +276 -0
  163. package/index.js +3 -3
  164. package/index.mjs +3 -3
  165. package/info-BKNAiN0k.js +8 -0
  166. package/info-DQE0s-A4.mjs +7 -0
  167. package/info-circle-C3uTocjH.js +17 -0
  168. package/info-circle-CIn6yeQo.mjs +16 -0
  169. package/lightbulb-CB-BmIop.js +8 -0
  170. package/lightbulb-Gv7IbnzO.mjs +7 -0
  171. package/mail-CFYm95wn.mjs +12 -0
  172. package/mail-GEwk-Fzr.js +13 -0
  173. package/mobile-CZ7ZBfa5.js +14 -0
  174. package/mobile-OIbnpFsU.mjs +13 -0
  175. package/more-C8N_RV55.mjs +15 -0
  176. package/more-CiQpPZwq.js +16 -0
  177. package/network-placeholder-CxEcczEx.mjs +18 -0
  178. package/network-placeholder-DwR8E8hP.js +19 -0
  179. package/nftPlaceholder-BFexVcGX.js +13 -0
  180. package/nftPlaceholder-MiYL110I.mjs +12 -0
  181. package/off-BNiMlpUU.mjs +8 -0
  182. package/off-iJHSK3Z7.js +9 -0
  183. package/onramp-Bs8HHFFY.js +1474 -0
  184. package/onramp-C6fuQfX7.mjs +1480 -0
  185. package/package.json +11 -11
  186. package/play-store-B4ssIYUA.js +37 -0
  187. package/play-store-D6nmQXhX.mjs +36 -0
  188. package/plus-Bh7z7Oc0.js +18 -0
  189. package/plus-C8ioZuCD.mjs +17 -0
  190. package/qr-code-CSVwaBLf.mjs +10 -0
  191. package/qr-code-YgtXPokK.js +11 -0
  192. package/react-BWxe90Ar.mjs +6342 -0
  193. package/react-BzZcQig5.js +6342 -0
  194. package/react-C_wTMVq_.js +23003 -0
  195. package/react-M-DnxvZl.mjs +23003 -0
  196. package/reactjs/components/BridgeForm/BridgeForm.js +2 -1
  197. package/reactjs/components/BridgeForm/BridgeForm.mjs +2 -1
  198. package/reactjs/components/Connect/BridgeAccountDisplay.js +3 -2
  199. package/reactjs/components/Connect/BridgeAccountDisplay.mjs +3 -2
  200. package/reactjs/components/Connect/CustomConnectButton.js +3 -2
  201. package/reactjs/components/Connect/CustomConnectButton.mjs +3 -2
  202. package/reactjs/components/Connect/SwitchChainButton.js +4 -3
  203. package/reactjs/components/Connect/SwitchChainButton.mjs +4 -3
  204. package/reactjs/components/DisplayAmount/DisplayAmount.js +1 -1
  205. package/reactjs/components/DisplayAmount/DisplayAmount.mjs +1 -1
  206. package/reactjs/components/TokenSelector/components/TokenItem.js +1 -1
  207. package/reactjs/components/TokenSelector/components/TokenItem.mjs +1 -1
  208. package/reactjs/hooks/useAccount.d.ts +4 -4
  209. package/reactjs/hooks/useAccount.js +3 -2
  210. package/reactjs/hooks/useAccount.mjs +3 -2
  211. package/reactjs/hooks/useGetChainId.js +1 -1
  212. package/reactjs/hooks/useGetChainId.mjs +1 -1
  213. package/reactjs/index.js +3 -3
  214. package/reactjs/index.mjs +3 -3
  215. package/reactjs/init/init.js +4 -3
  216. package/reactjs/init/init.mjs +4 -3
  217. package/reactjs/init/tests/init.spec.js +2 -2
  218. package/reactjs/init/tests/init.spec.mjs +2 -2
  219. package/reactjs/queries/useGetEvmTokensBalances.query.js +3 -2
  220. package/reactjs/queries/useGetEvmTokensBalances.query.mjs +3 -2
  221. package/reactjs/reexports.js +3 -3
  222. package/reactjs/reexports.mjs +3 -3
  223. package/reactjs/utils/getCleanStringAmount.js +1 -1
  224. package/reactjs/utils/getCleanStringAmount.mjs +1 -1
  225. package/reactjs/utils/hasEnoughFunds.js +1 -1
  226. package/reactjs/utils/hasEnoughFunds.mjs +1 -1
  227. package/reactjs/utils/isStringFloat.js +1 -1
  228. package/reactjs/utils/isStringFloat.mjs +1 -1
  229. package/reactjs/utils/roundAmount.js +1 -1
  230. package/reactjs/utils/roundAmount.mjs +1 -1
  231. package/receive-CK0hRQPr.js +212 -0
  232. package/receive-CQcD6bZf.mjs +212 -0
  233. package/recycle-horizontal--x5cMoTE.js +14 -0
  234. package/recycle-horizontal-QI0xtDHK.mjs +13 -0
  235. package/ref-CqxfRkBm.mjs +41 -0
  236. package/ref-FGI2cUQB.js +41 -0
  237. package/refresh-CFNHjhDi.js +13 -0
  238. package/refresh-CSOC1NUY.mjs +12 -0
  239. package/reown-logo-BfU5xFX5.js +17 -0
  240. package/reown-logo-CZAEp1jU.mjs +16 -0
  241. package/search-Do_rb-9-.mjs +12 -0
  242. package/search-V9CGMHkm.js +13 -0
  243. package/send-D-5G7tDL.mjs +1204 -0
  244. package/send-D4yYsIHV.mjs +19 -0
  245. package/send-DoiSHLsX.js +1202 -0
  246. package/send-_jfNFrys.js +20 -0
  247. package/socials-BL7-97fT.mjs +758 -0
  248. package/socials-DF0CK9cN.js +756 -0
  249. package/solana-BQ0Jh8lh.js +18 -0
  250. package/solana-YAkDp6j_.mjs +17 -0
  251. package/swapHorizontal-DOIo-Ccx.mjs +12 -0
  252. package/swapHorizontal-OHKtz4Gu.js +13 -0
  253. package/swapHorizontalBold-D7QmFj-c.js +13 -0
  254. package/swapHorizontalBold-DDroA0Af.mjs +12 -0
  255. package/swapHorizontalMedium-CU_v0kFz.mjs +20 -0
  256. package/swapHorizontalMedium-D-yMmtml.js +21 -0
  257. package/swapHorizontalRoundedBold-CHvbmnjw.js +13 -0
  258. package/swapHorizontalRoundedBold-DXMH0sgK.mjs +12 -0
  259. package/swapVertical-CH7fTK6w.js +13 -0
  260. package/swapVertical-HJZ6rFcr.mjs +12 -0
  261. package/swaps-CETflhdU.js +1952 -0
  262. package/swaps-DRUV6d3p.mjs +1954 -0
  263. package/telegram-CsCauOwj.mjs +20 -0
  264. package/telegram-DKEcF_Tq.js +21 -0
  265. package/three-dots-B-7hr8Nl.js +10 -0
  266. package/three-dots-LNZ_fjP7.mjs +9 -0
  267. package/transactions-BTTsGV2W.mjs +37 -0
  268. package/transactions-mpNNlClw.js +37 -0
  269. package/twitch-CCWVT2ij.js +23 -0
  270. package/twitch-Dg1CCQvd.mjs +22 -0
  271. package/twitterIcon-BjR09Cj9.mjs +10 -0
  272. package/twitterIcon-CeEs0iDJ.js +11 -0
  273. package/verify-B8WZq7kt.mjs +12 -0
  274. package/verify-filled-BeqC1imk.mjs +12 -0
  275. package/verify-filled-C-mv3ApD.js +13 -0
  276. package/verify-yATdPqt-.js +13 -0
  277. package/w3m-modal-3GziKj7h.js +1254 -0
  278. package/w3m-modal-81Z5PngE.mjs +1255 -0
  279. package/wallet-BMXEH23x.js +13 -0
  280. package/wallet-CNAVQCfm.mjs +12 -0
  281. package/wallet-placeholder-CQ-7CmVN.mjs +18 -0
  282. package/wallet-placeholder-CdoQy2e6.js +19 -0
  283. package/walletconnect-ACr-R1QZ.mjs +38 -0
  284. package/walletconnect-BWSkiS2F.js +39 -0
  285. package/warning-circle-CYnuYwpt.js +17 -0
  286. package/warning-circle-HV2lOiCj.mjs +16 -0
  287. package/x-CW5dozRj.js +17 -0
  288. package/x-Cgm2OFpL.mjs +16 -0
  289. package/x-mark-CR8SpZvu.js +8 -0
  290. package/x-mark-u0KJjUJ1.mjs +7 -0
  291. package/index-B4Eq5P3w.mjs +0 -91
  292. package/index-C4WV9nam.js +0 -329
  293. package/index-CWMcKi_X.js +0 -107
  294. package/index-D8E0O3qL.mjs +0 -68744
  295. package/index-DJ8CdHSw.mjs +0 -107
  296. package/index-nigVQYBu.js +0 -68665
  297. package/react-C43nEIqn.js +0 -3133
  298. package/react-DKUsVej7.js +0 -50
  299. package/react-Dp0H8q2z.mjs +0 -50
  300. package/react-wMhOUFOm.mjs +0 -3133
  301. package/w3m-modal-DLyg7Voy.js +0 -356
  302. package/w3m-modal-hC-B8qZP.mjs +0 -356
@@ -0,0 +1,1480 @@
1
+ import { i, f as i$1, x } from "./bitcoin-dNBGbS2B.mjs";
2
+ import { n, c as customElement, o, r } from "./if-defined-DjC5UMfF.mjs";
3
+ import { D as DateUtil, T as TransactionUtil } from "./index-DLnxotbC.mjs";
4
+ import "./index-42Rpweo5.mjs";
5
+ import "./index--O5ypTeK.mjs";
6
+ import "./index-Dx7NyDyv.mjs";
7
+ import { r as ApiController, o as TransactionsController, q as AssetController, A as AccountController, O as OptionsController, M as ModalController, c as ChainController, m as AssetUtil, E as EventsController, g as getPreferredAccountType, W as W3mFrameRpcConstants, R as RouterController, d as CoreHelperUtil, i as ConstantsUtil, B as BlockchainApiController, C as ConnectionController, S as SnackController, T as ThemeController } from "./react-BWxe90Ar.mjs";
8
+ import { O as OnRampController } from "./react-M-DnxvZl.mjs";
9
+ import "./index-BB0nW9RB.mjs";
10
+ import { O as OptionsStateController } from "./index-BnCJUHtW.mjs";
11
+ import "./index-BWIZXhFv.mjs";
12
+ import "./index-CcgeRPs2.mjs";
13
+ import "./index-DT_mc1hV.mjs";
14
+ import "./index-BirWzf8c.mjs";
15
+ import "./index-xBD0nXoB.mjs";
16
+ const styles$8 = i`
17
+ :host {
18
+ width: 100%;
19
+ }
20
+
21
+ :host > wui-flex {
22
+ width: 100%;
23
+ padding: var(--wui-spacing-s);
24
+ border-radius: var(--wui-border-radius-xs);
25
+ width: 100%;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: flex-start;
29
+ gap: var(--wui-spacing-s);
30
+ }
31
+
32
+ :host > wui-flex:hover {
33
+ background-color: var(--wui-color-gray-glass-002);
34
+ }
35
+
36
+ .purchase-image-container {
37
+ display: flex;
38
+ justify-content: center;
39
+ align-items: center;
40
+ position: relative;
41
+ width: var(--wui-icon-box-size-lg);
42
+ height: var(--wui-icon-box-size-lg);
43
+ }
44
+
45
+ .purchase-image-container wui-image {
46
+ width: 100%;
47
+ height: 100%;
48
+ position: relative;
49
+ border-radius: calc(var(--wui-icon-box-size-lg) / 2);
50
+ }
51
+
52
+ .purchase-image-container wui-image::after {
53
+ content: '';
54
+ display: block;
55
+ width: 100%;
56
+ height: 100%;
57
+ position: absolute;
58
+ inset: 0;
59
+ border-radius: calc(var(--wui-icon-box-size-lg) / 2);
60
+ box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);
61
+ }
62
+
63
+ .purchase-image-container wui-icon-box {
64
+ position: absolute;
65
+ right: 0;
66
+ bottom: 0;
67
+ transform: translate(20%, 20%);
68
+ }
69
+ `;
70
+ var __decorate$a = function(decorators, target, key, desc) {
71
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
72
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
73
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
74
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
75
+ };
76
+ let W3mOnRampActivityItem = class W3mOnRampActivityItem2 extends i$1 {
77
+ constructor() {
78
+ super(...arguments);
79
+ this.disabled = false;
80
+ this.color = "inherit";
81
+ this.label = "Bought";
82
+ this.purchaseValue = "";
83
+ this.purchaseCurrency = "";
84
+ this.date = "";
85
+ this.completed = false;
86
+ this.inProgress = false;
87
+ this.failed = false;
88
+ this.onClick = null;
89
+ this.symbol = "";
90
+ }
91
+ firstUpdated() {
92
+ if (!this.icon) {
93
+ this.fetchTokenImage();
94
+ }
95
+ }
96
+ render() {
97
+ return x`
98
+ <wui-flex>
99
+ ${this.imageTemplate()}
100
+ <wui-flex flexDirection="column" gap="4xs" flexGrow="1">
101
+ <wui-flex gap="xxs" alignItems="center" justifyContent="flex-start">
102
+ ${this.statusIconTemplate()}
103
+ <wui-text variant="paragraph-500" color="fg-100"> ${this.label}</wui-text>
104
+ </wui-flex>
105
+ <wui-text variant="small-400" color="fg-200">
106
+ + ${this.purchaseValue} ${this.purchaseCurrency}
107
+ </wui-text>
108
+ </wui-flex>
109
+ ${this.inProgress ? x`<wui-loading-spinner color="fg-200" size="md"></wui-loading-spinner>` : x`<wui-text variant="micro-700" color="fg-300"><span>${this.date}</span></wui-text>`}
110
+ </wui-flex>
111
+ `;
112
+ }
113
+ async fetchTokenImage() {
114
+ await ApiController._fetchTokenImage(this.purchaseCurrency);
115
+ }
116
+ statusIconTemplate() {
117
+ if (this.inProgress) {
118
+ return null;
119
+ }
120
+ return this.completed ? this.boughtIconTemplate() : this.errorIconTemplate();
121
+ }
122
+ errorIconTemplate() {
123
+ return x`<wui-icon-box
124
+ size="xxs"
125
+ iconColor="error-100"
126
+ backgroundColor="error-100"
127
+ background="opaque"
128
+ icon="close"
129
+ borderColor="wui-color-bg-125"
130
+ ></wui-icon-box>`;
131
+ }
132
+ imageTemplate() {
133
+ const icon = this.icon || `https://avatar.vercel.sh/andrew.svg?size=50&text=${this.symbol}`;
134
+ return x`<wui-flex class="purchase-image-container">
135
+ <wui-image src=${icon}></wui-image>
136
+ </wui-flex>`;
137
+ }
138
+ boughtIconTemplate() {
139
+ return x`<wui-icon-box
140
+ size="xxs"
141
+ iconColor="success-100"
142
+ backgroundColor="success-100"
143
+ background="opaque"
144
+ icon="arrowBottom"
145
+ borderColor="wui-color-bg-125"
146
+ ></wui-icon-box>`;
147
+ }
148
+ };
149
+ W3mOnRampActivityItem.styles = [styles$8];
150
+ __decorate$a([
151
+ n({ type: Boolean })
152
+ ], W3mOnRampActivityItem.prototype, "disabled", void 0);
153
+ __decorate$a([
154
+ n()
155
+ ], W3mOnRampActivityItem.prototype, "color", void 0);
156
+ __decorate$a([
157
+ n()
158
+ ], W3mOnRampActivityItem.prototype, "label", void 0);
159
+ __decorate$a([
160
+ n()
161
+ ], W3mOnRampActivityItem.prototype, "purchaseValue", void 0);
162
+ __decorate$a([
163
+ n()
164
+ ], W3mOnRampActivityItem.prototype, "purchaseCurrency", void 0);
165
+ __decorate$a([
166
+ n()
167
+ ], W3mOnRampActivityItem.prototype, "date", void 0);
168
+ __decorate$a([
169
+ n({ type: Boolean })
170
+ ], W3mOnRampActivityItem.prototype, "completed", void 0);
171
+ __decorate$a([
172
+ n({ type: Boolean })
173
+ ], W3mOnRampActivityItem.prototype, "inProgress", void 0);
174
+ __decorate$a([
175
+ n({ type: Boolean })
176
+ ], W3mOnRampActivityItem.prototype, "failed", void 0);
177
+ __decorate$a([
178
+ n()
179
+ ], W3mOnRampActivityItem.prototype, "onClick", void 0);
180
+ __decorate$a([
181
+ n()
182
+ ], W3mOnRampActivityItem.prototype, "symbol", void 0);
183
+ __decorate$a([
184
+ n()
185
+ ], W3mOnRampActivityItem.prototype, "icon", void 0);
186
+ W3mOnRampActivityItem = __decorate$a([
187
+ customElement("w3m-onramp-activity-item")
188
+ ], W3mOnRampActivityItem);
189
+ const styles$7 = i`
190
+ :host > wui-flex {
191
+ height: 500px;
192
+ overflow-y: auto;
193
+ overflow-x: hidden;
194
+ scrollbar-width: none;
195
+ padding: var(--wui-spacing-m);
196
+ box-sizing: border-box;
197
+ display: flex;
198
+ align-items: center;
199
+ justify-content: flex-start;
200
+ }
201
+
202
+ :host > wui-flex::-webkit-scrollbar {
203
+ display: none;
204
+ }
205
+
206
+ :host > wui-flex > wui-flex {
207
+ width: 100%;
208
+ }
209
+
210
+ wui-transaction-list-item-loader {
211
+ width: 100%;
212
+ }
213
+ `;
214
+ var __decorate$9 = function(decorators, target, key, desc) {
215
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
216
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
217
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
218
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
219
+ };
220
+ const LOADING_ITEM_COUNT = 7;
221
+ let W3mOnRampActivityView = class W3mOnRampActivityView2 extends i$1 {
222
+ constructor() {
223
+ super();
224
+ this.unsubscribe = [];
225
+ this.selectedOnRampProvider = OnRampController.state.selectedProvider;
226
+ this.loading = false;
227
+ this.coinbaseTransactions = TransactionsController.state.coinbaseTransactions;
228
+ this.tokenImages = AssetController.state.tokenImages;
229
+ this.unsubscribe.push(...[
230
+ OnRampController.subscribeKey("selectedProvider", (val) => {
231
+ this.selectedOnRampProvider = val;
232
+ }),
233
+ AssetController.subscribeKey("tokenImages", (val) => this.tokenImages = val),
234
+ () => {
235
+ clearTimeout(this.refetchTimeout);
236
+ },
237
+ TransactionsController.subscribe((val) => {
238
+ this.coinbaseTransactions = { ...val.coinbaseTransactions };
239
+ })
240
+ ]);
241
+ TransactionsController.clearCursor();
242
+ this.fetchTransactions();
243
+ }
244
+ render() {
245
+ return x`
246
+ <wui-flex flexDirection="column" .padding=${["0", "s", "s", "s"]} gap="xs">
247
+ ${this.loading ? this.templateLoading() : this.templateTransactionsByYear()}
248
+ </wui-flex>
249
+ `;
250
+ }
251
+ templateTransactions(transactions) {
252
+ return transactions == null ? void 0 : transactions.map((transaction) => {
253
+ var _a, _b, _c;
254
+ const date = DateUtil.formatDate((_a = transaction == null ? void 0 : transaction.metadata) == null ? void 0 : _a.minedAt);
255
+ const transfer = transaction.transfers[0];
256
+ const fungibleInfo = transfer == null ? void 0 : transfer.fungible_info;
257
+ if (!fungibleInfo) {
258
+ return null;
259
+ }
260
+ const icon = ((_b = fungibleInfo == null ? void 0 : fungibleInfo.icon) == null ? void 0 : _b.url) || ((_c = this.tokenImages) == null ? void 0 : _c[fungibleInfo.symbol || ""]);
261
+ return x`
262
+ <w3m-onramp-activity-item
263
+ label="Bought"
264
+ .completed=${transaction.metadata.status === "ONRAMP_TRANSACTION_STATUS_SUCCESS"}
265
+ .inProgress=${transaction.metadata.status === "ONRAMP_TRANSACTION_STATUS_IN_PROGRESS"}
266
+ .failed=${transaction.metadata.status === "ONRAMP_TRANSACTION_STATUS_FAILED"}
267
+ purchaseCurrency=${o(fungibleInfo.symbol)}
268
+ purchaseValue=${transfer.quantity.numeric}
269
+ date=${date}
270
+ icon=${o(icon)}
271
+ symbol=${o(fungibleInfo.symbol)}
272
+ ></w3m-onramp-activity-item>
273
+ `;
274
+ });
275
+ }
276
+ templateTransactionsByYear() {
277
+ const sortedYearKeys = Object.keys(this.coinbaseTransactions).sort().reverse();
278
+ return sortedYearKeys.map((year) => {
279
+ const yearInt = parseInt(year, 10);
280
+ const sortedMonthIndexes = new Array(12).fill(null).map((_, idx) => idx).reverse();
281
+ return sortedMonthIndexes.map((month) => {
282
+ var _a;
283
+ const groupTitle = TransactionUtil.getTransactionGroupTitle(yearInt, month);
284
+ const transactions = (_a = this.coinbaseTransactions[yearInt]) == null ? void 0 : _a[month];
285
+ if (!transactions) {
286
+ return null;
287
+ }
288
+ return x`
289
+ <wui-flex flexDirection="column">
290
+ <wui-flex
291
+ alignItems="center"
292
+ flexDirection="row"
293
+ .padding=${["xs", "s", "s", "s"]}
294
+ >
295
+ <wui-text variant="paragraph-500" color="fg-200">${groupTitle}</wui-text>
296
+ </wui-flex>
297
+ <wui-flex flexDirection="column" gap="xs">
298
+ ${this.templateTransactions(transactions)}
299
+ </wui-flex>
300
+ </wui-flex>
301
+ `;
302
+ });
303
+ });
304
+ }
305
+ async fetchTransactions() {
306
+ {
307
+ await this.fetchCoinbaseTransactions();
308
+ }
309
+ }
310
+ async fetchCoinbaseTransactions() {
311
+ const address = AccountController.state.address;
312
+ const projectId = OptionsController.state.projectId;
313
+ if (!address) {
314
+ throw new Error("No address found");
315
+ }
316
+ if (!projectId) {
317
+ throw new Error("No projectId found");
318
+ }
319
+ this.loading = true;
320
+ await TransactionsController.fetchTransactions(address, "coinbase");
321
+ this.loading = false;
322
+ this.refetchLoadingTransactions();
323
+ }
324
+ refetchLoadingTransactions() {
325
+ var _a;
326
+ const today = /* @__PURE__ */ new Date();
327
+ const currentMonthTxs = ((_a = this.coinbaseTransactions[today.getFullYear()]) == null ? void 0 : _a[today.getMonth()]) || [];
328
+ const loadingTransactions = currentMonthTxs.filter((transaction) => transaction.metadata.status === "ONRAMP_TRANSACTION_STATUS_IN_PROGRESS");
329
+ if (loadingTransactions.length === 0) {
330
+ clearTimeout(this.refetchTimeout);
331
+ return;
332
+ }
333
+ this.refetchTimeout = setTimeout(async () => {
334
+ const address = AccountController.state.address;
335
+ await TransactionsController.fetchTransactions(address, "coinbase");
336
+ this.refetchLoadingTransactions();
337
+ }, 3e3);
338
+ }
339
+ templateLoading() {
340
+ return Array(LOADING_ITEM_COUNT).fill(x` <wui-transaction-list-item-loader></wui-transaction-list-item-loader> `).map((item) => item);
341
+ }
342
+ };
343
+ W3mOnRampActivityView.styles = styles$7;
344
+ __decorate$9([
345
+ r()
346
+ ], W3mOnRampActivityView.prototype, "selectedOnRampProvider", void 0);
347
+ __decorate$9([
348
+ r()
349
+ ], W3mOnRampActivityView.prototype, "loading", void 0);
350
+ __decorate$9([
351
+ r()
352
+ ], W3mOnRampActivityView.prototype, "coinbaseTransactions", void 0);
353
+ __decorate$9([
354
+ r()
355
+ ], W3mOnRampActivityView.prototype, "tokenImages", void 0);
356
+ W3mOnRampActivityView = __decorate$9([
357
+ customElement("w3m-onramp-activity-view")
358
+ ], W3mOnRampActivityView);
359
+ const styles$6 = i`
360
+ :host > wui-grid {
361
+ max-height: 360px;
362
+ overflow: auto;
363
+ }
364
+
365
+ wui-flex {
366
+ transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);
367
+ will-change: opacity;
368
+ }
369
+
370
+ wui-grid::-webkit-scrollbar {
371
+ display: none;
372
+ }
373
+
374
+ wui-flex.disabled {
375
+ opacity: 0.3;
376
+ pointer-events: none;
377
+ user-select: none;
378
+ }
379
+ `;
380
+ var __decorate$8 = function(decorators, target, key, desc) {
381
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
382
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
383
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
384
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
385
+ };
386
+ let W3mOnrampFiatSelectView = class W3mOnrampFiatSelectView2 extends i$1 {
387
+ constructor() {
388
+ super();
389
+ this.unsubscribe = [];
390
+ this.selectedCurrency = OnRampController.state.paymentCurrency;
391
+ this.currencies = OnRampController.state.paymentCurrencies;
392
+ this.currencyImages = AssetController.state.currencyImages;
393
+ this.checked = OptionsStateController.state.isLegalCheckboxChecked;
394
+ this.unsubscribe.push(...[
395
+ OnRampController.subscribe((val) => {
396
+ this.selectedCurrency = val.paymentCurrency;
397
+ this.currencies = val.paymentCurrencies;
398
+ }),
399
+ AssetController.subscribeKey("currencyImages", (val) => this.currencyImages = val),
400
+ OptionsStateController.subscribeKey("isLegalCheckboxChecked", (val) => {
401
+ this.checked = val;
402
+ })
403
+ ]);
404
+ }
405
+ disconnectedCallback() {
406
+ this.unsubscribe.forEach((unsubscribe) => unsubscribe());
407
+ }
408
+ render() {
409
+ var _a;
410
+ const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;
411
+ const legalCheckbox = (_a = OptionsController.state.features) == null ? void 0 : _a.legalCheckbox;
412
+ const legalUrl = termsConditionsUrl || privacyPolicyUrl;
413
+ const showLegalCheckbox = Boolean(legalUrl) && Boolean(legalCheckbox);
414
+ const disabled = showLegalCheckbox && !this.checked;
415
+ return x`
416
+ <w3m-legal-checkbox></w3m-legal-checkbox>
417
+ <wui-flex
418
+ flexDirection="column"
419
+ .padding=${["0", "s", "s", "s"]}
420
+ gap="xs"
421
+ class=${o(disabled ? "disabled" : void 0)}
422
+ >
423
+ ${this.currenciesTemplate(disabled)}
424
+ </wui-flex>
425
+ <w3m-legal-footer></w3m-legal-footer>
426
+ `;
427
+ }
428
+ currenciesTemplate(disabled = false) {
429
+ return this.currencies.map((currency) => {
430
+ var _a;
431
+ return x`
432
+ <wui-list-item
433
+ imageSrc=${o((_a = this.currencyImages) == null ? void 0 : _a[currency.id])}
434
+ @click=${() => this.selectCurrency(currency)}
435
+ variant="image"
436
+ tabIdx=${o(disabled ? -1 : void 0)}
437
+ >
438
+ <wui-text variant="paragraph-500" color="fg-100">${currency.id}</wui-text>
439
+ </wui-list-item>
440
+ `;
441
+ });
442
+ }
443
+ selectCurrency(currency) {
444
+ if (!currency) {
445
+ return;
446
+ }
447
+ OnRampController.setPaymentCurrency(currency);
448
+ ModalController.close();
449
+ }
450
+ };
451
+ W3mOnrampFiatSelectView.styles = styles$6;
452
+ __decorate$8([
453
+ r()
454
+ ], W3mOnrampFiatSelectView.prototype, "selectedCurrency", void 0);
455
+ __decorate$8([
456
+ r()
457
+ ], W3mOnrampFiatSelectView.prototype, "currencies", void 0);
458
+ __decorate$8([
459
+ r()
460
+ ], W3mOnrampFiatSelectView.prototype, "currencyImages", void 0);
461
+ __decorate$8([
462
+ r()
463
+ ], W3mOnrampFiatSelectView.prototype, "checked", void 0);
464
+ W3mOnrampFiatSelectView = __decorate$8([
465
+ customElement("w3m-onramp-fiat-select-view")
466
+ ], W3mOnrampFiatSelectView);
467
+ const styles$5 = i`
468
+ button {
469
+ padding: var(--wui-spacing-s);
470
+ border-radius: var(--wui-border-radius-xs);
471
+ border: none;
472
+ outline: none;
473
+ background-color: var(--wui-color-gray-glass-002);
474
+ width: 100%;
475
+ display: flex;
476
+ align-items: center;
477
+ justify-content: flex-start;
478
+ gap: var(--wui-spacing-s);
479
+ transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);
480
+ will-change: background-color;
481
+ }
482
+
483
+ button:hover {
484
+ background-color: var(--wui-color-gray-glass-005);
485
+ }
486
+
487
+ .provider-image {
488
+ width: var(--wui-spacing-3xl);
489
+ min-width: var(--wui-spacing-3xl);
490
+ height: var(--wui-spacing-3xl);
491
+ border-radius: calc(var(--wui-border-radius-xs) - calc(var(--wui-spacing-s) / 2));
492
+ position: relative;
493
+ overflow: hidden;
494
+ }
495
+
496
+ .provider-image::after {
497
+ content: '';
498
+ display: block;
499
+ width: 100%;
500
+ height: 100%;
501
+ position: absolute;
502
+ inset: 0;
503
+ border-radius: calc(var(--wui-border-radius-xs) - calc(var(--wui-spacing-s) / 2));
504
+ box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);
505
+ }
506
+
507
+ .network-icon {
508
+ width: var(--wui-spacing-m);
509
+ height: var(--wui-spacing-m);
510
+ border-radius: calc(var(--wui-spacing-m) / 2);
511
+ overflow: hidden;
512
+ box-shadow:
513
+ 0 0 0 3px var(--wui-color-gray-glass-002),
514
+ 0 0 0 3px var(--wui-color-modal-bg);
515
+ transition: box-shadow var(--wui-ease-out-power-1) var(--wui-duration-md);
516
+ will-change: box-shadow;
517
+ }
518
+
519
+ button:hover .network-icon {
520
+ box-shadow:
521
+ 0 0 0 3px var(--wui-color-gray-glass-005),
522
+ 0 0 0 3px var(--wui-color-modal-bg);
523
+ }
524
+ `;
525
+ var __decorate$7 = function(decorators, target, key, desc) {
526
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
527
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
528
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
529
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
530
+ };
531
+ let W3mOnRampProviderItem = class W3mOnRampProviderItem2 extends i$1 {
532
+ constructor() {
533
+ super(...arguments);
534
+ this.disabled = false;
535
+ this.color = "inherit";
536
+ this.label = "";
537
+ this.feeRange = "";
538
+ this.loading = false;
539
+ this.onClick = null;
540
+ }
541
+ render() {
542
+ return x`
543
+ <button ?disabled=${this.disabled} @click=${this.onClick} ontouchstart>
544
+ <wui-visual name=${o(this.name)} class="provider-image"></wui-visual>
545
+ <wui-flex flexDirection="column" gap="4xs">
546
+ <wui-text variant="paragraph-500" color="fg-100">${this.label}</wui-text>
547
+ <wui-flex alignItems="center" justifyContent="flex-start" gap="l">
548
+ <wui-text variant="tiny-500" color="fg-100">
549
+ <wui-text variant="tiny-400" color="fg-200">Fees</wui-text>
550
+ ${this.feeRange}
551
+ </wui-text>
552
+ <wui-flex gap="xxs">
553
+ <wui-icon name="bank" size="xs" color="fg-150"></wui-icon>
554
+ <wui-icon name="card" size="xs" color="fg-150"></wui-icon>
555
+ </wui-flex>
556
+ ${this.networksTemplate()}
557
+ </wui-flex>
558
+ </wui-flex>
559
+ ${this.loading ? x`<wui-loading-spinner color="fg-200" size="md"></wui-loading-spinner>` : x`<wui-icon name="chevronRight" color="fg-200" size="sm"></wui-icon>`}
560
+ </button>
561
+ `;
562
+ }
563
+ networksTemplate() {
564
+ var _a;
565
+ const requestedCaipNetworks = ChainController.getAllRequestedCaipNetworks();
566
+ const slicedNetworks = (_a = requestedCaipNetworks == null ? void 0 : requestedCaipNetworks.filter((network) => {
567
+ var _a2;
568
+ return (_a2 = network == null ? void 0 : network.assets) == null ? void 0 : _a2.imageId;
569
+ })) == null ? void 0 : _a.slice(0, 5);
570
+ return x`
571
+ <wui-flex class="networks">
572
+ ${slicedNetworks == null ? void 0 : slicedNetworks.map((network) => x`
573
+ <wui-flex class="network-icon">
574
+ <wui-image src=${o(AssetUtil.getNetworkImage(network))}></wui-image>
575
+ </wui-flex>
576
+ `)}
577
+ </wui-flex>
578
+ `;
579
+ }
580
+ };
581
+ W3mOnRampProviderItem.styles = [styles$5];
582
+ __decorate$7([
583
+ n({ type: Boolean })
584
+ ], W3mOnRampProviderItem.prototype, "disabled", void 0);
585
+ __decorate$7([
586
+ n()
587
+ ], W3mOnRampProviderItem.prototype, "color", void 0);
588
+ __decorate$7([
589
+ n()
590
+ ], W3mOnRampProviderItem.prototype, "name", void 0);
591
+ __decorate$7([
592
+ n()
593
+ ], W3mOnRampProviderItem.prototype, "label", void 0);
594
+ __decorate$7([
595
+ n()
596
+ ], W3mOnRampProviderItem.prototype, "feeRange", void 0);
597
+ __decorate$7([
598
+ n({ type: Boolean })
599
+ ], W3mOnRampProviderItem.prototype, "loading", void 0);
600
+ __decorate$7([
601
+ n()
602
+ ], W3mOnRampProviderItem.prototype, "onClick", void 0);
603
+ W3mOnRampProviderItem = __decorate$7([
604
+ customElement("w3m-onramp-provider-item")
605
+ ], W3mOnRampProviderItem);
606
+ const styles$4 = i`
607
+ wui-flex {
608
+ border-top: 1px solid var(--wui-color-gray-glass-005);
609
+ }
610
+
611
+ a {
612
+ text-decoration: none;
613
+ color: var(--wui-color-fg-175);
614
+ font-weight: 500;
615
+ display: flex;
616
+ align-items: center;
617
+ justify-content: center;
618
+ gap: var(--wui-spacing-3xs);
619
+ }
620
+ `;
621
+ var __decorate$6 = function(decorators, target, key, desc) {
622
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
623
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
624
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
625
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
626
+ };
627
+ let W3mOnRampProvidersFooter = class W3mOnRampProvidersFooter2 extends i$1 {
628
+ render() {
629
+ const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;
630
+ if (!termsConditionsUrl && !privacyPolicyUrl) {
631
+ return null;
632
+ }
633
+ return x`
634
+ <wui-flex
635
+ .padding=${["m", "s", "s", "s"]}
636
+ flexDirection="column"
637
+ alignItems="center"
638
+ justifyContent="center"
639
+ gap="s"
640
+ >
641
+ <wui-text color="fg-250" variant="small-400" align="center">
642
+ We work with the best providers to give you the lowest fees and best support. More options
643
+ coming soon!
644
+ </wui-text>
645
+
646
+ ${this.howDoesItWorkTemplate()}
647
+ </wui-flex>
648
+ `;
649
+ }
650
+ howDoesItWorkTemplate() {
651
+ return x` <wui-link @click=${this.onWhatIsBuy.bind(this)}>
652
+ <wui-icon size="xs" color="accent-100" slot="iconLeft" name="helpCircle"></wui-icon>
653
+ How does it work?
654
+ </wui-link>`;
655
+ }
656
+ onWhatIsBuy() {
657
+ const activeChainNamespace = ChainController.state.activeChain;
658
+ EventsController.sendEvent({
659
+ type: "track",
660
+ event: "SELECT_WHAT_IS_A_BUY",
661
+ properties: {
662
+ isSmartAccount: getPreferredAccountType(activeChainNamespace) === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT
663
+ }
664
+ });
665
+ RouterController.push("WhatIsABuy");
666
+ }
667
+ };
668
+ W3mOnRampProvidersFooter.styles = [styles$4];
669
+ W3mOnRampProvidersFooter = __decorate$6([
670
+ customElement("w3m-onramp-providers-footer")
671
+ ], W3mOnRampProvidersFooter);
672
+ var __decorate$5 = function(decorators, target, key, desc) {
673
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
674
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
675
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
676
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
677
+ };
678
+ let W3mOnRampProvidersView = class W3mOnRampProvidersView2 extends i$1 {
679
+ constructor() {
680
+ super();
681
+ this.unsubscribe = [];
682
+ this.providers = OnRampController.state.providers;
683
+ this.unsubscribe.push(...[
684
+ OnRampController.subscribeKey("providers", (val) => {
685
+ this.providers = val;
686
+ })
687
+ ]);
688
+ }
689
+ firstUpdated() {
690
+ const urlPromises = this.providers.map(async (provider) => {
691
+ if (provider.name === "coinbase") {
692
+ return await this.getCoinbaseOnRampURL();
693
+ }
694
+ return Promise.resolve(provider == null ? void 0 : provider.url);
695
+ });
696
+ Promise.all(urlPromises).then((urls) => {
697
+ this.providers = this.providers.map((provider, index) => ({
698
+ ...provider,
699
+ url: urls[index] || ""
700
+ }));
701
+ });
702
+ }
703
+ render() {
704
+ return x`
705
+ <wui-flex flexDirection="column" .padding=${["0", "s", "s", "s"]} gap="xs">
706
+ ${this.onRampProvidersTemplate()}
707
+ </wui-flex>
708
+ <w3m-onramp-providers-footer></w3m-onramp-providers-footer>
709
+ `;
710
+ }
711
+ onRampProvidersTemplate() {
712
+ return this.providers.filter((provider) => provider.supportedChains.includes(ChainController.state.activeChain ?? "eip155")).map((provider) => x`
713
+ <w3m-onramp-provider-item
714
+ label=${provider.label}
715
+ name=${provider.name}
716
+ feeRange=${provider.feeRange}
717
+ @click=${() => {
718
+ this.onClickProvider(provider);
719
+ }}
720
+ ?disabled=${!provider.url}
721
+ data-testid=${`onramp-provider-${provider.name}`}
722
+ ></w3m-onramp-provider-item>
723
+ `);
724
+ }
725
+ onClickProvider(provider) {
726
+ var _a;
727
+ const activeChainNamespace = ChainController.state.activeChain;
728
+ OnRampController.setSelectedProvider(provider);
729
+ RouterController.push("BuyInProgress");
730
+ CoreHelperUtil.openHref(((_a = OnRampController.state.selectedProvider) == null ? void 0 : _a.url) || provider.url, "popupWindow", "width=600,height=800,scrollbars=yes");
731
+ EventsController.sendEvent({
732
+ type: "track",
733
+ event: "SELECT_BUY_PROVIDER",
734
+ properties: {
735
+ provider: provider.name,
736
+ isSmartAccount: getPreferredAccountType(activeChainNamespace) === W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT
737
+ }
738
+ });
739
+ }
740
+ async getCoinbaseOnRampURL() {
741
+ const address = AccountController.state.address;
742
+ const network = ChainController.state.activeCaipNetwork;
743
+ if (!address) {
744
+ throw new Error("No address found");
745
+ }
746
+ if (!(network == null ? void 0 : network.name)) {
747
+ throw new Error("No network found");
748
+ }
749
+ const defaultNetwork = ConstantsUtil.WC_COINBASE_PAY_SDK_CHAIN_NAME_MAP[network.name] ?? ConstantsUtil.WC_COINBASE_PAY_SDK_FALLBACK_CHAIN;
750
+ const purchaseCurrency = OnRampController.state.purchaseCurrency;
751
+ const assets = purchaseCurrency ? [purchaseCurrency.symbol] : OnRampController.state.purchaseCurrencies.map((currency) => currency.symbol);
752
+ return await BlockchainApiController.generateOnRampURL({
753
+ defaultNetwork,
754
+ destinationWallets: [
755
+ { address, blockchains: ConstantsUtil.WC_COINBASE_PAY_SDK_CHAINS, assets }
756
+ ],
757
+ partnerUserId: address,
758
+ purchaseAmount: OnRampController.state.purchaseAmount
759
+ });
760
+ }
761
+ };
762
+ __decorate$5([
763
+ r()
764
+ ], W3mOnRampProvidersView.prototype, "providers", void 0);
765
+ W3mOnRampProvidersView = __decorate$5([
766
+ customElement("w3m-onramp-providers-view")
767
+ ], W3mOnRampProvidersView);
768
+ const styles$3 = i`
769
+ :host > wui-grid {
770
+ max-height: 360px;
771
+ overflow: auto;
772
+ }
773
+
774
+ wui-flex {
775
+ transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);
776
+ will-change: opacity;
777
+ }
778
+
779
+ wui-grid::-webkit-scrollbar {
780
+ display: none;
781
+ }
782
+
783
+ wui-flex.disabled {
784
+ opacity: 0.3;
785
+ pointer-events: none;
786
+ user-select: none;
787
+ }
788
+ `;
789
+ var __decorate$4 = function(decorators, target, key, desc) {
790
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
791
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
792
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
793
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
794
+ };
795
+ let W3mOnrampTokensView = class W3mOnrampTokensView2 extends i$1 {
796
+ constructor() {
797
+ super();
798
+ this.unsubscribe = [];
799
+ this.selectedCurrency = OnRampController.state.purchaseCurrencies;
800
+ this.tokens = OnRampController.state.purchaseCurrencies;
801
+ this.tokenImages = AssetController.state.tokenImages;
802
+ this.checked = OptionsStateController.state.isLegalCheckboxChecked;
803
+ this.unsubscribe.push(...[
804
+ OnRampController.subscribe((val) => {
805
+ this.selectedCurrency = val.purchaseCurrencies;
806
+ this.tokens = val.purchaseCurrencies;
807
+ }),
808
+ AssetController.subscribeKey("tokenImages", (val) => this.tokenImages = val),
809
+ OptionsStateController.subscribeKey("isLegalCheckboxChecked", (val) => {
810
+ this.checked = val;
811
+ })
812
+ ]);
813
+ }
814
+ disconnectedCallback() {
815
+ this.unsubscribe.forEach((unsubscribe) => unsubscribe());
816
+ }
817
+ render() {
818
+ var _a;
819
+ const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;
820
+ const legalCheckbox = (_a = OptionsController.state.features) == null ? void 0 : _a.legalCheckbox;
821
+ const legalUrl = termsConditionsUrl || privacyPolicyUrl;
822
+ const showLegalCheckbox = Boolean(legalUrl) && Boolean(legalCheckbox);
823
+ const disabled = showLegalCheckbox && !this.checked;
824
+ return x`
825
+ <w3m-legal-checkbox></w3m-legal-checkbox>
826
+ <wui-flex
827
+ flexDirection="column"
828
+ .padding=${["0", "s", "s", "s"]}
829
+ gap="xs"
830
+ class=${o(disabled ? "disabled" : void 0)}
831
+ >
832
+ ${this.currenciesTemplate(disabled)}
833
+ </wui-flex>
834
+ <w3m-legal-footer></w3m-legal-footer>
835
+ `;
836
+ }
837
+ currenciesTemplate(disabled = false) {
838
+ return this.tokens.map((token) => {
839
+ var _a;
840
+ return x`
841
+ <wui-list-item
842
+ imageSrc=${o((_a = this.tokenImages) == null ? void 0 : _a[token.symbol])}
843
+ @click=${() => this.selectToken(token)}
844
+ variant="image"
845
+ tabIdx=${o(disabled ? -1 : void 0)}
846
+ >
847
+ <wui-flex gap="3xs" alignItems="center">
848
+ <wui-text variant="paragraph-500" color="fg-100">${token.name}</wui-text>
849
+ <wui-text variant="small-400" color="fg-200">${token.symbol}</wui-text>
850
+ </wui-flex>
851
+ </wui-list-item>
852
+ `;
853
+ });
854
+ }
855
+ selectToken(currency) {
856
+ if (!currency) {
857
+ return;
858
+ }
859
+ OnRampController.setPurchaseCurrency(currency);
860
+ ModalController.close();
861
+ }
862
+ };
863
+ W3mOnrampTokensView.styles = styles$3;
864
+ __decorate$4([
865
+ r()
866
+ ], W3mOnrampTokensView.prototype, "selectedCurrency", void 0);
867
+ __decorate$4([
868
+ r()
869
+ ], W3mOnrampTokensView.prototype, "tokens", void 0);
870
+ __decorate$4([
871
+ r()
872
+ ], W3mOnrampTokensView.prototype, "tokenImages", void 0);
873
+ __decorate$4([
874
+ r()
875
+ ], W3mOnrampTokensView.prototype, "checked", void 0);
876
+ W3mOnrampTokensView = __decorate$4([
877
+ customElement("w3m-onramp-token-select-view")
878
+ ], W3mOnrampTokensView);
879
+ const styles$2 = i`
880
+ @keyframes shake {
881
+ 0% {
882
+ transform: translateX(0);
883
+ }
884
+ 25% {
885
+ transform: translateX(3px);
886
+ }
887
+ 50% {
888
+ transform: translateX(-3px);
889
+ }
890
+ 75% {
891
+ transform: translateX(3px);
892
+ }
893
+ 100% {
894
+ transform: translateX(0);
895
+ }
896
+ }
897
+
898
+ wui-flex:first-child:not(:only-child) {
899
+ position: relative;
900
+ }
901
+
902
+ wui-loading-thumbnail {
903
+ position: absolute;
904
+ }
905
+
906
+ wui-visual {
907
+ width: var(--wui-wallet-image-size-lg);
908
+ height: var(--wui-wallet-image-size-lg);
909
+ border-radius: calc(var(--wui-border-radius-5xs) * 9 - var(--wui-border-radius-xxs));
910
+ position: relative;
911
+ overflow: hidden;
912
+ }
913
+
914
+ wui-visual::after {
915
+ content: '';
916
+ display: block;
917
+ width: 100%;
918
+ height: 100%;
919
+ position: absolute;
920
+ inset: 0;
921
+ border-radius: calc(var(--wui-border-radius-5xs) * 9 - var(--wui-border-radius-xxs));
922
+ box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);
923
+ }
924
+
925
+ wui-icon-box {
926
+ position: absolute;
927
+ right: calc(var(--wui-spacing-3xs) * -1);
928
+ bottom: calc(var(--wui-spacing-3xs) * -1);
929
+ opacity: 0;
930
+ transform: scale(0.5);
931
+ transition:
932
+ opacity var(--wui-ease-out-power-2) var(--wui-duration-lg),
933
+ transform var(--wui-ease-out-power-2) var(--wui-duration-lg);
934
+ will-change: opacity, transform;
935
+ }
936
+
937
+ wui-text[align='center'] {
938
+ width: 100%;
939
+ padding: 0px var(--wui-spacing-l);
940
+ }
941
+
942
+ [data-error='true'] wui-icon-box {
943
+ opacity: 1;
944
+ transform: scale(1);
945
+ }
946
+
947
+ [data-error='true'] > wui-flex:first-child {
948
+ animation: shake 250ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
949
+ }
950
+
951
+ [data-retry='false'] wui-link {
952
+ display: none;
953
+ }
954
+
955
+ [data-retry='true'] wui-link {
956
+ display: block;
957
+ opacity: 1;
958
+ }
959
+
960
+ wui-link {
961
+ padding: var(--wui-spacing-4xs) var(--wui-spacing-xxs);
962
+ }
963
+ `;
964
+ var __decorate$3 = function(decorators, target, key, desc) {
965
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
966
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
967
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
968
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
969
+ };
970
+ let W3mBuyInProgressView = class W3mBuyInProgressView2 extends i$1 {
971
+ constructor() {
972
+ super();
973
+ this.unsubscribe = [];
974
+ this.selectedOnRampProvider = OnRampController.state.selectedProvider;
975
+ this.uri = ConnectionController.state.wcUri;
976
+ this.ready = false;
977
+ this.showRetry = false;
978
+ this.buffering = false;
979
+ this.error = false;
980
+ this.startTime = null;
981
+ this.isMobile = false;
982
+ this.onRetry = void 0;
983
+ this.unsubscribe.push(...[
984
+ OnRampController.subscribeKey("selectedProvider", (val) => {
985
+ this.selectedOnRampProvider = val;
986
+ })
987
+ ]);
988
+ this.watchTransactions();
989
+ }
990
+ disconnectedCallback() {
991
+ if (this.intervalId) {
992
+ clearInterval(this.intervalId);
993
+ }
994
+ }
995
+ render() {
996
+ var _a, _b;
997
+ let label = "Continue in external window";
998
+ if (this.error) {
999
+ label = "Buy failed";
1000
+ } else if (this.selectedOnRampProvider) {
1001
+ label = `Buy in ${(_a = this.selectedOnRampProvider) == null ? void 0 : _a.label}`;
1002
+ }
1003
+ const subLabel = this.error ? "Buy can be declined from your side or due to and error on the provider app" : `We’ll notify you once your Buy is processed`;
1004
+ return x`
1005
+ <wui-flex
1006
+ data-error=${o(this.error)}
1007
+ data-retry=${this.showRetry}
1008
+ flexDirection="column"
1009
+ alignItems="center"
1010
+ .padding=${["3xl", "xl", "xl", "xl"]}
1011
+ gap="xl"
1012
+ >
1013
+ <wui-flex justifyContent="center" alignItems="center">
1014
+ <wui-visual
1015
+ name=${o((_b = this.selectedOnRampProvider) == null ? void 0 : _b.name)}
1016
+ size="lg"
1017
+ class="provider-image"
1018
+ >
1019
+ </wui-visual>
1020
+
1021
+ ${this.error ? null : this.loaderTemplate()}
1022
+
1023
+ <wui-icon-box
1024
+ backgroundColor="error-100"
1025
+ background="opaque"
1026
+ iconColor="error-100"
1027
+ icon="close"
1028
+ size="sm"
1029
+ border
1030
+ borderColor="wui-color-bg-125"
1031
+ ></wui-icon-box>
1032
+ </wui-flex>
1033
+
1034
+ <wui-flex flexDirection="column" alignItems="center" gap="xs">
1035
+ <wui-text variant="paragraph-500" color=${this.error ? "error-100" : "fg-100"}>
1036
+ ${label}
1037
+ </wui-text>
1038
+ <wui-text align="center" variant="small-500" color="fg-200">${subLabel}</wui-text>
1039
+ </wui-flex>
1040
+
1041
+ ${this.error ? this.tryAgainTemplate() : null}
1042
+ </wui-flex>
1043
+
1044
+ <wui-flex .padding=${["0", "xl", "xl", "xl"]} justifyContent="center">
1045
+ <wui-link @click=${this.onCopyUri} color="fg-200">
1046
+ <wui-icon size="xs" color="fg-200" slot="iconLeft" name="copy"></wui-icon>
1047
+ Copy link
1048
+ </wui-link>
1049
+ </wui-flex>
1050
+ `;
1051
+ }
1052
+ watchTransactions() {
1053
+ if (!this.selectedOnRampProvider) {
1054
+ return;
1055
+ }
1056
+ switch (this.selectedOnRampProvider.name) {
1057
+ case "coinbase":
1058
+ this.startTime = Date.now();
1059
+ this.initializeCoinbaseTransactions();
1060
+ break;
1061
+ }
1062
+ }
1063
+ async initializeCoinbaseTransactions() {
1064
+ await this.watchCoinbaseTransactions();
1065
+ this.intervalId = setInterval(() => this.watchCoinbaseTransactions(), 4e3);
1066
+ }
1067
+ async watchCoinbaseTransactions() {
1068
+ try {
1069
+ const address = AccountController.state.address;
1070
+ if (!address) {
1071
+ throw new Error("No address found");
1072
+ }
1073
+ const coinbaseResponse = await BlockchainApiController.fetchTransactions({
1074
+ account: address,
1075
+ onramp: "coinbase"
1076
+ });
1077
+ const newTransactions = coinbaseResponse.data.filter((tx) => new Date(tx.metadata.minedAt) > new Date(this.startTime) || tx.metadata.status === "ONRAMP_TRANSACTION_STATUS_IN_PROGRESS");
1078
+ if (newTransactions.length) {
1079
+ clearInterval(this.intervalId);
1080
+ RouterController.replace("OnRampActivity");
1081
+ } else if (this.startTime && Date.now() - this.startTime >= 18e4) {
1082
+ clearInterval(this.intervalId);
1083
+ this.error = true;
1084
+ }
1085
+ } catch (error) {
1086
+ SnackController.showError(error);
1087
+ }
1088
+ }
1089
+ onTryAgain() {
1090
+ if (!this.selectedOnRampProvider) {
1091
+ return;
1092
+ }
1093
+ this.error = false;
1094
+ CoreHelperUtil.openHref(this.selectedOnRampProvider.url, "popupWindow", "width=600,height=800,scrollbars=yes");
1095
+ }
1096
+ tryAgainTemplate() {
1097
+ var _a;
1098
+ if (!((_a = this.selectedOnRampProvider) == null ? void 0 : _a.url)) {
1099
+ return null;
1100
+ }
1101
+ return x`<wui-button size="md" variant="accent" @click=${this.onTryAgain.bind(this)}>
1102
+ <wui-icon color="inherit" slot="iconLeft" name="refresh"></wui-icon>
1103
+ Try again
1104
+ </wui-button>`;
1105
+ }
1106
+ loaderTemplate() {
1107
+ const borderRadiusMaster = ThemeController.state.themeVariables["--w3m-border-radius-master"];
1108
+ const radius = borderRadiusMaster ? parseInt(borderRadiusMaster.replace("px", ""), 10) : 4;
1109
+ return x`<wui-loading-thumbnail radius=${radius * 9}></wui-loading-thumbnail>`;
1110
+ }
1111
+ onCopyUri() {
1112
+ var _a;
1113
+ if (!((_a = this.selectedOnRampProvider) == null ? void 0 : _a.url)) {
1114
+ SnackController.showError("No link found");
1115
+ RouterController.goBack();
1116
+ return;
1117
+ }
1118
+ try {
1119
+ CoreHelperUtil.copyToClopboard(this.selectedOnRampProvider.url);
1120
+ SnackController.showSuccess("Link copied");
1121
+ } catch {
1122
+ SnackController.showError("Failed to copy");
1123
+ }
1124
+ }
1125
+ };
1126
+ W3mBuyInProgressView.styles = styles$2;
1127
+ __decorate$3([
1128
+ r()
1129
+ ], W3mBuyInProgressView.prototype, "intervalId", void 0);
1130
+ __decorate$3([
1131
+ r()
1132
+ ], W3mBuyInProgressView.prototype, "selectedOnRampProvider", void 0);
1133
+ __decorate$3([
1134
+ r()
1135
+ ], W3mBuyInProgressView.prototype, "uri", void 0);
1136
+ __decorate$3([
1137
+ r()
1138
+ ], W3mBuyInProgressView.prototype, "ready", void 0);
1139
+ __decorate$3([
1140
+ r()
1141
+ ], W3mBuyInProgressView.prototype, "showRetry", void 0);
1142
+ __decorate$3([
1143
+ r()
1144
+ ], W3mBuyInProgressView.prototype, "buffering", void 0);
1145
+ __decorate$3([
1146
+ r()
1147
+ ], W3mBuyInProgressView.prototype, "error", void 0);
1148
+ __decorate$3([
1149
+ r()
1150
+ ], W3mBuyInProgressView.prototype, "startTime", void 0);
1151
+ __decorate$3([
1152
+ n({ type: Boolean })
1153
+ ], W3mBuyInProgressView.prototype, "isMobile", void 0);
1154
+ __decorate$3([
1155
+ n()
1156
+ ], W3mBuyInProgressView.prototype, "onRetry", void 0);
1157
+ W3mBuyInProgressView = __decorate$3([
1158
+ customElement("w3m-buy-in-progress-view")
1159
+ ], W3mBuyInProgressView);
1160
+ var __decorate$2 = function(decorators, target, key, desc) {
1161
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1162
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
1163
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
1164
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
1165
+ };
1166
+ let W3mWhatIsABuyView = class W3mWhatIsABuyView2 extends i$1 {
1167
+ render() {
1168
+ return x`
1169
+ <wui-flex
1170
+ flexDirection="column"
1171
+ .padding=${["xxl", "3xl", "xl", "3xl"]}
1172
+ alignItems="center"
1173
+ gap="xl"
1174
+ >
1175
+ <wui-visual name="onrampCard"></wui-visual>
1176
+ <wui-flex flexDirection="column" gap="xs" alignItems="center">
1177
+ <wui-text align="center" variant="paragraph-500" color="fg-100">
1178
+ Quickly and easily buy digital assets!
1179
+ </wui-text>
1180
+ <wui-text align="center" variant="small-400" color="fg-200">
1181
+ Simply select your preferred onramp provider and add digital assets to your account
1182
+ using your credit card or bank transfer
1183
+ </wui-text>
1184
+ </wui-flex>
1185
+ <wui-button @click=${RouterController.goBack}>
1186
+ <wui-icon size="sm" color="inherit" name="add" slot="iconLeft"></wui-icon>
1187
+ Buy
1188
+ </wui-button>
1189
+ </wui-flex>
1190
+ `;
1191
+ }
1192
+ };
1193
+ W3mWhatIsABuyView = __decorate$2([
1194
+ customElement("w3m-what-is-a-buy-view")
1195
+ ], W3mWhatIsABuyView);
1196
+ const styles$1 = i`
1197
+ :host {
1198
+ width: 100%;
1199
+ }
1200
+
1201
+ wui-loading-spinner {
1202
+ position: absolute;
1203
+ top: 50%;
1204
+ right: 20px;
1205
+ transform: translateY(-50%);
1206
+ }
1207
+
1208
+ .currency-container {
1209
+ position: absolute;
1210
+ top: 50%;
1211
+ transform: translateY(-50%);
1212
+ right: var(--wui-spacing-1xs);
1213
+ height: 40px;
1214
+ padding: var(--wui-spacing-xs) var(--wui-spacing-1xs) var(--wui-spacing-xs)
1215
+ var(--wui-spacing-xs);
1216
+ min-width: 95px;
1217
+ border-radius: var(--FULL, 1000px);
1218
+ border: 1px solid var(--wui-color-gray-glass-002);
1219
+ background: var(--wui-color-gray-glass-002);
1220
+ cursor: pointer;
1221
+ }
1222
+
1223
+ .currency-container > wui-image {
1224
+ height: 24px;
1225
+ width: 24px;
1226
+ border-radius: 50%;
1227
+ }
1228
+ `;
1229
+ var __decorate$1 = function(decorators, target, key, desc) {
1230
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1231
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
1232
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
1233
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
1234
+ };
1235
+ let W3mInputCurrency = class W3mInputCurrency2 extends i$1 {
1236
+ constructor() {
1237
+ var _a;
1238
+ super();
1239
+ this.unsubscribe = [];
1240
+ this.type = "Token";
1241
+ this.value = 0;
1242
+ this.currencies = [];
1243
+ this.selectedCurrency = (_a = this.currencies) == null ? void 0 : _a[0];
1244
+ this.currencyImages = AssetController.state.currencyImages;
1245
+ this.tokenImages = AssetController.state.tokenImages;
1246
+ this.unsubscribe.push(OnRampController.subscribeKey("purchaseCurrency", (val) => {
1247
+ if (!val || this.type === "Fiat") {
1248
+ return;
1249
+ }
1250
+ this.selectedCurrency = this.formatPurchaseCurrency(val);
1251
+ }), OnRampController.subscribeKey("paymentCurrency", (val) => {
1252
+ if (!val || this.type === "Token") {
1253
+ return;
1254
+ }
1255
+ this.selectedCurrency = this.formatPaymentCurrency(val);
1256
+ }), OnRampController.subscribe((val) => {
1257
+ if (this.type === "Fiat") {
1258
+ this.currencies = val.purchaseCurrencies.map(this.formatPurchaseCurrency);
1259
+ } else {
1260
+ this.currencies = val.paymentCurrencies.map(this.formatPaymentCurrency);
1261
+ }
1262
+ }), AssetController.subscribe((val) => {
1263
+ this.currencyImages = { ...val.currencyImages };
1264
+ this.tokenImages = { ...val.tokenImages };
1265
+ }));
1266
+ }
1267
+ firstUpdated() {
1268
+ OnRampController.getAvailableCurrencies();
1269
+ }
1270
+ disconnectedCallback() {
1271
+ this.unsubscribe.forEach((unsubscribe) => unsubscribe());
1272
+ }
1273
+ render() {
1274
+ var _a;
1275
+ const symbol = ((_a = this.selectedCurrency) == null ? void 0 : _a.symbol) || "";
1276
+ const image = this.currencyImages[symbol] || this.tokenImages[symbol];
1277
+ return x`<wui-input-text type="number" size="lg" value=${this.value}>
1278
+ ${this.selectedCurrency ? x` <wui-flex
1279
+ class="currency-container"
1280
+ justifyContent="space-between"
1281
+ alignItems="center"
1282
+ gap="xxs"
1283
+ @click=${() => ModalController.open({ view: `OnRamp${this.type}Select` })}
1284
+ >
1285
+ <wui-image src=${o(image)}></wui-image>
1286
+ <wui-text color="fg-100">${this.selectedCurrency.symbol}</wui-text>
1287
+ </wui-flex>` : x`<wui-loading-spinner></wui-loading-spinner>`}
1288
+ </wui-input-text>`;
1289
+ }
1290
+ formatPaymentCurrency(currency) {
1291
+ return {
1292
+ name: currency.id,
1293
+ symbol: currency.id
1294
+ };
1295
+ }
1296
+ formatPurchaseCurrency(currency) {
1297
+ return {
1298
+ name: currency.name,
1299
+ symbol: currency.symbol
1300
+ };
1301
+ }
1302
+ };
1303
+ W3mInputCurrency.styles = styles$1;
1304
+ __decorate$1([
1305
+ n({ type: String })
1306
+ ], W3mInputCurrency.prototype, "type", void 0);
1307
+ __decorate$1([
1308
+ n({ type: Number })
1309
+ ], W3mInputCurrency.prototype, "value", void 0);
1310
+ __decorate$1([
1311
+ r()
1312
+ ], W3mInputCurrency.prototype, "currencies", void 0);
1313
+ __decorate$1([
1314
+ r()
1315
+ ], W3mInputCurrency.prototype, "selectedCurrency", void 0);
1316
+ __decorate$1([
1317
+ r()
1318
+ ], W3mInputCurrency.prototype, "currencyImages", void 0);
1319
+ __decorate$1([
1320
+ r()
1321
+ ], W3mInputCurrency.prototype, "tokenImages", void 0);
1322
+ W3mInputCurrency = __decorate$1([
1323
+ customElement("w3m-onramp-input")
1324
+ ], W3mInputCurrency);
1325
+ const styles = i`
1326
+ :host > wui-flex {
1327
+ width: 100%;
1328
+ max-width: 360px;
1329
+ }
1330
+
1331
+ :host > wui-flex > wui-flex {
1332
+ border-radius: var(--wui-border-radius-l);
1333
+ width: 100%;
1334
+ }
1335
+
1336
+ .amounts-container {
1337
+ width: 100%;
1338
+ }
1339
+ `;
1340
+ var __decorate = function(decorators, target, key, desc) {
1341
+ var c = arguments.length, r2 = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1342
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r2 = Reflect.decorate(decorators, target, key, desc);
1343
+ else for (var i2 = decorators.length - 1; i2 >= 0; i2--) if (d = decorators[i2]) r2 = (c < 3 ? d(r2) : c > 3 ? d(target, key, r2) : d(target, key)) || r2;
1344
+ return c > 3 && r2 && Object.defineProperty(target, key, r2), r2;
1345
+ };
1346
+ const PAYMENT_CURRENCY_SYMBOLS = {
1347
+ USD: "$",
1348
+ EUR: "€",
1349
+ GBP: "£"
1350
+ };
1351
+ const BUY_PRESET_AMOUNTS = [100, 250, 500, 1e3];
1352
+ let W3mOnrampWidget = class W3mOnrampWidget2 extends i$1 {
1353
+ constructor() {
1354
+ super();
1355
+ this.unsubscribe = [];
1356
+ this.disabled = false;
1357
+ this.caipAddress = ChainController.state.activeCaipAddress;
1358
+ this.loading = ModalController.state.loading;
1359
+ this.paymentCurrency = OnRampController.state.paymentCurrency;
1360
+ this.paymentAmount = OnRampController.state.paymentAmount;
1361
+ this.purchaseAmount = OnRampController.state.purchaseAmount;
1362
+ this.quoteLoading = OnRampController.state.quotesLoading;
1363
+ this.unsubscribe.push(...[
1364
+ ChainController.subscribeKey("activeCaipAddress", (val) => this.caipAddress = val),
1365
+ ModalController.subscribeKey("loading", (val) => {
1366
+ this.loading = val;
1367
+ }),
1368
+ OnRampController.subscribe((val) => {
1369
+ this.paymentCurrency = val.paymentCurrency;
1370
+ this.paymentAmount = val.paymentAmount;
1371
+ this.purchaseAmount = val.purchaseAmount;
1372
+ this.quoteLoading = val.quotesLoading;
1373
+ })
1374
+ ]);
1375
+ }
1376
+ disconnectedCallback() {
1377
+ this.unsubscribe.forEach((unsubscribe) => unsubscribe());
1378
+ }
1379
+ render() {
1380
+ return x`
1381
+ <wui-flex flexDirection="column" justifyContent="center" alignItems="center">
1382
+ <wui-flex flexDirection="column" alignItems="center" gap="xs">
1383
+ <w3m-onramp-input
1384
+ type="Fiat"
1385
+ @inputChange=${this.onPaymentAmountChange.bind(this)}
1386
+ .value=${this.paymentAmount || 0}
1387
+ ></w3m-onramp-input>
1388
+ <w3m-onramp-input
1389
+ type="Token"
1390
+ .value=${this.purchaseAmount || 0}
1391
+ .loading=${this.quoteLoading}
1392
+ ></w3m-onramp-input>
1393
+ <wui-flex justifyContent="space-evenly" class="amounts-container" gap="xs">
1394
+ ${BUY_PRESET_AMOUNTS.map((amount) => {
1395
+ var _a;
1396
+ return x`<wui-button
1397
+ variant=${this.paymentAmount === amount ? "accent" : "neutral"}
1398
+ size="md"
1399
+ textVariant="paragraph-600"
1400
+ fullWidth
1401
+ @click=${() => this.selectPresetAmount(amount)}
1402
+ >${`${PAYMENT_CURRENCY_SYMBOLS[((_a = this.paymentCurrency) == null ? void 0 : _a.id) || "USD"]} ${amount}`}</wui-button
1403
+ >`;
1404
+ })}
1405
+ </wui-flex>
1406
+ ${this.templateButton()}
1407
+ </wui-flex>
1408
+ </wui-flex>
1409
+ `;
1410
+ }
1411
+ templateButton() {
1412
+ return this.caipAddress ? x`<wui-button
1413
+ @click=${this.getQuotes.bind(this)}
1414
+ variant="main"
1415
+ fullWidth
1416
+ size="lg"
1417
+ borderRadius="xs"
1418
+ >
1419
+ Get quotes
1420
+ </wui-button>` : x`<wui-button
1421
+ @click=${this.openModal.bind(this)}
1422
+ variant="accent"
1423
+ fullWidth
1424
+ size="lg"
1425
+ borderRadius="xs"
1426
+ >
1427
+ Connect wallet
1428
+ </wui-button>`;
1429
+ }
1430
+ getQuotes() {
1431
+ if (!this.loading) {
1432
+ ModalController.open({ view: "OnRampProviders" });
1433
+ }
1434
+ }
1435
+ openModal() {
1436
+ ModalController.open({ view: "Connect" });
1437
+ }
1438
+ async onPaymentAmountChange(event) {
1439
+ OnRampController.setPaymentAmount(Number(event.detail));
1440
+ await OnRampController.getQuote();
1441
+ }
1442
+ async selectPresetAmount(amount) {
1443
+ OnRampController.setPaymentAmount(amount);
1444
+ await OnRampController.getQuote();
1445
+ }
1446
+ };
1447
+ W3mOnrampWidget.styles = styles;
1448
+ __decorate([
1449
+ n({ type: Boolean })
1450
+ ], W3mOnrampWidget.prototype, "disabled", void 0);
1451
+ __decorate([
1452
+ r()
1453
+ ], W3mOnrampWidget.prototype, "caipAddress", void 0);
1454
+ __decorate([
1455
+ r()
1456
+ ], W3mOnrampWidget.prototype, "loading", void 0);
1457
+ __decorate([
1458
+ r()
1459
+ ], W3mOnrampWidget.prototype, "paymentCurrency", void 0);
1460
+ __decorate([
1461
+ r()
1462
+ ], W3mOnrampWidget.prototype, "paymentAmount", void 0);
1463
+ __decorate([
1464
+ r()
1465
+ ], W3mOnrampWidget.prototype, "purchaseAmount", void 0);
1466
+ __decorate([
1467
+ r()
1468
+ ], W3mOnrampWidget.prototype, "quoteLoading", void 0);
1469
+ W3mOnrampWidget = __decorate([
1470
+ customElement("w3m-onramp-widget")
1471
+ ], W3mOnrampWidget);
1472
+ export {
1473
+ W3mBuyInProgressView,
1474
+ W3mOnRampActivityView,
1475
+ W3mOnRampProvidersView,
1476
+ W3mOnrampFiatSelectView,
1477
+ W3mOnrampTokensView,
1478
+ W3mOnrampWidget,
1479
+ W3mWhatIsABuyView
1480
+ };