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,32 +1,263 @@
1
+ import { Table } from 'ant-design-vue/es';
2
+ import { defineComponent, reactive, computed, watch, onMounted, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createVNode, isRef, withCtx, createTextVNode, toDisplayString, createElementVNode, renderSlot } from 'vue';
3
+ import { GProBadge } from '../../pro-badge/index.mjs';
4
+ import '../../../hooks/index.mjs';
1
5
  import '../../../utils/index.mjs';
2
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
6
+ import { panelSabrCalibratedParametersProps, panelSabrCalibratedParametersEmits } from './panel-sabr-calibrated-parameters2.mjs';
7
+ import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
8
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
9
+ import { useLocale } from '../../../hooks/use-locale/index.mjs';
10
+ import { useDeviceType } from '../../../hooks/use-device-type/index.mjs';
11
+ import { thousandthFormat, parseExpiryToDate, showEndDateTime } from '../../../utils/chartHelp.mjs';
12
+ import { getSabrPreviewSnapshotTs, buildSabrCalibratedParametersPreviewRows } from '../../../utils/sabrPreview.mjs';
13
+ import { getSabrCalibratedParameters } from '../../../utils/dataLab.mjs';
3
14
 
4
- const panelSabrCalibratedParametersEmits = {
5
- "update:currency": (currency) => true,
6
- "update:exchange": (exchange) => true
15
+ const _hoisted_1 = ["innerHTML"];
16
+ const _hoisted_2 = { class: "period-controls" };
17
+ const _hoisted_3 = { class: "selector-label h5-hide" };
18
+ const _hoisted_4 = { class: "period-range" };
19
+ const __default__ = {
20
+ name: "GPanelSabrCalibratedParameters"
7
21
  };
8
- const panelSabrCalibratedParametersProps = buildProps({
9
- defaultCurrency: {
10
- type: String,
11
- required: false
12
- },
13
- defaultExchange: {
14
- type: String,
15
- required: false
16
- },
17
- currency: {
18
- type: String,
19
- required: false
20
- },
21
- exchange: {
22
- type: String,
23
- required: false
24
- },
25
- previewMode: {
26
- type: Boolean,
27
- default: false
22
+ const _sfc_main = /* @__PURE__ */ defineComponent({
23
+ ...__default__,
24
+ props: panelSabrCalibratedParametersProps,
25
+ emits: panelSabrCalibratedParametersEmits,
26
+ setup(__props, { emit: emits }) {
27
+ const props = __props;
28
+ const ns = useNamespace("panel-sabr-calibrated-parameters");
29
+ const { t } = useLocale();
30
+ const { isMobile } = useDeviceType();
31
+ const state = reactive({
32
+ loadingFlag: false,
33
+ exchange: "deribit",
34
+ currency: "BTC",
35
+ snapshotTs: 0,
36
+ snapshotTimeDisplay: "-",
37
+ rows: []
38
+ });
39
+ const currency = computed({
40
+ get: () => "BTC",
41
+ set: (newVal) => {
42
+ emits("update:currency", newVal);
43
+ }
44
+ });
45
+ const exchange = computed({
46
+ get: () => "deribit",
47
+ set: (newVal) => {
48
+ emits("update:exchange", newVal);
49
+ }
50
+ });
51
+ const currencyList = [{ value: "BTC", label: "BTC", icon: "currency_btc" }];
52
+ const formatRmse = (value) => Number(value || 0).toFixed(1);
53
+ const formatForward = (value) => thousandthFormat(Number(value || 0), 2);
54
+ const formatAtmIv = (value) => `${Number(value || 0).toFixed(2)}%`;
55
+ const formatParam = (value) => Number(value || 0).toFixed(4);
56
+ const formatPoints = (value) => thousandthFormat(Math.round(Number(value || 0)), 0);
57
+ const columns = computed(() => [
58
+ {
59
+ title: t("message.expiry"),
60
+ dataIndex: "expiry",
61
+ key: "expiry",
62
+ align: "left",
63
+ fixed: "left",
64
+ width: 100
65
+ },
66
+ {
67
+ title: "RMSE (bps)",
68
+ dataIndex: "rmse_bps",
69
+ key: "rmse_bps",
70
+ align: "center",
71
+ width: 100
72
+ },
73
+ {
74
+ title: "Forward",
75
+ dataIndex: "forward",
76
+ key: "forward",
77
+ align: "center",
78
+ width: 120
79
+ },
80
+ {
81
+ title: "ATM IV (%)",
82
+ dataIndex: "atm_iv",
83
+ key: "atm_iv",
84
+ align: "center",
85
+ width: 100
86
+ },
87
+ {
88
+ title: "Alpha",
89
+ dataIndex: "alpha",
90
+ key: "alpha",
91
+ align: "center",
92
+ width: 110
93
+ },
94
+ {
95
+ title: "Rho",
96
+ dataIndex: "rho",
97
+ key: "rho",
98
+ align: "center",
99
+ width: 110
100
+ },
101
+ {
102
+ title: "Nu (v)",
103
+ dataIndex: "nu",
104
+ key: "nu",
105
+ align: "center",
106
+ width: 110
107
+ },
108
+ {
109
+ title: "Points",
110
+ dataIndex: "points",
111
+ key: "points",
112
+ align: "center",
113
+ width: 100
114
+ }
115
+ ]);
116
+ const tableData = computed(
117
+ () => [...state.rows].sort(
118
+ (a, b) => parseExpiryToDate(a.expiry).getTime() - parseExpiryToDate(b.expiry).getTime()
119
+ ).map((item) => ({
120
+ key: item.expiry,
121
+ expiry: item.expiry,
122
+ rmse_bps: formatRmse(item.rmse_bps),
123
+ forward: formatForward(item.forward),
124
+ atm_iv: formatAtmIv(item.atm_iv),
125
+ alpha: formatParam(item.alpha),
126
+ rho: formatParam(item.rho),
127
+ nu: formatParam(item.nu),
128
+ points: formatPoints(item.points)
129
+ }))
130
+ );
131
+ const applyPreviewData = () => {
132
+ state.exchange = "deribit";
133
+ state.snapshotTs = getSabrPreviewSnapshotTs();
134
+ state.rows = buildSabrCalibratedParametersPreviewRows();
135
+ state.snapshotTimeDisplay = showEndDateTime(state.snapshotTs);
136
+ state.loadingFlag = false;
137
+ };
138
+ const fetchData = () => {
139
+ if (props.previewMode) {
140
+ applyPreviewData();
141
+ return;
142
+ }
143
+ state.loadingFlag = true;
144
+ state.exchange = "deribit";
145
+ getSabrCalibratedParameters({
146
+ currency: "BTC",
147
+ exchange: "deribit"
148
+ }).then((res) => {
149
+ if (res && res.code === 200 && res.data) {
150
+ state.snapshotTs = Number(res.data.ts || 0);
151
+ state.rows = Array.isArray(res.data.expiries) ? res.data.expiries : [];
152
+ } else {
153
+ state.snapshotTs = 0;
154
+ state.rows = [];
155
+ }
156
+ state.snapshotTimeDisplay = state.snapshotTs > 0 ? showEndDateTime(state.snapshotTs) : "-";
157
+ }).finally(() => {
158
+ state.loadingFlag = false;
159
+ });
160
+ };
161
+ watch(
162
+ () => props.previewMode,
163
+ (locked, wasLocked) => {
164
+ if (locked) {
165
+ applyPreviewData();
166
+ return;
167
+ }
168
+ if (wasLocked === true) {
169
+ fetchData();
170
+ }
171
+ }
172
+ );
173
+ onMounted(() => {
174
+ if (props.previewMode) {
175
+ applyPreviewData();
176
+ } else {
177
+ fetchData();
178
+ }
179
+ });
180
+ return (_ctx, _cache) => {
181
+ const _component_g_icon = resolveComponent("g-icon");
182
+ const _component_g_tooltip = resolveComponent("g-tooltip");
183
+ const _component_a_table = Table;
184
+ const _component_g_chart_panel = resolveComponent("g-chart-panel");
185
+ return openBlock(), createElementBlock(
186
+ "div",
187
+ {
188
+ class: normalizeClass([unref(ns).b()])
189
+ },
190
+ [
191
+ createVNode(_component_g_chart_panel, {
192
+ currency: unref(currency),
193
+ "onUpdate:currency": _cache[0] || (_cache[0] = ($event) => isRef(currency) ? currency.value = $event : null),
194
+ exchange: unref(exchange),
195
+ "onUpdate:exchange": _cache[1] || (_cache[1] = ($event) => isRef(exchange) ? exchange.value = $event : null),
196
+ loading: state.loadingFlag,
197
+ showExchangeSelector: false,
198
+ showCurrencySelector: false,
199
+ currencyList,
200
+ "content-locked": props.previewMode,
201
+ onRefresh: fetchData
202
+ }, {
203
+ title: withCtx(() => [
204
+ createTextVNode(
205
+ toDisplayString(unref(t)("message.sabrCalibratedParameters")) + " ",
206
+ 1
207
+ ),
208
+ createVNode(_component_g_tooltip, { placement: "bottom" }, {
209
+ title: withCtx(() => [
210
+ createElementVNode("div", {
211
+ class: "greeks-panel-tip",
212
+ innerHTML: unref(t)("message.sabrCalibratedParametersTips")
213
+ }, null, 8, _hoisted_1)
214
+ ]),
215
+ default: withCtx(() => [
216
+ createVNode(_component_g_icon, { name: "info_question_circle" })
217
+ ]),
218
+ _: 1
219
+ }),
220
+ createVNode(unref(GProBadge))
221
+ ]),
222
+ tool: withCtx(() => [
223
+ createElementVNode("div", _hoisted_2, [
224
+ createElementVNode(
225
+ "span",
226
+ _hoisted_3,
227
+ toDisplayString(unref(t)("message.time")),
228
+ 1
229
+ ),
230
+ createElementVNode(
231
+ "span",
232
+ _hoisted_4,
233
+ toDisplayString(state.snapshotTimeDisplay),
234
+ 1
235
+ )
236
+ ])
237
+ ]),
238
+ body: withCtx(() => [
239
+ createVNode(_component_a_table, {
240
+ columns: unref(columns),
241
+ dataSource: unref(tableData),
242
+ size: "small",
243
+ pagination: false,
244
+ scroll: { x: 920 },
245
+ class: "sabr-table",
246
+ sticky: { offsetHeader: 0 }
247
+ }, null, 8, ["columns", "dataSource"])
248
+ ]),
249
+ "content-locked-overlay": withCtx(() => [
250
+ renderSlot(_ctx.$slots, "content-locked-overlay")
251
+ ]),
252
+ _: 3
253
+ }, 8, ["currency", "exchange", "loading", "content-locked"])
254
+ ],
255
+ 2
256
+ );
257
+ };
28
258
  }
29
259
  });
260
+ var PanelSabrCalibratedParameters = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/luobowen/Desktop/greeks/greeks-live-ui/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.vue"]]);
30
261
 
31
- export { panelSabrCalibratedParametersEmits, panelSabrCalibratedParametersProps };
262
+ export { PanelSabrCalibratedParameters as default };
32
263
  //# sourceMappingURL=panel-sabr-calibrated-parameters.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"panel-sabr-calibrated-parameters.mjs","sources":["../../../../../../../packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.ts"],"sourcesContent":["import { buildProps } from '@greeks-live-ui/utils'\nimport type PanelSabrCalibratedParameters from './panel-sabr-calibrated-parameters.vue'\nimport type { ExtractPropTypes } from 'vue'\n\nexport const panelSabrCalibratedParametersEmits = {\n 'update:currency': (currency: string) => true,\n 'update:exchange': (exchange: string) => true,\n}\nexport type PanelSabrCalibratedParametersEmits = typeof panelSabrCalibratedParametersEmits\n\nexport const panelSabrCalibratedParametersProps = 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 previewMode: {\n type: Boolean,\n default: false,\n },\n})\nexport type PanelSabrCalibratedParametersProps = ExtractPropTypes<typeof panelSabrCalibratedParametersProps>\nexport type PanelSabrCalibratedParametersInstance = InstanceType<typeof PanelSabrCalibratedParameters>\n"],"names":[],"mappings":";;;AAIO,MAAM,kCAAqC,GAAA;AAAA,EAChD,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAAA,EACzC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAC3C,EAAA;AAGO,MAAM,qCAAqC,UAAW,CAAA;AAAA,EAC3D,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;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"panel-sabr-calibrated-parameters.mjs","sources":["../../../../../../../packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.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 :showCurrencySelector=\"false\"\n :currencyList=\"currencyList\"\n :content-locked=\"props.previewMode\"\n @refresh=\"fetchData\"\n >\n <template #title>\n {{ t('message.sabrCalibratedParameters') }}\n <g-tooltip placement=\"bottom\">\n <g-icon name=\"info_question_circle\" />\n <template #title>\n <div\n class=\"greeks-panel-tip\"\n v-html=\"t('message.sabrCalibratedParametersTips')\"\n ></div>\n </template>\n </g-tooltip>\n <g-pro-badge />\n </template>\n\n <template #tool>\n <div class=\"period-controls\">\n <span class=\"selector-label h5-hide\">{{ t('message.time') }}</span>\n <span class=\"period-range\">{{ state.snapshotTimeDisplay }}</span>\n </div>\n </template>\n\n <template #body>\n <a-table\n :columns=\"columns\"\n :dataSource=\"tableData\"\n size=\"small\"\n :pagination=\"false\"\n :scroll=\"{ x: 920 }\"\n class=\"sabr-table\"\n :sticky=\"{ offsetHeader: 0 }\"\n />\n </template>\n\n <template #content-locked-overlay>\n <slot name=\"content-locked-overlay\" />\n </template>\n </g-chart-panel>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { GProBadge } from '@greeks-live-ui/components/pro-badge';\nimport { useDeviceType, useLocale, useNamespace } from '@greeks-live-ui/hooks';\nimport { computed, onMounted, reactive, watch } from 'vue';\nimport {\n buildSabrCalibratedParametersPreviewRows,\n getSabrCalibratedParameters,\n getSabrPreviewSnapshotTs,\n ISabrCalibratedParametersExpiryItem,\n} from '@greeks-live-ui/utils';\nimport {\n parseExpiryToDate,\n showEndDateTime,\n thousandthFormat,\n} from '@greeks-live-ui/utils';\nimport {\n panelSabrCalibratedParametersEmits,\n panelSabrCalibratedParametersProps,\n} from './panel-sabr-calibrated-parameters';\n\ndefineOptions({\n name: 'GPanelSabrCalibratedParameters',\n});\n\nconst ns = useNamespace('panel-sabr-calibrated-parameters');\nconst props = defineProps(panelSabrCalibratedParametersProps);\nconst emits = defineEmits(panelSabrCalibratedParametersEmits);\nconst { t } = useLocale();\nconst { isMobile } = useDeviceType();\n\nconst state = reactive({\n loadingFlag: false,\n exchange: 'deribit',\n currency: 'BTC',\n snapshotTs: 0,\n snapshotTimeDisplay: '-',\n rows: [] as ISabrCalibratedParametersExpiryItem[],\n});\n\nconst currency = computed({\n get: () => 'BTC',\n set: (newVal) => {\n emits('update:currency', newVal);\n },\n});\n\nconst exchange = computed({\n get: () => 'deribit',\n set: (newVal) => {\n emits('update:exchange', newVal);\n },\n});\n\nconst currencyList = [{ value: 'BTC', label: 'BTC', icon: 'currency_btc' }];\n\nconst formatRmse = (value: number) => Number(value || 0).toFixed(1);\nconst formatForward = (value: number) =>\n thousandthFormat(Number(value || 0), 2);\nconst formatAtmIv = (value: number) => `${Number(value || 0).toFixed(2)}%`;\nconst formatParam = (value: number) => Number(value || 0).toFixed(4);\nconst formatPoints = (value: number) =>\n thousandthFormat(Math.round(Number(value || 0)), 0);\n\nconst columns = computed(() => [\n {\n title: t('message.expiry'),\n dataIndex: 'expiry',\n key: 'expiry',\n align: 'left',\n fixed: 'left',\n width: 100,\n },\n {\n title: 'RMSE (bps)',\n dataIndex: 'rmse_bps',\n key: 'rmse_bps',\n align: 'center',\n width: 100,\n },\n {\n title: 'Forward',\n dataIndex: 'forward',\n key: 'forward',\n align: 'center',\n width: 120,\n },\n {\n title: 'ATM IV (%)',\n dataIndex: 'atm_iv',\n key: 'atm_iv',\n align: 'center',\n width: 100,\n },\n {\n title: 'Alpha',\n dataIndex: 'alpha',\n key: 'alpha',\n align: 'center',\n width: 110,\n },\n {\n title: 'Rho',\n dataIndex: 'rho',\n key: 'rho',\n align: 'center',\n width: 110,\n },\n {\n title: 'Nu (v)',\n dataIndex: 'nu',\n key: 'nu',\n align: 'center',\n width: 110,\n },\n {\n title: 'Points',\n dataIndex: 'points',\n key: 'points',\n align: 'center',\n width: 100,\n },\n]);\n\nconst tableData = computed(() =>\n [...state.rows]\n .sort(\n (a, b) =>\n parseExpiryToDate(a.expiry).getTime() -\n parseExpiryToDate(b.expiry).getTime()\n )\n .map((item) => ({\n key: item.expiry,\n expiry: item.expiry,\n rmse_bps: formatRmse(item.rmse_bps),\n forward: formatForward(item.forward),\n atm_iv: formatAtmIv(item.atm_iv),\n alpha: formatParam(item.alpha),\n rho: formatParam(item.rho),\n nu: formatParam(item.nu),\n points: formatPoints(item.points),\n }))\n);\n\nconst applyPreviewData = () => {\n state.exchange = 'deribit';\n state.snapshotTs = getSabrPreviewSnapshotTs();\n state.rows = buildSabrCalibratedParametersPreviewRows();\n state.snapshotTimeDisplay = showEndDateTime(state.snapshotTs);\n state.loadingFlag = false;\n};\n\nconst fetchData = () => {\n if (props.previewMode) {\n applyPreviewData();\n return;\n }\n state.loadingFlag = true;\n state.exchange = 'deribit';\n getSabrCalibratedParameters({\n currency: 'BTC',\n exchange: 'deribit',\n })\n .then((res) => {\n if (res && res.code === 200 && res.data) {\n state.snapshotTs = Number(res.data.ts || 0);\n state.rows = Array.isArray(res.data.expiries) ? res.data.expiries : [];\n } else {\n state.snapshotTs = 0;\n state.rows = [];\n }\n state.snapshotTimeDisplay =\n state.snapshotTs > 0 ? showEndDateTime(state.snapshotTs) : '-';\n })\n .finally(() => {\n state.loadingFlag = false;\n });\n};\n\nwatch(\n () => props.previewMode,\n (locked, wasLocked) => {\n if (locked) {\n applyPreviewData();\n return;\n }\n if (wasLocked === true) {\n fetchData();\n }\n }\n);\n\nonMounted(() => {\n if (props.previewMode) {\n applyPreviewData();\n } else {\n fetchData();\n }\n});\n</script>\n"],"names":[],"mappings":"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"}
@@ -1,263 +1,32 @@
1
- import { Table } from 'ant-design-vue/es';
2
- import { defineComponent, reactive, computed, watch, onMounted, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createVNode, isRef, withCtx, createTextVNode, toDisplayString, createElementVNode, renderSlot } from 'vue';
3
- import { GProBadge } from '../../pro-badge/index.mjs';
4
- import '../../../hooks/index.mjs';
5
1
  import '../../../utils/index.mjs';
6
- import { panelSabrCalibratedParametersProps, panelSabrCalibratedParametersEmits } from './panel-sabr-calibrated-parameters.mjs';
7
- import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
8
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
9
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
10
- import { useDeviceType } from '../../../hooks/use-device-type/index.mjs';
11
- import { thousandthFormat, parseExpiryToDate, showEndDateTime } from '../../../utils/chartHelp.mjs';
12
- import { getSabrPreviewSnapshotTs, buildSabrCalibratedParametersPreviewRows } from '../../../utils/sabrPreview.mjs';
13
- import { getSabrCalibratedParameters } from '../../../utils/dataLab.mjs';
2
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
14
3
 
15
- const _hoisted_1 = ["innerHTML"];
16
- const _hoisted_2 = { class: "period-controls" };
17
- const _hoisted_3 = { class: "selector-label h5-hide" };
18
- const _hoisted_4 = { class: "period-range" };
19
- const __default__ = {
20
- name: "GPanelSabrCalibratedParameters"
4
+ const panelSabrCalibratedParametersEmits = {
5
+ "update:currency": (currency) => true,
6
+ "update:exchange": (exchange) => true
21
7
  };
22
- const _sfc_main = /* @__PURE__ */ defineComponent({
23
- ...__default__,
24
- props: panelSabrCalibratedParametersProps,
25
- emits: panelSabrCalibratedParametersEmits,
26
- setup(__props, { emit: emits }) {
27
- const props = __props;
28
- const ns = useNamespace("panel-sabr-calibrated-parameters");
29
- const { t } = useLocale();
30
- const { isMobile } = useDeviceType();
31
- const state = reactive({
32
- loadingFlag: false,
33
- exchange: "deribit",
34
- currency: "BTC",
35
- snapshotTs: 0,
36
- snapshotTimeDisplay: "-",
37
- rows: []
38
- });
39
- const currency = computed({
40
- get: () => "BTC",
41
- set: (newVal) => {
42
- emits("update:currency", newVal);
43
- }
44
- });
45
- const exchange = computed({
46
- get: () => "deribit",
47
- set: (newVal) => {
48
- emits("update:exchange", newVal);
49
- }
50
- });
51
- const currencyList = [{ value: "BTC", label: "BTC", icon: "currency_btc" }];
52
- const formatRmse = (value) => Number(value || 0).toFixed(1);
53
- const formatForward = (value) => thousandthFormat(Number(value || 0), 2);
54
- const formatAtmIv = (value) => `${Number(value || 0).toFixed(2)}%`;
55
- const formatParam = (value) => Number(value || 0).toFixed(4);
56
- const formatPoints = (value) => thousandthFormat(Math.round(Number(value || 0)), 0);
57
- const columns = computed(() => [
58
- {
59
- title: t("message.expiry"),
60
- dataIndex: "expiry",
61
- key: "expiry",
62
- align: "left",
63
- fixed: "left",
64
- width: 100
65
- },
66
- {
67
- title: "RMSE (bps)",
68
- dataIndex: "rmse_bps",
69
- key: "rmse_bps",
70
- align: "center",
71
- width: 100
72
- },
73
- {
74
- title: "Forward",
75
- dataIndex: "forward",
76
- key: "forward",
77
- align: "center",
78
- width: 120
79
- },
80
- {
81
- title: "ATM IV (%)",
82
- dataIndex: "atm_iv",
83
- key: "atm_iv",
84
- align: "center",
85
- width: 100
86
- },
87
- {
88
- title: "Alpha",
89
- dataIndex: "alpha",
90
- key: "alpha",
91
- align: "center",
92
- width: 110
93
- },
94
- {
95
- title: "Rho",
96
- dataIndex: "rho",
97
- key: "rho",
98
- align: "center",
99
- width: 110
100
- },
101
- {
102
- title: "Nu (v)",
103
- dataIndex: "nu",
104
- key: "nu",
105
- align: "center",
106
- width: 110
107
- },
108
- {
109
- title: "Points",
110
- dataIndex: "points",
111
- key: "points",
112
- align: "center",
113
- width: 100
114
- }
115
- ]);
116
- const tableData = computed(
117
- () => [...state.rows].sort(
118
- (a, b) => parseExpiryToDate(a.expiry).getTime() - parseExpiryToDate(b.expiry).getTime()
119
- ).map((item) => ({
120
- key: item.expiry,
121
- expiry: item.expiry,
122
- rmse_bps: formatRmse(item.rmse_bps),
123
- forward: formatForward(item.forward),
124
- atm_iv: formatAtmIv(item.atm_iv),
125
- alpha: formatParam(item.alpha),
126
- rho: formatParam(item.rho),
127
- nu: formatParam(item.nu),
128
- points: formatPoints(item.points)
129
- }))
130
- );
131
- const applyPreviewData = () => {
132
- state.exchange = "deribit";
133
- state.snapshotTs = getSabrPreviewSnapshotTs();
134
- state.rows = buildSabrCalibratedParametersPreviewRows();
135
- state.snapshotTimeDisplay = showEndDateTime(state.snapshotTs);
136
- state.loadingFlag = false;
137
- };
138
- const fetchData = () => {
139
- if (props.previewMode) {
140
- applyPreviewData();
141
- return;
142
- }
143
- state.loadingFlag = true;
144
- state.exchange = "deribit";
145
- getSabrCalibratedParameters({
146
- currency: "BTC",
147
- exchange: "deribit"
148
- }).then((res) => {
149
- if (res && res.code === 200 && res.data) {
150
- state.snapshotTs = Number(res.data.ts || 0);
151
- state.rows = Array.isArray(res.data.expiries) ? res.data.expiries : [];
152
- } else {
153
- state.snapshotTs = 0;
154
- state.rows = [];
155
- }
156
- state.snapshotTimeDisplay = state.snapshotTs > 0 ? showEndDateTime(state.snapshotTs) : "-";
157
- }).finally(() => {
158
- state.loadingFlag = false;
159
- });
160
- };
161
- watch(
162
- () => props.previewMode,
163
- (locked, wasLocked) => {
164
- if (locked) {
165
- applyPreviewData();
166
- return;
167
- }
168
- if (wasLocked === true) {
169
- fetchData();
170
- }
171
- }
172
- );
173
- onMounted(() => {
174
- if (props.previewMode) {
175
- applyPreviewData();
176
- } else {
177
- fetchData();
178
- }
179
- });
180
- return (_ctx, _cache) => {
181
- const _component_g_icon = resolveComponent("g-icon");
182
- const _component_g_tooltip = resolveComponent("g-tooltip");
183
- const _component_a_table = Table;
184
- const _component_g_chart_panel = resolveComponent("g-chart-panel");
185
- return openBlock(), createElementBlock(
186
- "div",
187
- {
188
- class: normalizeClass([unref(ns).b()])
189
- },
190
- [
191
- createVNode(_component_g_chart_panel, {
192
- currency: unref(currency),
193
- "onUpdate:currency": _cache[0] || (_cache[0] = ($event) => isRef(currency) ? currency.value = $event : null),
194
- exchange: unref(exchange),
195
- "onUpdate:exchange": _cache[1] || (_cache[1] = ($event) => isRef(exchange) ? exchange.value = $event : null),
196
- loading: state.loadingFlag,
197
- showExchangeSelector: false,
198
- showCurrencySelector: false,
199
- currencyList,
200
- "content-locked": props.previewMode,
201
- onRefresh: fetchData
202
- }, {
203
- title: withCtx(() => [
204
- createTextVNode(
205
- toDisplayString(unref(t)("message.sabrCalibratedParameters")) + " ",
206
- 1
207
- ),
208
- createVNode(_component_g_tooltip, { placement: "bottom" }, {
209
- title: withCtx(() => [
210
- createElementVNode("div", {
211
- class: "greeks-panel-tip",
212
- innerHTML: unref(t)("message.sabrCalibratedParametersTips")
213
- }, null, 8, _hoisted_1)
214
- ]),
215
- default: withCtx(() => [
216
- createVNode(_component_g_icon, { name: "info_question_circle" })
217
- ]),
218
- _: 1
219
- }),
220
- createVNode(unref(GProBadge))
221
- ]),
222
- tool: withCtx(() => [
223
- createElementVNode("div", _hoisted_2, [
224
- createElementVNode(
225
- "span",
226
- _hoisted_3,
227
- toDisplayString(unref(t)("message.time")),
228
- 1
229
- ),
230
- createElementVNode(
231
- "span",
232
- _hoisted_4,
233
- toDisplayString(state.snapshotTimeDisplay),
234
- 1
235
- )
236
- ])
237
- ]),
238
- body: withCtx(() => [
239
- createVNode(_component_a_table, {
240
- columns: unref(columns),
241
- dataSource: unref(tableData),
242
- size: "small",
243
- pagination: false,
244
- scroll: { x: 920 },
245
- class: "sabr-table",
246
- sticky: { offsetHeader: 0 }
247
- }, null, 8, ["columns", "dataSource"])
248
- ]),
249
- "content-locked-overlay": withCtx(() => [
250
- renderSlot(_ctx.$slots, "content-locked-overlay")
251
- ]),
252
- _: 3
253
- }, 8, ["currency", "exchange", "loading", "content-locked"])
254
- ],
255
- 2
256
- );
257
- };
8
+ const panelSabrCalibratedParametersProps = buildProps({
9
+ defaultCurrency: {
10
+ type: String,
11
+ required: false
12
+ },
13
+ defaultExchange: {
14
+ type: String,
15
+ required: false
16
+ },
17
+ currency: {
18
+ type: String,
19
+ required: false
20
+ },
21
+ exchange: {
22
+ type: String,
23
+ required: false
24
+ },
25
+ previewMode: {
26
+ type: Boolean,
27
+ default: false
258
28
  }
259
29
  });
260
- var PanelSabrCalibratedParameters = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/luobowen/Desktop/greeks/greeks-live-ui/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.vue"]]);
261
30
 
262
- export { PanelSabrCalibratedParameters as default };
31
+ export { panelSabrCalibratedParametersEmits, panelSabrCalibratedParametersProps };
263
32
  //# sourceMappingURL=panel-sabr-calibrated-parameters2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"panel-sabr-calibrated-parameters2.mjs","sources":["../../../../../../../packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.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 :showCurrencySelector=\"false\"\n :currencyList=\"currencyList\"\n :content-locked=\"props.previewMode\"\n @refresh=\"fetchData\"\n >\n <template #title>\n {{ t('message.sabrCalibratedParameters') }}\n <g-tooltip placement=\"bottom\">\n <g-icon name=\"info_question_circle\" />\n <template #title>\n <div\n class=\"greeks-panel-tip\"\n v-html=\"t('message.sabrCalibratedParametersTips')\"\n ></div>\n </template>\n </g-tooltip>\n <g-pro-badge />\n </template>\n\n <template #tool>\n <div class=\"period-controls\">\n <span class=\"selector-label h5-hide\">{{ t('message.time') }}</span>\n <span class=\"period-range\">{{ state.snapshotTimeDisplay }}</span>\n </div>\n </template>\n\n <template #body>\n <a-table\n :columns=\"columns\"\n :dataSource=\"tableData\"\n size=\"small\"\n :pagination=\"false\"\n :scroll=\"{ x: 920 }\"\n class=\"sabr-table\"\n :sticky=\"{ offsetHeader: 0 }\"\n />\n </template>\n\n <template #content-locked-overlay>\n <slot name=\"content-locked-overlay\" />\n </template>\n </g-chart-panel>\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { GProBadge } from '@greeks-live-ui/components/pro-badge';\nimport { useDeviceType, useLocale, useNamespace } from '@greeks-live-ui/hooks';\nimport { computed, onMounted, reactive, watch } from 'vue';\nimport {\n buildSabrCalibratedParametersPreviewRows,\n getSabrCalibratedParameters,\n getSabrPreviewSnapshotTs,\n ISabrCalibratedParametersExpiryItem,\n} from '@greeks-live-ui/utils';\nimport {\n parseExpiryToDate,\n showEndDateTime,\n thousandthFormat,\n} from '@greeks-live-ui/utils';\nimport {\n panelSabrCalibratedParametersEmits,\n panelSabrCalibratedParametersProps,\n} from './panel-sabr-calibrated-parameters';\n\ndefineOptions({\n name: 'GPanelSabrCalibratedParameters',\n});\n\nconst ns = useNamespace('panel-sabr-calibrated-parameters');\nconst props = defineProps(panelSabrCalibratedParametersProps);\nconst emits = defineEmits(panelSabrCalibratedParametersEmits);\nconst { t } = useLocale();\nconst { isMobile } = useDeviceType();\n\nconst state = reactive({\n loadingFlag: false,\n exchange: 'deribit',\n currency: 'BTC',\n snapshotTs: 0,\n snapshotTimeDisplay: '-',\n rows: [] as ISabrCalibratedParametersExpiryItem[],\n});\n\nconst currency = computed({\n get: () => 'BTC',\n set: (newVal) => {\n emits('update:currency', newVal);\n },\n});\n\nconst exchange = computed({\n get: () => 'deribit',\n set: (newVal) => {\n emits('update:exchange', newVal);\n },\n});\n\nconst currencyList = [{ value: 'BTC', label: 'BTC', icon: 'currency_btc' }];\n\nconst formatRmse = (value: number) => Number(value || 0).toFixed(1);\nconst formatForward = (value: number) =>\n thousandthFormat(Number(value || 0), 2);\nconst formatAtmIv = (value: number) => `${Number(value || 0).toFixed(2)}%`;\nconst formatParam = (value: number) => Number(value || 0).toFixed(4);\nconst formatPoints = (value: number) =>\n thousandthFormat(Math.round(Number(value || 0)), 0);\n\nconst columns = computed(() => [\n {\n title: t('message.expiry'),\n dataIndex: 'expiry',\n key: 'expiry',\n align: 'left',\n fixed: 'left',\n width: 100,\n },\n {\n title: 'RMSE (bps)',\n dataIndex: 'rmse_bps',\n key: 'rmse_bps',\n align: 'center',\n width: 100,\n },\n {\n title: 'Forward',\n dataIndex: 'forward',\n key: 'forward',\n align: 'center',\n width: 120,\n },\n {\n title: 'ATM IV (%)',\n dataIndex: 'atm_iv',\n key: 'atm_iv',\n align: 'center',\n width: 100,\n },\n {\n title: 'Alpha',\n dataIndex: 'alpha',\n key: 'alpha',\n align: 'center',\n width: 110,\n },\n {\n title: 'Rho',\n dataIndex: 'rho',\n key: 'rho',\n align: 'center',\n width: 110,\n },\n {\n title: 'Nu (v)',\n dataIndex: 'nu',\n key: 'nu',\n align: 'center',\n width: 110,\n },\n {\n title: 'Points',\n dataIndex: 'points',\n key: 'points',\n align: 'center',\n width: 100,\n },\n]);\n\nconst tableData = computed(() =>\n [...state.rows]\n .sort(\n (a, b) =>\n parseExpiryToDate(a.expiry).getTime() -\n parseExpiryToDate(b.expiry).getTime()\n )\n .map((item) => ({\n key: item.expiry,\n expiry: item.expiry,\n rmse_bps: formatRmse(item.rmse_bps),\n forward: formatForward(item.forward),\n atm_iv: formatAtmIv(item.atm_iv),\n alpha: formatParam(item.alpha),\n rho: formatParam(item.rho),\n nu: formatParam(item.nu),\n points: formatPoints(item.points),\n }))\n);\n\nconst applyPreviewData = () => {\n state.exchange = 'deribit';\n state.snapshotTs = getSabrPreviewSnapshotTs();\n state.rows = buildSabrCalibratedParametersPreviewRows();\n state.snapshotTimeDisplay = showEndDateTime(state.snapshotTs);\n state.loadingFlag = false;\n};\n\nconst fetchData = () => {\n if (props.previewMode) {\n applyPreviewData();\n return;\n }\n state.loadingFlag = true;\n state.exchange = 'deribit';\n getSabrCalibratedParameters({\n currency: 'BTC',\n exchange: 'deribit',\n })\n .then((res) => {\n if (res && res.code === 200 && res.data) {\n state.snapshotTs = Number(res.data.ts || 0);\n state.rows = Array.isArray(res.data.expiries) ? res.data.expiries : [];\n } else {\n state.snapshotTs = 0;\n state.rows = [];\n }\n state.snapshotTimeDisplay =\n state.snapshotTs > 0 ? showEndDateTime(state.snapshotTs) : '-';\n })\n .finally(() => {\n state.loadingFlag = false;\n });\n};\n\nwatch(\n () => props.previewMode,\n (locked, wasLocked) => {\n if (locked) {\n applyPreviewData();\n return;\n }\n if (wasLocked === true) {\n fetchData();\n }\n }\n);\n\nonMounted(() => {\n if (props.previewMode) {\n applyPreviewData();\n } else {\n fetchData();\n }\n});\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel-sabr-calibrated-parameters2.mjs","sources":["../../../../../../../packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.ts"],"sourcesContent":["import { buildProps } from '@greeks-live-ui/utils'\nimport type PanelSabrCalibratedParameters from './panel-sabr-calibrated-parameters.vue'\nimport type { ExtractPropTypes } from 'vue'\n\nexport const panelSabrCalibratedParametersEmits = {\n 'update:currency': (currency: string) => true,\n 'update:exchange': (exchange: string) => true,\n}\nexport type PanelSabrCalibratedParametersEmits = typeof panelSabrCalibratedParametersEmits\n\nexport const panelSabrCalibratedParametersProps = 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 previewMode: {\n type: Boolean,\n default: false,\n },\n})\nexport type PanelSabrCalibratedParametersProps = ExtractPropTypes<typeof panelSabrCalibratedParametersProps>\nexport type PanelSabrCalibratedParametersInstance = InstanceType<typeof PanelSabrCalibratedParameters>\n"],"names":[],"mappings":";;;AAIO,MAAM,kCAAqC,GAAA;AAAA,EAChD,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAAA,EACzC,iBAAA,EAAmB,CAAC,QAAqB,KAAA,IAAA;AAC3C,EAAA;AAGO,MAAM,qCAAqC,UAAW,CAAA;AAAA,EAC3D,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;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AACF,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import '../../utils/index.mjs';
2
- import PanelSpotsEtfNetInflow from './src/panel-spots-etf-net-inflow2.mjs';
3
- export { panelSpotsEtfNetInflowEmits, panelSpotsEtfNetInflowProps } from './src/panel-spots-etf-net-inflow.mjs';
2
+ import PanelSpotsEtfNetInflow from './src/panel-spots-etf-net-inflow.mjs';
3
+ export { panelSpotsEtfNetInflowEmits, panelSpotsEtfNetInflowProps } from './src/panel-spots-etf-net-inflow2.mjs';
4
4
  import { withInstall } from '../../utils/vue/install.mjs';
5
5
 
6
6
  const GPanelSpotsEtfNetInflow = withInstall(PanelSpotsEtfNetInflow);