@orderly.network/hooks 1.2.0 → 1.3.2

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 (371) hide show
  1. package/esm/configProvider.d.ts +7 -1
  2. package/esm/configProvider.d.ts.map +1 -1
  3. package/esm/configProvider.js +44 -18
  4. package/esm/configProvider.js.map +1 -0
  5. package/esm/dataProvider.js +24 -19
  6. package/esm/dataProvider.js.map +1 -0
  7. package/esm/index.d.ts +1 -0
  8. package/esm/index.d.ts.map +1 -1
  9. package/esm/index.js +4 -1
  10. package/esm/index.js.map +1 -0
  11. package/esm/middleware/signatureMiddleware.js +9 -8
  12. package/esm/middleware/signatureMiddleware.js.map +1 -0
  13. package/esm/orderly/orderbook.service.js +39 -28
  14. package/esm/orderly/orderbook.service.js.map +1 -0
  15. package/esm/orderly/orderlyHooks.d.ts +3 -0
  16. package/esm/orderly/orderlyHooks.d.ts.map +1 -1
  17. package/esm/orderly/orderlyHooks.js +2 -0
  18. package/esm/orderly/orderlyHooks.js.map +1 -0
  19. package/esm/orderly/useAccountInfo.js +3 -1
  20. package/esm/orderly/useAccountInfo.js.map +1 -0
  21. package/esm/orderly/useChain.js +16 -9
  22. package/esm/orderly/useChain.js.map +1 -0
  23. package/esm/orderly/useChains.d.ts +11 -12
  24. package/esm/orderly/useChains.d.ts.map +1 -1
  25. package/esm/orderly/useChains.js +68 -46
  26. package/esm/orderly/useChains.js.map +1 -0
  27. package/esm/orderly/useCollateral.d.ts +3 -4
  28. package/esm/orderly/useCollateral.d.ts.map +1 -1
  29. package/esm/orderly/useCollateral.js +53 -20
  30. package/esm/orderly/useCollateral.js.map +1 -0
  31. package/esm/orderly/useDeposit.js +123 -125
  32. package/esm/orderly/useDeposit.js.map +1 -0
  33. package/esm/orderly/useFundingRate.js +14 -13
  34. package/esm/orderly/useFundingRate.js.map +1 -0
  35. package/esm/orderly/useFundingRates.js +6 -4
  36. package/esm/orderly/useFundingRates.js.map +1 -0
  37. package/esm/orderly/useHoldingStream.js +19 -15
  38. package/esm/orderly/useHoldingStream.js.map +1 -0
  39. package/esm/orderly/useIndexPrice.js +7 -5
  40. package/esm/orderly/useIndexPrice.js.map +1 -0
  41. package/esm/orderly/useLeverage.js +9 -12
  42. package/esm/orderly/useLeverage.js.map +1 -0
  43. package/esm/orderly/useMarginRatio.js +27 -13
  44. package/esm/orderly/useMarginRatio.js.map +1 -0
  45. package/esm/orderly/useMarkPrice.js +13 -7
  46. package/esm/orderly/useMarkPrice.js.map +1 -0
  47. package/esm/orderly/useMarkPricesStream.d.ts +1 -1
  48. package/esm/orderly/useMarkPricesStream.d.ts.map +1 -1
  49. package/esm/orderly/useMarkPricesStream.js +9 -8
  50. package/esm/orderly/useMarkPricesStream.js.map +1 -0
  51. package/esm/orderly/useMarketTradeStream.js +33 -18
  52. package/esm/orderly/useMarketTradeStream.js.map +1 -0
  53. package/esm/orderly/useMarkets.js +144 -81
  54. package/esm/orderly/useMarkets.js.map +1 -0
  55. package/esm/orderly/useMarketsStream.js +23 -28
  56. package/esm/orderly/useMarketsStream.js.map +1 -0
  57. package/esm/orderly/useMaxQty.d.ts +6 -0
  58. package/esm/orderly/useMaxQty.d.ts.map +1 -1
  59. package/esm/orderly/useMaxQty.js +26 -18
  60. package/esm/orderly/useMaxQty.js.map +1 -0
  61. package/esm/orderly/useOpenInterest.js +7 -5
  62. package/esm/orderly/useOpenInterest.js.map +1 -0
  63. package/esm/orderly/useOrderEntry.js +182 -160
  64. package/esm/orderly/useOrderEntry.js.map +1 -0
  65. package/esm/orderly/useOrderStream.js +85 -66
  66. package/esm/orderly/useOrderStream.js.map +1 -0
  67. package/esm/orderly/useOrderbookStream.d.ts +2 -3
  68. package/esm/orderly/useOrderbookStream.d.ts.map +1 -1
  69. package/esm/orderly/useOrderbookStream.js +173 -103
  70. package/esm/orderly/useOrderbookStream.js.map +1 -0
  71. package/esm/orderly/usePositionStream.js +82 -62
  72. package/esm/orderly/usePositionStream.js.map +1 -0
  73. package/esm/orderly/usePrivateDataObserver.js +55 -48
  74. package/esm/orderly/usePrivateDataObserver.js.map +1 -0
  75. package/esm/orderly/useSettleSubscription.js +8 -6
  76. package/esm/orderly/useSettleSubscription.js.map +1 -0
  77. package/esm/orderly/useSymbolPriceRange.js +14 -8
  78. package/esm/orderly/useSymbolPriceRange.js.map +1 -0
  79. package/esm/orderly/useSymbolsInfo.js +7 -5
  80. package/esm/orderly/useSymbolsInfo.js.map +1 -0
  81. package/esm/orderly/useTickerStream.d.ts +5 -1
  82. package/esm/orderly/useTickerStream.d.ts.map +1 -1
  83. package/esm/orderly/useTickerStream.js +26 -29
  84. package/esm/orderly/useTickerStream.js.map +1 -0
  85. package/esm/orderly/useWalletSubscription.js +8 -6
  86. package/esm/orderly/useWalletSubscription.js.map +1 -0
  87. package/esm/orderly/useWithdraw.js +19 -11
  88. package/esm/orderly/useWithdraw.js.map +1 -0
  89. package/esm/orderlyContext.d.ts +8 -1
  90. package/esm/orderlyContext.d.ts.map +1 -1
  91. package/esm/orderlyContext.js +2 -1
  92. package/esm/orderlyContext.js.map +1 -0
  93. package/esm/services/dataCenter.js +10 -8
  94. package/esm/services/dataCenter.js.map +1 -0
  95. package/esm/services/painter/backgroundPaint.js +11 -14
  96. package/esm/services/painter/backgroundPaint.js.map +1 -0
  97. package/esm/services/painter/basePaint.js +5 -1
  98. package/esm/services/painter/basePaint.js.map +1 -0
  99. package/esm/services/painter/dataPaint.js +53 -50
  100. package/esm/services/painter/dataPaint.js.map +1 -0
  101. package/esm/services/painter/layout.config.js +15 -13
  102. package/esm/services/painter/layout.config.js.map +1 -0
  103. package/esm/services/painter/painter.js +14 -13
  104. package/esm/services/painter/painter.js.map +1 -0
  105. package/esm/services/painter/resource.js +6 -4
  106. package/esm/services/painter/resource.js.map +1 -0
  107. package/esm/statusProvider.js +10 -3
  108. package/esm/statusProvider.js.map +1 -0
  109. package/esm/unuse/apiPrefixMiddleware.js +18 -16
  110. package/esm/unuse/apiPrefixMiddleware.js.map +1 -0
  111. package/esm/unuse/fn.js +3 -1
  112. package/esm/unuse/fn.js.map +1 -0
  113. package/esm/unuse/useBalance.js +6 -4
  114. package/esm/unuse/useBalance.js.map +1 -0
  115. package/esm/unuse/useFetures.js +26 -18
  116. package/esm/unuse/useFetures.js.map +1 -0
  117. package/esm/unuse/useRunOnce.js +10 -7
  118. package/esm/unuse/useRunOnce.js.map +1 -0
  119. package/esm/unuse/useSyncEnd.js +5 -4
  120. package/esm/unuse/useSyncEnd.js.map +1 -0
  121. package/esm/unuse/useTokenInfo.js +7 -5
  122. package/esm/unuse/useTokenInfo.js.map +1 -0
  123. package/esm/unuse/useUnsettlementPnL.js +7 -3
  124. package/esm/unuse/useUnsettlementPnL.js.map +1 -0
  125. package/esm/useAccount.js +18 -21
  126. package/esm/useAccount.js.map +1 -0
  127. package/esm/useAccountInstance.js +6 -7
  128. package/esm/useAccountInstance.js.map +1 -0
  129. package/esm/useBoolean.js +14 -5
  130. package/esm/useBoolean.js.map +1 -0
  131. package/esm/useConfig.js +3 -1
  132. package/esm/useConfig.js.map +1 -0
  133. package/esm/useEventEmitter.js +4 -2
  134. package/esm/useEventEmitter.js.map +1 -0
  135. package/esm/useLazyQuery.js +6 -7
  136. package/esm/useLazyQuery.js.map +1 -0
  137. package/esm/useLocalStorage.js +30 -20
  138. package/esm/useLocalStorage.js.map +1 -0
  139. package/esm/useMediaQuery.js +11 -9
  140. package/esm/useMediaQuery.js.map +1 -0
  141. package/esm/useMutation.js +26 -37
  142. package/esm/useMutation.js.map +1 -0
  143. package/esm/useObserve.js +4 -4
  144. package/esm/useObserve.js.map +1 -0
  145. package/esm/useParamsCheck.js +8 -10
  146. package/esm/useParamsCheck.js.map +1 -0
  147. package/esm/usePoster.js +56 -45
  148. package/esm/usePoster.js.map +1 -0
  149. package/esm/usePreloadData.js +9 -5
  150. package/esm/usePreloadData.js.map +1 -0
  151. package/esm/usePrivateInfiniteQuery.js +15 -9
  152. package/esm/usePrivateInfiniteQuery.js.map +1 -0
  153. package/esm/usePrivateQuery.js +15 -8
  154. package/esm/usePrivateQuery.js.map +1 -0
  155. package/esm/useQuery.js +6 -5
  156. package/esm/useQuery.js.map +1 -0
  157. package/esm/useSessionStorage.js +28 -19
  158. package/esm/useSessionStorage.js.map +1 -0
  159. package/esm/useWS.js +15 -13
  160. package/esm/useWS.js.map +1 -0
  161. package/esm/useWsStatus.js +12 -12
  162. package/esm/useWsStatus.js.map +1 -0
  163. package/esm/utils/createGetter.js +8 -8
  164. package/esm/utils/createGetter.js.map +1 -0
  165. package/esm/utils/createOrder.d.ts +1 -0
  166. package/esm/utils/createOrder.d.ts.map +1 -1
  167. package/esm/utils/createOrder.js +59 -43
  168. package/esm/utils/createOrder.js.map +1 -0
  169. package/esm/utils/dev.js +6 -4
  170. package/esm/utils/dev.js.map +1 -0
  171. package/esm/utils/fetcher.js +3 -1
  172. package/esm/utils/fetcher.js.map +1 -0
  173. package/esm/utils/json.js +3 -2
  174. package/esm/utils/json.js.map +1 -0
  175. package/esm/utils/orderEntryHelper.js +92 -63
  176. package/esm/utils/orderEntryHelper.js.map +1 -0
  177. package/esm/utils/parseHolding.js +10 -6
  178. package/esm/utils/parseHolding.js.map +1 -0
  179. package/esm/utils/swr.js +114 -104
  180. package/esm/utils/swr.js.map +1 -0
  181. package/esm/version.d.ts +1 -1
  182. package/esm/version.js +4 -3
  183. package/esm/version.js.map +1 -0
  184. package/esm/walletConnectorContext.js +4 -2
  185. package/esm/walletConnectorContext.js.map +1 -0
  186. package/lib/configProvider.d.ts +7 -1
  187. package/lib/configProvider.d.ts.map +1 -1
  188. package/lib/configProvider.js +108 -56
  189. package/lib/configProvider.js.map +1 -0
  190. package/lib/dataProvider.js +50 -29
  191. package/lib/dataProvider.js.map +1 -0
  192. package/lib/index.d.ts +1 -0
  193. package/lib/index.d.ts.map +1 -1
  194. package/lib/index.js +191 -88
  195. package/lib/index.js.map +1 -0
  196. package/lib/middleware/signatureMiddleware.js +22 -15
  197. package/lib/middleware/signatureMiddleware.js.map +1 -0
  198. package/lib/orderly/orderbook.service.js +59 -33
  199. package/lib/orderly/orderbook.service.js.map +1 -0
  200. package/lib/orderly/orderlyHooks.d.ts +3 -0
  201. package/lib/orderly/orderlyHooks.d.ts.map +1 -1
  202. package/lib/orderly/orderlyHooks.js +124 -57
  203. package/lib/orderly/orderlyHooks.js.map +1 -0
  204. package/lib/orderly/useAccountInfo.js +14 -6
  205. package/lib/orderly/useAccountInfo.js.map +1 -0
  206. package/lib/orderly/useChain.js +30 -17
  207. package/lib/orderly/useChain.js.map +1 -0
  208. package/lib/orderly/useChains.d.ts +11 -12
  209. package/lib/orderly/useChains.d.ts.map +1 -1
  210. package/lib/orderly/useChains.js +100 -59
  211. package/lib/orderly/useChains.js.map +1 -0
  212. package/lib/orderly/useCollateral.d.ts +3 -4
  213. package/lib/orderly/useCollateral.d.ts.map +1 -1
  214. package/lib/orderly/useCollateral.js +81 -42
  215. package/lib/orderly/useCollateral.js.map +1 -0
  216. package/lib/orderly/useDeposit.js +154 -150
  217. package/lib/orderly/useDeposit.js.map +1 -0
  218. package/lib/orderly/useFundingRate.js +29 -22
  219. package/lib/orderly/useFundingRate.js.map +1 -0
  220. package/lib/orderly/useFundingRates.js +19 -11
  221. package/lib/orderly/useFundingRates.js.map +1 -0
  222. package/lib/orderly/useHoldingStream.js +39 -27
  223. package/lib/orderly/useHoldingStream.js.map +1 -0
  224. package/lib/orderly/useIndexPrice.js +24 -14
  225. package/lib/orderly/useIndexPrice.js.map +1 -0
  226. package/lib/orderly/useLeverage.js +27 -24
  227. package/lib/orderly/useLeverage.js.map +1 -0
  228. package/lib/orderly/useMarginRatio.js +49 -29
  229. package/lib/orderly/useMarginRatio.js.map +1 -0
  230. package/lib/orderly/useMarkPrice.js +26 -15
  231. package/lib/orderly/useMarkPrice.js.map +1 -0
  232. package/lib/orderly/useMarkPricesStream.d.ts +1 -1
  233. package/lib/orderly/useMarkPricesStream.d.ts.map +1 -1
  234. package/lib/orderly/useMarkPricesStream.js +26 -17
  235. package/lib/orderly/useMarkPricesStream.js.map +1 -0
  236. package/lib/orderly/useMarketTradeStream.js +47 -26
  237. package/lib/orderly/useMarketTradeStream.js.map +1 -0
  238. package/lib/orderly/useMarkets.js +172 -95
  239. package/lib/orderly/useMarkets.js.map +1 -0
  240. package/lib/orderly/useMarketsStream.js +44 -41
  241. package/lib/orderly/useMarketsStream.js.map +1 -0
  242. package/lib/orderly/useMaxQty.d.ts +6 -0
  243. package/lib/orderly/useMaxQty.d.ts.map +1 -1
  244. package/lib/orderly/useMaxQty.js +52 -43
  245. package/lib/orderly/useMaxQty.js.map +1 -0
  246. package/lib/orderly/useOpenInterest.js +24 -14
  247. package/lib/orderly/useOpenInterest.js.map +1 -0
  248. package/lib/orderly/useOrderEntry.js +238 -210
  249. package/lib/orderly/useOrderEntry.js.map +1 -0
  250. package/lib/orderly/useOrderStream.js +111 -84
  251. package/lib/orderly/useOrderStream.js.map +1 -0
  252. package/lib/orderly/useOrderbookStream.d.ts +2 -3
  253. package/lib/orderly/useOrderbookStream.d.ts.map +1 -1
  254. package/lib/orderly/useOrderbookStream.js +227 -148
  255. package/lib/orderly/useOrderbookStream.js.map +1 -0
  256. package/lib/orderly/usePositionStream.js +134 -100
  257. package/lib/orderly/usePositionStream.js.map +1 -0
  258. package/lib/orderly/usePrivateDataObserver.js +76 -63
  259. package/lib/orderly/usePrivateDataObserver.js.map +1 -0
  260. package/lib/orderly/useSettleSubscription.js +25 -15
  261. package/lib/orderly/useSettleSubscription.js.map +1 -0
  262. package/lib/orderly/useSymbolPriceRange.js +29 -23
  263. package/lib/orderly/useSymbolPriceRange.js.map +1 -0
  264. package/lib/orderly/useSymbolsInfo.js +23 -15
  265. package/lib/orderly/useSymbolsInfo.js.map +1 -0
  266. package/lib/orderly/useTickerStream.d.ts +5 -1
  267. package/lib/orderly/useTickerStream.d.ts.map +1 -1
  268. package/lib/orderly/useTickerStream.js +51 -48
  269. package/lib/orderly/useTickerStream.js.map +1 -0
  270. package/lib/orderly/useWalletSubscription.js +25 -15
  271. package/lib/orderly/useWalletSubscription.js.map +1 -0
  272. package/lib/orderly/useWithdraw.js +36 -22
  273. package/lib/orderly/useWithdraw.js.map +1 -0
  274. package/lib/orderlyContext.d.ts +8 -1
  275. package/lib/orderlyContext.d.ts.map +1 -1
  276. package/lib/orderlyContext.js +22 -6
  277. package/lib/orderlyContext.js.map +1 -0
  278. package/lib/services/dataCenter.js +15 -11
  279. package/lib/services/dataCenter.js.map +1 -0
  280. package/lib/services/painter/backgroundPaint.js +21 -18
  281. package/lib/services/painter/backgroundPaint.js.map +1 -0
  282. package/lib/services/painter/basePaint.js +14 -4
  283. package/lib/services/painter/basePaint.js.map +1 -0
  284. package/lib/services/painter/dataPaint.js +67 -58
  285. package/lib/services/painter/dataPaint.js.map +1 -0
  286. package/lib/services/painter/layout.config.js +25 -16
  287. package/lib/services/painter/layout.config.js.map +1 -0
  288. package/lib/services/painter/painter.js +27 -20
  289. package/lib/services/painter/painter.js.map +1 -0
  290. package/lib/services/painter/resource.js +15 -7
  291. package/lib/services/painter/resource.js.map +1 -0
  292. package/lib/statusProvider.js +31 -10
  293. package/lib/statusProvider.js.map +1 -0
  294. package/lib/unuse/apiPrefixMiddleware.js +30 -22
  295. package/lib/unuse/apiPrefixMiddleware.js.map +1 -0
  296. package/lib/unuse/fn.js +14 -5
  297. package/lib/unuse/fn.js.map +1 -0
  298. package/lib/unuse/useBalance.js +23 -13
  299. package/lib/unuse/useBalance.js.map +1 -0
  300. package/lib/unuse/useFetures.js +41 -28
  301. package/lib/unuse/useFetures.js.map +1 -0
  302. package/lib/unuse/useRunOnce.js +61 -11
  303. package/lib/unuse/useRunOnce.js.map +1 -0
  304. package/lib/unuse/useSyncEnd.js +17 -10
  305. package/lib/unuse/useSyncEnd.js.map +1 -0
  306. package/lib/unuse/useTokenInfo.js +20 -12
  307. package/lib/unuse/useTokenInfo.js.map +1 -0
  308. package/lib/unuse/useUnsettlementPnL.js +21 -11
  309. package/lib/unuse/useUnsettlementPnL.js.map +1 -0
  310. package/lib/useAccount.js +32 -29
  311. package/lib/useAccount.js.map +1 -0
  312. package/lib/useAccountInstance.js +27 -20
  313. package/lib/useAccountInstance.js.map +1 -0
  314. package/lib/useBoolean.js +25 -10
  315. package/lib/useBoolean.js.map +1 -0
  316. package/lib/useConfig.js +15 -7
  317. package/lib/useConfig.js.map +1 -0
  318. package/lib/useEventEmitter.js +23 -13
  319. package/lib/useEventEmitter.js.map +1 -0
  320. package/lib/useLazyQuery.js +25 -23
  321. package/lib/useLazyQuery.js.map +1 -0
  322. package/lib/useLocalStorage.js +44 -28
  323. package/lib/useLocalStorage.js.map +1 -0
  324. package/lib/useMediaQuery.js +22 -14
  325. package/lib/useMediaQuery.js.map +1 -0
  326. package/lib/useMutation.js +47 -52
  327. package/lib/useMutation.js.map +1 -0
  328. package/lib/useObserve.js +22 -8
  329. package/lib/useObserve.js.map +1 -0
  330. package/lib/useParamsCheck.js +18 -14
  331. package/lib/useParamsCheck.js.map +1 -0
  332. package/lib/usePoster.js +80 -74
  333. package/lib/usePoster.js.map +1 -0
  334. package/lib/usePreloadData.js +21 -11
  335. package/lib/usePreloadData.js.map +1 -0
  336. package/lib/usePrivateInfiniteQuery.js +36 -22
  337. package/lib/usePrivateInfiniteQuery.js.map +1 -0
  338. package/lib/usePrivateQuery.js +35 -25
  339. package/lib/usePrivateQuery.js.map +1 -0
  340. package/lib/useQuery.js +24 -20
  341. package/lib/useQuery.js.map +1 -0
  342. package/lib/useSessionStorage.js +41 -26
  343. package/lib/useSessionStorage.js.map +1 -0
  344. package/lib/useWS.js +42 -32
  345. package/lib/useWS.js.map +1 -0
  346. package/lib/useWsStatus.js +34 -20
  347. package/lib/useWsStatus.js.map +1 -0
  348. package/lib/utils/createGetter.js +19 -14
  349. package/lib/utils/createGetter.js.map +1 -0
  350. package/lib/utils/createOrder.d.ts +1 -0
  351. package/lib/utils/createOrder.d.ts.map +1 -1
  352. package/lib/utils/createOrder.js +133 -82
  353. package/lib/utils/createOrder.js.map +1 -0
  354. package/lib/utils/dev.js +13 -9
  355. package/lib/utils/dev.js.map +1 -0
  356. package/lib/utils/fetcher.js +13 -5
  357. package/lib/utils/fetcher.js.map +1 -0
  358. package/lib/utils/json.js +12 -5
  359. package/lib/utils/json.js.map +1 -0
  360. package/lib/utils/orderEntryHelper.js +125 -82
  361. package/lib/utils/orderEntryHelper.js.map +1 -0
  362. package/lib/utils/parseHolding.js +19 -9
  363. package/lib/utils/parseHolding.js.map +1 -0
  364. package/lib/utils/swr.js +134 -111
  365. package/lib/utils/swr.js.map +1 -0
  366. package/lib/version.d.ts +1 -1
  367. package/lib/version.js +13 -4
  368. package/lib/version.js.map +1 -0
  369. package/lib/walletConnectorContext.js +23 -7
  370. package/lib/walletConnectorContext.js.map +1 -0
  371. package/package.json +17 -9
@@ -1,99 +1,113 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pathOr_unsettledPnLPathOr = exports.usePositionStream = void 0;
4
- const react_1 = require("react");
5
- const usePrivateQuery_1 = require("../usePrivateQuery");
6
- const perp_1 = require("@orderly.network/perp");
7
- const createGetter_1 = require("../utils/createGetter");
8
- const useFundingRates_1 = require("./useFundingRates");
9
- const useSymbolsInfo_1 = require("./useSymbolsInfo");
10
- const useMarkPricesStream_1 = require("./useMarkPricesStream");
11
- const ramda_1 = require("ramda");
12
- const parseHolding_1 = require("../utils/parseHolding");
13
- const utils_1 = require("@orderly.network/utils");
14
- const useMarketsStream_1 = require("./useMarketsStream");
15
- const usePositionStream = (
16
- /**
17
- * If symbol is passed, only the position of that symbol will be returned.
18
- */
19
- symbol, options) => {
20
- const symbolInfo = (0, useSymbolsInfo_1.useSymbolsInfo)();
21
- const { data: accountInfo } = (0, usePrivateQuery_1.usePrivateQuery)("/v1/client/info");
22
- const { data: holding } = (0, usePrivateQuery_1.usePrivateQuery)("/v1/client/holding", {
23
- formatter: (data) => {
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ pathOr_unsettledPnLPathOr: function() {
13
+ return pathOr_unsettledPnLPathOr;
14
+ },
15
+ usePositionStream: function() {
16
+ return usePositionStream;
17
+ }
18
+ });
19
+ const _react = require("react");
20
+ const _usePrivateQuery = require("../usePrivateQuery");
21
+ const _perp = require("@orderly.network/perp");
22
+ const _createGetter = require("../utils/createGetter");
23
+ const _useFundingRates = require("./useFundingRates");
24
+ const _useSymbolsInfo = require("./useSymbolsInfo");
25
+ const _useMarkPricesStream = require("./useMarkPricesStream");
26
+ const _ramda = require("ramda");
27
+ const _parseHolding = require("../utils/parseHolding");
28
+ const _utils = require("@orderly.network/utils");
29
+ const _useMarketsStream = require("./useMarketsStream");
30
+ const usePositionStream = (/**
31
+ * If symbol is passed, only the position of that symbol will be returned.
32
+ */ symbol, options)=>{
33
+ const symbolInfo = (0, _useSymbolsInfo.useSymbolsInfo)();
34
+ const { data: accountInfo } = (0, _usePrivateQuery.usePrivateQuery)("/v1/client/info");
35
+ const { data: holding } = (0, _usePrivateQuery.usePrivateQuery)("/v1/client/holding", {
36
+ formatter: (data)=>{
24
37
  return data.holding;
25
- },
38
+ }
26
39
  });
27
- const fundingRates = (0, useFundingRates_1.useFundingRates)();
28
- const { data, error, mutate: refreshPositions, } = (0, usePrivateQuery_1.usePrivateQuery)(`/v1/positions`, {
40
+ const fundingRates = (0, _useFundingRates.useFundingRates)();
41
+ const { data, error, mutate: refreshPositions } = (0, _usePrivateQuery.usePrivateQuery)(`/v1/positions`, {
29
42
  // revalidateOnFocus: false,
30
43
  // revalidateOnReconnect: false,
31
44
  // dedupingInterval: 200,
32
45
  // keepPreviousData: false,
33
46
  // revalidateIfStale: true,
34
47
  ...options,
35
- formatter: (data) => data,
36
- onError: (err) => { },
48
+ formatter: (data)=>data,
49
+ onError: (err)=>{}
37
50
  });
38
- const { data: markPrices } = (0, useMarkPricesStream_1.useMarkPricesStream)();
39
- const [priceMode, setPriceMode] = (0, react_1.useState)(options?.calcMode || "markPrice");
40
- (0, react_1.useEffect)(() => {
51
+ const { data: markPrices } = (0, _useMarkPricesStream.useMarkPricesStream)();
52
+ const [priceMode, setPriceMode] = (0, _react.useState)(options?.calcMode || "markPrice");
53
+ (0, _react.useEffect)(()=>{
41
54
  if (options?.calcMode && priceMode !== options?.calcMode) {
42
55
  setPriceMode(options?.calcMode);
43
56
  }
44
- }, [options?.calcMode]);
45
- const { data: tickers } = (0, useMarketsStream_1.useMarketsStream)();
57
+ }, [
58
+ options?.calcMode
59
+ ]);
60
+ const { data: tickers } = (0, _useMarketsStream.useMarketsStream)();
46
61
  // console.log("mark prices", markPrices);
47
62
  // console.log("tickers", tickers);
48
- const tickerPrices = (0, react_1.useMemo)(() => {
63
+ const tickerPrices = (0, _react.useMemo)(()=>{
49
64
  const data = Object.create(null);
50
- tickers?.forEach((item) => {
65
+ tickers?.forEach((item)=>{
51
66
  // @ts-ignore
52
67
  data[item.symbol] = item["24h_close"];
53
68
  });
54
69
  return data;
55
- }, [tickers]);
56
- const formatedPositions = (0, react_1.useMemo)(() => {
57
- if (!data?.rows || symbolInfo.isNil || !accountInfo)
58
- return null;
59
- const filteredData = typeof symbol === "undefined" || symbol === ""
60
- ? data.rows
61
- : data.rows.filter((item) => {
62
- return item.symbol === symbol;
63
- });
64
- let unrealPnL_total = utils_1.zero, notional_total = utils_1.zero, unsettlementPnL_total = utils_1.zero;
65
- const formatted = filteredData.map((item) => {
70
+ }, [
71
+ tickers
72
+ ]);
73
+ const formatedPositions = (0, _react.useMemo)(()=>{
74
+ if (!data?.rows || symbolInfo.isNil || !accountInfo) return null;
75
+ const filteredData = typeof symbol === "undefined" || symbol === "" ? data.rows : data.rows.filter((item)=>{
76
+ return item.symbol === symbol;
77
+ });
78
+ let unrealPnL_total = _utils.zero, notional_total = _utils.zero, unsettlementPnL_total = _utils.zero;
79
+ const formatted = filteredData.map((item)=>{
66
80
  // const price = (markPrices as any)[item.symbol] ?? item.mark_price;
67
- const unRealizedPrice = (0, ramda_1.propOr)(item.mark_price, item.symbol, priceMode === "markPrice" ? markPrices : tickerPrices);
68
- const price = (0, ramda_1.propOr)(item.mark_price, item.symbol, markPrices);
81
+ const unRealizedPrice = (0, _ramda.propOr)(item.mark_price, item.symbol, priceMode === "markPrice" ? markPrices : tickerPrices);
82
+ const price = (0, _ramda.propOr)(item.mark_price, item.symbol, markPrices);
69
83
  const info = symbolInfo[item.symbol];
70
84
  //
71
- const notional = perp_1.positions.notional(item.position_qty, price);
72
- const unrealPnl = perp_1.positions.unrealizedPnL({
85
+ const notional = _perp.positions.notional(item.position_qty, price);
86
+ const unrealPnl = _perp.positions.unrealizedPnL({
73
87
  qty: item.position_qty,
74
88
  openPrice: item?.average_open_price,
75
- markPrice: unRealizedPrice,
89
+ markPrice: unRealizedPrice
76
90
  });
77
- const imr = perp_1.account.IMR({
91
+ const imr = _perp.account.IMR({
78
92
  maxLeverage: accountInfo.max_leverage,
79
93
  baseIMR: info("base_imr"),
80
94
  IMR_Factor: accountInfo.imr_factor[item.symbol],
81
95
  positionNotional: notional,
82
96
  ordersNotional: 0,
83
- IMR_factor_power: 4 / 5,
97
+ IMR_factor_power: 4 / 5
84
98
  });
85
- const unrealPnlROI = perp_1.positions.unrealizedPnLROI({
99
+ const unrealPnlROI = _perp.positions.unrealizedPnLROI({
86
100
  positionQty: item.position_qty,
87
101
  openPrice: item.average_open_price,
88
102
  IMR: imr,
89
- unrealizedPnL: unrealPnl,
103
+ unrealizedPnL: unrealPnl
90
104
  });
91
- const unsettlementPnL = perp_1.positions.unsettlementPnL({
105
+ const unsettlementPnL = _perp.positions.unsettlementPnL({
92
106
  positionQty: item.position_qty,
93
107
  markPrice: price,
94
108
  costPosition: item.cost_position,
95
109
  sumUnitaryFunding: fundingRates[item.symbol]?.("sum_unitary_funding", 0),
96
- lastSumUnitaryFunding: item.last_sum_unitary_funding,
110
+ lastSumUnitaryFunding: item.last_sum_unitary_funding
97
111
  });
98
112
  unrealPnL_total = unrealPnL_total.add(unrealPnl);
99
113
  notional_total = notional_total.add(notional);
@@ -105,7 +119,7 @@ symbol, options) => {
105
119
  notional,
106
120
  unsettlement_pnl: unsettlementPnL,
107
121
  unrealized_pnl: unrealPnl,
108
- unrealized_pnl_ROI: unrealPnlROI,
122
+ unrealized_pnl_ROI: unrealPnlROI
109
123
  };
110
124
  });
111
125
  return [
@@ -113,8 +127,8 @@ symbol, options) => {
113
127
  {
114
128
  unrealPnL: unrealPnL_total.toNumber(),
115
129
  notional: notional_total.toNumber(),
116
- unsettledPnL: unsettlementPnL_total.toNumber(),
117
- },
130
+ unsettledPnL: unsettlementPnL_total.toNumber()
131
+ }
118
132
  ];
119
133
  }, [
120
134
  data?.rows,
@@ -124,57 +138,71 @@ symbol, options) => {
124
138
  priceMode,
125
139
  tickerPrices,
126
140
  symbol,
127
- holding,
141
+ holding
128
142
  ]);
129
143
  // const showSymbol = useCallback((symbol: string) => {
130
144
  // setVisibleSymbol(symbol);
131
145
  // }, []);
132
- const [totalCollateral, totalValue, totalUnrealizedROI] = (0, react_1.useMemo)(() => {
146
+ const [totalCollateral, totalValue, totalUnrealizedROI] = (0, _react.useMemo)(()=>{
133
147
  if (!holding || !markPrices) {
134
- return [utils_1.zero, utils_1.zero, 0];
148
+ return [
149
+ _utils.zero,
150
+ _utils.zero,
151
+ 0
152
+ ];
135
153
  }
136
- const unsettlemnedPnL = (0, ramda_1.pathOr)(0, [1, "unsettledPnL"])(formatedPositions);
137
- const unrealizedPnL = (0, ramda_1.pathOr)(0, [1, "unrealPnL"])(formatedPositions);
138
- const [USDC_holding, nonUSDC] = (0, parseHolding_1.parseHolding)(holding, markPrices);
139
- const totalCollateral = perp_1.account.totalCollateral({
154
+ const unsettlemnedPnL = (0, _ramda.pathOr)(0, [
155
+ 1,
156
+ "unsettledPnL"
157
+ ])(formatedPositions);
158
+ const unrealizedPnL = (0, _ramda.pathOr)(0, [
159
+ 1,
160
+ "unrealPnL"
161
+ ])(formatedPositions);
162
+ const [USDC_holding, nonUSDC] = (0, _parseHolding.parseHolding)(holding, markPrices);
163
+ const totalCollateral = _perp.account.totalCollateral({
140
164
  USDCHolding: USDC_holding,
141
165
  nonUSDCHolding: nonUSDC,
142
- unsettlementPnL: unsettlemnedPnL,
166
+ unsettlementPnL: unsettlemnedPnL
143
167
  });
144
- const totalValue = perp_1.account.totalValue({
168
+ const totalValue = _perp.account.totalValue({
145
169
  totalUnsettlementPnL: unsettlemnedPnL,
146
170
  USDCHolding: USDC_holding,
147
- nonUSDCHolding: nonUSDC,
171
+ nonUSDCHolding: nonUSDC
148
172
  });
149
- const totalUnrealizedROI = perp_1.account.totalUnrealizedROI({
173
+ const totalUnrealizedROI = _perp.account.totalUnrealizedROI({
150
174
  totalUnrealizedPnL: unrealizedPnL,
151
- totalValue: totalValue.toNumber(),
175
+ totalValue: totalValue.toNumber()
152
176
  });
153
- return [totalCollateral, totalValue, totalUnrealizedROI];
154
- }, [holding, formatedPositions, markPrices]);
155
- const positionsRows = (0, react_1.useMemo)(() => {
156
- if (!formatedPositions)
157
- return null;
158
- if (!symbolInfo || !accountInfo)
159
- return formatedPositions[0];
177
+ return [
178
+ totalCollateral,
179
+ totalValue,
180
+ totalUnrealizedROI
181
+ ];
182
+ }, [
183
+ holding,
184
+ formatedPositions,
185
+ markPrices
186
+ ]);
187
+ const positionsRows = (0, _react.useMemo)(()=>{
188
+ if (!formatedPositions) return null;
189
+ if (!symbolInfo || !accountInfo) return formatedPositions[0];
160
190
  const total = totalCollateral.toNumber();
161
- let rows = formatedPositions[0]
162
- .filter((item) => item.position_qty !== 0)
163
- .map((item) => {
191
+ let rows = formatedPositions[0].filter((item)=>item.position_qty !== 0).map((item)=>{
164
192
  const info = symbolInfo?.[item.symbol];
165
- const MMR = perp_1.positions.MMR({
193
+ const MMR = _perp.positions.MMR({
166
194
  baseMMR: info("base_mmr"),
167
195
  baseIMR: info("base_imr"),
168
196
  IMRFactor: accountInfo.imr_factor[item.symbol],
169
197
  positionNotional: item.notional,
170
- IMR_factor_power: 4 / 5,
198
+ IMR_factor_power: 4 / 5
171
199
  });
172
200
  return {
173
201
  ...item,
174
- mm: perp_1.positions.maintenanceMargin({
202
+ mm: _perp.positions.maintenanceMargin({
175
203
  positionQty: item.position_qty,
176
204
  markPrice: item.mark_price,
177
- MMR,
205
+ MMR
178
206
  }),
179
207
  // est_liq_price: positions.liqPrice({
180
208
  // markPrice: item.mark_price,
@@ -182,41 +210,46 @@ symbol, options) => {
182
210
  // positionQty: item.position_qty,
183
211
  // MMR,
184
212
  // }),
185
- mmr: MMR,
213
+ mmr: MMR
186
214
  };
187
215
  });
188
216
  // calculate est_liq_price
189
- rows = rows.map((item) => {
190
- const est_liq_price = perp_1.positions.liqPrice({
217
+ rows = rows.map((item)=>{
218
+ const est_liq_price = _perp.positions.liqPrice({
191
219
  markPrice: item.mark_price,
192
220
  totalCollateral: total,
193
221
  positionQty: item.position_qty,
194
222
  positions: rows,
195
- MMR: item.mmr,
223
+ MMR: item.mmr
196
224
  });
197
225
  return {
198
226
  ...item,
199
- est_liq_price,
227
+ est_liq_price
200
228
  };
201
229
  });
202
230
  return rows;
203
- }, [formatedPositions, symbolInfo, accountInfo, totalCollateral]);
231
+ }, [
232
+ formatedPositions,
233
+ symbolInfo,
234
+ accountInfo,
235
+ totalCollateral
236
+ ]);
204
237
  // useEffect(() => {
205
238
  // ee.on("positions:changed", () => {
206
239
  // updatePositions();
207
240
  // });
208
241
  // }, []);
209
- const positionInfoGetter = (0, createGetter_1.createGetter)(data, 1);
242
+ const positionInfoGetter = (0, _createGetter.createGetter)(data, 1);
210
243
  return [
211
244
  {
212
245
  rows: positionsRows,
213
246
  aggregated: {
214
- ...(formatedPositions?.[1] ?? {}),
215
- unrealPnlROI: totalUnrealizedROI,
247
+ ...formatedPositions?.[1] ?? {},
248
+ unrealPnlROI: totalUnrealizedROI
216
249
  },
217
250
  totalCollateral,
218
251
  totalValue,
219
- totalUnrealizedROI,
252
+ totalUnrealizedROI
220
253
  },
221
254
  positionInfoGetter,
222
255
  {
@@ -225,13 +258,14 @@ symbol, options) => {
225
258
  // showSymbol,
226
259
  error,
227
260
  // loadMore: () => {},
228
- refresh: refreshPositions,
229
- },
261
+ refresh: refreshPositions
262
+ }
230
263
  ];
231
264
  };
232
- exports.usePositionStream = usePositionStream;
233
- exports.pathOr_unsettledPnLPathOr = (0, ramda_1.pathOr)(0, [
265
+ const pathOr_unsettledPnLPathOr = (0, _ramda.pathOr)(0, [
234
266
  0,
235
267
  "aggregated",
236
- "unsettledPnL",
268
+ "unsettledPnL"
237
269
  ]);
270
+
271
+ //# sourceMappingURL=usePositionStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/usePositionStream.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState, useRef } from \"react\";\nimport { usePrivateQuery } from \"../usePrivateQuery\";\nimport { account, positions } from \"@orderly.network/perp\";\nimport { type SWRConfiguration } from \"swr\";\nimport useSWRSubscription from \"swr/subscription\";\nimport { createGetter } from \"../utils/createGetter\";\nimport { useFundingRates } from \"./useFundingRates\";\nimport { type API, OrderEntity } from \"@orderly.network/types\";\nimport { useSymbolsInfo } from \"./useSymbolsInfo\";\nimport { useMarkPricesStream } from \"./useMarkPricesStream\";\nimport { pathOr, propOr } from \"ramda\";\nimport { parseHolding } from \"../utils/parseHolding\";\nimport { Decimal, zero } from \"@orderly.network/utils\";\nimport { useWS } from \"../useWS\";\nimport { useMarketsStream } from \"./useMarketsStream\";\n\ntype PriceMode = \"markPrice\" | \"lastPrice\";\n\nexport interface PositionReturn {\n data: any[];\n loading: boolean;\n close: (\n order: Pick<OrderEntity, \"order_type\" | \"order_price\" | \"side\">\n ) => void;\n}\n\nexport const usePositionStream = (\n /**\n * If symbol is passed, only the position of that symbol will be returned.\n */\n symbol?: string,\n options?: SWRConfiguration & { calcMode?: PriceMode }\n) => {\n const symbolInfo = useSymbolsInfo();\n const { data: accountInfo } =\n usePrivateQuery<API.AccountInfo>(\"/v1/client/info\");\n\n const { data: holding } = usePrivateQuery<API.Holding[]>(\n \"/v1/client/holding\",\n {\n formatter: (data) => {\n return data.holding;\n },\n }\n );\n\n const fundingRates = useFundingRates();\n\n const {\n data,\n error,\n mutate: refreshPositions,\n } = usePrivateQuery<API.PositionInfo>(`/v1/positions`, {\n // revalidateOnFocus: false,\n // revalidateOnReconnect: false,\n // dedupingInterval: 200,\n // keepPreviousData: false,\n // revalidateIfStale: true,\n ...options,\n\n formatter: (data) => data,\n onError: (err) => {},\n });\n\n const { data: markPrices } = useMarkPricesStream();\n\n const [priceMode, setPriceMode] = useState(options?.calcMode || \"markPrice\");\n\n useEffect(() => {\n if (options?.calcMode && priceMode !== options?.calcMode) {\n setPriceMode(options?.calcMode);\n }\n }, [options?.calcMode]);\n\n const { data: tickers } = useMarketsStream();\n // console.log(\"mark prices\", markPrices);\n // console.log(\"tickers\", tickers);\n\n const tickerPrices = useMemo(() => {\n const data: Record<string, number> = Object.create(null);\n tickers?.forEach((item) => {\n // @ts-ignore\n data[item.symbol] = item[\"24h_close\"];\n });\n return data;\n }, [tickers]);\n\n const formatedPositions = useMemo<[API.PositionExt[], any] | null>(() => {\n if (!data?.rows || symbolInfo.isNil || !accountInfo) return null;\n\n const filteredData =\n typeof symbol === \"undefined\" || symbol === \"\"\n ? data.rows\n : data.rows.filter((item) => {\n return item.symbol === symbol;\n });\n\n let unrealPnL_total = zero,\n notional_total = zero,\n unsettlementPnL_total = zero;\n\n const formatted = filteredData.map((item: API.Position) => {\n // const price = (markPrices as any)[item.symbol] ?? item.mark_price;\n const unRealizedPrice = propOr(\n item.mark_price,\n item.symbol,\n priceMode === \"markPrice\" ? markPrices : tickerPrices\n ) as unknown as number;\n\n const price = propOr(\n item.mark_price,\n item.symbol,\n markPrices\n ) as unknown as number;\n\n const info = symbolInfo[item.symbol];\n //\n\n const notional = positions.notional(item.position_qty, price);\n\n const unrealPnl = positions.unrealizedPnL({\n qty: item.position_qty,\n openPrice: item?.average_open_price,\n markPrice: unRealizedPrice,\n });\n\n const imr = account.IMR({\n maxLeverage: accountInfo.max_leverage,\n baseIMR: info(\"base_imr\"),\n IMR_Factor: accountInfo.imr_factor[item.symbol] as number,\n positionNotional: notional,\n ordersNotional: 0,\n IMR_factor_power: 4 / 5,\n });\n\n const unrealPnlROI = positions.unrealizedPnLROI({\n positionQty: item.position_qty,\n openPrice: item.average_open_price,\n IMR: imr,\n unrealizedPnL: unrealPnl,\n });\n\n const unsettlementPnL = positions.unsettlementPnL({\n positionQty: item.position_qty,\n markPrice: price,\n costPosition: item.cost_position,\n sumUnitaryFunding: fundingRates[item.symbol]?.(\n \"sum_unitary_funding\",\n 0\n ),\n lastSumUnitaryFunding: item.last_sum_unitary_funding,\n });\n\n unrealPnL_total = unrealPnL_total.add(unrealPnl);\n notional_total = notional_total.add(notional);\n unsettlementPnL_total = unsettlementPnL_total.add(unsettlementPnL);\n\n return {\n ...item,\n mark_price: price,\n mm: 0,\n notional,\n unsettlement_pnl: unsettlementPnL,\n unrealized_pnl: unrealPnl,\n unrealized_pnl_ROI: unrealPnlROI,\n };\n });\n\n return [\n formatted,\n {\n unrealPnL: unrealPnL_total.toNumber(),\n notional: notional_total.toNumber(),\n unsettledPnL: unsettlementPnL_total.toNumber(),\n },\n ];\n }, [\n data?.rows,\n symbolInfo,\n accountInfo,\n markPrices,\n priceMode,\n tickerPrices,\n symbol,\n holding,\n ]);\n\n // const showSymbol = useCallback((symbol: string) => {\n // setVisibleSymbol(symbol);\n // }, []);\n\n const [totalCollateral, totalValue, totalUnrealizedROI] = useMemo<\n [Decimal, Decimal, number]\n >(() => {\n if (!holding || !markPrices) {\n return [zero, zero, 0];\n }\n const unsettlemnedPnL = pathOr(0, [1, \"unsettledPnL\"])(formatedPositions);\n const unrealizedPnL = pathOr(0, [1, \"unrealPnL\"])(formatedPositions);\n\n const [USDC_holding, nonUSDC] = parseHolding(holding, markPrices);\n\n const totalCollateral = account.totalCollateral({\n USDCHolding: USDC_holding,\n nonUSDCHolding: nonUSDC,\n unsettlementPnL: unsettlemnedPnL,\n });\n\n const totalValue = account.totalValue({\n totalUnsettlementPnL: unsettlemnedPnL,\n USDCHolding: USDC_holding,\n nonUSDCHolding: nonUSDC,\n });\n\n const totalUnrealizedROI = account.totalUnrealizedROI({\n totalUnrealizedPnL: unrealizedPnL,\n totalValue: totalValue.toNumber(),\n });\n\n return [totalCollateral, totalValue, totalUnrealizedROI];\n }, [holding, formatedPositions, markPrices]);\n\n const positionsRows = useMemo(() => {\n if (!formatedPositions) return null;\n\n if (!symbolInfo || !accountInfo) return formatedPositions[0];\n\n const total = totalCollateral.toNumber();\n\n let rows = formatedPositions[0]\n .filter((item) => item.position_qty !== 0)\n .map((item) => {\n const info = symbolInfo?.[item.symbol];\n\n const MMR = positions.MMR({\n baseMMR: info(\"base_mmr\"),\n baseIMR: info(\"base_imr\"),\n IMRFactor: accountInfo.imr_factor[item.symbol] as number,\n positionNotional: item.notional,\n IMR_factor_power: 4 / 5,\n });\n\n return {\n ...item,\n mm: positions.maintenanceMargin({\n positionQty: item.position_qty,\n markPrice: item.mark_price,\n MMR,\n }),\n // est_liq_price: positions.liqPrice({\n // markPrice: item.mark_price,\n // totalCollateral: total,\n // positionQty: item.position_qty,\n // MMR,\n // }),\n mmr: MMR,\n };\n });\n\n // calculate est_liq_price\n rows = rows.map((item) => {\n const est_liq_price = positions.liqPrice({\n markPrice: item.mark_price,\n totalCollateral: total,\n positionQty: item.position_qty,\n positions: rows,\n MMR: item.mmr,\n });\n return {\n ...item,\n est_liq_price,\n };\n });\n\n return rows;\n }, [formatedPositions, symbolInfo, accountInfo, totalCollateral]);\n\n // useEffect(() => {\n // ee.on(\"positions:changed\", () => {\n // updatePositions();\n // });\n // }, []);\n\n const positionInfoGetter = createGetter<\n Omit<API.PositionInfo, \"rows\">,\n keyof Omit<API.PositionInfo, \"rows\">\n >(data as any, 1);\n\n return [\n {\n rows: positionsRows,\n aggregated: {\n ...(formatedPositions?.[1] ?? {}),\n unrealPnlROI: totalUnrealizedROI,\n },\n totalCollateral,\n totalValue,\n totalUnrealizedROI,\n },\n positionInfoGetter,\n {\n // close: onClosePosition,\n loading: false,\n // showSymbol,\n error,\n // loadMore: () => {},\n refresh: refreshPositions,\n },\n ] as const;\n};\n\nexport const pathOr_unsettledPnLPathOr = pathOr(0, [\n 0,\n \"aggregated\",\n \"unsettledPnL\",\n]);\n"],"names":["pathOr_unsettledPnLPathOr","usePositionStream","symbol","options","symbolInfo","useSymbolsInfo","data","accountInfo","usePrivateQuery","holding","formatter","fundingRates","useFundingRates","error","mutate","refreshPositions","onError","err","markPrices","useMarkPricesStream","priceMode","setPriceMode","useState","calcMode","useEffect","tickers","useMarketsStream","tickerPrices","useMemo","Object","create","forEach","item","formatedPositions","rows","isNil","filteredData","filter","unrealPnL_total","zero","notional_total","unsettlementPnL_total","formatted","map","unRealizedPrice","propOr","mark_price","price","info","notional","positions","position_qty","unrealPnl","unrealizedPnL","qty","openPrice","average_open_price","markPrice","imr","account","IMR","maxLeverage","max_leverage","baseIMR","IMR_Factor","imr_factor","positionNotional","ordersNotional","IMR_factor_power","unrealPnlROI","unrealizedPnLROI","positionQty","unsettlementPnL","costPosition","cost_position","sumUnitaryFunding","lastSumUnitaryFunding","last_sum_unitary_funding","add","mm","unsettlement_pnl","unrealized_pnl","unrealized_pnl_ROI","unrealPnL","toNumber","unsettledPnL","totalCollateral","totalValue","totalUnrealizedROI","unsettlemnedPnL","pathOr","USDC_holding","nonUSDC","parseHolding","USDCHolding","nonUSDCHolding","totalUnsettlementPnL","totalUnrealizedPnL","positionsRows","total","MMR","baseMMR","IMRFactor","maintenanceMargin","mmr","est_liq_price","liqPrice","positionInfoGetter","createGetter","aggregated","loading","refresh"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,44 +1,51 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.usePrivateDataObserver = void 0;
4
- const react_1 = require("react");
5
- const useWS_1 = require("../useWS");
6
- const swr_1 = require("swr");
7
- const useAccount_1 = require("../useAccount");
8
- const infinite_1 = require("swr/infinite");
9
- const useEventEmitter_1 = require("../useEventEmitter");
10
- const swr_2 = require("../utils/swr");
11
- const usePrivateDataObserver = (options) => {
12
- const ws = (0, useWS_1.useWS)();
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "usePrivateDataObserver", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return usePrivateDataObserver;
9
+ }
10
+ });
11
+ const _react = require("react");
12
+ const _useWS = require("../useWS");
13
+ const _swr = require("swr");
14
+ const _useAccount = require("../useAccount");
15
+ const _infinite = require("swr/infinite");
16
+ const _useEventEmitter = require("../useEventEmitter");
17
+ const _swr1 = require("../utils/swr");
18
+ const usePrivateDataObserver = (options)=>{
19
+ const ws = (0, _useWS.useWS)();
13
20
  // const { mutate } = useSWRConfig();
14
- const ee = (0, useEventEmitter_1.useEventEmitter)();
15
- const { state } = (0, useAccount_1.useAccount)();
21
+ const ee = (0, _useEventEmitter.useEventEmitter)();
22
+ const { state } = (0, _useAccount.useAccount)();
16
23
  // TODO: remove this when the WS service provides the correct data
17
- const algoOrderCacheQuneue = (0, react_1.useRef)([]);
18
- const updateOrders = (data, isAlgoOrder) => {
24
+ const algoOrderCacheQuneue = (0, _react.useRef)([]);
25
+ const updateOrders = (data, isAlgoOrder)=>{
19
26
  const map = options.getKeysMap("orders");
20
27
  // console.log("$$$$$$$$$$$$", data, algoOrderCacheQuneue.current);
21
28
  if (isAlgoOrder) {
22
29
  /// TODO: remove this when the WS service provides the correct data
23
30
  if (algoOrderCacheQuneue.current.length) {
24
- const index = algoOrderCacheQuneue.current.findIndex((item) => item.order_id === data.algoOrderId);
31
+ const index = algoOrderCacheQuneue.current.findIndex((item)=>item.order_id === data.algoOrderId);
25
32
  if (index > -1) {
26
33
  data = {
27
34
  ...data,
28
- ...algoOrderCacheQuneue.current[index],
35
+ ...algoOrderCacheQuneue.current[index]
29
36
  };
30
37
  algoOrderCacheQuneue.current.splice(index, 1);
31
38
  }
32
39
  }
33
40
  }
34
- map.forEach((getKey, key) => {
35
- (0, swr_1.mutate)((0, infinite_1.unstable_serialize)((index, prevData) => [
36
- getKey(index, prevData),
37
- state.accountId,
38
- ]), (prevData) => {
39
- return (0, swr_2.updateOrdersHandler)(key, data, prevData);
41
+ map.forEach((getKey, key)=>{
42
+ (0, _swr.mutate)((0, _infinite.unstable_serialize)((index, prevData)=>[
43
+ getKey(index, prevData),
44
+ state.accountId
45
+ ]), (prevData)=>{
46
+ return (0, _swr1.updateOrdersHandler)(key, data, prevData);
40
47
  }, {
41
- revalidate: false,
48
+ revalidate: false
42
49
  });
43
50
  });
44
51
  // emit events;
@@ -48,59 +55,62 @@ const usePrivateDataObserver = (options) => {
48
55
  // });
49
56
  ee.emit("orders:changed", {
50
57
  ...data,
51
- status: data.status || data.algoStatus,
58
+ status: data.status || data.algoStatus
52
59
  });
53
60
  };
54
61
  // orders
55
- (0, react_1.useEffect)(() => {
56
- if (!state.accountId)
57
- return;
62
+ (0, _react.useEffect)(()=>{
63
+ if (!state.accountId) return;
58
64
  const unsubscribe = ws.privateSubscribe("executionreport", {
59
- onMessage: (data) => {
65
+ onMessage: (data)=>{
60
66
  updateOrders(data, false);
61
- },
67
+ }
62
68
  });
63
- return () => unsubscribe?.();
64
- }, [state.accountId]);
69
+ return ()=>unsubscribe?.();
70
+ }, [
71
+ state.accountId
72
+ ]);
65
73
  // algo orders
66
- (0, react_1.useEffect)(() => {
67
- if (!state.accountId)
68
- return;
74
+ (0, _react.useEffect)(()=>{
75
+ if (!state.accountId) return;
69
76
  const unsubscribe = ws.privateSubscribe("algoexecutionreport", {
70
- onMessage: (data) => {
71
- setTimeout(() => {
77
+ onMessage: (data)=>{
78
+ setTimeout(()=>{
72
79
  if (Array.isArray(data)) {
73
- data.forEach((item) => {
80
+ data.forEach((item)=>{
74
81
  updateOrders(item, true);
75
- // ee.emit("orders:changed", { ...item, status: item.algoStatus });
82
+ // ee.emit("orders:changed", { ...item, status: item.algoStatus });
76
83
  });
77
- }
78
- else {
84
+ } else {
79
85
  updateOrders(data, true);
80
- // ee.emit("orders:changed", { ...data, status: data.algoStatus });
86
+ // ee.emit("orders:changed", { ...data, status: data.algoStatus });
81
87
  }
82
88
  }, 100);
83
- },
89
+ }
84
90
  });
85
- return () => unsubscribe?.();
86
- }, [state.accountId]);
91
+ return ()=>unsubscribe?.();
92
+ }, [
93
+ state.accountId
94
+ ]);
87
95
  // positions
88
- (0, react_1.useEffect)(() => {
89
- if (!state.accountId)
90
- return;
91
- const key = ["/v1/positions", state.accountId];
96
+ (0, _react.useEffect)(()=>{
97
+ if (!state.accountId) return;
98
+ const key = [
99
+ "/v1/positions",
100
+ state.accountId
101
+ ];
92
102
  const unsubscribe = ws.privateSubscribe("position", {
93
- onMessage: (data) => {
103
+ onMessage: (data)=>{
94
104
  const { positions: nextPostions } = data;
95
105
  // console.log("ws----- positions data-----", data);
96
106
  // updatePositions();
97
- (0, swr_1.mutate)(key, (prevPositions) => {
107
+ (0, _swr.mutate)(key, (prevPositions)=>{
98
108
  // return nextPostions;
99
109
  if (!!prevPositions) {
100
110
  return {
101
111
  ...prevPositions,
102
- rows: prevPositions.rows.map((row) => {
103
- const item = nextPostions.find((item) => item.symbol === row.symbol);
112
+ rows: prevPositions.rows.map((row)=>{
113
+ const item = nextPostions.find((item)=>item.symbol === row.symbol);
104
114
  if (item) {
105
115
  return {
106
116
  symbol: item.symbol,
@@ -120,31 +130,34 @@ const usePrivateDataObserver = (options) => {
120
130
  IMR_withdraw_orders: item.imrwithOrders,
121
131
  MMR_with_orders: item.mmrwithOrders,
122
132
  pnl_24_h: item.pnl24H,
123
- fee_24_h: item.fee24H,
133
+ fee_24_h: item.fee24H
124
134
  };
125
135
  }
126
136
  return row;
127
- }),
137
+ })
128
138
  };
129
139
  }
130
140
  }, {
131
- revalidate: false,
141
+ revalidate: false
132
142
  });
133
- },
143
+ }
134
144
  });
135
- return () => {
145
+ return ()=>{
136
146
  unsubscribe?.();
137
147
  };
138
- }, [state.accountId]);
148
+ }, [
149
+ state.accountId
150
+ ]);
139
151
  // cache algo orders
140
- (0, react_1.useEffect)(() => {
141
- const handler = (data) => {
152
+ (0, _react.useEffect)(()=>{
153
+ const handler = (data)=>{
142
154
  algoOrderCacheQuneue.current.push(data);
143
155
  };
144
156
  ee.on("algoOrder:cache", handler);
145
- return () => {
157
+ return ()=>{
146
158
  ee.off("algoOrder:cache", handler);
147
159
  };
148
160
  }, []);
149
161
  };
150
- exports.usePrivateDataObserver = usePrivateDataObserver;
162
+
163
+ //# sourceMappingURL=usePrivateDataObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/orderly/usePrivateDataObserver.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useWS } from \"../useWS\";\nimport { mutate } from \"swr\";\nimport { WSMessage, API } from \"@orderly.network/types\";\nimport { useAccount } from \"../useAccount\";\nimport { unstable_serialize } from \"swr/infinite\";\nimport { useDebouncedCallback } from \"use-debounce\";\nimport { useEventEmitter } from \"../useEventEmitter\";\nimport { getKeyFunction } from \"../dataProvider\";\nimport { parseJSON } from \"../utils/json\";\nimport { updateOrdersHandler } from \"../utils/swr\";\n\nexport const usePrivateDataObserver = (options: {\n // onUpdateOrders: (data: any) => void;\n getKeysMap: (type: string) => Map<string, getKeyFunction>;\n}) => {\n const ws = useWS();\n // const { mutate } = useSWRConfig();\n const ee = useEventEmitter();\n const { state } = useAccount();\n\n // TODO: remove this when the WS service provides the correct data\n const algoOrderCacheQuneue = useRef<API.AlgoOrder[]>([]);\n\n const updateOrders = (\n data: WSMessage.AlgoOrder | WSMessage.Order,\n isAlgoOrder: boolean\n ) => {\n const map = options.getKeysMap(\"orders\");\n\n // console.log(\"$$$$$$$$$$$$\", data, algoOrderCacheQuneue.current);\n\n if (isAlgoOrder) {\n /// TODO: remove this when the WS service provides the correct data\n if (algoOrderCacheQuneue.current.length) {\n const index = algoOrderCacheQuneue.current.findIndex(\n (item: any) =>\n item.order_id === (data as WSMessage.AlgoOrder).algoOrderId\n );\n\n if (index > -1) {\n data = {\n ...data,\n ...algoOrderCacheQuneue.current[index],\n };\n algoOrderCacheQuneue.current.splice(index, 1);\n }\n }\n }\n\n map.forEach((getKey, key) => {\n mutate(\n unstable_serialize((index, prevData) => [\n getKey(index, prevData),\n state.accountId,\n ]),\n (prevData?: any[]) => {\n return updateOrdersHandler(key, data, prevData);\n },\n {\n revalidate: false,\n }\n );\n });\n\n // emit events;\n // ee.emit(\"orders:changed\", {\n // ...data,\n // status: data.status || (data as WSMessage.AlgoOrder).algoStatus,\n // });\n\n ee.emit(\"orders:changed\", {\n ...data,\n status: data.status || (data as WSMessage.AlgoOrder).algoStatus,\n });\n };\n\n // orders\n useEffect(() => {\n if (!state.accountId) return;\n const unsubscribe = ws.privateSubscribe(\"executionreport\", {\n onMessage: (data: any) => {\n updateOrders(data, false);\n },\n });\n\n return () => unsubscribe?.();\n }, [state.accountId]);\n\n // algo orders\n useEffect(() => {\n if (!state.accountId) return;\n const unsubscribe = ws.privateSubscribe(\"algoexecutionreport\", {\n onMessage: (data: any) => {\n setTimeout(() => {\n if (Array.isArray(data)) {\n data.forEach((item) => {\n updateOrders(item, true);\n\n // ee.emit(\"orders:changed\", { ...item, status: item.algoStatus });\n });\n } else {\n updateOrders(data, true);\n // ee.emit(\"orders:changed\", { ...data, status: data.algoStatus });\n }\n }, 100);\n },\n });\n\n return () => unsubscribe?.();\n }, [state.accountId]);\n\n // positions\n useEffect(() => {\n if (!state.accountId) return;\n const key = [\"/v1/positions\", state.accountId];\n const unsubscribe = ws.privateSubscribe(\"position\", {\n onMessage: (data: { positions: WSMessage.Position[] }) => {\n const { positions: nextPostions } = data;\n\n // console.log(\"ws----- positions data-----\", data);\n\n // updatePositions();\n\n mutate(\n key,\n (prevPositions: any) => {\n // return nextPostions;\n if (!!prevPositions) {\n return {\n ...prevPositions,\n rows: prevPositions.rows.map((row: any) => {\n const item = nextPostions.find(\n (item) => item.symbol === row.symbol\n );\n if (item) {\n return {\n symbol: item.symbol,\n position_qty: item.positionQty,\n cost_position: item.costPosition,\n last_sum_unitary_funding: item.lastSumUnitaryFunding,\n pending_long_qty: item.pendingLongQty,\n pending_short_qty: item.pendingShortQty,\n settle_price: item.settlePrice,\n average_open_price: item.averageOpenPrice,\n unsettled_pnl: item.unsettledPnl,\n mark_price: item.markPrice,\n est_liq_price: item.estLiqPrice,\n timestamp: Date.now(),\n imr: item.imr,\n mmr: item.mmr,\n IMR_withdraw_orders: item.imrwithOrders,\n MMR_with_orders: item.mmrwithOrders,\n pnl_24_h: item.pnl24H,\n fee_24_h: item.fee24H,\n };\n }\n\n return row;\n }),\n };\n }\n },\n {\n revalidate: false,\n }\n );\n },\n });\n return () => {\n unsubscribe?.();\n };\n }, [state.accountId]);\n\n // cache algo orders\n useEffect(() => {\n const handler = (data: API.AlgoOrder) => {\n algoOrderCacheQuneue.current.push(data);\n };\n\n ee.on(\"algoOrder:cache\", handler);\n\n return () => {\n ee.off(\"algoOrder:cache\", handler);\n };\n }, []);\n};\n"],"names":["usePrivateDataObserver","options","ws","useWS","ee","useEventEmitter","state","useAccount","algoOrderCacheQuneue","useRef","updateOrders","data","isAlgoOrder","map","getKeysMap","current","length","index","findIndex","item","order_id","algoOrderId","splice","forEach","getKey","key","mutate","unstable_serialize","prevData","accountId","updateOrdersHandler","revalidate","emit","status","algoStatus","useEffect","unsubscribe","privateSubscribe","onMessage","setTimeout","Array","isArray","positions","nextPostions","prevPositions","rows","row","find","symbol","position_qty","positionQty","cost_position","costPosition","last_sum_unitary_funding","lastSumUnitaryFunding","pending_long_qty","pendingLongQty","pending_short_qty","pendingShortQty","settle_price","settlePrice","average_open_price","averageOpenPrice","unsettled_pnl","unsettledPnl","mark_price","markPrice","est_liq_price","estLiqPrice","timestamp","Date","now","imr","mmr","IMR_withdraw_orders","imrwithOrders","MMR_with_orders","mmrwithOrders","pnl_24_h","pnl24H","fee_24_h","fee24H","handler","push","on","off"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAYaA;;;eAAAA;;;uBAZqB;uBACZ;qBACC;4BAEI;0BACQ;iCAEH;sBAGI;AAE7B,MAAMA,yBAAyB,CAACC;IAIrC,MAAMC,KAAKC,IAAAA,YAAK;IAChB,qCAAqC;IACrC,MAAMC,KAAKC,IAAAA,gCAAe;IAC1B,MAAM,EAAEC,KAAK,EAAE,GAAGC,IAAAA,sBAAU;IAE5B,kEAAkE;IAClE,MAAMC,uBAAuBC,IAAAA,aAAM,EAAkB,EAAE;IAEvD,MAAMC,eAAe,CACnBC,MACAC;QAEA,MAAMC,MAAMZ,QAAQa,UAAU,CAAC;QAE/B,mEAAmE;QAEnE,IAAIF,aAAa;YACf,mEAAmE;YACnE,IAAIJ,qBAAqBO,OAAO,CAACC,MAAM,EAAE;gBACvC,MAAMC,QAAQT,qBAAqBO,OAAO,CAACG,SAAS,CAClD,CAACC,OACCA,KAAKC,QAAQ,KAAK,AAACT,KAA6BU,WAAW;gBAG/D,IAAIJ,QAAQ,CAAC,GAAG;oBACdN,OAAO;wBACL,GAAGA,IAAI;wBACP,GAAGH,qBAAqBO,OAAO,CAACE,MAAM;oBACxC;oBACAT,qBAAqBO,OAAO,CAACO,MAAM,CAACL,OAAO;gBAC7C;YACF;QACF;QAEAJ,IAAIU,OAAO,CAAC,CAACC,QAAQC;YACnBC,IAAAA,WAAM,EACJC,IAAAA,4BAAkB,EAAC,CAACV,OAAOW,WAAa;oBACtCJ,OAAOP,OAAOW;oBACdtB,MAAMuB,SAAS;iBAChB,GACD,CAACD;gBACC,OAAOE,IAAAA,yBAAmB,EAACL,KAAKd,MAAMiB;YACxC,GACA;gBACEG,YAAY;YACd;QAEJ;QAEA,gBAAgB;QAChB,8BAA8B;QAC9B,aAAa;QACb,qEAAqE;QACrE,MAAM;QAEN3B,GAAG4B,IAAI,CAAC,kBAAkB;YACxB,GAAGrB,IAAI;YACPsB,QAAQtB,KAAKsB,MAAM,IAAI,AAACtB,KAA6BuB,UAAU;QACjE;IACF;IAEA,SAAS;IACTC,IAAAA,gBAAS,EAAC;QACR,IAAI,CAAC7B,MAAMuB,SAAS,EAAE;QACtB,MAAMO,cAAclC,GAAGmC,gBAAgB,CAAC,mBAAmB;YACzDC,WAAW,CAAC3B;gBACVD,aAAaC,MAAM;YACrB;QACF;QAEA,OAAO,IAAMyB;IACf,GAAG;QAAC9B,MAAMuB,SAAS;KAAC;IAEpB,cAAc;IACdM,IAAAA,gBAAS,EAAC;QACR,IAAI,CAAC7B,MAAMuB,SAAS,EAAE;QACtB,MAAMO,cAAclC,GAAGmC,gBAAgB,CAAC,uBAAuB;YAC7DC,WAAW,CAAC3B;gBACV4B,WAAW;oBACT,IAAIC,MAAMC,OAAO,CAAC9B,OAAO;wBACvBA,KAAKY,OAAO,CAAC,CAACJ;4BACZT,aAAaS,MAAM;wBAEnB,mEAAmE;wBACrE;oBACF,OAAO;wBACLT,aAAaC,MAAM;oBACnB,mEAAmE;oBACrE;gBACF,GAAG;YACL;QACF;QAEA,OAAO,IAAMyB;IACf,GAAG;QAAC9B,MAAMuB,SAAS;KAAC;IAEpB,YAAY;IACZM,IAAAA,gBAAS,EAAC;QACR,IAAI,CAAC7B,MAAMuB,SAAS,EAAE;QACtB,MAAMJ,MAAM;YAAC;YAAiBnB,MAAMuB,SAAS;SAAC;QAC9C,MAAMO,cAAclC,GAAGmC,gBAAgB,CAAC,YAAY;YAClDC,WAAW,CAAC3B;gBACV,MAAM,EAAE+B,WAAWC,YAAY,EAAE,GAAGhC;gBAEpC,oDAAoD;gBAEpD,qBAAqB;gBAErBe,IAAAA,WAAM,EACJD,KACA,CAACmB;oBACC,uBAAuB;oBACvB,IAAI,CAAC,CAACA,eAAe;wBACnB,OAAO;4BACL,GAAGA,aAAa;4BAChBC,MAAMD,cAAcC,IAAI,CAAChC,GAAG,CAAC,CAACiC;gCAC5B,MAAM3B,OAAOwB,aAAaI,IAAI,CAC5B,CAAC5B,OAASA,KAAK6B,MAAM,KAAKF,IAAIE,MAAM;gCAEtC,IAAI7B,MAAM;oCACR,OAAO;wCACL6B,QAAQ7B,KAAK6B,MAAM;wCACnBC,cAAc9B,KAAK+B,WAAW;wCAC9BC,eAAehC,KAAKiC,YAAY;wCAChCC,0BAA0BlC,KAAKmC,qBAAqB;wCACpDC,kBAAkBpC,KAAKqC,cAAc;wCACrCC,mBAAmBtC,KAAKuC,eAAe;wCACvCC,cAAcxC,KAAKyC,WAAW;wCAC9BC,oBAAoB1C,KAAK2C,gBAAgB;wCACzCC,eAAe5C,KAAK6C,YAAY;wCAChCC,YAAY9C,KAAK+C,SAAS;wCAC1BC,eAAehD,KAAKiD,WAAW;wCAC/BC,WAAWC,KAAKC,GAAG;wCACnBC,KAAKrD,KAAKqD,GAAG;wCACbC,KAAKtD,KAAKsD,GAAG;wCACbC,qBAAqBvD,KAAKwD,aAAa;wCACvCC,iBAAiBzD,KAAK0D,aAAa;wCACnCC,UAAU3D,KAAK4D,MAAM;wCACrBC,UAAU7D,KAAK8D,MAAM;oCACvB;gCACF;gCAEA,OAAOnC;4BACT;wBACF;oBACF;gBACF,GACA;oBACEf,YAAY;gBACd;YAEJ;QACF;QACA,OAAO;YACLK;QACF;IACF,GAAG;QAAC9B,MAAMuB,SAAS;KAAC;IAEpB,oBAAoB;IACpBM,IAAAA,gBAAS,EAAC;QACR,MAAM+C,UAAU,CAACvE;YACfH,qBAAqBO,OAAO,CAACoE,IAAI,CAACxE;QACpC;QAEAP,GAAGgF,EAAE,CAAC,mBAAmBF;QAEzB,OAAO;YACL9E,GAAGiF,GAAG,CAAC,mBAAmBH;QAC5B;IACF,GAAG,EAAE;AACP"}