greeks-live-ui 0.0.20 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/index.css +1 -1
  2. package/es/components/chart/index.d.ts +28 -28
  3. package/es/components/chart/src/chart.vue.d.ts +28 -28
  4. package/es/components/chart-panel/index.d.ts +10 -10
  5. package/es/components/chart-panel/src/chart-panel.vue.d.ts +10 -10
  6. package/es/components/demo/index.d.ts +28 -28
  7. package/es/components/demo/src/demo.vue.d.ts +28 -28
  8. package/es/hooks/use-floating/index.d.ts +8 -8
  9. package/es/index.mjs +19 -19
  10. package/es/packages/components/button1/index.mjs +2 -2
  11. package/es/packages/components/button1/src/button1.mjs +5 -72
  12. package/es/packages/components/button1/src/button1.mjs.map +1 -1
  13. package/es/packages/components/button1/src/button12.mjs +72 -5
  14. package/es/packages/components/button1/src/button12.mjs.map +1 -1
  15. package/es/packages/components/chart/index.mjs +2 -2
  16. package/es/packages/components/chart/src/chart.mjs +12 -85
  17. package/es/packages/components/chart/src/chart.mjs.map +1 -1
  18. package/es/packages/components/chart/src/chart2.mjs +85 -12
  19. package/es/packages/components/chart/src/chart2.mjs.map +1 -1
  20. package/es/packages/components/checkbox/index.mjs +2 -2
  21. package/es/packages/components/checkbox/src/checkbox.mjs +5 -31
  22. package/es/packages/components/checkbox/src/checkbox.mjs.map +1 -1
  23. package/es/packages/components/checkbox/src/checkbox2.mjs +31 -5
  24. package/es/packages/components/checkbox/src/checkbox2.mjs.map +1 -1
  25. package/es/packages/components/icon/index.mjs +2 -2
  26. package/es/packages/components/icon/src/icon.mjs +15 -48
  27. package/es/packages/components/icon/src/icon.mjs.map +1 -1
  28. package/es/packages/components/icon/src/icon2.mjs +48 -15
  29. package/es/packages/components/icon/src/icon2.mjs.map +1 -1
  30. package/es/packages/components/index.mjs +19 -19
  31. package/es/packages/components/menu/index.mjs +2 -2
  32. package/es/packages/components/menu/src/menu.mjs +5 -31
  33. package/es/packages/components/menu/src/menu.mjs.map +1 -1
  34. package/es/packages/components/menu/src/menu2.mjs +31 -5
  35. package/es/packages/components/menu/src/menu2.mjs.map +1 -1
  36. package/es/packages/components/menu-item/index.mjs +2 -2
  37. package/es/packages/components/menu-item/src/menu-item.mjs +5 -31
  38. package/es/packages/components/menu-item/src/menu-item.mjs.map +1 -1
  39. package/es/packages/components/menu-item/src/menu-item2.mjs +31 -5
  40. package/es/packages/components/menu-item/src/menu-item2.mjs.map +1 -1
  41. package/es/packages/components/page-turner/index.mjs +2 -2
  42. package/es/packages/components/page-turner/src/page-turner.mjs +12 -67
  43. package/es/packages/components/page-turner/src/page-turner.mjs.map +1 -1
  44. package/es/packages/components/page-turner/src/page-turner2.mjs +67 -12
  45. package/es/packages/components/page-turner/src/page-turner2.mjs.map +1 -1
  46. package/es/packages/components/panel/index.mjs +2 -2
  47. package/es/packages/components/panel/src/panel.mjs +82 -5
  48. package/es/packages/components/panel/src/panel.mjs.map +1 -1
  49. package/es/packages/components/panel/src/panel2.mjs +5 -82
  50. package/es/packages/components/panel/src/panel2.mjs.map +1 -1
  51. package/es/packages/components/panel-atm-iv/index.mjs +2 -2
  52. package/es/packages/components/panel-atm-iv/src/panel-atm-iv.mjs +21 -886
  53. package/es/packages/components/panel-atm-iv/src/panel-atm-iv.mjs.map +1 -1
  54. package/es/packages/components/panel-atm-iv/src/panel-atm-iv2.mjs +886 -21
  55. package/es/packages/components/panel-atm-iv/src/panel-atm-iv2.mjs.map +1 -1
  56. package/es/packages/components/panel-max-pain-price/index.mjs +2 -2
  57. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price.mjs +288 -22
  58. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price.mjs.map +1 -1
  59. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price2.mjs +22 -288
  60. package/es/packages/components/panel-max-pain-price/src/panel-max-pain-price2.mjs.map +1 -1
  61. package/es/packages/components/panel-option-open-interest/index.mjs +2 -2
  62. package/es/packages/components/panel-option-open-interest/src/panel-option-open-interest.mjs +378 -22
  63. package/es/packages/components/panel-option-open-interest/src/panel-option-open-interest.mjs.map +1 -1
  64. package/es/packages/components/panel-option-open-interest/src/panel-option-open-interest2.mjs +22 -378
  65. package/es/packages/components/panel-option-open-interest/src/panel-option-open-interest2.mjs.map +1 -1
  66. package/es/packages/components/panel-option-trade-volume/index.mjs +2 -2
  67. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.mjs +504 -22
  68. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.mjs.map +1 -1
  69. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.mjs +22 -504
  70. package/es/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.mjs.map +1 -1
  71. package/es/packages/components/panel-rv/index.mjs +2 -2
  72. package/es/packages/components/panel-rv/src/panel-rv.mjs +22 -741
  73. package/es/packages/components/panel-rv/src/panel-rv.mjs.map +1 -1
  74. package/es/packages/components/panel-rv/src/panel-rv2.mjs +741 -22
  75. package/es/packages/components/panel-rv/src/panel-rv2.mjs.map +1 -1
  76. package/es/packages/components/panel-rv-calc/index.mjs +2 -2
  77. package/es/packages/components/panel-rv-calc/src/panel-rv-calc.mjs +8 -507
  78. package/es/packages/components/panel-rv-calc/src/panel-rv-calc.mjs.map +1 -1
  79. package/es/packages/components/panel-rv-calc/src/panel-rv-calc2.mjs +507 -8
  80. package/es/packages/components/panel-rv-calc/src/panel-rv-calc2.mjs.map +1 -1
  81. package/es/packages/components/panel-skew/index.mjs +2 -2
  82. package/es/packages/components/panel-skew/src/panel-skew.mjs +21 -672
  83. package/es/packages/components/panel-skew/src/panel-skew.mjs.map +1 -1
  84. package/es/packages/components/panel-skew/src/panel-skew2.mjs +672 -21
  85. package/es/packages/components/panel-skew/src/panel-skew2.mjs.map +1 -1
  86. package/es/packages/components/panel-vrp/index.mjs +2 -2
  87. package/es/packages/components/panel-vrp/src/panel-vrp.mjs +22 -413
  88. package/es/packages/components/panel-vrp/src/panel-vrp.mjs.map +1 -1
  89. package/es/packages/components/panel-vrp/src/panel-vrp2.mjs +413 -22
  90. package/es/packages/components/panel-vrp/src/panel-vrp2.mjs.map +1 -1
  91. package/es/packages/components/select/index.mjs +2 -2
  92. package/es/packages/components/select/src/option.mjs +1 -1
  93. package/es/packages/components/select/src/select.mjs +10 -41
  94. package/es/packages/components/select/src/select.mjs.map +1 -1
  95. package/es/packages/components/select/src/select2.mjs +41 -10
  96. package/es/packages/components/select/src/select2.mjs.map +1 -1
  97. package/es/packages/components/table/index.mjs +2 -2
  98. package/es/packages/components/table/src/table.mjs +5 -37
  99. package/es/packages/components/table/src/table.mjs.map +1 -1
  100. package/es/packages/components/table/src/table2.mjs +37 -5
  101. package/es/packages/components/table/src/table2.mjs.map +1 -1
  102. package/es/packages/components/tooltip/index.mjs +2 -2
  103. package/es/packages/components/tooltip/src/tooltip.mjs +7 -33
  104. package/es/packages/components/tooltip/src/tooltip.mjs.map +1 -1
  105. package/es/packages/components/tooltip/src/tooltip2.mjs +33 -7
  106. package/es/packages/components/tooltip/src/tooltip2.mjs.map +1 -1
  107. package/es/utils/vue/vnode.d.ts +6 -6
  108. package/lib/components/chart/index.d.ts +28 -28
  109. package/lib/components/chart/src/chart.vue.d.ts +28 -28
  110. package/lib/components/chart-panel/index.d.ts +10 -10
  111. package/lib/components/chart-panel/src/chart-panel.vue.d.ts +10 -10
  112. package/lib/components/demo/index.d.ts +28 -28
  113. package/lib/components/demo/src/demo.vue.d.ts +28 -28
  114. package/lib/hooks/use-floating/index.d.ts +8 -8
  115. package/lib/index.js +15 -15
  116. package/lib/packages/components/button1/index.js +2 -2
  117. package/lib/packages/components/button1/src/button1.js +6 -72
  118. package/lib/packages/components/button1/src/button1.js.map +1 -1
  119. package/lib/packages/components/button1/src/button12.js +72 -6
  120. package/lib/packages/components/button1/src/button12.js.map +1 -1
  121. package/lib/packages/components/chart-panel/index.js +2 -2
  122. package/lib/packages/components/chart-panel/src/chart-panel.js +273 -39
  123. package/lib/packages/components/chart-panel/src/chart-panel.js.map +1 -1
  124. package/lib/packages/components/chart-panel/src/chart-panel2.js +39 -273
  125. package/lib/packages/components/chart-panel/src/chart-panel2.js.map +1 -1
  126. package/lib/packages/components/checkbox-group/index.js +2 -2
  127. package/lib/packages/components/checkbox-group/src/checkbox-group.js +31 -6
  128. package/lib/packages/components/checkbox-group/src/checkbox-group.js.map +1 -1
  129. package/lib/packages/components/checkbox-group/src/checkbox-group2.js +6 -31
  130. package/lib/packages/components/checkbox-group/src/checkbox-group2.js.map +1 -1
  131. package/lib/packages/components/dropdown/index.js +2 -2
  132. package/lib/packages/components/dropdown/src/dropdown.js +34 -6
  133. package/lib/packages/components/dropdown/src/dropdown.js.map +1 -1
  134. package/lib/packages/components/dropdown/src/dropdown2.js +6 -34
  135. package/lib/packages/components/dropdown/src/dropdown2.js.map +1 -1
  136. package/lib/packages/components/dropdown-button/index.js +2 -2
  137. package/lib/packages/components/dropdown-button/src/dropdown-button.js +39 -6
  138. package/lib/packages/components/dropdown-button/src/dropdown-button.js.map +1 -1
  139. package/lib/packages/components/dropdown-button/src/dropdown-button2.js +6 -39
  140. package/lib/packages/components/dropdown-button/src/dropdown-button2.js.map +1 -1
  141. package/lib/packages/components/index.js +15 -15
  142. package/lib/packages/components/menu/index.js +2 -2
  143. package/lib/packages/components/menu/src/menu.js +6 -31
  144. package/lib/packages/components/menu/src/menu.js.map +1 -1
  145. package/lib/packages/components/menu/src/menu2.js +31 -6
  146. package/lib/packages/components/menu/src/menu2.js.map +1 -1
  147. package/lib/packages/components/panel/index.js +2 -2
  148. package/lib/packages/components/panel/src/panel.js +82 -6
  149. package/lib/packages/components/panel/src/panel.js.map +1 -1
  150. package/lib/packages/components/panel/src/panel2.js +6 -82
  151. package/lib/packages/components/panel/src/panel2.js.map +1 -1
  152. package/lib/packages/components/panel-iv-skew/index.js +2 -2
  153. package/lib/packages/components/panel-iv-skew/src/panel-iv-skew.js +23 -398
  154. package/lib/packages/components/panel-iv-skew/src/panel-iv-skew.js.map +1 -1
  155. package/lib/packages/components/panel-iv-skew/src/panel-iv-skew2.js +398 -23
  156. package/lib/packages/components/panel-iv-skew/src/panel-iv-skew2.js.map +1 -1
  157. package/lib/packages/components/panel-option-open-interest/index.js +2 -2
  158. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest.js +378 -23
  159. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest.js.map +1 -1
  160. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest2.js +23 -378
  161. package/lib/packages/components/panel-option-open-interest/src/panel-option-open-interest2.js.map +1 -1
  162. package/lib/packages/components/panel-option-trade-volume/index.js +2 -2
  163. package/lib/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.js +504 -23
  164. package/lib/packages/components/panel-option-trade-volume/src/panel-option-trade-volume.js.map +1 -1
  165. package/lib/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.js +23 -504
  166. package/lib/packages/components/panel-option-trade-volume/src/panel-option-trade-volume2.js.map +1 -1
  167. package/lib/packages/components/panel-skew/index.js +2 -2
  168. package/lib/packages/components/panel-skew/src/panel-skew.js +672 -22
  169. package/lib/packages/components/panel-skew/src/panel-skew.js.map +1 -1
  170. package/lib/packages/components/panel-skew/src/panel-skew2.js +22 -672
  171. package/lib/packages/components/panel-skew/src/panel-skew2.js.map +1 -1
  172. package/lib/packages/components/panel-volatility-term-structure/index.js +2 -2
  173. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure.js +23 -365
  174. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure.js.map +1 -1
  175. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure2.js +365 -23
  176. package/lib/packages/components/panel-volatility-term-structure/src/panel-volatility-term-structure2.js.map +1 -1
  177. package/lib/packages/components/radio/index.js +2 -2
  178. package/lib/packages/components/radio/src/radio-button.js +1 -1
  179. package/lib/packages/components/radio/src/radio-group.js +1 -1
  180. package/lib/packages/components/radio/src/radio.js +31 -6
  181. package/lib/packages/components/radio/src/radio.js.map +1 -1
  182. package/lib/packages/components/radio/src/radio2.js +6 -31
  183. package/lib/packages/components/radio/src/radio2.js.map +1 -1
  184. package/lib/packages/components/select/index.js +2 -2
  185. package/lib/packages/components/select/src/option.js +1 -1
  186. package/lib/packages/components/select/src/select.js +15 -41
  187. package/lib/packages/components/select/src/select.js.map +1 -1
  188. package/lib/packages/components/select/src/select2.js +41 -15
  189. package/lib/packages/components/select/src/select2.js.map +1 -1
  190. package/lib/packages/components/tooltip/index.js +2 -2
  191. package/lib/packages/components/tooltip/src/tooltip.js +33 -8
  192. package/lib/packages/components/tooltip/src/tooltip.js.map +1 -1
  193. package/lib/packages/components/tooltip/src/tooltip2.js +8 -33
  194. package/lib/packages/components/tooltip/src/tooltip2.js.map +1 -1
  195. package/lib/utils/vue/vnode.d.ts +6 -6
  196. package/package.json +1 -1
  197. package/theme-chalk/base.css +1 -1
  198. package/theme-chalk/g-antd.css +1 -1
  199. package/theme-chalk/index.css +1 -1
  200. package/theme-chalk/src/antd.scss +1 -2
  201. package/web-types.json +1 -1
@@ -1,747 +1,28 @@
1
- import { createTextVNode, defineComponent, computed, reactive, watch, onMounted, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createVNode, isRef, createSlots, withCtx, createElementVNode, createBlock, createCommentVNode, toDisplayString, Fragment, renderList, normalizeStyle } from 'vue';
2
- import '../../../hooks/index.mjs';
3
- import { panelRvProps, panelRvEmits } from './panel-rv2.mjs';
4
- import { showDateRange, formatDateForNumber, numberFormat, timestampFormat, getTooltipDate } from '../../../utils/chartHelp.mjs';
5
- import { getRv } from '../../../utils/dataLab.mjs';
6
- import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
7
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
8
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
9
- import { useDeviceType } from '../../../hooks/use-device-type/index.mjs';
10
- import { useTheme } from '../../../hooks/use-theme/index.mjs';
1
+ import '../../../utils/index.mjs';
2
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
11
3
 
12
- const _hoisted_1 = /* @__PURE__ */ createTextVNode(" RV ");
13
- const _hoisted_2 = ["innerHTML"];
14
- const _hoisted_3 = { class: "period-range h5-hide" };
15
- const _hoisted_4 = {
16
- key: 2,
17
- class: "echart",
18
- ref: "echart"
4
+ const panelRvEmits = {
5
+ "update:currency": (currency) => true,
6
+ "update:exchange": (exchange) => true
19
7
  };
20
- const _hoisted_5 = { class: "h5-tip-title" };
21
- const _hoisted_6 = { class: "h5-legend" };
22
- const __default__ = {
23
- name: "GPanelRv"
24
- };
25
- const _sfc_main = /* @__PURE__ */ defineComponent({
26
- ...__default__,
27
- props: panelRvProps,
28
- emits: panelRvEmits,
29
- setup(__props, { emit }) {
30
- const props = __props;
31
- const ns = useNamespace("panel-rv");
32
- const { t } = useLocale();
33
- const { isMobile, isPC } = useDeviceType();
34
- const { isDark } = useTheme();
35
- let legendList = [
36
- {
37
- value: "1D",
38
- label: "1 D",
39
- days: 1,
40
- color: "#7630F7"
41
- },
42
- {
43
- value: "1W",
44
- label: "1 W",
45
- days: 7,
46
- color: "#23C343"
47
- },
48
- {
49
- value: "1M",
50
- label: "1 M",
51
- days: 30,
52
- color: "#FFD600"
53
- },
54
- {
55
- value: "2M",
56
- label: "2 M",
57
- days: 60,
58
- color: "#FF8D1F"
59
- },
60
- {
61
- value: "3M",
62
- label: "3 M",
63
- days: 90,
64
- color: "#FF3B30"
65
- },
66
- {
67
- value: "6M",
68
- label: "6 M",
69
- days: 180,
70
- color: "#007AFF"
71
- },
72
- {
73
- value: "1Y",
74
- label: "1 Y",
75
- days: 365,
76
- color: "#00C7BE"
77
- }
78
- ];
79
- const periodList = computed(() => {
80
- let list = [
81
- {
82
- value: "ALL",
83
- label: "All",
84
- days: 0,
85
- color: "#00B42A"
86
- },
87
- ...legendList
88
- ];
89
- if (isMobile.value) {
90
- list = list.slice(1);
91
- }
92
- return list;
93
- });
94
- const initShowType = "table";
95
- const state = reactive({
96
- loadingFlag: false,
97
- showType: initShowType,
98
- isToolTipShow: false,
99
- toolTipTitle: "",
100
- exchange: props.exchange || props.defaultExchange || "Deribit",
101
- currency: props.currency || props.defaultCurrency || "BTC",
102
- period: "3M",
103
- periodDateRange: "",
104
- chartData: [],
105
- tableData: [],
106
- legendMap: {}
107
- });
108
- const currency = computed({
109
- get: () => props.currency || state.currency || "BTC",
110
- set: (newVal) => {
111
- props.currency ? emit("update:currency", newVal) : state.currency = newVal;
112
- }
113
- });
114
- const exchange = computed({
115
- get: () => props.exchange || state.exchange || "Deribit",
116
- set: (newVal) => {
117
- props.exchange ? emit("update:exchange", newVal) : state.exchange = newVal;
118
- }
119
- });
120
- watch(currency, () => {
121
- fetchData();
122
- });
123
- watch(exchange, () => {
124
- fetchData();
125
- });
126
- const fetchData = () => {
127
- state.loadingFlag = true;
128
- getRv({
129
- currency: currency.value,
130
- gap: state.showType === "table" ? "3M" : state.period
131
- }).then((res) => {
132
- if (res && res.code === 200) {
133
- state.chartData = res.data || [];
134
- getTableData();
135
- getLegendData();
136
- }
137
- }).finally(() => {
138
- state.loadingFlag = false;
139
- });
140
- };
141
- onMounted(() => {
142
- handleChangePeriod(state.period);
143
- });
144
- const handleChangePeriod = (value) => {
145
- const selectedPeriod = periodList.value.find((v) => v.value === value);
146
- if (!selectedPeriod)
147
- return;
148
- state.periodDateRange = showDateRange(selectedPeriod.days);
149
- fetchData();
150
- };
151
- const handleToggleTableChart = () => {
152
- state.showType = state.showType === initShowType ? "chart" : "table";
153
- fetchData();
154
- };
155
- const handleToggleCalc = () => {
156
- state.showType = state.showType === "calc" ? initShowType : "calc";
157
- };
158
- const handleTipShow = (isShow) => {
159
- state.isToolTipShow = isShow;
160
- !isShow && (state.toolTipTitle = "");
161
- };
162
- const getTableData = () => {
163
- let data = state.chartData || [];
164
- let day1 = 864e5;
165
- let data0 = data[data.length - 1];
166
- let dataDate1 = formatDateForNumber(data0.timestamp - day1);
167
- let dataDate2 = formatDateForNumber(data0.timestamp - day1 * 2);
168
- let dataDate7 = formatDateForNumber(data0.timestamp - day1 * 7);
169
- let dataDate15 = formatDateForNumber(data0.timestamp - day1 * 14);
170
- let dataDate30 = formatDateForNumber(data0.timestamp - day1 * 30);
171
- let map = {};
172
- data.forEach((item) => {
173
- let date = formatDateForNumber(item.timestamp);
174
- if (date === dataDate1) {
175
- map[date] = item;
176
- } else if (date === dataDate2) {
177
- map[date] = item;
178
- } else if (date === dataDate7) {
179
- map[date] = item;
180
- } else if (date === dataDate15) {
181
- map[date] = item;
182
- } else if (date === dataDate30) {
183
- map[date] = item;
184
- }
185
- });
186
- let list = Object.values(map).sort(
187
- (prev, next) => next.timestamp - prev.timestamp
188
- );
189
- const data0Data = data0.data;
190
- let dataMap1 = { expire: "1 day", atm: data0Data[0].hv };
191
- let dataMap2 = { expire: "1 week", atm: data0Data[1].hv };
192
- let dataMap3 = { expire: "1 month", atm: data0Data[2].hv };
193
- let dataMap4 = { expire: "2 month", atm: data0Data[3].hv };
194
- let dataMap5 = { expire: "3 month", atm: data0Data[4].hv };
195
- let dataMap6 = { expire: "6 month", atm: data0Data[5].hv };
196
- let dataMap7 = { expire: "1 year", atm: data0Data[6].hv };
197
- for (let i = 0; i < list.length; i++) {
198
- let item = list[i];
199
- let key;
200
- switch (i) {
201
- case 0:
202
- key = "chg1";
203
- break;
204
- case 1:
205
- key = "chg2";
206
- break;
207
- case 2:
208
- key = "chg7";
209
- break;
210
- case 3:
211
- key = "chg14";
212
- break;
213
- case 4:
214
- key = "chg30";
215
- break;
216
- default:
217
- continue;
218
- }
219
- item.data.forEach((item2) => {
220
- if (item2.day === 1) {
221
- dataMap1[key] = data0Data[0].hv - item2.hv;
222
- } else if (item2.day === 7) {
223
- dataMap2[key] = data0Data[1].hv - item2.hv;
224
- } else if (item2.day === 30) {
225
- dataMap3[key] = data0Data[2].hv - item2.hv;
226
- } else if (item2.day === 60) {
227
- dataMap4[key] = data0Data[3].hv - item2.hv;
228
- } else if (item2.day === 90) {
229
- dataMap5[key] = data0Data[4].hv - item2.hv;
230
- } else if (item2.day === 180) {
231
- dataMap6[key] = data0Data[5].hv - item2.hv;
232
- } else if (item2.day === 365) {
233
- dataMap7[key] = data0Data[6].hv - item2.hv;
234
- }
235
- });
236
- }
237
- state.tableData = [
238
- dataMap1,
239
- dataMap2,
240
- dataMap3,
241
- dataMap4,
242
- dataMap5,
243
- dataMap6,
244
- dataMap7
245
- ];
246
- };
247
- const getLegendValue = (days) => {
248
- var _a;
249
- const r = Number((_a = days[days.length - 1]) == null ? void 0 : _a.toFixed(2));
250
- return r >= 0 ? `+${r}%` : `${r}%`;
251
- };
252
- const getLegendData = () => {
253
- const { days1, days7, days30, days60, days90, days180, days365 } = getEchartData();
254
- state.legendMap = {
255
- "1D": getLegendValue(days1),
256
- "1W": getLegendValue(days7),
257
- "1M": getLegendValue(days30),
258
- "2M": getLegendValue(days60),
259
- "3M": getLegendValue(days90),
260
- "6M": getLegendValue(days180),
261
- "1Y": getLegendValue(days365)
262
- };
263
- };
264
- const getEchartData = () => {
265
- let data = [...state.chartData];
266
- let date = [];
267
- let days1 = [];
268
- let days7 = [];
269
- let days30 = [];
270
- let days60 = [];
271
- let days90 = [];
272
- let days180 = [];
273
- let days365 = [];
274
- data.forEach((item) => {
275
- let set = /* @__PURE__ */ new Set([
276
- "days1",
277
- "days7",
278
- "days30",
279
- "days60",
280
- "days90",
281
- "days180",
282
- "days365"
283
- ]);
284
- item.data.forEach((item2) => {
285
- if (item2.day === 1) {
286
- set.delete("days1");
287
- days1.push(numberFormat(item2.hv, 2));
288
- } else if (item2.day === 7) {
289
- set.delete("days7");
290
- days7.push(numberFormat(item2.hv, 2));
291
- } else if (item2.day === 30) {
292
- set.delete("days30");
293
- days30.push(numberFormat(item2.hv, 2));
294
- } else if (item2.day === 60) {
295
- set.delete("days60");
296
- days60.push(numberFormat(item2.hv, 2));
297
- } else if (item2.day === 90) {
298
- set.delete("days90");
299
- days90.push(numberFormat(item2.hv, 2));
300
- } else if (item2.day === 180) {
301
- set.delete("days180");
302
- days180.push(numberFormat(item2.hv, 2));
303
- } else if (item2.day === 365) {
304
- set.delete("days365");
305
- days365.push(numberFormat(item2.hv, 2));
306
- }
307
- });
308
- let arr = [...set];
309
- arr.forEach((item3) => {
310
- if (item3 === "days1") {
311
- days1.push("");
312
- } else if (item3 === "days7") {
313
- days7.push("");
314
- } else if (item3 === "days30") {
315
- days30.push("");
316
- } else if (item3 === "days60") {
317
- days60.push("");
318
- } else if (item3 === "days90") {
319
- days90.push("");
320
- } else if (item3 === "days180") {
321
- days180.push("");
322
- } else if (item3 === "days365") {
323
- days365.push("");
324
- }
325
- });
326
- date.push(timestampFormat(item.timestamp, "{y}-{m}-{d}") || "");
327
- });
328
- return {
329
- date,
330
- days1,
331
- days7,
332
- days30,
333
- days60,
334
- days90,
335
- days180,
336
- days365
337
- };
338
- };
339
- const getEchartOption = (params) => {
340
- const { date, days1, days7, days30, days60, days90, days180, days365 } = params;
341
- const option = {
342
- color: legendList.map((v) => v.color),
343
- tooltip: {
344
- trigger: "axis",
345
- axisPointer: {
346
- type: "cross",
347
- label: {
348
- show: isMobile.value ? true : false,
349
- backgroundColor: "#DEE2E6",
350
- color: "#343A40",
351
- padding: [4, 6, 4, 6],
352
- margin: 9
353
- },
354
- crossStyle: {
355
- color: "#8B959F"
356
- },
357
- lineStyle: {
358
- color: "#8B959F"
359
- }
360
- },
361
- backgroundColor: isDark.value ? "#E9ECEF" : "#292F3D",
362
- padding: isMobile.value ? 0 : [6, 8, 5, 6],
363
- textStyle: {
364
- color: isDark.value ? "#000000" : "#FFFFFF",
365
- fontSize: 12,
366
- lineHeight: 16,
367
- fontWeight: 400
368
- },
369
- formatter: (params2) => {
370
- let content = "";
371
- state.toolTipTitle = getTooltipDate(params2[0].axisValueLabel, "en-US");
372
- content += `<div class="chart-tooltip-box"><div style="margin-bottom:4px;">${state.toolTipTitle}</div> `;
373
- params2.forEach(
374
- (param) => {
375
- content += `
376
- <div class="chart-tooltip">
377
- <div>
378
- <span class="chart-tooltip-line" style="background-color:${param.color};"></span>
379
- <span>${param.seriesName}</span>
380
- </div>
381
- <span>${param.value.toFixed(2)}</span>
382
- </div>
383
- `;
384
- }
385
- );
386
- return content + "</div>";
387
- }
388
- },
389
- axisPointer: {
390
- type: "line",
391
- label: {
392
- show: true,
393
- backgroundColor: "#DEE2E6",
394
- color: "#343A40",
395
- fontSize: 10,
396
- padding: [4, 6, 4, 8]
397
- }
398
- },
399
- legend: {
400
- show: !isMobile.value,
401
- left: 0,
402
- icon: "rect",
403
- itemWidth: 14,
404
- itemHeight: 2,
405
- itemGap: 20,
406
- textStyle: {
407
- color: "#596169",
408
- fontSize: 12
409
- },
410
- lineStyle: {
411
- inactiveColor: isDark.value ? "#2B2F32" : "#DEE2E6"
412
- },
413
- inactiveColor: isDark.value ? "#495057" : "#BDC4CB",
414
- formatter: function(name) {
415
- try {
416
- switch (name) {
417
- case "1 D":
418
- return name + ` (${days1[days1.length - 1].toFixed(2)}%)`;
419
- case "1 W":
420
- return name + ` (${days7[days7.length - 1].toFixed(2)}%)`;
421
- case "1 M":
422
- return name + ` (${days30[days30.length - 1].toFixed(2)}%)`;
423
- case "2 M":
424
- return name + ` (${days60[days60.length - 1].toFixed(2)}%)`;
425
- case "3 M":
426
- return name + ` (${days90[days90.length - 1].toFixed(2)}%)`;
427
- case "6 M":
428
- return name + ` (${days180[days180.length - 1].toFixed(2)}%)`;
429
- case "1 Y":
430
- return name + ` (${days365[days365.length - 1].toFixed(2)}%)`;
431
- }
432
- } catch (e) {
433
- return name;
434
- }
435
- },
436
- selected: {
437
- "1 D": false,
438
- "1 W": false,
439
- "1 M": true,
440
- "2 M": false,
441
- "3 M": true,
442
- "6 M": true,
443
- "1 Y": false
444
- }
445
- },
446
- xAxis: {
447
- type: "category",
448
- data: date,
449
- axisTick: {
450
- show: false
451
- },
452
- axisLabel: {
453
- color: isDark.value ? "#CED4DA" : "#343A40",
454
- fontWeight: 400,
455
- fontSize: 10
456
- },
457
- axisLine: {
458
- show: false,
459
- lineStyle: {
460
- color: isDark.value ? "#CED4DA" : "#343A40"
461
- }
462
- },
463
- splitLine: {
464
- show: !isMobile.value && !isDark.value,
465
- lineStyle: {
466
- color: "#F1F1F1",
467
- width: 1,
468
- type: "solid"
469
- }
470
- }
471
- },
472
- yAxis: {
473
- type: "value",
474
- scale: true,
475
- axisLabel: {
476
- show: true,
477
- color: isDark.value ? "#CED4DA" : "#343A40",
478
- fontWeight: 400,
479
- fontSize: 10
480
- },
481
- name: "IV(%)",
482
- nameLocation: "end",
483
- nameGap: isMobile.value ? -30 : 20,
484
- nameRotate: isMobile.value ? 90 : 0,
485
- nameTextStyle: {
486
- color: isDark.value ? "#8B959F" : "#8B959F",
487
- fontWeight: 400,
488
- fontSize: 10
489
- },
490
- axisLine: {
491
- lineStyle: {
492
- color: isDark.value ? "#CED4DA" : "#343A40"
493
- }
494
- },
495
- splitLine: {
496
- lineStyle: {
497
- color: isDark.value ? "#2B2F32" : "#F1F1F1",
498
- width: 1,
499
- type: "solid"
500
- }
501
- }
502
- },
503
- grid: {
504
- top: isPC.value ? 60 : 20,
505
- left: "left",
506
- right: 27,
507
- bottom: 0,
508
- containLabel: true
509
- },
510
- series: [
511
- {
512
- name: "1 D",
513
- key: 1,
514
- type: "line",
515
- symbol: "none",
516
- data: days1
517
- },
518
- {
519
- name: "1 W",
520
- key: 7,
521
- type: "line",
522
- symbol: "none",
523
- data: days7
524
- },
525
- {
526
- name: "1 M",
527
- key: 30,
528
- type: "line",
529
- symbol: "none",
530
- data: days30
531
- },
532
- {
533
- name: "2 M",
534
- key: 60,
535
- type: "line",
536
- symbol: "none",
537
- data: days60
538
- },
539
- {
540
- name: "3 M",
541
- key: 90,
542
- type: "line",
543
- symbol: "none",
544
- data: days90
545
- },
546
- {
547
- name: "6 M",
548
- key: 180,
549
- type: "line",
550
- symbol: "none",
551
- data: days180
552
- },
553
- {
554
- name: "1 Y",
555
- key: 365,
556
- type: "line",
557
- symbol: "none",
558
- data: days365
559
- }
560
- ]
561
- };
562
- if (isMobile.value) {
563
- option.series = option.series.map((v) => ({ ...v, symbol: "circle" }));
564
- }
565
- return option;
566
- };
567
- const setOption = () => {
568
- return getEchartOption(getEchartData());
569
- };
570
- return (_ctx, _cache) => {
571
- const _component_g_icon = resolveComponent("g-icon");
572
- const _component_g_tooltip = resolveComponent("g-tooltip");
573
- const _component_g_select_option = resolveComponent("g-select-option");
574
- const _component_g_select = resolveComponent("g-select");
575
- const _component_g_chart_table = resolveComponent("g-chart-table");
576
- const _component_g_panel_rv_calc = resolveComponent("g-panel-rv-calc");
577
- const _component_g_chart = resolveComponent("g-chart");
578
- const _component_g_chart_panel = resolveComponent("g-chart-panel");
579
- return openBlock(), createElementBlock(
580
- "div",
581
- {
582
- class: normalizeClass([unref(ns).b()])
583
- },
584
- [
585
- createVNode(_component_g_chart_panel, {
586
- currency: unref(currency),
587
- "onUpdate:currency": _cache[3] || (_cache[3] = ($event) => isRef(currency) ? currency.value = $event : null),
588
- exchange: unref(exchange),
589
- "onUpdate:exchange": _cache[4] || (_cache[4] = ($event) => isRef(exchange) ? exchange.value = $event : null),
590
- loading: state.loadingFlag,
591
- operations: ["calc", "toggle"],
592
- showType: state.showType,
593
- onToggle: handleToggleTableChart,
594
- onCalc: handleToggleCalc,
595
- onRefresh: fetchData
596
- }, createSlots({
597
- title: withCtx(() => [
598
- createVNode(_component_g_tooltip, { placement: "bottom" }, {
599
- title: withCtx(() => [
600
- createElementVNode("div", {
601
- innerHTML: unref(t)("message.realizedVolatilityTips")
602
- }, null, 8, _hoisted_2)
603
- ]),
604
- default: withCtx(() => [
605
- _hoisted_1,
606
- createVNode(_component_g_icon, { type: "info_question_circle" })
607
- ]),
608
- _: 1
609
- })
610
- ]),
611
- body: withCtx(() => [
612
- state.showType === "table" ? (openBlock(), createBlock(_component_g_chart_table, {
613
- key: 0,
614
- tableData: state.tableData,
615
- name: "RV"
616
- }, null, 8, ["tableData"])) : createCommentVNode("v-if", true),
617
- state.showType === "calc" ? (openBlock(), createBlock(_component_g_panel_rv_calc, {
618
- key: 1,
619
- currency: unref(currency)
620
- }, null, 8, ["currency"])) : createCommentVNode("v-if", true),
621
- state.showType === "chart" ? (openBlock(), createElementBlock(
622
- "div",
623
- _hoisted_4,
624
- [
625
- createElementVNode(
626
- "div",
627
- {
628
- class: normalizeClass({
629
- "h5-legend-box-hover": state.isToolTipShow,
630
- "h5-legend-box": true,
631
- "pc-hide": true
632
- })
633
- },
634
- [
635
- createElementVNode(
636
- "h6",
637
- _hoisted_5,
638
- toDisplayString(state.toolTipTitle),
639
- 1
640
- ),
641
- createElementVNode("div", _hoisted_6, [
642
- (openBlock(true), createElementBlock(
643
- Fragment,
644
- null,
645
- renderList(unref(legendList), (legendItem) => {
646
- var _a, _b, _c, _d;
647
- return openBlock(), createElementBlock("div", {
648
- key: legendItem.label
649
- }, [
650
- createElementVNode(
651
- "span",
652
- {
653
- style: normalizeStyle({ backgroundColor: legendItem.color }),
654
- class: "legend-line"
655
- },
656
- null,
657
- 4
658
- ),
659
- createElementVNode("div", null, [
660
- createElementVNode(
661
- "div",
662
- null,
663
- toDisplayString(legendItem.label),
664
- 1
665
- ),
666
- createElementVNode(
667
- "p",
668
- {
669
- class: normalizeClass({
670
- "positive-text": (_b = (_a = state.legendMap) == null ? void 0 : _a[legendItem.value]) == null ? void 0 : _b.includes("+"),
671
- "negative-text": (_d = (_c = state.legendMap) == null ? void 0 : _c[legendItem.value]) == null ? void 0 : _d.includes("-")
672
- })
673
- },
674
- toDisplayString(state.legendMap[legendItem.value]),
675
- 3
676
- )
677
- ])
678
- ]);
679
- }),
680
- 128
681
- ))
682
- ])
683
- ],
684
- 2
685
- ),
686
- createVNode(_component_g_chart, {
687
- class: "skew-chart",
688
- option: setOption(),
689
- onShowTip: _cache[1] || (_cache[1] = ($event) => handleTipShow(true)),
690
- onHideTip: _cache[2] || (_cache[2] = ($event) => handleTipShow(false))
691
- }, null, 8, ["option"])
692
- ],
693
- 512
694
- )) : createCommentVNode("v-if", true)
695
- ]),
696
- _: 2
697
- }, [
698
- state.showType === "chart" ? {
699
- name: "tool",
700
- fn: withCtx(() => [
701
- createVNode(_component_g_select, {
702
- value: state.period,
703
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => state.period = $event),
704
- onChange: handleChangePeriod,
705
- size: unref(isPC) ? "small" : "medium"
706
- }, {
707
- default: withCtx(() => [
708
- (openBlock(true), createElementBlock(
709
- Fragment,
710
- null,
711
- renderList(unref(periodList), (periodItem) => {
712
- return openBlock(), createBlock(_component_g_select_option, {
713
- value: periodItem.value
714
- }, {
715
- default: withCtx(() => [
716
- createTextVNode(
717
- toDisplayString(periodItem.label),
718
- 1
719
- )
720
- ]),
721
- _: 2
722
- }, 1032, ["value"]);
723
- }),
724
- 256
725
- ))
726
- ]),
727
- _: 1
728
- }, 8, ["value", "size"]),
729
- createElementVNode(
730
- "span",
731
- _hoisted_3,
732
- toDisplayString(state.periodDateRange),
733
- 1
734
- )
735
- ])
736
- } : void 0
737
- ]), 1032, ["currency", "exchange", "loading", "showType"])
738
- ],
739
- 2
740
- );
741
- };
8
+ const panelRvProps = buildProps({
9
+ defaultCurrency: {
10
+ type: String,
11
+ required: false
12
+ },
13
+ defaultExchange: {
14
+ type: String,
15
+ required: false
16
+ },
17
+ currency: {
18
+ type: String,
19
+ required: false
20
+ },
21
+ exchange: {
22
+ type: String,
23
+ required: false
742
24
  }
743
25
  });
744
- var PanelRv = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/luobowen/Desktop/greeks/greeks-live-ui/packages/components/panel-rv/src/panel-rv.vue"]]);
745
26
 
746
- export { PanelRv as default };
27
+ export { panelRvEmits, panelRvProps };
747
28
  //# sourceMappingURL=panel-rv.mjs.map