greeks-live-ui 0.1.21 → 0.1.22

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 (350) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.min.mjs +92 -92
  3. package/dist/index.full.min.mjs.map +1 -1
  4. package/dist/index.full.mjs +62 -329
  5. package/dist/locale/en.min.mjs +1 -1
  6. package/dist/locale/en.min.mjs.map +1 -1
  7. package/dist/locale/en.mjs +0 -6
  8. package/dist/locale/zh-cn.min.mjs +1 -1
  9. package/dist/locale/zh-cn.min.mjs.map +1 -1
  10. package/dist/locale/zh-cn.mjs +0 -6
  11. package/dist/locale/zh-tw.min.mjs +1 -1
  12. package/dist/locale/zh-tw.min.mjs.map +1 -1
  13. package/dist/locale/zh-tw.mjs +0 -6
  14. package/es/components/chart/index.d.ts +28 -28
  15. package/es/components/chart/src/chart.vue.d.ts +28 -28
  16. package/es/components/chart-panel/index.d.ts +10 -10
  17. package/es/components/chart-panel/src/chart-panel.vue.d.ts +10 -10
  18. package/es/components/greeks-summary/index.d.ts +4 -4
  19. package/es/components/greeks-summary/src/greeks-summary.vue.d.ts +4 -4
  20. package/es/components/panel-vrp/index.d.ts +24 -59
  21. package/es/components/panel-vrp/src/panel-vrp.d.ts +0 -5
  22. package/es/components/panel-vrp/src/panel-vrp.vue.d.ts +24 -61
  23. package/es/components/popover/index.d.ts +6 -6
  24. package/es/components/popover/src/popover.d.ts +1 -1
  25. package/es/components/popover/src/popover.vue.d.ts +6 -6
  26. package/es/components/tag/index.d.ts +1 -1
  27. package/es/components/tag/src/tag.vue.d.ts +1 -1
  28. package/es/components/tooltip/index.d.ts +4 -4
  29. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  30. package/es/components/tooltip/src/tooltip.vue.d.ts +4 -4
  31. package/es/hooks/use-floating/index.d.ts +4 -4
  32. package/es/hooks/use-z-index/index.d.ts +3 -3
  33. package/es/index.mjs +25 -25
  34. package/es/locale/lang/en.d.ts +0 -6
  35. package/es/locale/lang/zh-cn.d.ts +0 -6
  36. package/es/locale/lang/zh-tw.d.ts +0 -6
  37. package/es/packages/components/checkbox/index.mjs +2 -2
  38. package/es/packages/components/checkbox/src/checkbox.mjs +31 -5
  39. package/es/packages/components/checkbox/src/checkbox.mjs.map +1 -1
  40. package/es/packages/components/checkbox/src/checkbox2.mjs +5 -31
  41. package/es/packages/components/checkbox/src/checkbox2.mjs.map +1 -1
  42. package/es/packages/components/countdown/index.mjs +2 -2
  43. package/es/packages/components/countdown/src/countdown.mjs +163 -53
  44. package/es/packages/components/countdown/src/countdown.mjs.map +1 -1
  45. package/es/packages/components/countdown/src/countdown2.mjs +53 -163
  46. package/es/packages/components/countdown/src/countdown2.mjs.map +1 -1
  47. package/es/packages/components/currency-icon/index.mjs +2 -2
  48. package/es/packages/components/currency-icon/src/currency-icon.mjs +8 -45
  49. package/es/packages/components/currency-icon/src/currency-icon.mjs.map +1 -1
  50. package/es/packages/components/currency-icon/src/currency-icon2.mjs +45 -8
  51. package/es/packages/components/currency-icon/src/currency-icon2.mjs.map +1 -1
  52. package/es/packages/components/currency-radio-group/index.mjs +2 -2
  53. package/es/packages/components/currency-radio-group/src/currency-radio-group.mjs +18 -57
  54. package/es/packages/components/currency-radio-group/src/currency-radio-group.mjs.map +1 -1
  55. package/es/packages/components/currency-radio-group/src/currency-radio-group2.mjs +57 -18
  56. package/es/packages/components/currency-radio-group/src/currency-radio-group2.mjs.map +1 -1
  57. package/es/packages/components/dropdown-button/index.mjs +2 -2
  58. package/es/packages/components/dropdown-button/src/dropdown-button.mjs +39 -5
  59. package/es/packages/components/dropdown-button/src/dropdown-button.mjs.map +1 -1
  60. package/es/packages/components/dropdown-button/src/dropdown-button2.mjs +5 -39
  61. package/es/packages/components/dropdown-button/src/dropdown-button2.mjs.map +1 -1
  62. package/es/packages/components/greeks-summary/index.mjs +2 -2
  63. package/es/packages/components/greeks-summary/src/greeks-summary.mjs +49 -340
  64. package/es/packages/components/greeks-summary/src/greeks-summary.mjs.map +1 -1
  65. package/es/packages/components/greeks-summary/src/greeks-summary2.mjs +340 -49
  66. package/es/packages/components/greeks-summary/src/greeks-summary2.mjs.map +1 -1
  67. package/es/packages/components/index.mjs +25 -25
  68. package/es/packages/components/menu/index.mjs +2 -2
  69. package/es/packages/components/menu/src/menu.mjs +5 -31
  70. package/es/packages/components/menu/src/menu.mjs.map +1 -1
  71. package/es/packages/components/menu/src/menu2.mjs +31 -5
  72. package/es/packages/components/menu/src/menu2.mjs.map +1 -1
  73. package/es/packages/components/menu-item/index.mjs +2 -2
  74. package/es/packages/components/menu-item/src/menu-item.mjs +5 -31
  75. package/es/packages/components/menu-item/src/menu-item.mjs.map +1 -1
  76. package/es/packages/components/menu-item/src/menu-item2.mjs +31 -5
  77. package/es/packages/components/menu-item/src/menu-item2.mjs.map +1 -1
  78. package/es/packages/components/number-format/index.mjs +2 -2
  79. package/es/packages/components/number-format/src/number-format.mjs +152 -71
  80. package/es/packages/components/number-format/src/number-format.mjs.map +1 -1
  81. package/es/packages/components/number-format/src/number-format2.mjs +71 -152
  82. package/es/packages/components/number-format/src/number-format2.mjs.map +1 -1
  83. package/es/packages/components/page-turner/index.mjs +2 -2
  84. package/es/packages/components/page-turner/src/page-turner.mjs +63 -12
  85. package/es/packages/components/page-turner/src/page-turner.mjs.map +1 -1
  86. package/es/packages/components/page-turner/src/page-turner2.mjs +12 -63
  87. package/es/packages/components/page-turner/src/page-turner2.mjs.map +1 -1
  88. package/es/packages/components/panel-gex-by-expiry/index.mjs +2 -2
  89. package/es/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry.mjs +554 -22
  90. package/es/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry.mjs.map +1 -1
  91. package/es/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry2.mjs +22 -554
  92. package/es/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry2.mjs.map +1 -1
  93. package/es/packages/components/panel-iv-skew/index.mjs +2 -2
  94. package/es/packages/components/panel-iv-skew/src/panel-iv-skew.mjs +22 -418
  95. package/es/packages/components/panel-iv-skew/src/panel-iv-skew.mjs.map +1 -1
  96. package/es/packages/components/panel-iv-skew/src/panel-iv-skew2.mjs +418 -22
  97. package/es/packages/components/panel-iv-skew/src/panel-iv-skew2.mjs.map +1 -1
  98. package/es/packages/components/panel-max-pain-price/index.mjs +2 -2
  99. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price.mjs +22 -369
  100. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price.mjs.map +1 -1
  101. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price2.mjs +369 -22
  102. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price2.mjs.map +1 -1
  103. package/es/packages/components/panel-option-open-interest/index.mjs +2 -2
  104. package/es/packages/components/panel-option-open-interest/src/panel-option-open-interest.mjs +22 -474
  105. package/es/packages/components/panel-option-open-interest/src/panel-option-open-interest.mjs.map +1 -1
  106. package/es/packages/components/panel-option-open-interest/src/panel-option-open-interest2.mjs +474 -22
  107. package/es/packages/components/panel-option-open-interest/src/panel-option-open-interest2.mjs.map +1 -1
  108. package/es/packages/components/panel-option-trade-volume/index.mjs +2 -2
  109. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.mjs +523 -22
  110. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.mjs.map +1 -1
  111. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.mjs +22 -523
  112. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.mjs.map +1 -1
  113. package/es/packages/components/panel-sabr-calibration-diagnostics/index.mjs +2 -2
  114. package/es/packages/components/panel-sabr-calibration-diagnostics/src/panel-sabr-calibration-diagnostics.mjs +386 -25
  115. package/es/packages/components/panel-sabr-calibration-diagnostics/src/panel-sabr-calibration-diagnostics.mjs.map +1 -1
  116. package/es/packages/components/panel-sabr-calibration-diagnostics/src/panel-sabr-calibration-diagnostics2.mjs +25 -386
  117. package/es/packages/components/panel-sabr-calibration-diagnostics/src/panel-sabr-calibration-diagnostics2.mjs.map +1 -1
  118. package/es/packages/components/panel-sabr-iv-curve/index.mjs +2 -2
  119. package/es/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.mjs +585 -25
  120. package/es/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.mjs.map +1 -1
  121. package/es/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.mjs +25 -585
  122. package/es/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.mjs.map +1 -1
  123. package/es/packages/components/panel-vol-fly/index.mjs +2 -2
  124. package/es/packages/components/panel-vol-fly/src/panel-vol-fly.mjs +21 -758
  125. package/es/packages/components/panel-vol-fly/src/panel-vol-fly.mjs.map +1 -1
  126. package/es/packages/components/panel-vol-fly/src/panel-vol-fly2.mjs +758 -21
  127. package/es/packages/components/panel-vol-fly/src/panel-vol-fly2.mjs.map +1 -1
  128. package/es/packages/components/panel-volatility-term-structure/index.mjs +2 -2
  129. package/es/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure.mjs +585 -22
  130. package/es/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure.mjs.map +1 -1
  131. package/es/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure2.mjs +22 -585
  132. package/es/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure2.mjs.map +1 -1
  133. package/es/packages/components/panel-vrp/index.mjs +2 -2
  134. package/es/packages/components/panel-vrp/src/panel-vrp.mjs +478 -22
  135. package/es/packages/components/panel-vrp/src/panel-vrp.mjs.map +1 -1
  136. package/es/packages/components/panel-vrp/src/panel-vrp2.mjs +22 -739
  137. package/es/packages/components/panel-vrp/src/panel-vrp2.mjs.map +1 -1
  138. package/es/packages/components/popover/index.mjs +2 -2
  139. package/es/packages/components/popover/src/popover.mjs +88 -33
  140. package/es/packages/components/popover/src/popover.mjs.map +1 -1
  141. package/es/packages/components/popover/src/popover2.mjs +33 -88
  142. package/es/packages/components/popover/src/popover2.mjs.map +1 -1
  143. package/es/packages/components/pro-badge/index.mjs +2 -2
  144. package/es/packages/components/pro-badge/src/pro-badge.mjs +5 -90
  145. package/es/packages/components/pro-badge/src/pro-badge.mjs.map +1 -1
  146. package/es/packages/components/pro-badge/src/pro-badge2.mjs +90 -5
  147. package/es/packages/components/pro-badge/src/pro-badge2.mjs.map +1 -1
  148. package/es/packages/components/progress/index.mjs +2 -2
  149. package/es/packages/components/progress/src/progress.mjs +12 -45
  150. package/es/packages/components/progress/src/progress.mjs.map +1 -1
  151. package/es/packages/components/progress/src/progress2.mjs +45 -12
  152. package/es/packages/components/progress/src/progress2.mjs.map +1 -1
  153. package/es/packages/components/radio-dropdown/index.mjs +2 -2
  154. package/es/packages/components/radio-dropdown/src/radio-dropdown.mjs +205 -19
  155. package/es/packages/components/radio-dropdown/src/radio-dropdown.mjs.map +1 -1
  156. package/es/packages/components/radio-dropdown/src/radio-dropdown2.mjs +19 -205
  157. package/es/packages/components/radio-dropdown/src/radio-dropdown2.mjs.map +1 -1
  158. package/es/packages/components/tag/index.mjs +2 -2
  159. package/es/packages/components/tag/src/tag.mjs +28 -112
  160. package/es/packages/components/tag/src/tag.mjs.map +1 -1
  161. package/es/packages/components/tag/src/tag2.mjs +112 -28
  162. package/es/packages/components/tag/src/tag2.mjs.map +1 -1
  163. package/es/packages/locale/lang/en.mjs +0 -6
  164. package/es/packages/locale/lang/en.mjs.map +1 -1
  165. package/es/packages/locale/lang/zh-cn.mjs +0 -6
  166. package/es/packages/locale/lang/zh-cn.mjs.map +1 -1
  167. package/es/packages/locale/lang/zh-tw.mjs +0 -6
  168. package/es/packages/locale/lang/zh-tw.mjs.map +1 -1
  169. package/es/utils/vue/vnode.d.ts +6 -6
  170. package/lib/components/chart/index.d.ts +28 -28
  171. package/lib/components/chart/src/chart.vue.d.ts +28 -28
  172. package/lib/components/chart-panel/index.d.ts +10 -10
  173. package/lib/components/chart-panel/src/chart-panel.vue.d.ts +10 -10
  174. package/lib/components/greeks-summary/index.d.ts +4 -4
  175. package/lib/components/greeks-summary/src/greeks-summary.vue.d.ts +4 -4
  176. package/lib/components/panel-vrp/index.d.ts +24 -59
  177. package/lib/components/panel-vrp/src/panel-vrp.d.ts +0 -5
  178. package/lib/components/panel-vrp/src/panel-vrp.vue.d.ts +24 -61
  179. package/lib/components/popover/index.d.ts +6 -6
  180. package/lib/components/popover/src/popover.d.ts +1 -1
  181. package/lib/components/popover/src/popover.vue.d.ts +6 -6
  182. package/lib/components/tag/index.d.ts +1 -1
  183. package/lib/components/tag/src/tag.vue.d.ts +1 -1
  184. package/lib/components/tooltip/index.d.ts +4 -4
  185. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  186. package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -4
  187. package/lib/hooks/use-floating/index.d.ts +4 -4
  188. package/lib/hooks/use-z-index/index.d.ts +3 -3
  189. package/lib/index.js +28 -28
  190. package/lib/locale/lang/en.d.ts +0 -6
  191. package/lib/locale/lang/zh-cn.d.ts +0 -6
  192. package/lib/locale/lang/zh-tw.d.ts +0 -6
  193. package/lib/packages/components/chart-panel/index.js +2 -2
  194. package/lib/packages/components/chart-panel/src/chart-panel.js +55 -473
  195. package/lib/packages/components/chart-panel/src/chart-panel.js.map +1 -1
  196. package/lib/packages/components/chart-panel/src/chart-panel2.js +473 -55
  197. package/lib/packages/components/chart-panel/src/chart-panel2.js.map +1 -1
  198. package/lib/packages/components/checkbox-group/index.js +2 -2
  199. package/lib/packages/components/checkbox-group/src/checkbox-group.js +6 -31
  200. package/lib/packages/components/checkbox-group/src/checkbox-group.js.map +1 -1
  201. package/lib/packages/components/checkbox-group/src/checkbox-group2.js +31 -6
  202. package/lib/packages/components/checkbox-group/src/checkbox-group2.js.map +1 -1
  203. package/lib/packages/components/currency-icon/index.js +2 -2
  204. package/lib/packages/components/currency-icon/src/currency-icon.js +9 -45
  205. package/lib/packages/components/currency-icon/src/currency-icon.js.map +1 -1
  206. package/lib/packages/components/currency-icon/src/currency-icon2.js +45 -9
  207. package/lib/packages/components/currency-icon/src/currency-icon2.js.map +1 -1
  208. package/lib/packages/components/date-time-picker/index.js +2 -2
  209. package/lib/packages/components/date-time-picker/src/date-time-picker.js +13 -121
  210. package/lib/packages/components/date-time-picker/src/date-time-picker.js.map +1 -1
  211. package/lib/packages/components/date-time-picker/src/date-time-picker2.js +121 -13
  212. package/lib/packages/components/date-time-picker/src/date-time-picker2.js.map +1 -1
  213. package/lib/packages/components/direction-tag/index.js +2 -2
  214. package/lib/packages/components/direction-tag/src/direction-tag.js +15 -72
  215. package/lib/packages/components/direction-tag/src/direction-tag.js.map +1 -1
  216. package/lib/packages/components/direction-tag/src/direction-tag2.js +72 -15
  217. package/lib/packages/components/direction-tag/src/direction-tag2.js.map +1 -1
  218. package/lib/packages/components/dropdown-button/index.js +2 -2
  219. package/lib/packages/components/dropdown-button/src/dropdown-button.js +6 -39
  220. package/lib/packages/components/dropdown-button/src/dropdown-button.js.map +1 -1
  221. package/lib/packages/components/dropdown-button/src/dropdown-button2.js +39 -6
  222. package/lib/packages/components/dropdown-button/src/dropdown-button2.js.map +1 -1
  223. package/lib/packages/components/icon/index.js +2 -2
  224. package/lib/packages/components/icon/src/icon.js +17 -54
  225. package/lib/packages/components/icon/src/icon.js.map +1 -1
  226. package/lib/packages/components/icon/src/icon2.js +54 -17
  227. package/lib/packages/components/icon/src/icon2.js.map +1 -1
  228. package/lib/packages/components/index.js +28 -28
  229. package/lib/packages/components/menu/index.js +2 -2
  230. package/lib/packages/components/menu/src/menu.js +6 -31
  231. package/lib/packages/components/menu/src/menu.js.map +1 -1
  232. package/lib/packages/components/menu/src/menu2.js +31 -6
  233. package/lib/packages/components/menu/src/menu2.js.map +1 -1
  234. package/lib/packages/components/menu-item/index.js +2 -2
  235. package/lib/packages/components/menu-item/src/menu-item.js +6 -31
  236. package/lib/packages/components/menu-item/src/menu-item.js.map +1 -1
  237. package/lib/packages/components/menu-item/src/menu-item2.js +31 -6
  238. package/lib/packages/components/menu-item/src/menu-item2.js.map +1 -1
  239. package/lib/packages/components/number-format/index.js +2 -2
  240. package/lib/packages/components/number-format/src/number-format.js +152 -72
  241. package/lib/packages/components/number-format/src/number-format.js.map +1 -1
  242. package/lib/packages/components/number-format/src/number-format2.js +72 -152
  243. package/lib/packages/components/number-format/src/number-format2.js.map +1 -1
  244. package/lib/packages/components/page-turner/index.js +2 -2
  245. package/lib/packages/components/page-turner/src/page-turner.js +63 -13
  246. package/lib/packages/components/page-turner/src/page-turner.js.map +1 -1
  247. package/lib/packages/components/page-turner/src/page-turner2.js +13 -63
  248. package/lib/packages/components/page-turner/src/page-turner2.js.map +1 -1
  249. package/lib/packages/components/panel/index.js +2 -2
  250. package/lib/packages/components/panel/src/panel.js +82 -6
  251. package/lib/packages/components/panel/src/panel.js.map +1 -1
  252. package/lib/packages/components/panel/src/panel2.js +6 -82
  253. package/lib/packages/components/panel/src/panel2.js.map +1 -1
  254. package/lib/packages/components/panel-max-pain-price/index.js +2 -2
  255. package/lib/packages/components/panel-max-pain-price/src/panel-max-pain-price.js +23 -373
  256. package/lib/packages/components/panel-max-pain-price/src/panel-max-pain-price.js.map +1 -1
  257. package/lib/packages/components/panel-max-pain-price/src/panel-max-pain-price2.js +373 -23
  258. package/lib/packages/components/panel-max-pain-price/src/panel-max-pain-price2.js.map +1 -1
  259. package/lib/packages/components/panel-option-skew-table/index.js +2 -2
  260. package/lib/packages/components/panel-option-skew-table/src/panel-option-skew-table.js +265 -22
  261. package/lib/packages/components/panel-option-skew-table/src/panel-option-skew-table.js.map +1 -1
  262. package/lib/packages/components/panel-option-skew-table/src/panel-option-skew-table2.js +22 -265
  263. package/lib/packages/components/panel-option-skew-table/src/panel-option-skew-table2.js.map +1 -1
  264. package/lib/packages/components/panel-option-trade-volume/index.js +2 -2
  265. package/lib/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.js +23 -523
  266. package/lib/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.js.map +1 -1
  267. package/lib/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.js +523 -23
  268. package/lib/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.js.map +1 -1
  269. package/lib/packages/components/panel-rv-calc/index.js +2 -2
  270. package/lib/packages/components/panel-rv-calc/src/panel-rv-calc.js +9 -507
  271. package/lib/packages/components/panel-rv-calc/src/panel-rv-calc.js.map +1 -1
  272. package/lib/packages/components/panel-rv-calc/src/panel-rv-calc2.js +507 -9
  273. package/lib/packages/components/panel-rv-calc/src/panel-rv-calc2.js.map +1 -1
  274. package/lib/packages/components/panel-sabr-iv-curve/index.js +2 -2
  275. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.js +585 -26
  276. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.js.map +1 -1
  277. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.js +26 -585
  278. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.js.map +1 -1
  279. package/lib/packages/components/panel-skew/index.js +2 -2
  280. package/lib/packages/components/panel-skew/src/panel-skew.js +751 -22
  281. package/lib/packages/components/panel-skew/src/panel-skew.js.map +1 -1
  282. package/lib/packages/components/panel-skew/src/panel-skew2.js +22 -751
  283. package/lib/packages/components/panel-skew/src/panel-skew2.js.map +1 -1
  284. package/lib/packages/components/panel-spots-etf-net-inflow/index.js +2 -2
  285. package/lib/packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow.js +624 -22
  286. package/lib/packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow.js.map +1 -1
  287. package/lib/packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow2.js +22 -624
  288. package/lib/packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow2.js.map +1 -1
  289. package/lib/packages/components/panel-trade-scatter-plot/index.js +2 -2
  290. package/lib/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.js +473 -22
  291. package/lib/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.js.map +1 -1
  292. package/lib/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot2.js +22 -473
  293. package/lib/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot2.js.map +1 -1
  294. package/lib/packages/components/panel-vol-fly/index.js +2 -2
  295. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly.js +22 -758
  296. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly.js.map +1 -1
  297. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly2.js +758 -22
  298. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly2.js.map +1 -1
  299. package/lib/packages/components/panel-volatility-term-structure/index.js +2 -2
  300. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure.js +23 -589
  301. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure.js.map +1 -1
  302. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure2.js +589 -23
  303. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure2.js.map +1 -1
  304. package/lib/packages/components/panel-vrp/src/panel-vrp.js +61 -322
  305. package/lib/packages/components/panel-vrp/src/panel-vrp.js.map +1 -1
  306. package/lib/packages/components/panel-vrp/src/panel-vrp2.js.map +1 -1
  307. package/lib/packages/components/popover/index.js +2 -2
  308. package/lib/packages/components/popover/src/popover.js +88 -34
  309. package/lib/packages/components/popover/src/popover.js.map +1 -1
  310. package/lib/packages/components/popover/src/popover2.js +34 -88
  311. package/lib/packages/components/popover/src/popover2.js.map +1 -1
  312. package/lib/packages/components/pro-badge/index.js +2 -2
  313. package/lib/packages/components/pro-badge/src/pro-badge.js +6 -90
  314. package/lib/packages/components/pro-badge/src/pro-badge.js.map +1 -1
  315. package/lib/packages/components/pro-badge/src/pro-badge2.js +90 -6
  316. package/lib/packages/components/pro-badge/src/pro-badge2.js.map +1 -1
  317. package/lib/packages/components/progress/index.js +2 -2
  318. package/lib/packages/components/progress/src/progress.js +45 -13
  319. package/lib/packages/components/progress/src/progress.js.map +1 -1
  320. package/lib/packages/components/progress/src/progress2.js +13 -45
  321. package/lib/packages/components/progress/src/progress2.js.map +1 -1
  322. package/lib/packages/components/radio/index.js +2 -2
  323. package/lib/packages/components/radio/src/radio-button.js +1 -1
  324. package/lib/packages/components/radio/src/radio-group.js +1 -1
  325. package/lib/packages/components/radio/src/radio.js +31 -6
  326. package/lib/packages/components/radio/src/radio.js.map +1 -1
  327. package/lib/packages/components/radio/src/radio2.js +6 -31
  328. package/lib/packages/components/radio/src/radio2.js.map +1 -1
  329. package/lib/packages/components/spin/index.js +2 -2
  330. package/lib/packages/components/spin/src/spin.js +6 -31
  331. package/lib/packages/components/spin/src/spin.js.map +1 -1
  332. package/lib/packages/components/spin/src/spin2.js +31 -6
  333. package/lib/packages/components/spin/src/spin2.js.map +1 -1
  334. package/lib/packages/components/tooltip/index.js +2 -2
  335. package/lib/packages/components/tooltip/src/tooltip.js +26 -86
  336. package/lib/packages/components/tooltip/src/tooltip.js.map +1 -1
  337. package/lib/packages/components/tooltip/src/tooltip2.js +86 -26
  338. package/lib/packages/components/tooltip/src/tooltip2.js.map +1 -1
  339. package/lib/packages/locale/lang/en.js +0 -6
  340. package/lib/packages/locale/lang/en.js.map +1 -1
  341. package/lib/packages/locale/lang/zh-cn.js +0 -6
  342. package/lib/packages/locale/lang/zh-cn.js.map +1 -1
  343. package/lib/packages/locale/lang/zh-tw.js +0 -6
  344. package/lib/packages/locale/lang/zh-tw.js.map +1 -1
  345. package/lib/utils/vue/vnode.d.ts +6 -6
  346. package/package.json +2 -2
  347. package/theme-chalk/g-panel-vrp.css +0 -1
  348. package/theme-chalk/index.css +1 -1
  349. package/theme-chalk/src/panel-vrp.scss +2 -72
  350. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"panel-trade-scatter-plot.js","sources":["../../../../../../../packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.ts"],"sourcesContent":["import { buildProps } from '@greeks-live-ui/utils'\nimport type PanelTradeScatterPlot from './panel-trade-scatter-plot.vue'\nimport type { ExtractPropTypes } from 'vue'\n\nexport const panelTradeScatterPlotEmits = {\n 'update:currency': (currency: string) => true,\n 'update:exchange': (exchange: string) => true,\n}\nexport type PanelTradeScatterPlotEmits = typeof panelTradeScatterPlotEmits\nexport const panelTradeScatterPlotProps = buildProps({\n defaultCurrency: {\n type: String,\n required: false,\n },\n defaultExchange: {\n type: String,\n required: false,\n },\n currency: {\n type: String,\n required: false,\n },\n exchange: {\n type: String,\n required: false,\n },\n})\nexport type PanelTradeScatterPlotProps = ExtractPropTypes<typeof panelTradeScatterPlotProps>\nexport type PanelTradeScatterPlotInstance = InstanceType<typeof PanelTradeScatterPlot>\n"],"names":["buildProps"],"mappings":";;;;;;;AAIO,MAAM,0BAA6B,GAAA;AAAA,EACxC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAAA,EACzC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAC3C,EAAA;AAEO,MAAM,6BAA6BA,kBAAW,CAAA;AAAA,EACnD,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAC;;;;;"}
1
+ {"version":3,"file":"panel-trade-scatter-plot.js","sources":["../../../../../../../packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.b()]\">\n <g-chart-panel\n v-model:currency=\"currency\"\n v-model:exchange=\"exchange\"\n :loading=\"state.loadingFlag\"\n :showExchangeSelector=\"false\"\n :currencyList=\"currencyList\"\n @refresh=\"fetchData\"\n >\n <template #title>\n {{ t('message.tradeScatterPlot') }}\n <g-tooltip :isMobile=\"isMobile\">\n <g-icon name=\"info_question_circle\"></g-icon>\n <template #title>\n <div class=\"greeks-panel-tip\" v-html=\"t('message.tradeScatterPlotTips')\"></div>\n </template>\n </g-tooltip>\n </template>\n <template #tool>\n <span class=\"selector-label h5-hide\">{{\n t('message.contractsLabel')\n }}</span>\n <g-select\n v-model:value=\"state.contractsSize\"\n @change=\"fetchData\"\n class=\"input-select second-select\"\n popupClassName=\"contracts-size-dropdown\"\n :size=\"isPC ? 'small' : 'medium'\"\n >\n <template #selection=\"{ value }\">\n <span>\n ≥<g-icon :name=\"contractsConfig[currency]?.icon\" /> {{ value }}.0\n </span>\n </template>\n <g-select-option\n v-for=\"item in contractsSizeList\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ t('message.contracts') }} ≥\n <g-icon :name=\"item.icon\" />\n {{ item.label }}\n </g-select-option>\n </g-select>\n <div class=\"period-controls\">\n <span class=\"selector-label h5-hide\">{{ t('message.time') }}</span>\n <span class=\"period-range h5-hide\">{{ state.endDateDisplay }}</span>\n <g-page-turner\n :prevDisabled=\"state.loadingFlag\"\n :nextDisabled=\"state.loadingFlag || state.pageCount <= 0\"\n @change=\"handlePageChange\"\n />\n <g-date-time-picker\n v-model=\"state.selectedDateTime\"\n @change=\"handleDateTimeChange\"\n />\n </div>\n </template>\n <template #body>\n <div class=\"echart\" ref=\"echart\">\n <g-chart class=\"skew-chart\" :option=\"chartOption\" />\n </div>\n </template>\n </g-chart-panel>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport {\n useNamespace,\n useLocale,\n useDeviceType,\n useTheme,\n} from '@greeks-live-ui/hooks';\nimport { reactive, computed, onMounted, watch } from 'vue';\nimport {\n panelTradeScatterPlotEmits,\n panelTradeScatterPlotProps,\n} from './panel-trade-scatter-plot';\nimport {\n getTooltipDate,\n timestampFormat,\n parseExpiryToDate,\n showEndDateTime,\n} from '@greeks-live-ui/utils';\nimport {\n getTradeScatterPlot,\n ITradeScatterPlotRes,\n} from '@greeks-live-ui/utils';\nimport dayjs from 'dayjs';\n\ndefineOptions({\n name: 'GPanelTradeScatterPlot',\n});\nconst ns = useNamespace('panel-trade-scatter-plot');\nconst props = defineProps(panelTradeScatterPlotProps);\nconst emit = defineEmits(panelTradeScatterPlotEmits);\nconst { isMobile, isPC } = useDeviceType();\nconst { isDark } = useTheme();\nconst { t, locale } = useLocale();\n\nconst contractsConfig: Record<\n string,\n { icon: string; options: number[]; default: number }\n> = {\n BTC: { icon: 'currency_letter_btc', options: [1, 5, 10], default: 1 },\n ETH: { icon: 'currency_letter_eth', options: [50, 250, 500], default: 50 },\n};\n\nconst contractsSizeList = computed(() => {\n const conf = contractsConfig[currency.value] || contractsConfig.BTC;\n return conf.options.map((val: number) => ({\n value: val,\n label: `${val}.0`,\n icon: conf.icon,\n }));\n});\n\nconst initialCurrency = props.currency || props.defaultCurrency || 'BTC';\nconst state = reactive({\n loadingFlag: false,\n\n exchange: props.exchange || props.defaultExchange || 'Deribit',\n currency: initialCurrency,\n contractsSize: contractsConfig[initialCurrency]?.default || 1,\n\n endDateDisplay: '',\n pageCount: 0,\n scatterPlotData: {} as ITradeScatterPlotRes,\n selectedDateTime: dayjs(),\n});\n\nconst currency = computed({\n get: () => props.currency || state.currency || 'BTC',\n set: (newVal) => {\n props.currency\n ? emit('update:currency', newVal)\n : (state.currency = newVal);\n },\n});\n\nconst exchange = computed({\n get: () => props.exchange || state.exchange || 'Deribit',\n set: (newVal) => {\n props.exchange\n ? emit('update:exchange', newVal)\n : (state.exchange = newVal);\n },\n});\n\nconst currencyList = [\n { value: 'BTC', label: 'BTC', icon: 'currency_btc' },\n { value: 'ETH', label: 'ETH', icon: 'currency_eth' },\n];\n\nconst fetchData = () => {\n state.loadingFlag = true;\n getTradeScatterPlot({\n currency: currency.value,\n exchange: exchange.value,\n min_amount: state.contractsSize,\n end_timestamp: state.selectedDateTime.valueOf(),\n })\n .then((res) => {\n if (res && res.code === 200) {\n state.scatterPlotData = res.data || {};\n // console.log('res.data', res.data);\n // console.log('scatterPlotData', state.scatterPlotData);\n }\n })\n .finally(() => {\n state.loadingFlag = false;\n });\n};\n\nwatch(currency, (val) => {\n state.contractsSize = contractsConfig[val]?.default ?? 1;\n fetchData();\n});\n\nconst getDateTimeRange = () => {\n // 只显示截止时间\n const endTime = state.selectedDateTime || dayjs();\n state.endDateDisplay = showEndDateTime(endTime);\n};\n\nconst handlePageChange = (direction: 'prev' | 'next') => {\n if (direction === 'prev') {\n state.pageCount++;\n state.selectedDateTime = dayjs(state.selectedDateTime).subtract(1, 'hour');\n } else {\n if (state.pageCount <= 0) return;\n state.pageCount--;\n state.selectedDateTime = dayjs(state.selectedDateTime).add(1, 'hour');\n }\n getDateTimeRange();\n fetchData();\n};\n\nconst handleDateTimeChange = (value: any) => {\n state.selectedDateTime = value;\n // 根据用户选择的时间自动计算 pageCount\n // 成交散点图中,pageCount为0表示当前时间前1h到当前时间\n const now = dayjs();\n const selectedTime = dayjs(value);\n const diffInHours = now.diff(selectedTime, 'hour');\n\n // 如果选择的时间在当前时间前1h内,pageCount为0\n // 否则,pageCount为相差的小时数\n state.pageCount = Math.max(0, diffInHours);\n getDateTimeRange();\n fetchData();\n};\n\nonMounted(() => {\n getDateTimeRange();\n fetchData();\n});\n\nconst getEchartData = () => {\n const raw = state.scatterPlotData;\n // console.log('raw', raw);\n const result: Record<string, any[]> = {};\n // 先对expiry按到期日升序排序\n const sortedExpiries = Object.keys(raw || {}).sort(\n (a, b) => parseExpiryToDate(a).getTime() - parseExpiryToDate(b).getTime()\n );\n sortedExpiries.forEach((expiry) => {\n const arr = raw[expiry];\n result[expiry] = (arr || []).map((item) => ({\n ...item,\n expiry,\n sfm_bp: (item.price - item.mark_price) * 10000,\n time: item.ts,\n size: item.amount,\n }));\n });\n // console.log('echartData', result);\n return result;\n};\n\nconst getPercentile = (arr: number[], percentile: number) => {\n if (!arr.length) return 0;\n const sorted = [...arr].sort((a, b) => a - b);\n const idx = Math.floor(percentile * (sorted.length - 1));\n return sorted[idx];\n};\n\nconst getSymbolSize = (\n amount: number,\n minAmount: number,\n maxAmount: number\n) => {\n const minSize = 1;\n const maxSize = 40;\n if (!amount || amount <= minAmount) return minSize;\n if (amount >= maxAmount) {\n // 对数映射极端大值\n const logMax = Math.log10(10000 - maxAmount + 1);\n const logVal = Math.log10(amount - maxAmount + 1);\n return maxSize + (logVal / (logMax || 1)) * (maxSize * 0.2); // 允许极端点更大\n }\n // 线性映射\n return (\n minSize +\n ((amount - minAmount) / (maxAmount - minAmount)) * (maxSize - minSize)\n );\n};\n\nconst getEchartOption = () => {\n const echartData = getEchartData();\n const legendData = Object.keys(echartData);\n // 统计所有 amount\n const allAmounts = legendData\n .flatMap((expiry) => echartData[expiry].map((item) => item.size))\n .filter((v) => typeof v === 'number');\n const minAmount = Math.min(...allAmounts);\n const maxAmount = getPercentile(allAmounts, 0.95); // 95分位数\n const series = legendData.map((expiry, idx) => ({\n name: expiry,\n type: 'scatter',\n data: echartData[expiry].map((item) => [\n item.time,\n item.sfm_bp,\n item.size,\n item,\n ]),\n symbolSize: (val: any[]) => {\n const amount = val[2];\n return getSymbolSize(amount, minAmount, maxAmount);\n },\n emphasis: { focus: 'series' },\n blur: {\n itemStyle: {\n opacity: 1,\n },\n },\n }));\n\n const option = {\n legend: {\n // type: isMobile.value ? 'scroll' : 'plain',\n left: 'center',\n width: '90%',\n data: legendData,\n itemGap: isMobile.value ? 5 : 10,\n textStyle: {\n // 控制图例文本样式 (可选)\n color: isDark.value ? '#ADB5BD' : '#596169',\n fontSize: 12, // 文本字体大小\n padding: isMobile.value ? [0, 0, 0, -8] : [0, 0, 0, -5],\n },\n selected: legendData.reduce((acc, cur) => ({ ...acc, [cur]: true }), {}),\n lineStyle: {\n inactiveColor: isDark.value ? '#2B2F32' : '#DEE2E6', // 浅色/Grey/3 图例关闭时的线条描边颜色\n },\n inactiveColor: isDark.value ? '#495057' : '#BDC4CB', // 浅色/Grey/5 图例关闭时的颜色\n },\n tooltip: {\n trigger: 'item',\n backgroundColor: isDark.value ? '#E9ECEF' : '#292F3D',\n padding: [6, 8, 5, 6],\n borderWidth: 0,\n textStyle: {\n color: isDark.value ? '#000000' : '#FFFFFF',\n fontSize: 12,\n lineHeight: 16,\n fontWeight: 400,\n },\n formatter: (params: any) => {\n const d = params.data[3];\n const tooltipDate = getTooltipDate(d.ts, locale.value.name, {\n showSeconds: false,\n });\n const iconClass = contractsConfig[currency.value]?.icon || '';\n const iconColor = isDark.value ? '#000000' : '#FFFFFF';\n let content = '';\n content += `<div class=\"chart-tooltip-box\"><div style=\"margin-bottom:4px;\">${tooltipDate}</div>`;\n content += `\n <div class=\"chart-tooltip\">\n <div>\n <span style=\"display:inline-flex;align-items:center;\">\n ${params.marker}&nbsp;${d.name}\n <svg class=\"icon\" style=\"width:1em;height:1em;vertical-align:middle;fill:${iconColor};margin:0 2px;\">\n <use xlink:href=\"#${iconClass}\"></use>\n </svg>\n ${d.amount}\n </span>\n </div>\n </div>\n <div class=\"chart-tooltip\">\n <div>\n <span>Price: ${d.price} (${\n d.sfm_bp > 0 ? '+' : ''\n }${d.sfm_bp.toFixed(1)}bp)</span>\n </div>\n <span></span> \n </div>\n `;\n return content + '</div>';\n },\n },\n xAxis: {\n type: 'time',\n axisTick: {\n show: false, // 隐藏刻度线\n },\n axisLabel: {\n // 坐标轴刻度标签\n color: isDark.value ? '#CED4DA' : '#343A40', // 浅色/Grey/12\n fontWeight: 400,\n fontSize: 10,\n // formatter: (val: any) => dayjs(val).format('HH:mm'),\n },\n axisLine: {\n show: false, // 隐藏坐标轴轴线\n lineStyle: {\n color: isDark.value ? '#CED4DA' : '#343A40', // 线的颜色 浅色/Grey/12\n },\n },\n splitNumber: isMobile.value ? 5 : 7,\n // splitLine: {\n // show: !isMobile.value && !isDark.value, // 显示 X 轴网格线\n // lineStyle: {\n // color: '#F1F1F1', // 网格线颜色\n // width: 1, // 网格线宽度\n // type: 'solid', // 网格线类型: 'solid', 'dashed', 'dotted'\n // },\n // },\n },\n yAxis: {\n type: 'value',\n name: 'SFM (bp)',\n nameGap: 10,\n nameRotate: 0,\n nameTextStyle: {\n color: isDark.value ? '#8B959F' : '#8B959F', // 浅色/Grey/8\n fontWeight: 400,\n fontSize: 10,\n padding: isMobile.value ? [0, 0, 0, 0] : [0, 0, 0, 8],\n },\n axisLine: {\n lineStyle: {\n color: isDark.value ? '#CED4DA' : '#343A40', // 线的颜色 浅色/Grey/12\n },\n },\n splitLine: {\n lineStyle: {\n color: isDark.value ? '#2B2F32' : '#F1F1F1', // 网格线颜色 浅色/Grey/3 '#F1F1F1'\n width: 1, // 网格线宽度\n type: 'solid', // 网格线类型: 'solid', 'dashed', 'dotted'\n },\n },\n },\n grid: {\n top: isPC.value ? 40 : 60,\n left: 'left',\n right: 27,\n bottom: 50,\n containLabel: true,\n },\n dataZoom: [\n {\n type: 'inside',\n start: 0,\n end: 100,\n handleIcon:\n 'path://M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',\n },\n {\n show: true,\n type: 'slider',\n labelFormatter: (value: number) => {\n return timestampFormat(value);\n },\n rangeMode: 'percent',\n bottom: '10px',\n start: 0,\n end: 100,\n handleIcon:\n 'path://M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',\n },\n ],\n series,\n };\n // console.log('option', option);\n return option;\n};\n\nconst chartOption = computed(() => getEchartOption());\n</script>\n"],"names":["useNamespace","useDeviceType","useTheme","useLocale","computed","reactive","dayjs","getTradeScatterPlot","watch","showEndDateTime","onMounted","parseExpiryToDate","getTooltipDate","timestampFormat"],"mappings":"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"}
@@ -2,483 +2,32 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- require('../../../hooks/index.js');
7
- var panelTradeScatterPlot = require('./panel-trade-scatter-plot.js');
8
5
  require('../../../utils/index.js');
9
- var dayjs = require('dayjs');
10
- var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
11
- var index = require('../../../hooks/use-namespace/index.js');
12
- var index$1 = require('../../../hooks/use-device-type/index.js');
13
- var index$2 = require('../../../hooks/use-theme/index.js');
14
- var index$3 = require('../../../hooks/use-locale/index.js');
15
- var dataLab = require('../../../utils/dataLab.js');
16
- var chartHelp = require('../../../utils/chartHelp.js');
6
+ var runtime = require('../../../utils/vue/props/runtime.js');
17
7
 
18
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
-
20
- var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
21
-
22
- const _hoisted_1 = ["innerHTML"];
23
- const _hoisted_2 = { class: "selector-label h5-hide" };
24
- const _hoisted_3 = /* @__PURE__ */ vue.createTextVNode(" \u2265");
25
- const _hoisted_4 = { class: "period-controls" };
26
- const _hoisted_5 = { class: "selector-label h5-hide" };
27
- const _hoisted_6 = { class: "period-range h5-hide" };
28
- const _hoisted_7 = {
29
- class: "echart",
30
- ref: "echart"
31
- };
32
- const __default__ = {
33
- name: "GPanelTradeScatterPlot"
8
+ const panelTradeScatterPlotEmits = {
9
+ "update:currency": (currency) => true,
10
+ "update:exchange": (exchange) => true
34
11
  };
35
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
36
- ...__default__,
37
- props: panelTradeScatterPlot.panelTradeScatterPlotProps,
38
- emits: panelTradeScatterPlot.panelTradeScatterPlotEmits,
39
- setup(__props, { emit }) {
40
- var _a;
41
- const props = __props;
42
- const ns = index.useNamespace("panel-trade-scatter-plot");
43
- const { isMobile, isPC } = index$1.useDeviceType();
44
- const { isDark } = index$2.useTheme();
45
- const { t, locale } = index$3.useLocale();
46
- const contractsConfig = {
47
- BTC: { icon: "currency_letter_btc", options: [1, 5, 10], default: 1 },
48
- ETH: { icon: "currency_letter_eth", options: [50, 250, 500], default: 50 }
49
- };
50
- const contractsSizeList = vue.computed(() => {
51
- const conf = contractsConfig[currency.value] || contractsConfig.BTC;
52
- return conf.options.map((val) => ({
53
- value: val,
54
- label: `${val}.0`,
55
- icon: conf.icon
56
- }));
57
- });
58
- const initialCurrency = props.currency || props.defaultCurrency || "BTC";
59
- const state = vue.reactive({
60
- loadingFlag: false,
61
- exchange: props.exchange || props.defaultExchange || "Deribit",
62
- currency: initialCurrency,
63
- contractsSize: ((_a = contractsConfig[initialCurrency]) == null ? void 0 : _a.default) || 1,
64
- endDateDisplay: "",
65
- pageCount: 0,
66
- scatterPlotData: {},
67
- selectedDateTime: dayjs__default["default"]()
68
- });
69
- const currency = vue.computed({
70
- get: () => props.currency || state.currency || "BTC",
71
- set: (newVal) => {
72
- props.currency ? emit("update:currency", newVal) : state.currency = newVal;
73
- }
74
- });
75
- const exchange = vue.computed({
76
- get: () => props.exchange || state.exchange || "Deribit",
77
- set: (newVal) => {
78
- props.exchange ? emit("update:exchange", newVal) : state.exchange = newVal;
79
- }
80
- });
81
- const currencyList = [
82
- { value: "BTC", label: "BTC", icon: "currency_btc" },
83
- { value: "ETH", label: "ETH", icon: "currency_eth" }
84
- ];
85
- const fetchData = () => {
86
- state.loadingFlag = true;
87
- dataLab.getTradeScatterPlot({
88
- currency: currency.value,
89
- exchange: exchange.value,
90
- min_amount: state.contractsSize,
91
- end_timestamp: state.selectedDateTime.valueOf()
92
- }).then((res) => {
93
- if (res && res.code === 200) {
94
- state.scatterPlotData = res.data || {};
95
- }
96
- }).finally(() => {
97
- state.loadingFlag = false;
98
- });
99
- };
100
- vue.watch(currency, (val) => {
101
- var _a2, _b;
102
- state.contractsSize = (_b = (_a2 = contractsConfig[val]) == null ? void 0 : _a2.default) != null ? _b : 1;
103
- fetchData();
104
- });
105
- const getDateTimeRange = () => {
106
- const endTime = state.selectedDateTime || dayjs__default["default"]();
107
- state.endDateDisplay = chartHelp.showEndDateTime(endTime);
108
- };
109
- const handlePageChange = (direction) => {
110
- if (direction === "prev") {
111
- state.pageCount++;
112
- state.selectedDateTime = dayjs__default["default"](state.selectedDateTime).subtract(1, "hour");
113
- } else {
114
- if (state.pageCount <= 0)
115
- return;
116
- state.pageCount--;
117
- state.selectedDateTime = dayjs__default["default"](state.selectedDateTime).add(1, "hour");
118
- }
119
- getDateTimeRange();
120
- fetchData();
121
- };
122
- const handleDateTimeChange = (value) => {
123
- state.selectedDateTime = value;
124
- const now = dayjs__default["default"]();
125
- const selectedTime = dayjs__default["default"](value);
126
- const diffInHours = now.diff(selectedTime, "hour");
127
- state.pageCount = Math.max(0, diffInHours);
128
- getDateTimeRange();
129
- fetchData();
130
- };
131
- vue.onMounted(() => {
132
- getDateTimeRange();
133
- fetchData();
134
- });
135
- const getEchartData = () => {
136
- const raw = state.scatterPlotData;
137
- const result = {};
138
- const sortedExpiries = Object.keys(raw || {}).sort(
139
- (a, b) => chartHelp.parseExpiryToDate(a).getTime() - chartHelp.parseExpiryToDate(b).getTime()
140
- );
141
- sortedExpiries.forEach((expiry) => {
142
- const arr = raw[expiry];
143
- result[expiry] = (arr || []).map((item) => ({
144
- ...item,
145
- expiry,
146
- sfm_bp: (item.price - item.mark_price) * 1e4,
147
- time: item.ts,
148
- size: item.amount
149
- }));
150
- });
151
- return result;
152
- };
153
- const getPercentile = (arr, percentile) => {
154
- if (!arr.length)
155
- return 0;
156
- const sorted = [...arr].sort((a, b) => a - b);
157
- const idx = Math.floor(percentile * (sorted.length - 1));
158
- return sorted[idx];
159
- };
160
- const getSymbolSize = (amount, minAmount, maxAmount) => {
161
- const minSize = 1;
162
- const maxSize = 40;
163
- if (!amount || amount <= minAmount)
164
- return minSize;
165
- if (amount >= maxAmount) {
166
- const logMax = Math.log10(1e4 - maxAmount + 1);
167
- const logVal = Math.log10(amount - maxAmount + 1);
168
- return maxSize + logVal / (logMax || 1) * (maxSize * 0.2);
169
- }
170
- return minSize + (amount - minAmount) / (maxAmount - minAmount) * (maxSize - minSize);
171
- };
172
- const getEchartOption = () => {
173
- const echartData = getEchartData();
174
- const legendData = Object.keys(echartData);
175
- const allAmounts = legendData.flatMap((expiry) => echartData[expiry].map((item) => item.size)).filter((v) => typeof v === "number");
176
- const minAmount = Math.min(...allAmounts);
177
- const maxAmount = getPercentile(allAmounts, 0.95);
178
- const series = legendData.map((expiry, idx) => ({
179
- name: expiry,
180
- type: "scatter",
181
- data: echartData[expiry].map((item) => [
182
- item.time,
183
- item.sfm_bp,
184
- item.size,
185
- item
186
- ]),
187
- symbolSize: (val) => {
188
- const amount = val[2];
189
- return getSymbolSize(amount, minAmount, maxAmount);
190
- },
191
- emphasis: { focus: "series" },
192
- blur: {
193
- itemStyle: {
194
- opacity: 1
195
- }
196
- }
197
- }));
198
- const option = {
199
- legend: {
200
- left: "center",
201
- width: "90%",
202
- data: legendData,
203
- itemGap: isMobile.value ? 5 : 10,
204
- textStyle: {
205
- color: isDark.value ? "#ADB5BD" : "#596169",
206
- fontSize: 12,
207
- padding: isMobile.value ? [0, 0, 0, -8] : [0, 0, 0, -5]
208
- },
209
- selected: legendData.reduce((acc, cur) => ({ ...acc, [cur]: true }), {}),
210
- lineStyle: {
211
- inactiveColor: isDark.value ? "#2B2F32" : "#DEE2E6"
212
- },
213
- inactiveColor: isDark.value ? "#495057" : "#BDC4CB"
214
- },
215
- tooltip: {
216
- trigger: "item",
217
- backgroundColor: isDark.value ? "#E9ECEF" : "#292F3D",
218
- padding: [6, 8, 5, 6],
219
- borderWidth: 0,
220
- textStyle: {
221
- color: isDark.value ? "#000000" : "#FFFFFF",
222
- fontSize: 12,
223
- lineHeight: 16,
224
- fontWeight: 400
225
- },
226
- formatter: (params) => {
227
- var _a2;
228
- const d = params.data[3];
229
- const tooltipDate = chartHelp.getTooltipDate(d.ts, locale.value.name, {
230
- showSeconds: false
231
- });
232
- const iconClass = ((_a2 = contractsConfig[currency.value]) == null ? void 0 : _a2.icon) || "";
233
- const iconColor = isDark.value ? "#000000" : "#FFFFFF";
234
- let content = "";
235
- content += `<div class="chart-tooltip-box"><div style="margin-bottom:4px;">${tooltipDate}</div>`;
236
- content += `
237
- <div class="chart-tooltip">
238
- <div>
239
- <span style="display:inline-flex;align-items:center;">
240
- ${params.marker}&nbsp;${d.name}
241
- <svg class="icon" style="width:1em;height:1em;vertical-align:middle;fill:${iconColor};margin:0 2px;">
242
- <use xlink:href="#${iconClass}"></use>
243
- </svg>
244
- ${d.amount}
245
- </span>
246
- </div>
247
- </div>
248
- <div class="chart-tooltip">
249
- <div>
250
- <span>Price: ${d.price} (${d.sfm_bp > 0 ? "+" : ""}${d.sfm_bp.toFixed(1)}bp)</span>
251
- </div>
252
- <span></span>
253
- </div>
254
- `;
255
- return content + "</div>";
256
- }
257
- },
258
- xAxis: {
259
- type: "time",
260
- axisTick: {
261
- show: false
262
- },
263
- axisLabel: {
264
- color: isDark.value ? "#CED4DA" : "#343A40",
265
- fontWeight: 400,
266
- fontSize: 10
267
- },
268
- axisLine: {
269
- show: false,
270
- lineStyle: {
271
- color: isDark.value ? "#CED4DA" : "#343A40"
272
- }
273
- },
274
- splitNumber: isMobile.value ? 5 : 7
275
- },
276
- yAxis: {
277
- type: "value",
278
- name: "SFM (bp)",
279
- nameGap: 10,
280
- nameRotate: 0,
281
- nameTextStyle: {
282
- color: isDark.value ? "#8B959F" : "#8B959F",
283
- fontWeight: 400,
284
- fontSize: 10,
285
- padding: isMobile.value ? [0, 0, 0, 0] : [0, 0, 0, 8]
286
- },
287
- axisLine: {
288
- lineStyle: {
289
- color: isDark.value ? "#CED4DA" : "#343A40"
290
- }
291
- },
292
- splitLine: {
293
- lineStyle: {
294
- color: isDark.value ? "#2B2F32" : "#F1F1F1",
295
- width: 1,
296
- type: "solid"
297
- }
298
- }
299
- },
300
- grid: {
301
- top: isPC.value ? 40 : 60,
302
- left: "left",
303
- right: 27,
304
- bottom: 50,
305
- containLabel: true
306
- },
307
- dataZoom: [
308
- {
309
- type: "inside",
310
- start: 0,
311
- end: 100,
312
- handleIcon: "path://M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z"
313
- },
314
- {
315
- show: true,
316
- type: "slider",
317
- labelFormatter: (value) => {
318
- return chartHelp.timestampFormat(value);
319
- },
320
- rangeMode: "percent",
321
- bottom: "10px",
322
- start: 0,
323
- end: 100,
324
- handleIcon: "path://M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z"
325
- }
326
- ],
327
- series
328
- };
329
- return option;
330
- };
331
- const chartOption = vue.computed(() => getEchartOption());
332
- return (_ctx, _cache) => {
333
- const _component_g_icon = vue.resolveComponent("g-icon");
334
- const _component_g_tooltip = vue.resolveComponent("g-tooltip");
335
- const _component_g_select_option = vue.resolveComponent("g-select-option");
336
- const _component_g_select = vue.resolveComponent("g-select");
337
- const _component_g_page_turner = vue.resolveComponent("g-page-turner");
338
- const _component_g_date_time_picker = vue.resolveComponent("g-date-time-picker");
339
- const _component_g_chart = vue.resolveComponent("g-chart");
340
- const _component_g_chart_panel = vue.resolveComponent("g-chart-panel");
341
- return vue.openBlock(), vue.createElementBlock(
342
- "div",
343
- {
344
- class: vue.normalizeClass([vue.unref(ns).b()])
345
- },
346
- [
347
- vue.createVNode(_component_g_chart_panel, {
348
- currency: vue.unref(currency),
349
- "onUpdate:currency": _cache[2] || (_cache[2] = ($event) => vue.isRef(currency) ? currency.value = $event : null),
350
- exchange: vue.unref(exchange),
351
- "onUpdate:exchange": _cache[3] || (_cache[3] = ($event) => vue.isRef(exchange) ? exchange.value = $event : null),
352
- loading: state.loadingFlag,
353
- showExchangeSelector: false,
354
- currencyList,
355
- onRefresh: fetchData
356
- }, {
357
- title: vue.withCtx(() => [
358
- vue.createTextVNode(
359
- vue.toDisplayString(vue.unref(t)("message.tradeScatterPlot")) + " ",
360
- 1
361
- ),
362
- vue.createVNode(_component_g_tooltip, { isMobile: vue.unref(isMobile) }, {
363
- title: vue.withCtx(() => [
364
- vue.createElementVNode("div", {
365
- class: "greeks-panel-tip",
366
- innerHTML: vue.unref(t)("message.tradeScatterPlotTips")
367
- }, null, 8, _hoisted_1)
368
- ]),
369
- default: vue.withCtx(() => [
370
- vue.createVNode(_component_g_icon, { name: "info_question_circle" })
371
- ]),
372
- _: 1
373
- }, 8, ["isMobile"])
374
- ]),
375
- tool: vue.withCtx(() => [
376
- vue.createElementVNode(
377
- "span",
378
- _hoisted_2,
379
- vue.toDisplayString(vue.unref(t)("message.contractsLabel")),
380
- 1
381
- ),
382
- vue.createVNode(_component_g_select, {
383
- value: state.contractsSize,
384
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => state.contractsSize = $event),
385
- onChange: fetchData,
386
- class: "input-select second-select",
387
- popupClassName: "contracts-size-dropdown",
388
- size: vue.unref(isPC) ? "small" : "medium"
389
- }, {
390
- selection: vue.withCtx(({ value }) => {
391
- var _a2;
392
- return [
393
- vue.createElementVNode("span", null, [
394
- _hoisted_3,
395
- vue.createVNode(_component_g_icon, {
396
- name: (_a2 = contractsConfig[vue.unref(currency)]) == null ? void 0 : _a2.icon
397
- }, null, 8, ["name"]),
398
- vue.createTextVNode(
399
- " " + vue.toDisplayString(value) + ".0 ",
400
- 1
401
- )
402
- ])
403
- ];
404
- }),
405
- default: vue.withCtx(() => [
406
- (vue.openBlock(true), vue.createElementBlock(
407
- vue.Fragment,
408
- null,
409
- vue.renderList(vue.unref(contractsSizeList), (item) => {
410
- return vue.openBlock(), vue.createBlock(_component_g_select_option, {
411
- key: item.value,
412
- value: item.value
413
- }, {
414
- default: vue.withCtx(() => [
415
- vue.createTextVNode(
416
- vue.toDisplayString(vue.unref(t)("message.contracts")) + " \u2265 ",
417
- 1
418
- ),
419
- vue.createVNode(_component_g_icon, {
420
- name: item.icon
421
- }, null, 8, ["name"]),
422
- vue.createTextVNode(
423
- " " + vue.toDisplayString(item.label),
424
- 1
425
- )
426
- ]),
427
- _: 2
428
- }, 1032, ["value"]);
429
- }),
430
- 128
431
- ))
432
- ]),
433
- _: 1
434
- }, 8, ["value", "size"]),
435
- vue.createElementVNode("div", _hoisted_4, [
436
- vue.createElementVNode(
437
- "span",
438
- _hoisted_5,
439
- vue.toDisplayString(vue.unref(t)("message.time")),
440
- 1
441
- ),
442
- vue.createElementVNode(
443
- "span",
444
- _hoisted_6,
445
- vue.toDisplayString(state.endDateDisplay),
446
- 1
447
- ),
448
- vue.createVNode(_component_g_page_turner, {
449
- prevDisabled: state.loadingFlag,
450
- nextDisabled: state.loadingFlag || state.pageCount <= 0,
451
- onChange: handlePageChange
452
- }, null, 8, ["prevDisabled", "nextDisabled"]),
453
- vue.createVNode(_component_g_date_time_picker, {
454
- modelValue: state.selectedDateTime,
455
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.selectedDateTime = $event),
456
- onChange: handleDateTimeChange
457
- }, null, 8, ["modelValue"])
458
- ])
459
- ]),
460
- body: vue.withCtx(() => [
461
- vue.createElementVNode(
462
- "div",
463
- _hoisted_7,
464
- [
465
- vue.createVNode(_component_g_chart, {
466
- class: "skew-chart",
467
- option: vue.unref(chartOption)
468
- }, null, 8, ["option"])
469
- ],
470
- 512
471
- )
472
- ]),
473
- _: 1
474
- }, 8, ["currency", "exchange", "loading"])
475
- ],
476
- 2
477
- );
478
- };
12
+ const panelTradeScatterPlotProps = runtime.buildProps({
13
+ defaultCurrency: {
14
+ type: String,
15
+ required: false
16
+ },
17
+ defaultExchange: {
18
+ type: String,
19
+ required: false
20
+ },
21
+ currency: {
22
+ type: String,
23
+ required: false
24
+ },
25
+ exchange: {
26
+ type: String,
27
+ required: false
479
28
  }
480
29
  });
481
- var PanelTradeScatterPlot = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/Users/luobowen/Desktop/greeks/greeks-live-ui/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.vue"]]);
482
30
 
483
- exports["default"] = PanelTradeScatterPlot;
31
+ exports.panelTradeScatterPlotEmits = panelTradeScatterPlotEmits;
32
+ exports.panelTradeScatterPlotProps = panelTradeScatterPlotProps;
484
33
  //# sourceMappingURL=panel-trade-scatter-plot2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"panel-trade-scatter-plot2.js","sources":["../../../../../../../packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.b()]\">\n <g-chart-panel\n v-model:currency=\"currency\"\n v-model:exchange=\"exchange\"\n :loading=\"state.loadingFlag\"\n :showExchangeSelector=\"false\"\n :currencyList=\"currencyList\"\n @refresh=\"fetchData\"\n >\n <template #title>\n {{ t('message.tradeScatterPlot') }}\n <g-tooltip :isMobile=\"isMobile\">\n <g-icon name=\"info_question_circle\"></g-icon>\n <template #title>\n <div class=\"greeks-panel-tip\" v-html=\"t('message.tradeScatterPlotTips')\"></div>\n </template>\n </g-tooltip>\n </template>\n <template #tool>\n <span class=\"selector-label h5-hide\">{{\n t('message.contractsLabel')\n }}</span>\n <g-select\n v-model:value=\"state.contractsSize\"\n @change=\"fetchData\"\n class=\"input-select second-select\"\n popupClassName=\"contracts-size-dropdown\"\n :size=\"isPC ? 'small' : 'medium'\"\n >\n <template #selection=\"{ value }\">\n <span>\n ≥<g-icon :name=\"contractsConfig[currency]?.icon\" /> {{ value }}.0\n </span>\n </template>\n <g-select-option\n v-for=\"item in contractsSizeList\"\n :key=\"item.value\"\n :value=\"item.value\"\n >\n {{ t('message.contracts') }} ≥\n <g-icon :name=\"item.icon\" />\n {{ item.label }}\n </g-select-option>\n </g-select>\n <div class=\"period-controls\">\n <span class=\"selector-label h5-hide\">{{ t('message.time') }}</span>\n <span class=\"period-range h5-hide\">{{ state.endDateDisplay }}</span>\n <g-page-turner\n :prevDisabled=\"state.loadingFlag\"\n :nextDisabled=\"state.loadingFlag || state.pageCount <= 0\"\n @change=\"handlePageChange\"\n />\n <g-date-time-picker\n v-model=\"state.selectedDateTime\"\n @change=\"handleDateTimeChange\"\n />\n </div>\n </template>\n <template #body>\n <div class=\"echart\" ref=\"echart\">\n <g-chart class=\"skew-chart\" :option=\"chartOption\" />\n </div>\n </template>\n </g-chart-panel>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport {\n useNamespace,\n useLocale,\n useDeviceType,\n useTheme,\n} from '@greeks-live-ui/hooks';\nimport { reactive, computed, onMounted, watch } from 'vue';\nimport {\n panelTradeScatterPlotEmits,\n panelTradeScatterPlotProps,\n} from './panel-trade-scatter-plot';\nimport {\n getTooltipDate,\n timestampFormat,\n parseExpiryToDate,\n showEndDateTime,\n} from '@greeks-live-ui/utils';\nimport {\n getTradeScatterPlot,\n ITradeScatterPlotRes,\n} from '@greeks-live-ui/utils';\nimport dayjs from 'dayjs';\n\ndefineOptions({\n name: 'GPanelTradeScatterPlot',\n});\nconst ns = useNamespace('panel-trade-scatter-plot');\nconst props = defineProps(panelTradeScatterPlotProps);\nconst emit = defineEmits(panelTradeScatterPlotEmits);\nconst { isMobile, isPC } = useDeviceType();\nconst { isDark } = useTheme();\nconst { t, locale } = useLocale();\n\nconst contractsConfig: Record<\n string,\n { icon: string; options: number[]; default: number }\n> = {\n BTC: { icon: 'currency_letter_btc', options: [1, 5, 10], default: 1 },\n ETH: { icon: 'currency_letter_eth', options: [50, 250, 500], default: 50 },\n};\n\nconst contractsSizeList = computed(() => {\n const conf = contractsConfig[currency.value] || contractsConfig.BTC;\n return conf.options.map((val: number) => ({\n value: val,\n label: `${val}.0`,\n icon: conf.icon,\n }));\n});\n\nconst initialCurrency = props.currency || props.defaultCurrency || 'BTC';\nconst state = reactive({\n loadingFlag: false,\n\n exchange: props.exchange || props.defaultExchange || 'Deribit',\n currency: initialCurrency,\n contractsSize: contractsConfig[initialCurrency]?.default || 1,\n\n endDateDisplay: '',\n pageCount: 0,\n scatterPlotData: {} as ITradeScatterPlotRes,\n selectedDateTime: dayjs(),\n});\n\nconst currency = computed({\n get: () => props.currency || state.currency || 'BTC',\n set: (newVal) => {\n props.currency\n ? emit('update:currency', newVal)\n : (state.currency = newVal);\n },\n});\n\nconst exchange = computed({\n get: () => props.exchange || state.exchange || 'Deribit',\n set: (newVal) => {\n props.exchange\n ? emit('update:exchange', newVal)\n : (state.exchange = newVal);\n },\n});\n\nconst currencyList = [\n { value: 'BTC', label: 'BTC', icon: 'currency_btc' },\n { value: 'ETH', label: 'ETH', icon: 'currency_eth' },\n];\n\nconst fetchData = () => {\n state.loadingFlag = true;\n getTradeScatterPlot({\n currency: currency.value,\n exchange: exchange.value,\n min_amount: state.contractsSize,\n end_timestamp: state.selectedDateTime.valueOf(),\n })\n .then((res) => {\n if (res && res.code === 200) {\n state.scatterPlotData = res.data || {};\n // console.log('res.data', res.data);\n // console.log('scatterPlotData', state.scatterPlotData);\n }\n })\n .finally(() => {\n state.loadingFlag = false;\n });\n};\n\nwatch(currency, (val) => {\n state.contractsSize = contractsConfig[val]?.default ?? 1;\n fetchData();\n});\n\nconst getDateTimeRange = () => {\n // 只显示截止时间\n const endTime = state.selectedDateTime || dayjs();\n state.endDateDisplay = showEndDateTime(endTime);\n};\n\nconst handlePageChange = (direction: 'prev' | 'next') => {\n if (direction === 'prev') {\n state.pageCount++;\n state.selectedDateTime = dayjs(state.selectedDateTime).subtract(1, 'hour');\n } else {\n if (state.pageCount <= 0) return;\n state.pageCount--;\n state.selectedDateTime = dayjs(state.selectedDateTime).add(1, 'hour');\n }\n getDateTimeRange();\n fetchData();\n};\n\nconst handleDateTimeChange = (value: any) => {\n state.selectedDateTime = value;\n // 根据用户选择的时间自动计算 pageCount\n // 成交散点图中,pageCount为0表示当前时间前1h到当前时间\n const now = dayjs();\n const selectedTime = dayjs(value);\n const diffInHours = now.diff(selectedTime, 'hour');\n\n // 如果选择的时间在当前时间前1h内,pageCount为0\n // 否则,pageCount为相差的小时数\n state.pageCount = Math.max(0, diffInHours);\n getDateTimeRange();\n fetchData();\n};\n\nonMounted(() => {\n getDateTimeRange();\n fetchData();\n});\n\nconst getEchartData = () => {\n const raw = state.scatterPlotData;\n // console.log('raw', raw);\n const result: Record<string, any[]> = {};\n // 先对expiry按到期日升序排序\n const sortedExpiries = Object.keys(raw || {}).sort(\n (a, b) => parseExpiryToDate(a).getTime() - parseExpiryToDate(b).getTime()\n );\n sortedExpiries.forEach((expiry) => {\n const arr = raw[expiry];\n result[expiry] = (arr || []).map((item) => ({\n ...item,\n expiry,\n sfm_bp: (item.price - item.mark_price) * 10000,\n time: item.ts,\n size: item.amount,\n }));\n });\n // console.log('echartData', result);\n return result;\n};\n\nconst getPercentile = (arr: number[], percentile: number) => {\n if (!arr.length) return 0;\n const sorted = [...arr].sort((a, b) => a - b);\n const idx = Math.floor(percentile * (sorted.length - 1));\n return sorted[idx];\n};\n\nconst getSymbolSize = (\n amount: number,\n minAmount: number,\n maxAmount: number\n) => {\n const minSize = 1;\n const maxSize = 40;\n if (!amount || amount <= minAmount) return minSize;\n if (amount >= maxAmount) {\n // 对数映射极端大值\n const logMax = Math.log10(10000 - maxAmount + 1);\n const logVal = Math.log10(amount - maxAmount + 1);\n return maxSize + (logVal / (logMax || 1)) * (maxSize * 0.2); // 允许极端点更大\n }\n // 线性映射\n return (\n minSize +\n ((amount - minAmount) / (maxAmount - minAmount)) * (maxSize - minSize)\n );\n};\n\nconst getEchartOption = () => {\n const echartData = getEchartData();\n const legendData = Object.keys(echartData);\n // 统计所有 amount\n const allAmounts = legendData\n .flatMap((expiry) => echartData[expiry].map((item) => item.size))\n .filter((v) => typeof v === 'number');\n const minAmount = Math.min(...allAmounts);\n const maxAmount = getPercentile(allAmounts, 0.95); // 95分位数\n const series = legendData.map((expiry, idx) => ({\n name: expiry,\n type: 'scatter',\n data: echartData[expiry].map((item) => [\n item.time,\n item.sfm_bp,\n item.size,\n item,\n ]),\n symbolSize: (val: any[]) => {\n const amount = val[2];\n return getSymbolSize(amount, minAmount, maxAmount);\n },\n emphasis: { focus: 'series' },\n blur: {\n itemStyle: {\n opacity: 1,\n },\n },\n }));\n\n const option = {\n legend: {\n // type: isMobile.value ? 'scroll' : 'plain',\n left: 'center',\n width: '90%',\n data: legendData,\n itemGap: isMobile.value ? 5 : 10,\n textStyle: {\n // 控制图例文本样式 (可选)\n color: isDark.value ? '#ADB5BD' : '#596169',\n fontSize: 12, // 文本字体大小\n padding: isMobile.value ? [0, 0, 0, -8] : [0, 0, 0, -5],\n },\n selected: legendData.reduce((acc, cur) => ({ ...acc, [cur]: true }), {}),\n lineStyle: {\n inactiveColor: isDark.value ? '#2B2F32' : '#DEE2E6', // 浅色/Grey/3 图例关闭时的线条描边颜色\n },\n inactiveColor: isDark.value ? '#495057' : '#BDC4CB', // 浅色/Grey/5 图例关闭时的颜色\n },\n tooltip: {\n trigger: 'item',\n backgroundColor: isDark.value ? '#E9ECEF' : '#292F3D',\n padding: [6, 8, 5, 6],\n borderWidth: 0,\n textStyle: {\n color: isDark.value ? '#000000' : '#FFFFFF',\n fontSize: 12,\n lineHeight: 16,\n fontWeight: 400,\n },\n formatter: (params: any) => {\n const d = params.data[3];\n const tooltipDate = getTooltipDate(d.ts, locale.value.name, {\n showSeconds: false,\n });\n const iconClass = contractsConfig[currency.value]?.icon || '';\n const iconColor = isDark.value ? '#000000' : '#FFFFFF';\n let content = '';\n content += `<div class=\"chart-tooltip-box\"><div style=\"margin-bottom:4px;\">${tooltipDate}</div>`;\n content += `\n <div class=\"chart-tooltip\">\n <div>\n <span style=\"display:inline-flex;align-items:center;\">\n ${params.marker}&nbsp;${d.name}\n <svg class=\"icon\" style=\"width:1em;height:1em;vertical-align:middle;fill:${iconColor};margin:0 2px;\">\n <use xlink:href=\"#${iconClass}\"></use>\n </svg>\n ${d.amount}\n </span>\n </div>\n </div>\n <div class=\"chart-tooltip\">\n <div>\n <span>Price: ${d.price} (${\n d.sfm_bp > 0 ? '+' : ''\n }${d.sfm_bp.toFixed(1)}bp)</span>\n </div>\n <span></span> \n </div>\n `;\n return content + '</div>';\n },\n },\n xAxis: {\n type: 'time',\n axisTick: {\n show: false, // 隐藏刻度线\n },\n axisLabel: {\n // 坐标轴刻度标签\n color: isDark.value ? '#CED4DA' : '#343A40', // 浅色/Grey/12\n fontWeight: 400,\n fontSize: 10,\n // formatter: (val: any) => dayjs(val).format('HH:mm'),\n },\n axisLine: {\n show: false, // 隐藏坐标轴轴线\n lineStyle: {\n color: isDark.value ? '#CED4DA' : '#343A40', // 线的颜色 浅色/Grey/12\n },\n },\n splitNumber: isMobile.value ? 5 : 7,\n // splitLine: {\n // show: !isMobile.value && !isDark.value, // 显示 X 轴网格线\n // lineStyle: {\n // color: '#F1F1F1', // 网格线颜色\n // width: 1, // 网格线宽度\n // type: 'solid', // 网格线类型: 'solid', 'dashed', 'dotted'\n // },\n // },\n },\n yAxis: {\n type: 'value',\n name: 'SFM (bp)',\n nameGap: 10,\n nameRotate: 0,\n nameTextStyle: {\n color: isDark.value ? '#8B959F' : '#8B959F', // 浅色/Grey/8\n fontWeight: 400,\n fontSize: 10,\n padding: isMobile.value ? [0, 0, 0, 0] : [0, 0, 0, 8],\n },\n axisLine: {\n lineStyle: {\n color: isDark.value ? '#CED4DA' : '#343A40', // 线的颜色 浅色/Grey/12\n },\n },\n splitLine: {\n lineStyle: {\n color: isDark.value ? '#2B2F32' : '#F1F1F1', // 网格线颜色 浅色/Grey/3 '#F1F1F1'\n width: 1, // 网格线宽度\n type: 'solid', // 网格线类型: 'solid', 'dashed', 'dotted'\n },\n },\n },\n grid: {\n top: isPC.value ? 40 : 60,\n left: 'left',\n right: 27,\n bottom: 50,\n containLabel: true,\n },\n dataZoom: [\n {\n type: 'inside',\n start: 0,\n end: 100,\n handleIcon:\n 'path://M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',\n },\n {\n show: true,\n type: 'slider',\n labelFormatter: (value: number) => {\n return timestampFormat(value);\n },\n rangeMode: 'percent',\n bottom: '10px',\n start: 0,\n end: 100,\n handleIcon:\n 'path://M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',\n },\n ],\n series,\n };\n // console.log('option', option);\n return option;\n};\n\nconst chartOption = computed(() => getEchartOption());\n</script>\n"],"names":["useNamespace","useDeviceType","useTheme","useLocale","computed","reactive","dayjs","getTradeScatterPlot","watch","showEndDateTime","onMounted","parseExpiryToDate","getTooltipDate","timestampFormat"],"mappings":"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"}
1
+ {"version":3,"file":"panel-trade-scatter-plot2.js","sources":["../../../../../../../packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.ts"],"sourcesContent":["import { buildProps } from '@greeks-live-ui/utils'\nimport type PanelTradeScatterPlot from './panel-trade-scatter-plot.vue'\nimport type { ExtractPropTypes } from 'vue'\n\nexport const panelTradeScatterPlotEmits = {\n 'update:currency': (currency: string) => true,\n 'update:exchange': (exchange: string) => true,\n}\nexport type PanelTradeScatterPlotEmits = typeof panelTradeScatterPlotEmits\nexport const panelTradeScatterPlotProps = buildProps({\n defaultCurrency: {\n type: String,\n required: false,\n },\n defaultExchange: {\n type: String,\n required: false,\n },\n currency: {\n type: String,\n required: false,\n },\n exchange: {\n type: String,\n required: false,\n },\n})\nexport type PanelTradeScatterPlotProps = ExtractPropTypes<typeof panelTradeScatterPlotProps>\nexport type PanelTradeScatterPlotInstance = InstanceType<typeof PanelTradeScatterPlot>\n"],"names":["buildProps"],"mappings":";;;;;;;AAIO,MAAM,0BAA6B,GAAA;AAAA,EACxC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAAA,EACzC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAC3C,EAAA;AAEO,MAAM,6BAA6BA,kBAAW,CAAA;AAAA,EACnD,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAC;;;;;"}
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('../../utils/index.js');
6
- var panelVolFly$1 = require('./src/panel-vol-fly.js');
7
- var panelVolFly = require('./src/panel-vol-fly2.js');
6
+ var panelVolFly$1 = require('./src/panel-vol-fly2.js');
7
+ var panelVolFly = require('./src/panel-vol-fly.js');
8
8
  var install = require('../../utils/vue/install.js');
9
9
 
10
10
  const GPanelVolFly = install.withInstall(panelVolFly$1["default"]);