greeks-live-ui 0.1.20 → 0.1.21

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 (303) 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 +328 -61
  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 +6 -0
  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 +6 -0
  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 +6 -0
  14. package/es/components/panel-vrp/index.d.ts +59 -24
  15. package/es/components/panel-vrp/src/panel-vrp.d.ts +5 -0
  16. package/es/components/panel-vrp/src/panel-vrp.vue.d.ts +61 -24
  17. package/es/index.mjs +27 -27
  18. package/es/locale/lang/en.d.ts +6 -0
  19. package/es/locale/lang/zh-cn.d.ts +6 -0
  20. package/es/locale/lang/zh-tw.d.ts +6 -0
  21. package/es/packages/components/chart/index.mjs +2 -2
  22. package/es/packages/components/chart/src/chart.mjs +12 -86
  23. package/es/packages/components/chart/src/chart.mjs.map +1 -1
  24. package/es/packages/components/chart/src/chart2.mjs +86 -12
  25. package/es/packages/components/chart/src/chart2.mjs.map +1 -1
  26. package/es/packages/components/checkbox-group/index.mjs +2 -2
  27. package/es/packages/components/checkbox-group/src/checkbox-group.mjs +31 -5
  28. package/es/packages/components/checkbox-group/src/checkbox-group.mjs.map +1 -1
  29. package/es/packages/components/checkbox-group/src/checkbox-group2.mjs +5 -31
  30. package/es/packages/components/checkbox-group/src/checkbox-group2.mjs.map +1 -1
  31. package/es/packages/components/countdown/index.mjs +2 -2
  32. package/es/packages/components/countdown/src/countdown.mjs +53 -163
  33. package/es/packages/components/countdown/src/countdown.mjs.map +1 -1
  34. package/es/packages/components/countdown/src/countdown2.mjs +163 -53
  35. package/es/packages/components/countdown/src/countdown2.mjs.map +1 -1
  36. package/es/packages/components/currency-icon/index.mjs +2 -2
  37. package/es/packages/components/currency-icon/src/currency-icon.mjs +45 -8
  38. package/es/packages/components/currency-icon/src/currency-icon.mjs.map +1 -1
  39. package/es/packages/components/currency-icon/src/currency-icon2.mjs +8 -45
  40. package/es/packages/components/currency-icon/src/currency-icon2.mjs.map +1 -1
  41. package/es/packages/components/dropdown/index.mjs +2 -2
  42. package/es/packages/components/dropdown/src/dropdown.mjs +34 -5
  43. package/es/packages/components/dropdown/src/dropdown.mjs.map +1 -1
  44. package/es/packages/components/dropdown/src/dropdown2.mjs +5 -34
  45. package/es/packages/components/dropdown/src/dropdown2.mjs.map +1 -1
  46. package/es/packages/components/dropdown-button/index.mjs +2 -2
  47. package/es/packages/components/dropdown-button/src/dropdown-button.mjs +5 -39
  48. package/es/packages/components/dropdown-button/src/dropdown-button.mjs.map +1 -1
  49. package/es/packages/components/dropdown-button/src/dropdown-button2.mjs +39 -5
  50. package/es/packages/components/dropdown-button/src/dropdown-button2.mjs.map +1 -1
  51. package/es/packages/components/greeks-summary/index.mjs +2 -2
  52. package/es/packages/components/greeks-summary/src/greeks-summary.mjs +340 -49
  53. package/es/packages/components/greeks-summary/src/greeks-summary.mjs.map +1 -1
  54. package/es/packages/components/greeks-summary/src/greeks-summary2.mjs +49 -340
  55. package/es/packages/components/greeks-summary/src/greeks-summary2.mjs.map +1 -1
  56. package/es/packages/components/icon/index.mjs +2 -2
  57. package/es/packages/components/icon/src/icon.mjs +16 -54
  58. package/es/packages/components/icon/src/icon.mjs.map +1 -1
  59. package/es/packages/components/icon/src/icon2.mjs +54 -16
  60. package/es/packages/components/icon/src/icon2.mjs.map +1 -1
  61. package/es/packages/components/index.mjs +27 -27
  62. package/es/packages/components/input-number/index.mjs +2 -2
  63. package/es/packages/components/input-number/src/input-number.mjs +31 -5
  64. package/es/packages/components/input-number/src/input-number.mjs.map +1 -1
  65. package/es/packages/components/input-number/src/input-number2.mjs +5 -31
  66. package/es/packages/components/input-number/src/input-number2.mjs.map +1 -1
  67. package/es/packages/components/number-format/index.mjs +2 -2
  68. package/es/packages/components/number-format/src/number-format.mjs +71 -152
  69. package/es/packages/components/number-format/src/number-format.mjs.map +1 -1
  70. package/es/packages/components/number-format/src/number-format2.mjs +152 -71
  71. package/es/packages/components/number-format/src/number-format2.mjs.map +1 -1
  72. package/es/packages/components/page-turner/index.mjs +2 -2
  73. package/es/packages/components/page-turner/src/page-turner.mjs +12 -63
  74. package/es/packages/components/page-turner/src/page-turner.mjs.map +1 -1
  75. package/es/packages/components/page-turner/src/page-turner2.mjs +63 -12
  76. package/es/packages/components/page-turner/src/page-turner2.mjs.map +1 -1
  77. package/es/packages/components/panel/index.mjs +2 -2
  78. package/es/packages/components/panel/src/panel.mjs +82 -5
  79. package/es/packages/components/panel/src/panel.mjs.map +1 -1
  80. package/es/packages/components/panel/src/panel2.mjs +5 -82
  81. package/es/packages/components/panel/src/panel2.mjs.map +1 -1
  82. package/es/packages/components/panel-atm-iv/index.mjs +2 -2
  83. package/es/packages/components/panel-atm-iv/src/panel-atm-iv.mjs +21 -1064
  84. package/es/packages/components/panel-atm-iv/src/panel-atm-iv.mjs.map +1 -1
  85. package/es/packages/components/panel-atm-iv/src/panel-atm-iv2.mjs +1064 -21
  86. package/es/packages/components/panel-atm-iv/src/panel-atm-iv2.mjs.map +1 -1
  87. package/es/packages/components/panel-gex-by-expiry/index.mjs +2 -2
  88. package/es/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry.mjs +22 -554
  89. package/es/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry.mjs.map +1 -1
  90. package/es/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry2.mjs +554 -22
  91. package/es/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry2.mjs.map +1 -1
  92. package/es/packages/components/panel-implied-volatility-surface/index.mjs +2 -2
  93. package/es/packages/components/panel-implied-volatility-surface/src/panel-implied-volatility-surface.mjs +22 -332
  94. package/es/packages/components/panel-implied-volatility-surface/src/panel-implied-volatility-surface.mjs.map +1 -1
  95. package/es/packages/components/panel-implied-volatility-surface/src/panel-implied-volatility-surface2.mjs +332 -22
  96. package/es/packages/components/panel-implied-volatility-surface/src/panel-implied-volatility-surface2.mjs.map +1 -1
  97. package/es/packages/components/panel-max-pain-price/index.mjs +2 -2
  98. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price.mjs +369 -22
  99. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price.mjs.map +1 -1
  100. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price2.mjs +22 -369
  101. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price2.mjs.map +1 -1
  102. package/es/packages/components/panel-option-flow/index.mjs +2 -2
  103. package/es/packages/components/panel-option-flow/src/panel-option-flow.mjs +448 -22
  104. package/es/packages/components/panel-option-flow/src/panel-option-flow.mjs.map +1 -1
  105. package/es/packages/components/panel-option-flow/src/panel-option-flow2.mjs +22 -448
  106. package/es/packages/components/panel-option-flow/src/panel-option-flow2.mjs.map +1 -1
  107. package/es/packages/components/panel-option-trade-volume/index.mjs +2 -2
  108. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.mjs +22 -523
  109. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.mjs.map +1 -1
  110. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.mjs +523 -22
  111. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.mjs.map +1 -1
  112. package/es/packages/components/panel-rv-calc/index.mjs +2 -2
  113. package/es/packages/components/panel-rv-calc/src/panel-rv-calc.mjs +8 -507
  114. package/es/packages/components/panel-rv-calc/src/panel-rv-calc.mjs.map +1 -1
  115. package/es/packages/components/panel-rv-calc/src/panel-rv-calc2.mjs +507 -8
  116. package/es/packages/components/panel-rv-calc/src/panel-rv-calc2.mjs.map +1 -1
  117. package/es/packages/components/panel-sabr-calibrated-parameters/index.mjs +2 -2
  118. package/es/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.mjs +256 -25
  119. package/es/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.mjs.map +1 -1
  120. package/es/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters2.mjs +25 -256
  121. package/es/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters2.mjs.map +1 -1
  122. package/es/packages/components/panel-spots-etf-net-inflow/index.mjs +2 -2
  123. package/es/packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow.mjs +624 -21
  124. package/es/packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow.mjs.map +1 -1
  125. package/es/packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow2.mjs +21 -624
  126. package/es/packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow2.mjs.map +1 -1
  127. package/es/packages/components/panel-vrp/src/panel-vrp.mjs.map +1 -1
  128. package/es/packages/components/panel-vrp/src/panel-vrp2.mjs +322 -61
  129. package/es/packages/components/panel-vrp/src/panel-vrp2.mjs.map +1 -1
  130. package/es/packages/components/pro-badge/index.mjs +2 -2
  131. package/es/packages/components/pro-badge/src/pro-badge.mjs +90 -5
  132. package/es/packages/components/pro-badge/src/pro-badge.mjs.map +1 -1
  133. package/es/packages/components/pro-badge/src/pro-badge2.mjs +5 -90
  134. package/es/packages/components/pro-badge/src/pro-badge2.mjs.map +1 -1
  135. package/es/packages/components/progress/index.mjs +2 -2
  136. package/es/packages/components/progress/src/progress.mjs +45 -12
  137. package/es/packages/components/progress/src/progress.mjs.map +1 -1
  138. package/es/packages/components/progress/src/progress2.mjs +12 -45
  139. package/es/packages/components/progress/src/progress2.mjs.map +1 -1
  140. package/es/packages/components/radio/index.mjs +2 -2
  141. package/es/packages/components/radio/src/radio-button.mjs +1 -1
  142. package/es/packages/components/radio/src/radio-group.mjs +1 -1
  143. package/es/packages/components/radio/src/radio.mjs +31 -5
  144. package/es/packages/components/radio/src/radio.mjs.map +1 -1
  145. package/es/packages/components/radio/src/radio2.mjs +5 -31
  146. package/es/packages/components/radio/src/radio2.mjs.map +1 -1
  147. package/es/packages/components/select/index.mjs +2 -2
  148. package/es/packages/components/select/src/option.mjs +1 -1
  149. package/es/packages/components/select/src/select.mjs +10 -41
  150. package/es/packages/components/select/src/select.mjs.map +1 -1
  151. package/es/packages/components/select/src/select2.mjs +41 -10
  152. package/es/packages/components/select/src/select2.mjs.map +1 -1
  153. package/es/packages/components/spin/index.mjs +2 -2
  154. package/es/packages/components/spin/src/spin.mjs +31 -5
  155. package/es/packages/components/spin/src/spin.mjs.map +1 -1
  156. package/es/packages/components/spin/src/spin2.mjs +5 -31
  157. package/es/packages/components/spin/src/spin2.mjs.map +1 -1
  158. package/es/packages/components/tag/index.mjs +2 -2
  159. package/es/packages/components/tag/src/tag.mjs +112 -28
  160. package/es/packages/components/tag/src/tag.mjs.map +1 -1
  161. package/es/packages/components/tag/src/tag2.mjs +28 -112
  162. package/es/packages/components/tag/src/tag2.mjs.map +1 -1
  163. package/es/packages/locale/lang/en.mjs +6 -0
  164. package/es/packages/locale/lang/en.mjs.map +1 -1
  165. package/es/packages/locale/lang/zh-cn.mjs +6 -0
  166. package/es/packages/locale/lang/zh-cn.mjs.map +1 -1
  167. package/es/packages/locale/lang/zh-tw.mjs +6 -0
  168. package/es/packages/locale/lang/zh-tw.mjs.map +1 -1
  169. package/lib/components/panel-vrp/index.d.ts +59 -24
  170. package/lib/components/panel-vrp/src/panel-vrp.d.ts +5 -0
  171. package/lib/components/panel-vrp/src/panel-vrp.vue.d.ts +61 -24
  172. package/lib/index.js +23 -23
  173. package/lib/locale/lang/en.d.ts +6 -0
  174. package/lib/locale/lang/zh-cn.d.ts +6 -0
  175. package/lib/locale/lang/zh-tw.d.ts +6 -0
  176. package/lib/packages/components/chart/index.js +2 -2
  177. package/lib/packages/components/chart/src/chart.js +13 -90
  178. package/lib/packages/components/chart/src/chart.js.map +1 -1
  179. package/lib/packages/components/chart/src/chart2.js +90 -13
  180. package/lib/packages/components/chart/src/chart2.js.map +1 -1
  181. package/lib/packages/components/chart-table/index.js +2 -2
  182. package/lib/packages/components/chart-table/src/chart-table.js +16 -145
  183. package/lib/packages/components/chart-table/src/chart-table.js.map +1 -1
  184. package/lib/packages/components/chart-table/src/chart-table2.js +145 -16
  185. package/lib/packages/components/chart-table/src/chart-table2.js.map +1 -1
  186. package/lib/packages/components/checkbox-group/index.js +2 -2
  187. package/lib/packages/components/checkbox-group/src/checkbox-group.js +31 -6
  188. package/lib/packages/components/checkbox-group/src/checkbox-group.js.map +1 -1
  189. package/lib/packages/components/checkbox-group/src/checkbox-group2.js +6 -31
  190. package/lib/packages/components/checkbox-group/src/checkbox-group2.js.map +1 -1
  191. package/lib/packages/components/currency-radio-group/index.js +2 -2
  192. package/lib/packages/components/currency-radio-group/src/currency-radio-group.js +57 -19
  193. package/lib/packages/components/currency-radio-group/src/currency-radio-group.js.map +1 -1
  194. package/lib/packages/components/currency-radio-group/src/currency-radio-group2.js +19 -57
  195. package/lib/packages/components/currency-radio-group/src/currency-radio-group2.js.map +1 -1
  196. package/lib/packages/components/direction-tag/index.js +2 -2
  197. package/lib/packages/components/direction-tag/src/direction-tag.js +72 -15
  198. package/lib/packages/components/direction-tag/src/direction-tag.js.map +1 -1
  199. package/lib/packages/components/direction-tag/src/direction-tag2.js +15 -72
  200. package/lib/packages/components/direction-tag/src/direction-tag2.js.map +1 -1
  201. package/lib/packages/components/dropdown/index.js +2 -2
  202. package/lib/packages/components/dropdown/src/dropdown.js +6 -34
  203. package/lib/packages/components/dropdown/src/dropdown.js.map +1 -1
  204. package/lib/packages/components/dropdown/src/dropdown2.js +34 -6
  205. package/lib/packages/components/dropdown/src/dropdown2.js.map +1 -1
  206. package/lib/packages/components/dropdown-button/index.js +2 -2
  207. package/lib/packages/components/dropdown-button/src/dropdown-button.js +39 -6
  208. package/lib/packages/components/dropdown-button/src/dropdown-button.js.map +1 -1
  209. package/lib/packages/components/dropdown-button/src/dropdown-button2.js +6 -39
  210. package/lib/packages/components/dropdown-button/src/dropdown-button2.js.map +1 -1
  211. package/lib/packages/components/greeks-summary/index.js +2 -2
  212. package/lib/packages/components/greeks-summary/src/greeks-summary.js +50 -340
  213. package/lib/packages/components/greeks-summary/src/greeks-summary.js.map +1 -1
  214. package/lib/packages/components/greeks-summary/src/greeks-summary2.js +340 -50
  215. package/lib/packages/components/greeks-summary/src/greeks-summary2.js.map +1 -1
  216. package/lib/packages/components/index.js +23 -23
  217. package/lib/packages/components/input-number/index.js +2 -2
  218. package/lib/packages/components/input-number/src/input-number.js +31 -6
  219. package/lib/packages/components/input-number/src/input-number.js.map +1 -1
  220. package/lib/packages/components/input-number/src/input-number2.js +6 -31
  221. package/lib/packages/components/input-number/src/input-number2.js.map +1 -1
  222. package/lib/packages/components/page-turner/index.js +2 -2
  223. package/lib/packages/components/page-turner/src/page-turner.js +13 -63
  224. package/lib/packages/components/page-turner/src/page-turner.js.map +1 -1
  225. package/lib/packages/components/page-turner/src/page-turner2.js +63 -13
  226. package/lib/packages/components/page-turner/src/page-turner2.js.map +1 -1
  227. package/lib/packages/components/panel-gex-by-expiry/index.js +2 -2
  228. package/lib/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry.js +23 -558
  229. package/lib/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry.js.map +1 -1
  230. package/lib/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry2.js +558 -23
  231. package/lib/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry2.js.map +1 -1
  232. package/lib/packages/components/panel-option-open-interest/index.js +2 -2
  233. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest.js +23 -474
  234. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest.js.map +1 -1
  235. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest2.js +474 -23
  236. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest2.js.map +1 -1
  237. package/lib/packages/components/panel-option-skew-table/index.js +2 -2
  238. package/lib/packages/components/panel-option-skew-table/src/panel-option-skew-table.js +22 -265
  239. package/lib/packages/components/panel-option-skew-table/src/panel-option-skew-table.js.map +1 -1
  240. package/lib/packages/components/panel-option-skew-table/src/panel-option-skew-table2.js +265 -22
  241. package/lib/packages/components/panel-option-skew-table/src/panel-option-skew-table2.js.map +1 -1
  242. package/lib/packages/components/panel-sabr-calibrated-parameters/index.js +2 -2
  243. package/lib/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.js +26 -256
  244. package/lib/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.js.map +1 -1
  245. package/lib/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters2.js +256 -26
  246. package/lib/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters2.js.map +1 -1
  247. package/lib/packages/components/panel-sabr-iv-curve/index.js +2 -2
  248. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.js +26 -585
  249. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.js.map +1 -1
  250. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.js +585 -26
  251. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.js.map +1 -1
  252. package/lib/packages/components/panel-vol-fly/index.js +2 -2
  253. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly.js +758 -22
  254. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly.js.map +1 -1
  255. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly2.js +22 -758
  256. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly2.js.map +1 -1
  257. package/lib/packages/components/panel-volatility-term-structure/index.js +2 -2
  258. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure.js +589 -23
  259. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure.js.map +1 -1
  260. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure2.js +23 -589
  261. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure2.js.map +1 -1
  262. package/lib/packages/components/panel-vrp/index.js +2 -2
  263. package/lib/packages/components/panel-vrp/src/panel-vrp.js +739 -23
  264. package/lib/packages/components/panel-vrp/src/panel-vrp.js.map +1 -1
  265. package/lib/packages/components/panel-vrp/src/panel-vrp2.js +23 -478
  266. package/lib/packages/components/panel-vrp/src/panel-vrp2.js.map +1 -1
  267. package/lib/packages/components/popover/index.js +2 -2
  268. package/lib/packages/components/popover/src/popover.js +34 -88
  269. package/lib/packages/components/popover/src/popover.js.map +1 -1
  270. package/lib/packages/components/popover/src/popover2.js +88 -34
  271. package/lib/packages/components/popover/src/popover2.js.map +1 -1
  272. package/lib/packages/components/pro-badge/index.js +2 -2
  273. package/lib/packages/components/pro-badge/src/pro-badge.js +90 -6
  274. package/lib/packages/components/pro-badge/src/pro-badge.js.map +1 -1
  275. package/lib/packages/components/pro-badge/src/pro-badge2.js +6 -90
  276. package/lib/packages/components/pro-badge/src/pro-badge2.js.map +1 -1
  277. package/lib/packages/components/select/index.js +2 -2
  278. package/lib/packages/components/select/src/option.js +1 -1
  279. package/lib/packages/components/select/src/select.js +15 -41
  280. package/lib/packages/components/select/src/select.js.map +1 -1
  281. package/lib/packages/components/select/src/select2.js +41 -15
  282. package/lib/packages/components/select/src/select2.js.map +1 -1
  283. package/lib/packages/components/spin/index.js +2 -2
  284. package/lib/packages/components/spin/src/spin.js +31 -6
  285. package/lib/packages/components/spin/src/spin.js.map +1 -1
  286. package/lib/packages/components/spin/src/spin2.js +6 -31
  287. package/lib/packages/components/spin/src/spin2.js.map +1 -1
  288. package/lib/packages/components/toggle-button/index.js +2 -2
  289. package/lib/packages/components/toggle-button/src/toggle-button.js +17 -95
  290. package/lib/packages/components/toggle-button/src/toggle-button.js.map +1 -1
  291. package/lib/packages/components/toggle-button/src/toggle-button2.js +95 -17
  292. package/lib/packages/components/toggle-button/src/toggle-button2.js.map +1 -1
  293. package/lib/packages/locale/lang/en.js +6 -0
  294. package/lib/packages/locale/lang/en.js.map +1 -1
  295. package/lib/packages/locale/lang/zh-cn.js +6 -0
  296. package/lib/packages/locale/lang/zh-cn.js.map +1 -1
  297. package/lib/packages/locale/lang/zh-tw.js +6 -0
  298. package/lib/packages/locale/lang/zh-tw.js.map +1 -1
  299. package/package.json +2 -2
  300. package/theme-chalk/g-panel-vrp.css +1 -0
  301. package/theme-chalk/index.css +1 -1
  302. package/theme-chalk/src/panel-vrp.scss +72 -2
  303. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"panel-spots-etf-net-inflow2.mjs","sources":["../../../../../../../packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow.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.spotsEtfNetInflow') }}\n <g-tooltip placement=\"bottom\">\n <g-icon name=\"info_question_circle\"></g-icon>\n <template #title>\n <div class=\"greeks-panel-tip\" v-html=\"t('message.spotsEtfNetInflowTips')\"></div>\n </template>\n </g-tooltip>\n </template>\n <template #tool>\n <span class=\"selector-label h5-hide\">{{\n t('message.periodLabel')\n }}</span>\n <g-select\n v-model:value=\"state.resolution\"\n @change=\"changeResolution\"\n :size=\"isPC ? 'small' : 'medium'\"\n class=\"second-select\"\n >\n <g-select-option v-for=\"item in resolutionList\" :value=\"item.value\">\n {{ item.label }}\n </g-select-option>\n </g-select>\n <div class=\"period-controls\">\n <span class=\"selector-label h5-hide\">{{ t('message.range') }}</span>\n <g-select\n v-model:value=\"state.period\"\n @change=\"handleChangePeriod\"\n :size=\"isPC ? 'small' : 'medium'\"\n class=\"period-select\"\n >\n <g-select-option\n v-for=\"periodItem in periodList\"\n :value=\"periodItem.value\"\n >\n {{ periodItem.label }}\n </g-select-option>\n </g-select>\n <span class=\"period-range h5-hide\">{{ state.periodDateRange }}</span>\n </div>\n </template>\n <template #body>\n <div class=\"echart\" ref=\"echart\">\n <g-chart\n class=\"skew-chart\"\n :option=\"chartOption\"\n @legendselectchanged=\"handleLegendSelectChanged\"\n ></g-chart>\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';\n\nimport {\n showDateRange,\n getTooltipDate,\n formatDateForNumber,\n formatLargeNumber,\n numberFormat,\n timestampFormat,\n formatTimestampsForAxis,\n} from '@greeks-live-ui/utils';\nimport {\n getSpotsEtfNetInflow,\n ISpotsEtfNetInflowRes,\n} from '@greeks-live-ui/utils/dataLab';\nimport {\n panelSpotsEtfNetInflowEmits,\n panelSpotsEtfNetInflowProps,\n} from './panel-spots-etf-net-inflow';\n\ndefineOptions({\n name: 'GPanelSpotsEtfNetInflow',\n});\nconst ns = useNamespace('panel-spots-etf-net-inflow');\nconst props = defineProps(panelSpotsEtfNetInflowProps);\nconst emit = defineEmits(panelSpotsEtfNetInflowEmits);\n\nconst { isMobile, isPC } = useDeviceType();\nconst { isDark } = useTheme();\n\nconst { t, locale } = useLocale();\n\nconst state = reactive({\n loadingFlag: false,\n\n exchange: props.exchange || props.defaultExchange || 'Deribit',\n currency: props.currency || props.defaultCurrency || 'BTC',\n\n period: '1M',\n periodDateRange: '',\n resolution: '1',\n\n chartData: [] as ISpotsEtfNetInflowRes[],\n legendSelected: {} as Record<string, boolean>, // 保存用户的图例选中状态\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\nwatch(currency, () => {\n // 重置图例选中状态,因为不同币种支持的期限可能不同\n state.legendSelected = {};\n fetchData();\n});\n\nlet periodList = [\n {\n value: 'ALL',\n label: 'All',\n days: 0,\n },\n {\n value: '7D',\n label: '7 D',\n days: 7,\n },\n {\n value: '15D',\n label: '15 D',\n days: 15,\n },\n {\n value: '1M',\n label: '1 M',\n days: 30,\n },\n {\n value: '3M',\n label: '3 M',\n days: 90,\n },\n {\n value: '6M',\n label: '6 M',\n days: 180,\n },\n {\n value: '1Y',\n label: '1 Y',\n days: 365,\n },\n];\n\nconst resolutionList = [\n {\n label: '1D',\n value: '1',\n },\n {\n label: '1W',\n value: '7',\n },\n];\n\nconst handleChangePeriod = (value: string) => {\n const selectedPeriod = periodList.find((v) => v.value === value);\n if (!selectedPeriod) return;\n state.periodDateRange = showDateRange(selectedPeriod.days);\n fetchData();\n};\nconst handleLegendSelectChanged = (params: any) => {\n // 保存用户的图例选中状态\n state.legendSelected = params.selected;\n};\n\nconst changeResolution = (value: string) => {\n if (value === '7') {\n state.period = '3M';\n handleChangePeriod('3M');\n } else {\n handleChangePeriod(state.period);\n }\n};\n\nconst getPeriodTimestamps = () => {\n const selectedPeriod = periodList.find((v) => v.value === state.period);\n const now = Date.now();\n let start_timestamp = 0;\n let end_timestamp = now;\n if (selectedPeriod && selectedPeriod.days > 0) {\n start_timestamp = now - selectedPeriod.days * 24 * 60 * 60 * 1000;\n }\n return { start_timestamp, end_timestamp };\n};\n\nconst fetchData = () => {\n state.loadingFlag = true;\n const { start_timestamp, end_timestamp } = getPeriodTimestamps();\n getSpotsEtfNetInflow({\n currency: currency.value,\n exchange: exchange.value,\n start_timestamp,\n end_timestamp,\n })\n .then((res) => {\n if (res && res.code === 200 && Array.isArray(res.data)) {\n state.chartData = res.data;\n } else {\n state.chartData = [];\n }\n })\n .finally(() => {\n state.loadingFlag = false;\n });\n};\n\nonMounted(() => {\n handleChangePeriod(state.period);\n});\n\n// 1. 数据处理\nconst getEchartData = () => {\n const data: ISpotsEtfNetInflowRes[] = Array.isArray(state.chartData)\n ? state.chartData\n : [];\n if (!data.length) {\n return {\n xData: [],\n monthIndices: [],\n barData: [],\n netAssetsData: [],\n indexPriceData: [],\n raw: [],\n };\n }\n if (state.resolution !== '1') {\n // 按周\n const MS_PER_DAY = 24 * 3600 * 1000;\n const MS_PER_WEEK = 7 * MS_PER_DAY;\n const sorted = data; // 已升序\n\n // 1. 取统计周期起止\n let start = data[0].ts;\n let end = data[data.length - 1].ts;\n if (state.periodDateRange) {\n const match = state.periodDateRange.match(/(\\d{4}[\\/-]\\d{2}[\\/-]\\d{2})/g);\n if (match && match.length === 2) {\n start = new Date(match[0].replace(/-/g, '/')).getTime();\n end = new Date(match[1].replace(/-/g, '/')).getTime();\n }\n }\n\n // 2. 以统计周期为分组区间\n const weekGroups: ISpotsEtfNetInflowRes[][] = [];\n let groupStartTs = start;\n while (groupStartTs <= end) {\n const groupEndTs = groupStartTs + MS_PER_WEEK;\n // 找到这7天内的数据\n const group = sorted.filter(\n (item) => item.ts >= groupStartTs && item.ts < groupEndTs\n );\n weekGroups.push(group);\n groupStartTs = groupEndTs;\n }\n\n // 3. 聚合每组\n const timestamps: number[] = [];\n const barData: number[] = [];\n const netAssetsData: number[] = [];\n const indexPriceData: number[] = [];\n // const barData: Array<[number, number]> = [];\n // const netAssetsData: Array<[number, number]> = [];\n // const indexPriceData: Array<[number, number]> = [];\n const raw: ISpotsEtfNetInflowRes[] = [];\n groupStartTs = start;\n for (const arr of weekGroups) {\n if (arr.length) {\n // 该组有数据\n // xData.push(arr[0].ts);\n timestamps.push(arr[0].ts);\n barData.push(arr.reduce((sum, cur) => sum + (cur.fund_flow ?? 0), 0));\n netAssetsData.push(arr[0].total_net_assets_value ?? null);\n indexPriceData.push(arr[0].index_price ?? null);\n\n // barData.push([\n // arr[0].ts,\n // arr.reduce((sum, cur) => sum + (cur.fund_flow ?? 0), 0),\n // ]);\n // netAssetsData.push([arr[0].ts, arr[0].total_net_assets_value ?? null]);\n // indexPriceData.push([arr[0].ts, arr[0].index_price ?? null]);\n raw.push(arr[0]);\n }\n groupStartTs += MS_PER_WEEK;\n }\n const { labels: xData } = formatTimestampsForAxis(timestamps);\n return {\n xData,\n barData,\n netAssetsData,\n indexPriceData,\n raw,\n };\n } else {\n // 按天\n const timestamps = data.map((item) => item.ts);\n const { labels: xData } = formatTimestampsForAxis(timestamps);\n return {\n xData,\n barData: data.map((item) => item.fund_flow),\n netAssetsData: data.map((item) => item.total_net_assets_value),\n indexPriceData: data.map((item) => item.index_price),\n\n // xData: data.map((item) => item.ts),\n // barData: data.map((item) => [item.ts, item.fund_flow]),\n // netAssetsData: data.map((item) => [item.ts, item.total_net_assets_value]),\n // indexPriceData: data.map((item) => [item.ts, item.index_price]),\n raw: data,\n };\n }\n};\n\n// 2. 配置项生成\nconst getEchartOption = (params: ReturnType<typeof getEchartData>) => {\n const { xData, barData, netAssetsData, indexPriceData, raw } = params;\n const currencyIndexName = `${currency.value} Index`;\n // 计算可见标签\n // const visibleLabelIndices = calculateVisibleLabels(xData, monthIndices);\n // const { hasYear, hasMonth, hasDate } = getVisibleLabelTypes(xData);\n const option: any = {\n color: ['#00b42a', '#ff7d00', '#0e42d2'], // green, orange, blue\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'cross',\n label: {\n show: false, // 标签显示\n backgroundColor: '#DEE2E6',\n color: '#343A40',\n padding: [4, 6, 4, 6],\n margin: 9,\n },\n crossStyle: {\n // 十字准星X轴指示器样式\n color: '#8B959F',\n },\n lineStyle: {\n // 十字准星Y轴指示器样式\n color: '#8B959F',\n },\n },\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 if (!params || !params.length) return '';\n const d = params[0];\n const idx = d.dataIndex;\n const item = raw[idx];\n if (!item) return '';\n\n const tooltipDate = getTooltipDate(item.ts, locale.value.name, {\n showSeconds: false,\n });\n const sign = item.fund_flow > 0 ? '+' : '';\n const netInflow = barData[idx];\n let content = '';\n content += `<div class=\"chart-tooltip-box\"><div style=\"margin-bottom:4px;\">${tooltipDate}</div>`;\n\n // Net Inflow\n content += `\n <div class=\"chart-tooltip\">\n <div>\n <span>Net Inflow</span>\n </div>\n <span style=\"color:${\n netInflow >= 0 ? '#00b42a' : '#f53f3f'\n };\">${sign} $ ${formatLargeNumber(netInflow)}</span>\n </div>\n `;\n\n // Net Assets\n content += `\n <div class=\"chart-tooltip\">\n <div>\n <span>Net Assets</span>\n </div>\n <span>$ ${formatLargeNumber(item.total_net_assets_value)}</span>\n </div>\n `;\n\n // Index Price\n content += `\n <div class=\"chart-tooltip\">\n <div>\n <span>${currency.value} Index</span>\n </div>\n <span>$ ${item.index_price}</span>\n </div>\n `;\n\n return content + '</div>';\n },\n },\n legend: {\n selectedMode: true,\n data: [\n { name: 'Net Inflow' },\n { name: 'Net Assets', icon: 'path://M0,0 h10 v1 h-10 z' },\n { name: currencyIndexName, icon: 'path://M0,0 h10 v1 h-10 z' },\n ],\n textStyle: {\n color: isDark.value ? '#ADB5BD' : '#596169',\n fontSize: 12,\n },\n // itemWidth: 14, // 控制短横线的长度\n // itemHeight: 2, // 控制短横线的粗细 (高度)\n itemGap: 16, // 控制图例项之间的间距 (可选)\n lineStyle: {\n inactiveColor: isDark.value ? '#2B2F32' : '#DEE2E6', // 浅色/Grey/3 图例关闭时的线条描边颜色\n },\n inactiveColor: isDark.value ? '#495057' : '#BDC4CB', // 图例关闭时的颜色,与其他表一致\n selected:\n Object.keys(state.legendSelected).length > 0\n ? state.legendSelected\n : undefined,\n },\n grid: {\n top: 40,\n left: 10,\n right: 10,\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 xAxis: {\n type: 'category',\n data: xData,\n // boundaryGap: true,\n axisTick: { show: false },\n axisLabel: {\n color: isDark.value ? '#CED4DA' : '#343A40',\n fontWeight: 400,\n fontSize: 10,\n // 使用富文本格式来设置不同样式\n rich: {\n month: {\n color: isDark.value ? '#CED4DA' : '#343A40',\n fontWeight: 600,\n fontSize: 12,\n },\n year: {\n color: isDark.value ? '#CED4DA' : '#343A40',\n fontWeight: 600,\n fontSize: 12,\n },\n },\n },\n axisLine: {\n lineStyle: { color: isDark.value ? '#CED4DA' : '#343A40' },\n },\n splitLine: {\n show: !isMobile.value && !isDark.value,\n lineStyle: { color: '#F1F1F1', width: 1, type: 'solid' },\n },\n },\n yAxis: [\n {\n type: 'value',\n name: 'Net Inflow ($)',\n position: 'left',\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, 50],\n },\n axisLabel: {\n color: isDark.value ? '#CED4DA' : '#343A40',\n fontWeight: 400,\n fontSize: 10,\n formatter: (v: number, digits: number) => formatLargeNumber(v, 0),\n },\n axisLine: {\n lineStyle: { color: isDark.value ? '#CED4DA' : '#343A40' },\n },\n splitLine: {\n lineStyle: {\n color: isDark.value ? '#2B2F32' : '#F1F1F1',\n width: 1,\n type: 'solid',\n },\n },\n },\n {\n type: 'value',\n name: 'Net Assets ($)',\n nameGap: 10,\n nameRotate: 0,\n scale: true,\n position: 'right',\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, 45, 0, 0],\n },\n axisLabel: {\n color: isDark.value ? '#CED4DA' : '#343A40',\n fontWeight: 400,\n fontSize: 10,\n formatter: (v: number, digits: number) => formatLargeNumber(v, 0),\n },\n axisLine: {\n lineStyle: { color: isDark.value ? '#CED4DA' : '#343A40' },\n },\n splitLine: { show: false },\n },\n {\n type: 'value',\n name: `${currency.value} Price ($)`,\n scale: true,\n position: 'right',\n offset: 0,\n show: false, // 隐藏BTC价格的Y轴\n axisLine: { show: false },\n axisLabel: { show: false },\n splitLine: { show: false },\n axisTick: { show: false },\n width: 1,\n },\n ],\n series: [\n {\n name: 'Net Inflow',\n type: 'bar',\n data: barData,\n yAxisIndex: 0,\n emphasis: {\n focus: 'series',\n },\n itemStyle: {\n color: (params: { value: number }) =>\n params.value >= 0 ? '#00b42a' : '#f53f3f',\n\n // color: function (params: any) {\n // // 由于使用时间轴,params.value是[timestamp, value]格式\n // const value = Array.isArray(params.value)\n // ? params.value[1]\n // : params.value;\n // return value >= 0 ? '#00b42a' : '#f53f3f';\n // },\n },\n },\n {\n name: 'Net Assets',\n type: 'line',\n data: netAssetsData,\n yAxisIndex: 1,\n symbol: 'none',\n lineStyle: { color: '#ff7d00', width: 2 },\n },\n {\n name: `${currency.value} Index`,\n type: 'line',\n data: indexPriceData,\n yAxisIndex: 2,\n symbol: 'none',\n lineStyle: { color: '#0e42d2', width: 2 },\n },\n ],\n };\n // if (isMobile.value) {\n // // 移动端显示圆点,防止showTip不触发\n // option.series = option.series.map((v: any) => ({ ...v, symbol: 'circle' }));\n // }\n return option;\n};\n\n// 3. 响应式 option\nconst chartOption = computed(() => {\n return getEchartOption(getEchartData());\n});\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel-spots-etf-net-inflow2.mjs","sources":["../../../../../../../packages/components/panel-spots-etf-net-inflow/src/panel-spots-etf-net-inflow.ts"],"sourcesContent":["import { buildProps } from '@greeks-live-ui/utils'\nimport type PanelSpotsEtfNetInflow from './panel-spots-etf-net-inflow.vue'\nimport type { ExtractPropTypes } from 'vue'\n\nexport const panelSpotsEtfNetInflowEmits = {\n 'update:currency': (currency: string) => true,\n 'update:exchange': (exchange: string) => true,\n}\nexport type PanelSpotsEtfNetInflowEmits = typeof panelSpotsEtfNetInflowEmits\nexport const panelSpotsEtfNetInflowProps = 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 PanelSpotsEtfNetInflowProps = ExtractPropTypes<typeof panelSpotsEtfNetInflowProps>\nexport type PanelSpotsEtfNetInflowInstance = InstanceType<typeof PanelSpotsEtfNetInflow>"],"names":[],"mappings":";;;AAIO,MAAM,2BAA8B,GAAA;AAAA,EACzC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAAA,EACzC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAC3C,EAAA;AAEO,MAAM,8BAA8B,UAAW,CAAA;AAAA,EACpD,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACE,eAAiB,EAAA;AAAA,IACjB,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACE,QAAU,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EACE,QAAU,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"panel-vrp.mjs","sources":["../../../../../../../packages/components/panel-vrp/src/panel-vrp.ts"],"sourcesContent":["import { buildProps } from '@greeks-live-ui/utils'\nimport type PanelVrp from './panel-vrp.vue'\nimport type { ExtractPropTypes } from 'vue'\n\nexport const panelVrpEmits = {\n 'update:currency': (currency: string) => true,\n 'update:exchange': (exchange: string) => true,\n}\nexport type PanelVrpEmits = typeof panelVrpEmits\nexport const panelVrpProps = 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 PanelVrpProps = ExtractPropTypes<typeof panelVrpProps>\nexport type PanelVrpInstance = InstanceType<typeof PanelVrp>\n"],"names":[],"mappings":";;;AAIO,MAAM,aAAgB,GAAA;AAAA,EAC3B,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAAA,EACzC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAC3C,EAAA;AAEO,MAAM,gBAAgB,UAAW,CAAA;AAAA,EACtC,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-vrp.mjs","sources":["../../../../../../../packages/components/panel-vrp/src/panel-vrp.ts"],"sourcesContent":["import { buildProps } from '@greeks-live-ui/utils'\nimport type PanelVrp from './panel-vrp.vue'\nimport type { ExtractPropTypes } from 'vue'\n\nexport interface IVrpStats {\n mean: number\n max: number\n min: number\n}\n\nexport const panelVrpEmits = {\n 'update:currency': (currency: string) => true,\n 'update:exchange': (exchange: string) => true,\n}\nexport type PanelVrpEmits = typeof panelVrpEmits\nexport const panelVrpProps = 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 PanelVrpProps = ExtractPropTypes<typeof panelVrpProps>\nexport type PanelVrpInstance = InstanceType<typeof PanelVrp>\n"],"names":[],"mappings":";;;AAUO,MAAM,aAAgB,GAAA;AAAA,EAC3B,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAAA,EACzC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAC3C,EAAA;AAEO,MAAM,gBAAgB,UAAW,CAAA;AAAA,EACtC,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;;;;"}
@@ -91,6 +91,154 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
91
91
  props.exchange ? emit("update:exchange", newVal) : state.exchange = newVal;
92
92
  }
93
93
  });
94
+ const selectedPeriodDays = computed(() => {
95
+ var _a, _b;
96
+ return (_b = (_a = periodList.find((item) => item.value === state.period)) == null ? void 0 : _a.days) != null ? _b : 0;
97
+ });
98
+ const filterChartDataByPeriod = (chartData, days) => {
99
+ if (!days) {
100
+ return chartData;
101
+ }
102
+ const cutoff = Date.now() - days * 24 * 60 * 60 * 1e3;
103
+ return chartData.filter((item) => item.datetime >= cutoff);
104
+ };
105
+ const filteredChartData = computed(
106
+ () => filterChartDataByPeriod(state.chartData, selectedPeriodDays.value)
107
+ );
108
+ const getVolTenorResolution = (volTenor) => {
109
+ switch (volTenor) {
110
+ case "1D":
111
+ return 1;
112
+ case "3D":
113
+ return 3;
114
+ case "7D":
115
+ return 7;
116
+ case "15D":
117
+ return 15;
118
+ case "1M":
119
+ return 30;
120
+ case "3M":
121
+ return 90;
122
+ default:
123
+ return 15;
124
+ }
125
+ };
126
+ const buildVrpSeries = (chartData, volTenor) => {
127
+ const resolution = getVolTenorResolution(volTenor);
128
+ const vrpData = [];
129
+ chartData.forEach((item) => {
130
+ item.data.forEach((dataItem) => {
131
+ if (dataItem.day === resolution) {
132
+ vrpData.push([item.datetime, dataItem.iv - dataItem.rv]);
133
+ }
134
+ });
135
+ });
136
+ return vrpData;
137
+ };
138
+ const formatVrpPercent = (value, fractionDigits = 1) => {
139
+ if (value == null || !Number.isFinite(value)) {
140
+ return "-";
141
+ }
142
+ const fixed = Number(value).toFixed(fractionDigits);
143
+ if (Number(fixed) === 0) {
144
+ return "0.0%";
145
+ }
146
+ return `${fixed}%`;
147
+ };
148
+ const computeVrpStats = (values) => {
149
+ if (!values.length) {
150
+ return null;
151
+ }
152
+ let sum = 0;
153
+ let max = values[0];
154
+ let min = values[0];
155
+ values.forEach((value) => {
156
+ sum += value;
157
+ if (value > max)
158
+ max = value;
159
+ if (value < min)
160
+ min = value;
161
+ });
162
+ return {
163
+ mean: sum / values.length,
164
+ max,
165
+ min
166
+ };
167
+ };
168
+ const getZeroMarkLine = () => ({
169
+ name: "0",
170
+ yAxis: 0,
171
+ symbol: ["none", "arrow"],
172
+ symbolSize: [0, 8],
173
+ silent: true,
174
+ lineStyle: {
175
+ color: "#909399"
176
+ },
177
+ label: {
178
+ show: true,
179
+ position: "end",
180
+ color: isDark.value ? "#CED4DA" : "#343A40",
181
+ borderWidth: 0,
182
+ padding: 0,
183
+ shadowBlur: 0,
184
+ fontSize: 12
185
+ }
186
+ });
187
+ const getMeanMarkLine = (mean) => {
188
+ const meanLabel = mean.toFixed(1);
189
+ return {
190
+ name: "mean",
191
+ yAxis: mean,
192
+ symbol: ["none", "arrow"],
193
+ symbolSize: [0, 8],
194
+ silent: true,
195
+ lineStyle: {
196
+ color: "#ADB5BD",
197
+ type: "dashed"
198
+ },
199
+ label: {
200
+ show: true,
201
+ position: "end",
202
+ formatter: meanLabel,
203
+ color: isDark.value ? "#CED4DA" : "#343A40",
204
+ borderWidth: 0,
205
+ padding: 0,
206
+ shadowBlur: 0,
207
+ fontSize: 12
208
+ }
209
+ };
210
+ };
211
+ const vrpSeries = computed(
212
+ () => buildVrpSeries(filteredChartData.value, state.volTenor)
213
+ );
214
+ const vrpStats = computed(() => {
215
+ const values = vrpSeries.value.map(([, value]) => value);
216
+ return computeVrpStats(values);
217
+ });
218
+ const meanHeaderValue = computed(() => {
219
+ var _a, _b;
220
+ if (state.loadingFlag) {
221
+ return "-";
222
+ }
223
+ return formatVrpPercent((_b = (_a = vrpStats.value) == null ? void 0 : _a.mean) != null ? _b : null, 1);
224
+ });
225
+ const statsDisplay = computed(() => {
226
+ const days = `${selectedPeriodDays.value}d`;
227
+ if (state.loadingFlag || !vrpStats.value) {
228
+ return {
229
+ mean: "-",
230
+ max: "-",
231
+ min: "-",
232
+ days
233
+ };
234
+ }
235
+ return {
236
+ mean: formatVrpPercent(vrpStats.value.mean, 1),
237
+ max: formatVrpPercent(vrpStats.value.max, 1),
238
+ min: formatVrpPercent(vrpStats.value.min, 1),
239
+ days
240
+ };
241
+ });
94
242
  watch(currency, () => {
95
243
  fetchData();
96
244
  });
@@ -106,8 +254,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
106
254
  }).then((res) => {
107
255
  var _a;
108
256
  const resData = (_a = res.data) == null ? void 0 : _a.data;
109
- if (!resData)
257
+ if (!resData) {
258
+ state.chartData = [];
110
259
  return;
260
+ }
111
261
  state.chartData = resData;
112
262
  }).finally(() => {
113
263
  state.loadingFlag = false;
@@ -123,44 +273,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
123
273
  state.periodDateRange = showDateRange(selectedPeriod.days);
124
274
  fetchData();
125
275
  };
126
- const getEchartData = () => {
127
- const data = [...state.chartData];
128
- let vrpData = [];
129
- let tempResolution = 30;
130
- switch (state.volTenor) {
131
- case "1D":
132
- tempResolution = 1;
133
- break;
134
- case "3D":
135
- tempResolution = 3;
136
- break;
137
- case "7D":
138
- tempResolution = 7;
139
- break;
140
- case "15D":
141
- tempResolution = 15;
142
- break;
143
- case "1M":
144
- tempResolution = 30;
145
- break;
146
- case "3M":
147
- tempResolution = 90;
148
- break;
276
+ const getEchartOption = (vrpData, stats) => {
277
+ const markLineData = [getZeroMarkLine()];
278
+ const showMeanLine = !state.loadingFlag && stats != null;
279
+ if (showMeanLine) {
280
+ markLineData.push(getMeanMarkLine(stats.mean));
149
281
  }
150
- data.forEach((item) => {
151
- let dataList = item.data;
152
- dataList.forEach((dataItem) => {
153
- if (dataItem.day === tempResolution) {
154
- vrpData.push([item.datetime, dataItem.iv - dataItem.rv]);
155
- }
156
- });
157
- });
158
- return {
159
- vrpData
160
- };
161
- };
162
- const getEchartOption = (params) => {
163
- const { vrpData } = params;
164
282
  const option = {
165
283
  color: ["#FFD600"],
166
284
  tooltip: {
@@ -173,11 +291,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
173
291
  color: "#343A40",
174
292
  padding: [4, 6, 4, 6],
175
293
  margin: 9,
176
- formatter: (params2) => {
177
- if (params2.axisDimension === "x") {
178
- return timestampFormat(params2.value);
294
+ formatter: (params) => {
295
+ if (params.axisDimension === "x") {
296
+ return timestampFormat(params.value);
179
297
  } else {
180
- return numberFormat(params2.value, 2);
298
+ return numberFormat(params.value, 2);
181
299
  }
182
300
  }
183
301
  },
@@ -188,19 +306,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
188
306
  color: "#8B959F"
189
307
  }
190
308
  },
191
- formatter: (params2) => {
309
+ formatter: (params) => {
192
310
  try {
193
311
  let html = `
194
312
  <div style="display: flex;justify-content: space-between;align-items: center;">
195
- <div>${getTooltipDate(params2[0].axisValue, locale.value.name, {
313
+ <div>${getTooltipDate(params[0].axisValue, locale.value.name, {
196
314
  showSeconds: false
197
315
  })}</div>
198
316
  </div>
199
317
  `;
200
- if (params2[0]) {
318
+ if (params[0]) {
201
319
  html += `<div style="display: flex;justify-content: space-between;align-items: center;">
202
- <div style="margin-right: 40px;">${params2[0].marker}&nbsp;${params2[0].seriesName}</div>
203
- <div>&nbsp;${numberFormat(params2[0].data[1], 2)}</div>
320
+ <div style="margin-right: 40px;">${params[0].marker}&nbsp;${params[0].seriesName}</div>
321
+ <div>&nbsp;${numberFormat(params[0].data[1], 2)}</div>
204
322
  </div>`;
205
323
  }
206
324
  return html;
@@ -259,8 +377,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
259
377
  scale: true,
260
378
  name: "VRP(%)",
261
379
  nameLocation: "end",
262
- nameGap: -30,
263
- nameRotate: 90,
264
380
  nameTextStyle: {
265
381
  color: isDark.value ? "#8B959F" : "#8B959F",
266
382
  fontWeight: 400,
@@ -286,9 +402,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
286
402
  }
287
403
  },
288
404
  grid: {
289
- top: 20,
405
+ top: 30,
290
406
  left: "left",
291
- right: 15,
407
+ right: 40,
292
408
  bottom: 50,
293
409
  containLabel: true
294
410
  },
@@ -319,15 +435,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
319
435
  data: vrpData,
320
436
  symbol: "none",
321
437
  markLine: {
322
- data: [
323
- {
324
- name: "0",
325
- yAxis: 0,
326
- lineStyle: {
327
- color: "#909399"
328
- }
329
- }
330
- ]
438
+ data: markLineData
331
439
  }
332
440
  }
333
441
  ]
@@ -335,7 +443,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
335
443
  return option;
336
444
  };
337
445
  const chartOption = computed(() => {
338
- return getEchartOption(getEchartData());
446
+ return getEchartOption(vrpSeries.value, vrpStats.value);
339
447
  });
340
448
  return (_ctx, _cache) => {
341
449
  const _component_g_icon = resolveComponent("g-icon");
@@ -413,6 +521,159 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
413
521
  _: 1
414
522
  }, 8, ["value", "size"])
415
523
  ]),
524
+ createElementVNode(
525
+ "div",
526
+ {
527
+ class: normalizeClass(unref(ns).e("mean-value"))
528
+ },
529
+ [
530
+ createVNode(_component_g_tooltip, {
531
+ underdotted: true,
532
+ placement: "bottom",
533
+ isMobile: unref(isMobile)
534
+ }, {
535
+ title: withCtx(() => [
536
+ createElementVNode(
537
+ "div",
538
+ {
539
+ class: normalizeClass(unref(ns).e("stats-tooltip"))
540
+ },
541
+ [
542
+ createElementVNode(
543
+ "div",
544
+ {
545
+ class: normalizeClass(unref(ns).e("stats-header"))
546
+ },
547
+ toDisplayString(unref(t)("message.vrpRangeStats")),
548
+ 3
549
+ ),
550
+ createElementVNode(
551
+ "div",
552
+ {
553
+ class: normalizeClass(unref(ns).e("stats-row"))
554
+ },
555
+ [
556
+ createElementVNode(
557
+ "span",
558
+ {
559
+ class: normalizeClass(unref(ns).e("stats-label"))
560
+ },
561
+ toDisplayString(unref(t)("message.statMean")),
562
+ 3
563
+ ),
564
+ createElementVNode(
565
+ "span",
566
+ {
567
+ class: normalizeClass(unref(ns).e("stats-value"))
568
+ },
569
+ toDisplayString(unref(statsDisplay).mean),
570
+ 3
571
+ )
572
+ ],
573
+ 2
574
+ ),
575
+ createElementVNode(
576
+ "div",
577
+ {
578
+ class: normalizeClass(unref(ns).e("stats-row"))
579
+ },
580
+ [
581
+ createElementVNode(
582
+ "span",
583
+ {
584
+ class: normalizeClass(unref(ns).e("stats-label"))
585
+ },
586
+ toDisplayString(unref(t)("message.statMax")),
587
+ 3
588
+ ),
589
+ createElementVNode(
590
+ "span",
591
+ {
592
+ class: normalizeClass(unref(ns).e("stats-value"))
593
+ },
594
+ toDisplayString(unref(statsDisplay).max),
595
+ 3
596
+ )
597
+ ],
598
+ 2
599
+ ),
600
+ createElementVNode(
601
+ "div",
602
+ {
603
+ class: normalizeClass(unref(ns).e("stats-row"))
604
+ },
605
+ [
606
+ createElementVNode(
607
+ "span",
608
+ {
609
+ class: normalizeClass(unref(ns).e("stats-label"))
610
+ },
611
+ toDisplayString(unref(t)("message.statMin")),
612
+ 3
613
+ ),
614
+ createElementVNode(
615
+ "span",
616
+ {
617
+ class: normalizeClass(unref(ns).e("stats-value"))
618
+ },
619
+ toDisplayString(unref(statsDisplay).min),
620
+ 3
621
+ )
622
+ ],
623
+ 2
624
+ ),
625
+ createElementVNode(
626
+ "div",
627
+ {
628
+ class: normalizeClass(unref(ns).e("stats-row"))
629
+ },
630
+ [
631
+ createElementVNode(
632
+ "span",
633
+ {
634
+ class: normalizeClass(unref(ns).e("stats-label"))
635
+ },
636
+ toDisplayString(unref(t)("message.statDays")),
637
+ 3
638
+ ),
639
+ createElementVNode(
640
+ "span",
641
+ {
642
+ class: normalizeClass(unref(ns).e("stats-value"))
643
+ },
644
+ toDisplayString(unref(statsDisplay).days),
645
+ 3
646
+ )
647
+ ],
648
+ 2
649
+ )
650
+ ],
651
+ 2
652
+ )
653
+ ]),
654
+ default: withCtx(() => [
655
+ createElementVNode(
656
+ "span",
657
+ {
658
+ class: normalizeClass(unref(ns).e("mean-label"))
659
+ },
660
+ toDisplayString(unref(t)("message.vrpMean")),
661
+ 3
662
+ ),
663
+ createElementVNode(
664
+ "span",
665
+ {
666
+ class: normalizeClass(unref(ns).e("mean-text"))
667
+ },
668
+ toDisplayString(unref(meanHeaderValue)),
669
+ 3
670
+ )
671
+ ]),
672
+ _: 1
673
+ }, 8, ["isMobile"])
674
+ ],
675
+ 2
676
+ ),
416
677
  createElementVNode("div", _hoisted_4, [
417
678
  createElementVNode(
418
679
  "span",