greeks-live-ui 0.1.21 → 0.1.23

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 (267) hide show
  1. package/dist/index.full.min.mjs +1 -1
  2. package/dist/index.full.min.mjs.map +1 -1
  3. package/dist/index.full.mjs +1 -1
  4. package/es/index.mjs +24 -24
  5. package/es/packages/components/chart-table/index.mjs +2 -2
  6. package/es/packages/components/chart-table/src/chart-table.mjs +145 -15
  7. package/es/packages/components/chart-table/src/chart-table.mjs.map +1 -1
  8. package/es/packages/components/chart-table/src/chart-table2.mjs +15 -145
  9. package/es/packages/components/chart-table/src/chart-table2.mjs.map +1 -1
  10. package/es/packages/components/checkbox/index.mjs +2 -2
  11. package/es/packages/components/checkbox/src/checkbox.mjs +31 -5
  12. package/es/packages/components/checkbox/src/checkbox.mjs.map +1 -1
  13. package/es/packages/components/checkbox/src/checkbox2.mjs +5 -31
  14. package/es/packages/components/checkbox/src/checkbox2.mjs.map +1 -1
  15. package/es/packages/components/currency-icon/src/currency-icon.mjs +1 -1
  16. package/es/packages/components/currency-icon/src/currency-icon.mjs.map +1 -1
  17. package/es/packages/components/direction-tag/index.mjs +2 -2
  18. package/es/packages/components/direction-tag/src/direction-tag.mjs +72 -14
  19. package/es/packages/components/direction-tag/src/direction-tag.mjs.map +1 -1
  20. package/es/packages/components/direction-tag/src/direction-tag2.mjs +14 -72
  21. package/es/packages/components/direction-tag/src/direction-tag2.mjs.map +1 -1
  22. package/es/packages/components/greeks-summary/index.mjs +2 -2
  23. package/es/packages/components/greeks-summary/src/greeks-summary.mjs +49 -340
  24. package/es/packages/components/greeks-summary/src/greeks-summary.mjs.map +1 -1
  25. package/es/packages/components/greeks-summary/src/greeks-summary2.mjs +340 -49
  26. package/es/packages/components/greeks-summary/src/greeks-summary2.mjs.map +1 -1
  27. package/es/packages/components/icon/index.mjs +2 -2
  28. package/es/packages/components/icon/src/icon.mjs +54 -16
  29. package/es/packages/components/icon/src/icon.mjs.map +1 -1
  30. package/es/packages/components/icon/src/icon2.mjs +16 -54
  31. package/es/packages/components/icon/src/icon2.mjs.map +1 -1
  32. package/es/packages/components/index.mjs +24 -24
  33. package/es/packages/components/input-number/index.mjs +2 -2
  34. package/es/packages/components/input-number/src/input-number.mjs +5 -31
  35. package/es/packages/components/input-number/src/input-number.mjs.map +1 -1
  36. package/es/packages/components/input-number/src/input-number2.mjs +31 -5
  37. package/es/packages/components/input-number/src/input-number2.mjs.map +1 -1
  38. package/es/packages/components/menu-item/index.mjs +2 -2
  39. package/es/packages/components/menu-item/src/menu-item.mjs +5 -31
  40. package/es/packages/components/menu-item/src/menu-item.mjs.map +1 -1
  41. package/es/packages/components/menu-item/src/menu-item2.mjs +31 -5
  42. package/es/packages/components/menu-item/src/menu-item2.mjs.map +1 -1
  43. package/es/packages/components/page-turner/index.mjs +2 -2
  44. package/es/packages/components/page-turner/src/page-turner.mjs +63 -12
  45. package/es/packages/components/page-turner/src/page-turner.mjs.map +1 -1
  46. package/es/packages/components/page-turner/src/page-turner2.mjs +12 -63
  47. package/es/packages/components/page-turner/src/page-turner2.mjs.map +1 -1
  48. package/es/packages/components/panel/index.mjs +2 -2
  49. package/es/packages/components/panel/src/panel.mjs +5 -82
  50. package/es/packages/components/panel/src/panel.mjs.map +1 -1
  51. package/es/packages/components/panel/src/panel2.mjs +82 -5
  52. package/es/packages/components/panel/src/panel2.mjs.map +1 -1
  53. package/es/packages/components/panel-max-pain-price/index.mjs +2 -2
  54. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price.mjs +22 -369
  55. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price.mjs.map +1 -1
  56. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price2.mjs +369 -22
  57. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price2.mjs.map +1 -1
  58. package/es/packages/components/panel-option-flow/index.mjs +2 -2
  59. package/es/packages/components/panel-option-flow/src/panel-option-flow.mjs +22 -448
  60. package/es/packages/components/panel-option-flow/src/panel-option-flow.mjs.map +1 -1
  61. package/es/packages/components/panel-option-flow/src/panel-option-flow2.mjs +448 -22
  62. package/es/packages/components/panel-option-flow/src/panel-option-flow2.mjs.map +1 -1
  63. package/es/packages/components/panel-option-skew-table/index.mjs +2 -2
  64. package/es/packages/components/panel-option-skew-table/src/panel-option-skew-table.mjs +21 -261
  65. package/es/packages/components/panel-option-skew-table/src/panel-option-skew-table.mjs.map +1 -1
  66. package/es/packages/components/panel-option-skew-table/src/panel-option-skew-table2.mjs +261 -21
  67. package/es/packages/components/panel-option-skew-table/src/panel-option-skew-table2.mjs.map +1 -1
  68. package/es/packages/components/panel-rv/index.mjs +2 -2
  69. package/es/packages/components/panel-rv/src/panel-rv.mjs +874 -22
  70. package/es/packages/components/panel-rv/src/panel-rv.mjs.map +1 -1
  71. package/es/packages/components/panel-rv/src/panel-rv2.mjs +22 -874
  72. package/es/packages/components/panel-rv/src/panel-rv2.mjs.map +1 -1
  73. package/es/packages/components/panel-sabr-calibrated-parameters/index.mjs +2 -2
  74. package/es/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.mjs +25 -256
  75. package/es/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters.mjs.map +1 -1
  76. package/es/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters2.mjs +256 -25
  77. package/es/packages/components/panel-sabr-calibrated-parameters/src/panel-sabr-calibrated-parameters2.mjs.map +1 -1
  78. package/es/packages/components/panel-sabr-iv-curve/index.mjs +2 -2
  79. package/es/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.mjs +585 -25
  80. package/es/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.mjs.map +1 -1
  81. package/es/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.mjs +25 -585
  82. package/es/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.mjs.map +1 -1
  83. package/es/packages/components/panel-skew/index.mjs +2 -2
  84. package/es/packages/components/panel-skew/src/panel-skew.mjs +751 -21
  85. package/es/packages/components/panel-skew/src/panel-skew.mjs.map +1 -1
  86. package/es/packages/components/panel-skew/src/panel-skew2.mjs +21 -751
  87. package/es/packages/components/panel-skew/src/panel-skew2.mjs.map +1 -1
  88. package/es/packages/components/panel-trade-scatter-plot/index.mjs +2 -2
  89. package/es/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.mjs +469 -21
  90. package/es/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot.mjs.map +1 -1
  91. package/es/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot2.mjs +21 -469
  92. package/es/packages/components/panel-trade-scatter-plot/src/panel-trade-scatter-plot2.mjs.map +1 -1
  93. package/es/packages/components/panel-vol-fly/index.mjs +2 -2
  94. package/es/packages/components/panel-vol-fly/src/panel-vol-fly.mjs +21 -758
  95. package/es/packages/components/panel-vol-fly/src/panel-vol-fly.mjs.map +1 -1
  96. package/es/packages/components/panel-vol-fly/src/panel-vol-fly2.mjs +758 -21
  97. package/es/packages/components/panel-vol-fly/src/panel-vol-fly2.mjs.map +1 -1
  98. package/es/packages/components/pro-badge/index.mjs +2 -2
  99. package/es/packages/components/pro-badge/src/pro-badge.mjs +5 -90
  100. package/es/packages/components/pro-badge/src/pro-badge.mjs.map +1 -1
  101. package/es/packages/components/pro-badge/src/pro-badge2.mjs +90 -5
  102. package/es/packages/components/pro-badge/src/pro-badge2.mjs.map +1 -1
  103. package/es/packages/components/progress/index.mjs +2 -2
  104. package/es/packages/components/progress/src/progress.mjs +12 -45
  105. package/es/packages/components/progress/src/progress.mjs.map +1 -1
  106. package/es/packages/components/progress/src/progress2.mjs +45 -12
  107. package/es/packages/components/progress/src/progress2.mjs.map +1 -1
  108. package/es/packages/components/select/index.mjs +2 -2
  109. package/es/packages/components/select/src/option.mjs +1 -1
  110. package/es/packages/components/select/src/select.mjs +41 -10
  111. package/es/packages/components/select/src/select.mjs.map +1 -1
  112. package/es/packages/components/select/src/select2.mjs +10 -41
  113. package/es/packages/components/select/src/select2.mjs.map +1 -1
  114. package/es/packages/components/spin/index.mjs +2 -2
  115. package/es/packages/components/spin/src/spin.mjs +5 -31
  116. package/es/packages/components/spin/src/spin.mjs.map +1 -1
  117. package/es/packages/components/spin/src/spin2.mjs +31 -5
  118. package/es/packages/components/spin/src/spin2.mjs.map +1 -1
  119. package/es/packages/components/tag/index.mjs +2 -2
  120. package/es/packages/components/tag/src/tag.mjs +28 -112
  121. package/es/packages/components/tag/src/tag.mjs.map +1 -1
  122. package/es/packages/components/tag/src/tag2.mjs +112 -28
  123. package/es/packages/components/tag/src/tag2.mjs.map +1 -1
  124. package/es/packages/components/tooltip/index.mjs +2 -2
  125. package/es/packages/components/tooltip/src/tooltip.mjs +86 -25
  126. package/es/packages/components/tooltip/src/tooltip.mjs.map +1 -1
  127. package/es/packages/components/tooltip/src/tooltip2.mjs +25 -86
  128. package/es/packages/components/tooltip/src/tooltip2.mjs.map +1 -1
  129. package/lib/index.js +27 -27
  130. package/lib/packages/components/chart-panel/index.js +2 -2
  131. package/lib/packages/components/chart-panel/src/chart-panel.js +55 -473
  132. package/lib/packages/components/chart-panel/src/chart-panel.js.map +1 -1
  133. package/lib/packages/components/chart-panel/src/chart-panel2.js +473 -55
  134. package/lib/packages/components/chart-panel/src/chart-panel2.js.map +1 -1
  135. package/lib/packages/components/checkbox/index.js +2 -2
  136. package/lib/packages/components/checkbox/src/checkbox.js +6 -31
  137. package/lib/packages/components/checkbox/src/checkbox.js.map +1 -1
  138. package/lib/packages/components/checkbox/src/checkbox2.js +31 -6
  139. package/lib/packages/components/checkbox/src/checkbox2.js.map +1 -1
  140. package/lib/packages/components/checkbox-group/index.js +2 -2
  141. package/lib/packages/components/checkbox-group/src/checkbox-group.js +6 -31
  142. package/lib/packages/components/checkbox-group/src/checkbox-group.js.map +1 -1
  143. package/lib/packages/components/checkbox-group/src/checkbox-group2.js +31 -6
  144. package/lib/packages/components/checkbox-group/src/checkbox-group2.js.map +1 -1
  145. package/lib/packages/components/currency-icon/index.js +2 -2
  146. package/lib/packages/components/currency-icon/src/currency-icon.js +9 -45
  147. package/lib/packages/components/currency-icon/src/currency-icon.js.map +1 -1
  148. package/lib/packages/components/currency-icon/src/currency-icon2.js +45 -9
  149. package/lib/packages/components/currency-icon/src/currency-icon2.js.map +1 -1
  150. package/lib/packages/components/dropdown/index.js +2 -2
  151. package/lib/packages/components/dropdown/src/dropdown.js +34 -6
  152. package/lib/packages/components/dropdown/src/dropdown.js.map +1 -1
  153. package/lib/packages/components/dropdown/src/dropdown2.js +6 -34
  154. package/lib/packages/components/dropdown/src/dropdown2.js.map +1 -1
  155. package/lib/packages/components/dropdown-button/index.js +2 -2
  156. package/lib/packages/components/dropdown-button/src/dropdown-button.js +6 -39
  157. package/lib/packages/components/dropdown-button/src/dropdown-button.js.map +1 -1
  158. package/lib/packages/components/dropdown-button/src/dropdown-button2.js +39 -6
  159. package/lib/packages/components/dropdown-button/src/dropdown-button2.js.map +1 -1
  160. package/lib/packages/components/index.js +27 -27
  161. package/lib/packages/components/menu/index.js +2 -2
  162. package/lib/packages/components/menu/src/menu.js +6 -31
  163. package/lib/packages/components/menu/src/menu.js.map +1 -1
  164. package/lib/packages/components/menu/src/menu2.js +31 -6
  165. package/lib/packages/components/menu/src/menu2.js.map +1 -1
  166. package/lib/packages/components/menu-item/index.js +2 -2
  167. package/lib/packages/components/menu-item/src/menu-item.js +6 -31
  168. package/lib/packages/components/menu-item/src/menu-item.js.map +1 -1
  169. package/lib/packages/components/menu-item/src/menu-item2.js +31 -6
  170. package/lib/packages/components/menu-item/src/menu-item2.js.map +1 -1
  171. package/lib/packages/components/number-format/index.js +2 -2
  172. package/lib/packages/components/number-format/src/number-format.js +152 -72
  173. package/lib/packages/components/number-format/src/number-format.js.map +1 -1
  174. package/lib/packages/components/number-format/src/number-format2.js +72 -152
  175. package/lib/packages/components/number-format/src/number-format2.js.map +1 -1
  176. package/lib/packages/components/page-turner/index.js +2 -2
  177. package/lib/packages/components/page-turner/src/page-turner.js +63 -13
  178. package/lib/packages/components/page-turner/src/page-turner.js.map +1 -1
  179. package/lib/packages/components/page-turner/src/page-turner2.js +13 -63
  180. package/lib/packages/components/page-turner/src/page-turner2.js.map +1 -1
  181. package/lib/packages/components/panel-atm-iv/index.js +2 -2
  182. package/lib/packages/components/panel-atm-iv/src/panel-atm-iv.js +22 -1064
  183. package/lib/packages/components/panel-atm-iv/src/panel-atm-iv.js.map +1 -1
  184. package/lib/packages/components/panel-atm-iv/src/panel-atm-iv2.js +1064 -22
  185. package/lib/packages/components/panel-atm-iv/src/panel-atm-iv2.js.map +1 -1
  186. package/lib/packages/components/panel-gex/index.js +2 -2
  187. package/lib/packages/components/panel-gex/src/panel-gex.js +23 -445
  188. package/lib/packages/components/panel-gex/src/panel-gex.js.map +1 -1
  189. package/lib/packages/components/panel-gex/src/panel-gex2.js +445 -23
  190. package/lib/packages/components/panel-gex/src/panel-gex2.js.map +1 -1
  191. package/lib/packages/components/panel-gex-by-expiry/index.js +2 -2
  192. package/lib/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry.js +558 -23
  193. package/lib/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry.js.map +1 -1
  194. package/lib/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry2.js +23 -558
  195. package/lib/packages/components/panel-gex-by-expiry/src/panel-gex-by-expiry2.js.map +1 -1
  196. package/lib/packages/components/panel-historical-delivery-price/index.js +2 -2
  197. package/lib/packages/components/panel-historical-delivery-price/src/panel-historical-delivery-price.js +23 -418
  198. package/lib/packages/components/panel-historical-delivery-price/src/panel-historical-delivery-price.js.map +1 -1
  199. package/lib/packages/components/panel-historical-delivery-price/src/panel-historical-delivery-price2.js +418 -23
  200. package/lib/packages/components/panel-historical-delivery-price/src/panel-historical-delivery-price2.js.map +1 -1
  201. package/lib/packages/components/panel-implied-volatility-surface/index.js +2 -2
  202. package/lib/packages/components/panel-implied-volatility-surface/src/panel-implied-volatility-surface.js +23 -336
  203. package/lib/packages/components/panel-implied-volatility-surface/src/panel-implied-volatility-surface.js.map +1 -1
  204. package/lib/packages/components/panel-implied-volatility-surface/src/panel-implied-volatility-surface2.js +336 -23
  205. package/lib/packages/components/panel-implied-volatility-surface/src/panel-implied-volatility-surface2.js.map +1 -1
  206. package/lib/packages/components/panel-iv-skew/index.js +2 -2
  207. package/lib/packages/components/panel-iv-skew/src/panel-iv-skew.js +23 -418
  208. package/lib/packages/components/panel-iv-skew/src/panel-iv-skew.js.map +1 -1
  209. package/lib/packages/components/panel-iv-skew/src/panel-iv-skew2.js +418 -23
  210. package/lib/packages/components/panel-iv-skew/src/panel-iv-skew2.js.map +1 -1
  211. package/lib/packages/components/panel-option-flow/index.js +2 -2
  212. package/lib/packages/components/panel-option-flow/src/panel-option-flow.js +448 -23
  213. package/lib/packages/components/panel-option-flow/src/panel-option-flow.js.map +1 -1
  214. package/lib/packages/components/panel-option-flow/src/panel-option-flow2.js +23 -448
  215. package/lib/packages/components/panel-option-flow/src/panel-option-flow2.js.map +1 -1
  216. package/lib/packages/components/panel-option-open-interest/index.js +2 -2
  217. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest.js +474 -23
  218. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest.js.map +1 -1
  219. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest2.js +23 -474
  220. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest2.js.map +1 -1
  221. package/lib/packages/components/panel-rv/index.js +2 -2
  222. package/lib/packages/components/panel-rv/src/panel-rv.js +874 -23
  223. package/lib/packages/components/panel-rv/src/panel-rv.js.map +1 -1
  224. package/lib/packages/components/panel-rv/src/panel-rv2.js +23 -874
  225. package/lib/packages/components/panel-rv/src/panel-rv2.js.map +1 -1
  226. package/lib/packages/components/panel-rv-calc/index.js +2 -2
  227. package/lib/packages/components/panel-rv-calc/src/panel-rv-calc.js +9 -507
  228. package/lib/packages/components/panel-rv-calc/src/panel-rv-calc.js.map +1 -1
  229. package/lib/packages/components/panel-rv-calc/src/panel-rv-calc2.js +507 -9
  230. package/lib/packages/components/panel-rv-calc/src/panel-rv-calc2.js.map +1 -1
  231. package/lib/packages/components/panel-sabr-iv-curve/index.js +2 -2
  232. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.js +585 -26
  233. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.js.map +1 -1
  234. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.js +26 -585
  235. package/lib/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve2.js.map +1 -1
  236. package/lib/packages/components/panel-skew/index.js +2 -2
  237. package/lib/packages/components/panel-skew/src/panel-skew.js +751 -22
  238. package/lib/packages/components/panel-skew/src/panel-skew.js.map +1 -1
  239. package/lib/packages/components/panel-skew/src/panel-skew2.js +22 -751
  240. package/lib/packages/components/panel-skew/src/panel-skew2.js.map +1 -1
  241. package/lib/packages/components/panel-vol-fly/index.js +2 -2
  242. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly.js +22 -758
  243. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly.js.map +1 -1
  244. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly2.js +758 -22
  245. package/lib/packages/components/panel-vol-fly/src/panel-vol-fly2.js.map +1 -1
  246. package/lib/packages/components/pro-badge/index.js +2 -2
  247. package/lib/packages/components/pro-badge/src/pro-badge.js +6 -90
  248. package/lib/packages/components/pro-badge/src/pro-badge.js.map +1 -1
  249. package/lib/packages/components/pro-badge/src/pro-badge2.js +90 -6
  250. package/lib/packages/components/pro-badge/src/pro-badge2.js.map +1 -1
  251. package/lib/packages/components/progress/index.js +2 -2
  252. package/lib/packages/components/progress/src/progress.js +45 -13
  253. package/lib/packages/components/progress/src/progress.js.map +1 -1
  254. package/lib/packages/components/progress/src/progress2.js +13 -45
  255. package/lib/packages/components/progress/src/progress2.js.map +1 -1
  256. package/lib/packages/components/tag/index.js +2 -2
  257. package/lib/packages/components/tag/src/tag.js +112 -29
  258. package/lib/packages/components/tag/src/tag.js.map +1 -1
  259. package/lib/packages/components/tag/src/tag2.js +29 -112
  260. package/lib/packages/components/tag/src/tag2.js.map +1 -1
  261. package/lib/packages/components/toggle-button/index.js +2 -2
  262. package/lib/packages/components/toggle-button/src/toggle-button.js +95 -17
  263. package/lib/packages/components/toggle-button/src/toggle-button.js.map +1 -1
  264. package/lib/packages/components/toggle-button/src/toggle-button2.js +17 -95
  265. package/lib/packages/components/toggle-button/src/toggle-button2.js.map +1 -1
  266. package/package.json +2 -2
  267. package/web-types.json +1 -1
@@ -2,595 +2,36 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var index$4 = require('../../pro-badge/index.js');
7
- require('../../../hooks/index.js');
8
5
  require('../../../utils/index.js');
9
- var panelSabrIvCurve = require('./panel-sabr-iv-curve.js');
10
- var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
11
- var index = require('../../../hooks/use-namespace/index.js');
12
- var index$1 = require('../../../hooks/use-locale/index.js');
13
- var index$2 = require('../../../hooks/use-device-type/index.js');
14
- var index$3 = require('../../../hooks/use-theme/index.js');
15
- var chartHelp = require('../../../utils/chartHelp.js');
16
- var sabrPreview = require('../../../utils/sabrPreview.js');
17
- var dataLab = require('../../../utils/dataLab.js');
6
+ var runtime = require('../../../utils/vue/props/runtime.js');
18
7
 
19
- const _hoisted_1 = ["innerHTML"];
20
- const _hoisted_2 = { class: "tool-left" };
21
- const _hoisted_3 = { class: "expiry-row" };
22
- const _hoisted_4 = { class: "selector-label" };
23
- const _hoisted_5 = { class: "metrics-row" };
24
- const _hoisted_6 = { class: "metric-item" };
25
- const _hoisted_7 = { class: "metric-item" };
26
- const _hoisted_8 = { class: "metric-item" };
27
- const _hoisted_9 = { class: "period-controls" };
28
- const _hoisted_10 = { class: "selector-label h5-hide" };
29
- const _hoisted_11 = { class: "period-range" };
30
- const _hoisted_12 = {
31
- class: "echart",
32
- ref: "echart"
8
+ const panelSabrIvCurveEmits = {
9
+ "update:currency": (currency) => true,
10
+ "update:exchange": (exchange) => true
33
11
  };
34
- const __default__ = {
35
- name: "GPanelSabrIvCurve"
36
- };
37
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
38
- ...__default__,
39
- props: panelSabrIvCurve.panelSabrIvCurveProps,
40
- emits: panelSabrIvCurve.panelSabrIvCurveEmits,
41
- setup(__props, { emit: emits }) {
42
- const props = __props;
43
- const ns = index.useNamespace("panel-sabr-iv-curve");
44
- const { t } = index$1.useLocale();
45
- const { isMobile, isPC } = index$2.useDeviceType();
46
- const { isDark } = index$3.useTheme();
47
- const state = vue.reactive({
48
- loadingFlag: false,
49
- exchange: "deribit",
50
- currency: "BTC",
51
- expiryOptions: [],
52
- selectedExpiry: "",
53
- snapshotTs: 0,
54
- snapshotTimeDisplay: "-",
55
- rmseBps: 0,
56
- forward: 0,
57
- strikesCount: 0,
58
- modelCurve: [],
59
- marketPoints: []
60
- });
61
- const currency = vue.computed({
62
- get: () => "BTC",
63
- set: (newVal) => {
64
- emits("update:currency", newVal);
65
- }
66
- });
67
- const exchange = vue.computed({
68
- get: () => "deribit",
69
- set: (newVal) => {
70
- emits("update:exchange", newVal);
71
- }
72
- });
73
- const currencyList = [{ value: "BTC", label: "BTC", icon: "currency_btc" }];
74
- const isValidNumber = (value) => typeof value === "number" && Number.isFinite(value);
75
- const formatRmse = (value) => isValidNumber(value) ? value.toFixed(1) : "-";
76
- const formatForward = (value) => isValidNumber(value) ? chartHelp.thousandthFormat(value, 2) : "-";
77
- const formatStrikes = (value) => isValidNumber(value) ? chartHelp.thousandthFormat(value, 0) : "-";
78
- const formatStrike = (value) => Number(value).toLocaleString(void 0, {
79
- minimumFractionDigits: 0,
80
- maximumFractionDigits: 8
81
- });
82
- const formatIvPercent = (value) => isValidNumber(value) ? `${value.toFixed(2)}%` : "-";
83
- const normalizeIvPercent = (value) => {
84
- if (value === null || value === void 0 || value === "") {
85
- return null;
86
- }
87
- const n = Number(value);
88
- if (!Number.isFinite(n))
89
- return null;
90
- return Math.abs(n) <= 2 ? n * 100 : n;
91
- };
92
- const resetCurveData = () => {
93
- state.snapshotTs = 0;
94
- state.snapshotTimeDisplay = "-";
95
- state.rmseBps = 0;
96
- state.forward = 0;
97
- state.strikesCount = 0;
98
- state.modelCurve = [];
99
- state.marketPoints = [];
100
- };
101
- const applyPreviewData = () => {
102
- state.loadingFlag = false;
103
- state.exchange = "deribit";
104
- const preview = sabrPreview.buildSabrIvCurvePreviewState();
105
- state.expiryOptions = preview.expiryOptions;
106
- state.selectedExpiry = preview.selectedExpiry;
107
- state.snapshotTs = preview.snapshotTs;
108
- state.snapshotTimeDisplay = preview.snapshotTs > 0 ? chartHelp.showEndDateTime(preview.snapshotTs) : "-";
109
- state.rmseBps = preview.rmseBps;
110
- state.forward = preview.forward;
111
- state.strikesCount = preview.strikesCount;
112
- state.modelCurve = preview.modelCurve;
113
- state.marketPoints = preview.marketPoints;
114
- };
115
- const fetchIvCurveByExpiry = async (expiry) => {
116
- if (props.previewMode) {
117
- return;
118
- }
119
- if (!expiry) {
120
- resetCurveData();
121
- return;
122
- }
123
- const res = await dataLab.getSabrIvCurve({
124
- currency: "BTC",
125
- exchange: "deribit",
126
- expiry
127
- });
128
- if (res && res.code === 200 && res.data) {
129
- state.snapshotTs = Number(res.data.ts || 0);
130
- state.snapshotTimeDisplay = state.snapshotTs > 0 ? chartHelp.showEndDateTime(state.snapshotTs) : "-";
131
- state.rmseBps = Number(res.data.rmse_bps || 0);
132
- state.forward = Number(res.data.forward || 0);
133
- state.strikesCount = Number(res.data.strikes_count || 0);
134
- state.modelCurve = Array.isArray(res.data.model_curve) ? res.data.model_curve : [];
135
- state.marketPoints = Array.isArray(res.data.market_points) ? res.data.market_points : [];
136
- return;
137
- }
138
- resetCurveData();
139
- };
140
- const fetchDiagnosticsExpiries = async () => {
141
- const res = await dataLab.getSabrDiagnostics({
142
- currency: "BTC",
143
- exchange: "deribit"
144
- });
145
- if (res && res.code === 200 && res.data) {
146
- const rows = Array.isArray(res.data.expiries) ? res.data.expiries : [];
147
- const allExpiries = Array.from(
148
- new Set(
149
- rows.map((item) => String(item.expiry || "").trim()).filter((expiry) => expiry.length > 0)
150
- )
151
- ).sort(
152
- (a, b) => chartHelp.parseExpiryToDate(a).getTime() - chartHelp.parseExpiryToDate(b).getTime()
153
- );
154
- state.expiryOptions = allExpiries;
155
- return;
156
- }
157
- state.expiryOptions = [];
158
- };
159
- const fetchAllData = async () => {
160
- if (props.previewMode) {
161
- applyPreviewData();
162
- return;
163
- }
164
- state.loadingFlag = true;
165
- state.exchange = "deribit";
166
- try {
167
- await fetchDiagnosticsExpiries();
168
- const hasCurrent = state.expiryOptions.includes(state.selectedExpiry);
169
- state.selectedExpiry = hasCurrent ? state.selectedExpiry : state.expiryOptions[0] || "";
170
- await fetchIvCurveByExpiry(state.selectedExpiry);
171
- } finally {
172
- state.loadingFlag = false;
173
- }
174
- };
175
- const handleExpiryChange = async (value) => {
176
- if (props.previewMode) {
177
- return;
178
- }
179
- state.selectedExpiry = value;
180
- state.loadingFlag = true;
181
- try {
182
- await fetchIvCurveByExpiry(state.selectedExpiry);
183
- } finally {
184
- state.loadingFlag = false;
185
- }
186
- };
187
- const strikeKey = (value) => value.toFixed(8);
188
- const marketPointMap = vue.computed(() => {
189
- const map = /* @__PURE__ */ new Map();
190
- state.marketPoints.forEach((point) => {
191
- if (point.strike_kind === 0 && isValidNumber(point.strike)) {
192
- map.set(strikeKey(point.strike), point);
193
- }
194
- });
195
- return map;
196
- });
197
- const interpolatedPointMap = vue.computed(() => {
198
- const map = /* @__PURE__ */ new Map();
199
- state.marketPoints.forEach((point) => {
200
- if (point.strike_kind === 1 && isValidNumber(point.strike)) {
201
- map.set(strikeKey(point.strike), point);
202
- }
203
- });
204
- return map;
205
- });
206
- const nearestModelIv = (strike) => {
207
- let nearestIv = null;
208
- let nearestDelta = Number.POSITIVE_INFINITY;
209
- state.modelCurve.forEach((point) => {
210
- if (!isValidNumber(point.k) || !isValidNumber(point.iv))
211
- return;
212
- const delta = Math.abs(point.k - strike);
213
- if (delta < nearestDelta) {
214
- nearestDelta = delta;
215
- nearestIv = point.iv;
216
- }
217
- });
218
- return nearestIv;
219
- };
220
- const chartOption = vue.computed(() => {
221
- const modelData = state.modelCurve.map((item) => {
222
- const k = Number(item.k);
223
- const iv = normalizeIvPercent(item.iv);
224
- return Number.isFinite(k) && isValidNumber(iv) ? [k, iv] : null;
225
- }).filter((item) => Array.isArray(item));
226
- const marketLineData = state.marketPoints.filter((item) => item.strike_kind === 0).map((item) => {
227
- const strike = Number(item.strike);
228
- const ivMid = normalizeIvPercent(item.iv_mid);
229
- return Number.isFinite(strike) ? [strike, ivMid] : null;
230
- }).filter((item) => Array.isArray(item)).sort((a, b) => a[0] - b[0]);
231
- const interpolatedData = state.marketPoints.filter((item) => item.strike_kind === 1).map((item) => {
232
- const strike = Number(item.strike);
233
- const y = normalizeIvPercent(item.iv_model);
234
- return Number.isFinite(strike) && isValidNumber(y) ? [strike, y] : null;
235
- }).filter((point) => Array.isArray(point)).sort((a, b) => a[0] - b[0]);
236
- return {
237
- color: ["#1fad9c", "#8B959F", "#FF9A2E"],
238
- legend: {
239
- top: 0,
240
- left: "center",
241
- itemGap: isMobile.value ? 6 : 16,
242
- textStyle: {
243
- color: isDark.value ? "#CED4DA" : "#596169",
244
- fontSize: 12
245
- },
246
- data: [
247
- {
248
- name: t("message.sabrIVLegendModel"),
249
- icon: "path://M14.5 0C15.3284 0 16 0.671573 16 1.5C16 2.32843 15.3284 3 14.5 3H1.5C0.671573 3 0 2.32843 0 1.5C0 0.671573 0.671573 0 1.5 0H14.5Z"
250
- },
251
- {
252
- name: t("message.sabrIVLegendMarket"),
253
- icon: "path://M2.5 2C3.05228 2 3.5 2.44772 3.5 3C3.5 3.55228 3.05228 4 2.5 4H1C0.447715 4 0 3.55228 0 3C0 2.44772 0.447715 2 1 2H2.5ZM8.5 2C9.05228 2 9.5 2.44772 9.5 3C9.5 3.55228 9.05228 4 8.5 4H5.5C4.94772 4 4.5 3.55228 4.5 3C4.5 2.44772 4.94772 2 5.5 2H8.5ZM20.5 2C21.0523 2 21.5 2.44772 21.5 3C21.5 3.55228 21.0523 4 20.5 4H17.5C16.9477 4 16.5 3.55228 16.5 3C16.5 2.44772 16.9477 2 17.5 2H20.5ZM25 2C25.5523 2 26 2.44772 26 3C26 3.55228 25.5523 4 25 4H23.5C22.9477 4 22.5 3.55228 22.5 3C22.5 2.44772 22.9477 2 23.5 2H25Z M13,0 A3,3,0,0,1,16,3 A3,3,0,0,1,13,6 A3,3,0,0,1,10,3 A3,3,0,0,1,13,0Z M13,1.5 A1.5,1.5,0,0,0,11.5,3 A1.5,1.5,0,0,0,13,4.5 A1.5,1.5,0,0,0,14.5,3 A1.5,1.5,0,0,0,13,1.5Z"
254
- },
255
- {
256
- name: t("message.sabrIVLegendInterpolated")
257
- }
258
- ]
259
- },
260
- tooltip: {
261
- trigger: "axis",
262
- axisPointer: {
263
- type: "cross",
264
- snap: false,
265
- label: {
266
- show: true,
267
- backgroundColor: "#DEE2E6",
268
- color: "#343A40",
269
- fontSize: 10,
270
- padding: [4, 6, 4, 8],
271
- formatter: (params) => {
272
- if ((params == null ? void 0 : params.axisDimension) === "y") {
273
- const y = Number(params == null ? void 0 : params.value);
274
- return Number.isFinite(y) ? `${y.toFixed(2)}%` : "-";
275
- }
276
- const x = params == null ? void 0 : params.value;
277
- const xNum = Number(x);
278
- return Number.isFinite(xNum) ? formatStrike(xNum) : "-";
279
- }
280
- }
281
- },
282
- backgroundColor: isDark.value ? "#E9ECEF" : "#292F3D",
283
- borderWidth: 0,
284
- padding: [6, 8, 5, 6],
285
- textStyle: {
286
- color: isDark.value ? "#000000" : "#FFFFFF",
287
- fontSize: 12,
288
- lineHeight: 16,
289
- fontWeight: 400
290
- },
291
- formatter: (params) => {
292
- var _a, _b;
293
- const first = Array.isArray(params) && params.length > 0 ? params[0] : null;
294
- if (!first)
295
- return "";
296
- const strike = Number(first.axisValue);
297
- const strikeText = isValidNumber(strike) ? formatStrike(strike) : "-";
298
- const marketPoint = marketPointMap.value.get(strikeKey(strike));
299
- const interpolatedPoint = interpolatedPointMap.value.get(
300
- strikeKey(strike)
301
- );
302
- const isInterpolated = Boolean(interpolatedPoint);
303
- const sabrIvRaw = isInterpolated ? (_a = interpolatedPoint == null ? void 0 : interpolatedPoint.iv_model) != null ? _a : nearestModelIv(strike) : isValidNumber(marketPoint == null ? void 0 : marketPoint.iv_model) ? marketPoint == null ? void 0 : marketPoint.iv_model : nearestModelIv(strike);
304
- const marketIvRaw = isInterpolated ? null : (_b = marketPoint == null ? void 0 : marketPoint.iv_mid) != null ? _b : null;
305
- const sabrIv = normalizeIvPercent(sabrIvRaw);
306
- const marketIv = normalizeIvPercent(marketIvRaw);
307
- const strikeLine = isInterpolated ? `${strikeText} <span style="color:#ADB5BD;">(${t(
308
- "message.sabrIVInterpolatedStrike"
309
- )})</span>` : strikeText;
310
- const sabrRow = `
311
- <div class="chart-tooltip">
312
- <div>
313
- <span class="chart-tooltip-line" style="background-color:#1fad9c;"></span>
314
- <span>${t("message.sabrIVTooltipSabrAtmIv")}</span>
315
- </div>
316
- <span class="chart-tooltip-value">${formatIvPercent(
317
- sabrIv
318
- )}</span>
319
- </div>`;
320
- const marketRow = `
321
- <div class="chart-tooltip">
322
- <div>
323
- <span class="sabr-tooltip-legend sabr-tooltip-legend--market-mid" aria-hidden="true">
324
- <span class="sabr-tooltip-legend-segment"></span>
325
- <span class="sabr-tooltip-legend-dot"></span>
326
- <span class="sabr-tooltip-legend-segment"></span>
327
- </span>
328
- <span>${t("message.sabrIVTooltipMarketMidIv")}</span>
329
- </div>
330
- <span class="chart-tooltip-value">${formatIvPercent(
331
- marketIv
332
- )}</span>
333
- </div>`;
334
- return `<div class="chart-tooltip-box"><div style="margin-bottom:4px;">${strikeLine}</div>${sabrRow}${marketRow}</div>`;
335
- }
336
- },
337
- grid: {
338
- top: isMobile.value ? 50 : 40,
339
- left: "left",
340
- right: 16,
341
- bottom: 30,
342
- containLabel: true
343
- },
344
- xAxis: {
345
- type: "value",
346
- scale: true,
347
- axisTick: { show: false },
348
- axisLine: { show: false },
349
- axisLabel: {
350
- color: isDark.value ? "#CED4DA" : "#343A40",
351
- fontWeight: 400,
352
- fontSize: 10,
353
- formatter: (value) => formatStrike(value)
354
- },
355
- splitLine: {
356
- show: false
357
- }
358
- },
359
- yAxis: {
360
- type: "value",
361
- scale: true,
362
- name: t("message.sabrIVYAxisLabel"),
363
- nameTextStyle: {
364
- color: "#8B959F",
365
- fontSize: 10,
366
- padding: [0, 0, 0, 0]
367
- },
368
- axisTick: { show: false },
369
- axisLine: { show: false },
370
- axisLabel: {
371
- color: isDark.value ? "#CED4DA" : "#343A40",
372
- fontWeight: 400,
373
- fontSize: 10,
374
- formatter: (value) => `${value.toFixed(2)}%`
375
- },
376
- splitLine: {
377
- lineStyle: {
378
- color: isDark.value ? "#2B2F32" : "#F1F1F1",
379
- width: 1
380
- }
381
- }
382
- },
383
- series: [
384
- {
385
- name: t("message.sabrIVLegendModel"),
386
- type: "line",
387
- smooth: true,
388
- showSymbol: false,
389
- symbol: "none",
390
- silent: true,
391
- tooltip: {
392
- show: false
393
- },
394
- lineStyle: {
395
- color: "#1fad9c"
396
- },
397
- data: modelData
398
- },
399
- {
400
- name: t("message.sabrIVLegendMarket"),
401
- type: "line",
402
- showSymbol: true,
403
- connectNulls: false,
404
- symbolSize: 5,
405
- lineStyle: {
406
- width: 1,
407
- type: "dashed",
408
- color: "#8B959F"
409
- },
410
- data: marketLineData
411
- },
412
- {
413
- name: t("message.sabrIVLegendInterpolated"),
414
- type: "scatter",
415
- symbol: "circle",
416
- symbolSize: 5,
417
- itemStyle: {
418
- color: "transparent",
419
- borderColor: "#FF9A2E",
420
- borderWidth: 2
421
- },
422
- tooltip: {
423
- show: true
424
- },
425
- data: interpolatedData
426
- }
427
- ]
428
- };
429
- });
430
- vue.watch(
431
- () => props.previewMode,
432
- (locked, wasLocked) => {
433
- if (locked) {
434
- applyPreviewData();
435
- return;
436
- }
437
- if (wasLocked === true) {
438
- fetchAllData();
439
- }
440
- }
441
- );
442
- vue.onMounted(() => {
443
- if (props.previewMode) {
444
- applyPreviewData();
445
- } else {
446
- fetchAllData();
447
- }
448
- });
449
- return (_ctx, _cache) => {
450
- const _component_g_icon = vue.resolveComponent("g-icon");
451
- const _component_g_tooltip = vue.resolveComponent("g-tooltip");
452
- const _component_g_select_option = vue.resolveComponent("g-select-option");
453
- const _component_g_select = vue.resolveComponent("g-select");
454
- const _component_g_chart = vue.resolveComponent("g-chart");
455
- const _component_g_chart_panel = vue.resolveComponent("g-chart-panel");
456
- return vue.openBlock(), vue.createElementBlock(
457
- "div",
458
- {
459
- class: vue.normalizeClass([vue.unref(ns).b()])
460
- },
461
- [
462
- vue.createVNode(_component_g_chart_panel, {
463
- currency: vue.unref(currency),
464
- "onUpdate:currency": _cache[1] || (_cache[1] = ($event) => vue.isRef(currency) ? currency.value = $event : null),
465
- exchange: vue.unref(exchange),
466
- "onUpdate:exchange": _cache[2] || (_cache[2] = ($event) => vue.isRef(exchange) ? exchange.value = $event : null),
467
- loading: state.loadingFlag,
468
- showExchangeSelector: false,
469
- showCurrencySelector: false,
470
- currencyList,
471
- "content-locked": props.previewMode,
472
- onRefresh: fetchAllData
473
- }, {
474
- title: vue.withCtx(() => [
475
- vue.createTextVNode(
476
- vue.toDisplayString(vue.unref(t)("message.sabrIVTitle")) + " ",
477
- 1
478
- ),
479
- vue.createVNode(_component_g_tooltip, { placement: "bottom" }, {
480
- title: vue.withCtx(() => [
481
- vue.createElementVNode("div", {
482
- class: "greeks-panel-tip",
483
- innerHTML: vue.unref(t)("message.sabrIVTips")
484
- }, null, 8, _hoisted_1)
485
- ]),
486
- default: vue.withCtx(() => [
487
- vue.createVNode(_component_g_icon, { name: "info_question_circle" })
488
- ]),
489
- _: 1
490
- }),
491
- vue.createVNode(vue.unref(index$4.GProBadge))
492
- ]),
493
- tool: vue.withCtx(() => [
494
- vue.createElementVNode("div", _hoisted_2, [
495
- vue.createElementVNode("div", _hoisted_3, [
496
- vue.createElementVNode(
497
- "span",
498
- _hoisted_4,
499
- vue.toDisplayString(vue.unref(t)("message.expiry")),
500
- 1
501
- ),
502
- vue.createVNode(_component_g_select, {
503
- value: state.selectedExpiry,
504
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => state.selectedExpiry = $event),
505
- size: vue.unref(isPC) ? "small" : "medium",
506
- class: "expiry-select",
507
- onChange: handleExpiryChange
508
- }, {
509
- default: vue.withCtx(() => [
510
- (vue.openBlock(true), vue.createElementBlock(
511
- vue.Fragment,
512
- null,
513
- vue.renderList(state.expiryOptions, (expiry) => {
514
- return vue.openBlock(), vue.createBlock(_component_g_select_option, {
515
- key: expiry,
516
- value: expiry
517
- }, {
518
- default: vue.withCtx(() => [
519
- vue.createTextVNode(
520
- vue.toDisplayString(expiry),
521
- 1
522
- )
523
- ]),
524
- _: 2
525
- }, 1032, ["value"]);
526
- }),
527
- 128
528
- ))
529
- ]),
530
- _: 1
531
- }, 8, ["value", "size"])
532
- ]),
533
- vue.createElementVNode("div", _hoisted_5, [
534
- vue.createElementVNode(
535
- "span",
536
- _hoisted_6,
537
- "RMSE " + vue.toDisplayString(formatRmse(state.rmseBps)) + " bps",
538
- 1
539
- ),
540
- vue.createElementVNode(
541
- "span",
542
- _hoisted_7,
543
- "| Forward " + vue.toDisplayString(formatForward(state.forward)),
544
- 1
545
- ),
546
- vue.createElementVNode(
547
- "span",
548
- _hoisted_8,
549
- "| " + vue.toDisplayString(formatStrikes(state.strikesCount)) + " " + vue.toDisplayString(vue.unref(t)("message.sabrIVStrikes")),
550
- 1
551
- )
552
- ])
553
- ]),
554
- vue.createElementVNode("div", _hoisted_9, [
555
- vue.createElementVNode(
556
- "span",
557
- _hoisted_10,
558
- vue.toDisplayString(vue.unref(t)("message.time")),
559
- 1
560
- ),
561
- vue.createElementVNode(
562
- "span",
563
- _hoisted_11,
564
- vue.toDisplayString(state.snapshotTimeDisplay),
565
- 1
566
- )
567
- ])
568
- ]),
569
- body: vue.withCtx(() => [
570
- vue.createElementVNode(
571
- "div",
572
- _hoisted_12,
573
- [
574
- vue.createVNode(_component_g_chart, {
575
- class: "skew-chart",
576
- option: vue.unref(chartOption)
577
- }, null, 8, ["option"])
578
- ],
579
- 512
580
- )
581
- ]),
582
- "content-locked-overlay": vue.withCtx(() => [
583
- vue.renderSlot(_ctx.$slots, "content-locked-overlay")
584
- ]),
585
- _: 3
586
- }, 8, ["currency", "exchange", "loading", "content-locked"])
587
- ],
588
- 2
589
- );
590
- };
12
+ const panelSabrIvCurveProps = runtime.buildProps({
13
+ defaultCurrency: {
14
+ type: String,
15
+ required: false
16
+ },
17
+ defaultExchange: {
18
+ type: String,
19
+ required: false
20
+ },
21
+ currency: {
22
+ type: String,
23
+ required: false
24
+ },
25
+ exchange: {
26
+ type: String,
27
+ required: false
28
+ },
29
+ previewMode: {
30
+ type: Boolean,
31
+ default: false
591
32
  }
592
33
  });
593
- var PanelSabrIvCurve = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/Users/luobowen/Desktop/greeks/greeks-live-ui/packages/components/panel-sabr-iv-curve/src/panel-sabr-iv-curve.vue"]]);
594
34
 
595
- exports["default"] = PanelSabrIvCurve;
35
+ exports.panelSabrIvCurveEmits = panelSabrIvCurveEmits;
36
+ exports.panelSabrIvCurveProps = panelSabrIvCurveProps;
596
37
  //# sourceMappingURL=panel-sabr-iv-curve2.js.map