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