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