st-comp 0.0.260 → 0.0.262

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 (89) hide show
  1. package/es/ChartLayout.js +4 -4
  2. package/es/CustomFunction.js +31 -31
  3. package/es/FactorWarning.cjs +1 -1
  4. package/es/FactorWarning.js +36 -37
  5. package/es/Kline.cjs +1 -1
  6. package/es/Kline.js +1593 -839
  7. package/es/KlineBasic.cjs +1 -1
  8. package/es/KlineBasic.js +1 -1197
  9. package/es/KlineConfig.js +89 -89
  10. package/es/KlineNew.js +17 -17
  11. package/es/KlinePlus.js +20 -20
  12. package/es/MonacoEditor.js +25 -25
  13. package/es/Pagination.js +113 -113
  14. package/es/PasswordPrompt.js +3 -3
  15. package/es/Table.js +29 -29
  16. package/es/User.js +25 -25
  17. package/es/VarSelectDialog.cjs +1 -1
  18. package/es/VarSelectDialog.js +27 -27
  19. package/es/VarietyAiHelper.cjs +3 -5
  20. package/es/VarietyAiHelper.js +244 -330
  21. package/es/VarietyAutoComplete.js +11 -11
  22. package/es/VarietySearch.cjs +18 -19
  23. package/es/VarietySearch.js +1169 -1205
  24. package/es/{VarietySelect-9f267958.js → VarietySelect-faef4799.js} +4 -4
  25. package/es/VarietyTextCopy.js +13 -13
  26. package/es/VirtualTable.js +74 -74
  27. package/es/{_initCloneObject-69c8ae23.js → _initCloneObject-009eedf8.js} +7 -7
  28. package/es/aiTools-2e1f92d2.cjs +3 -0
  29. package/es/aiTools-faa0a14d.js +90 -0
  30. package/es/{base-29f73b05.js → base-7ff209fc.js} +40 -40
  31. package/es/{castArray-609a313e.js → castArray-b9f1609f.js} +1 -1
  32. package/es/{config-provider-7860903c.js → config-provider-071b8bec.js} +6 -6
  33. package/es/{debounce-a09ce9a3.js → debounce-23c2f7e1.js} +1 -1
  34. package/es/{dropdown-497442b7.js → dropdown-9941f401.js} +4 -4
  35. package/es/{el-autocomplete-27c60cc8.js → el-autocomplete-43f205b0.js} +17 -17
  36. package/es/{el-button-e2c63c08.js → el-button-7f58608d.js} +33 -33
  37. package/es/{el-checkbox-71ebd862.js → el-checkbox-40664b27.js} +17 -17
  38. package/es/{el-input-number-c8018cb1.js → el-checkbox-group-3ddad0d7.js} +34 -34
  39. package/es/{el-input-number-3d94fa58.cjs → el-checkbox-group-f775e73f.cjs} +1 -1
  40. package/es/{el-dialog-eedcfd3e.js → el-dialog-2f10a2f4.js} +15 -15
  41. package/es/{el-divider-523e5874.js → el-divider-4e66c835.js} +1 -1
  42. package/es/{el-empty-f5a1607a.js → el-empty-e0d826de.js} +5 -5
  43. package/es/{el-form-item-bdcfd297.js → el-form-item-2b68cdf5.js} +36 -36
  44. package/es/{el-input-d47281da.js → el-input-31a818d4.js} +36 -36
  45. package/es/{el-loading-0cd81d05.js → el-loading-3e350f5e.js} +5 -5
  46. package/es/{el-message-box-fea4fca8.js → el-message-box-a3aa9b89.js} +11 -11
  47. package/es/{el-overlay-1ee0338d.js → el-overlay-4e9a99e0.js} +59 -59
  48. package/es/{el-popconfirm-089b8bec.js → el-popconfirm-c2896741.js} +12 -12
  49. package/es/{el-popper-c9b3d3cf.js → el-popper-003b3af7.js} +177 -177
  50. package/es/{el-segmented-9d3a9e11.js → el-segmented-4ae54e6a.js} +8 -8
  51. package/es/{el-select-e51e11c1.js → el-select-19ee0e79.js} +65 -65
  52. package/es/{el-table-column-05d292a8.js → el-table-column-3be856d7.js} +16 -16
  53. package/es/{el-tag-17cd04a1.js → el-tag-19cc5b59.js} +14 -14
  54. package/es/{el-text-2710fff3.js → el-text-9a7a4f0f.js} +2 -2
  55. package/es/{index-0f79095c.js → index-19ac550e.js} +49 -49
  56. package/es/{index-1d9b50de.js → index-308aab33.js} +34 -34
  57. package/es/{index-8a54ceeb.js → index-41dd5a1c.js} +10 -10
  58. package/es/{index-0ee486ad.js → index-6917da9d.js} +43 -43
  59. package/es/{index-bcd895a0.js → index-6d530e54.js} +13 -13
  60. package/es/{index-c71e37dc.js → index-808db9b4.js} +11 -11
  61. package/es/{index-f30561d3.js → index-99abf4ff.js} +17 -17
  62. package/es/{index-95e5d454.js → index-b56d81e8.js} +3 -3
  63. package/es/{index-8391a3df.js → index-d898531c.js} +37 -37
  64. package/es/{index-c2b9bbfd.js → index-e17987ac.js} +30 -30
  65. package/es/{index-b0117ba2.js → index-f3799536.js} +2 -2
  66. package/es/{index-de24705f.js → index-f402d1da.js} +1 -1
  67. package/es/{python-99011a53.js → python-be79c7c1.js} +25 -25
  68. package/es/raf-ba3dfafe.js +6 -0
  69. package/es/{scroll-6799bafc.js → scroll-8642151c.js} +5 -5
  70. package/es/style.css +1 -1
  71. package/es/{use-form-common-props-cb0ca65c.js → use-form-common-props-d170ccfd.js} +72 -72
  72. package/es/{use-global-config-cdaeca54.js → use-global-config-74436b92.js} +14 -14
  73. package/es/{validator-4ab9774f.js → validator-672bad4a.js} +1 -1
  74. package/es/{vnode-a83e6de8.js → vnode-6d2615f0.js} +1 -1
  75. package/es/{zh-cn-8a6390a4.js → zh-cn-ed10eeb1.js} +2 -2
  76. package/lib/bundle.js +1 -1
  77. package/lib/bundle.umd.cjs +150 -151
  78. package/lib/{index-107e931f.js → index-c3ddbee7.js} +7463 -7499
  79. package/lib/{python-5735efdf.js → python-da8fd227.js} +1 -1
  80. package/lib/style.css +1 -1
  81. package/package.json +1 -1
  82. package/packages/VarietyAiHelper/index.vue +3 -3
  83. package/packages/VarietySearch/components/FactorScreen/index.vue +20 -7
  84. package/packages/VarietySearch/components/FactorScreen/tools.js +0 -41
  85. package/es/el-checkbox-group-0ea8fbf8.cjs +0 -1
  86. package/es/el-checkbox-group-4ed993c7.js +0 -1
  87. package/es/el-menu-item-26071fd6.cjs +0 -1
  88. package/es/el-menu-item-dac65bb3.js +0 -769
  89. package/es/raf-744cf95a.js +0 -6
package/es/Kline.js CHANGED
@@ -1,31 +1,785 @@
1
- import "./base-29f73b05.js";
2
- import { E as he, a as Ce } from "./el-menu-item-dac65bb3.js";
1
+ import { u as ee, _ as De, w as Ke, l as ze, r as he, A as jt, b as Fe, o as et, e as se, x as Ze, d as ge, h as gt, v as Ge, i as tt, E as pt, B as Qe } from "./base-7ff209fc.js";
3
2
  import "./el-tooltip-4ed993c7.js";
4
- import "./el-popper-c9b3d3cf.js";
5
- import { defineComponent as Me, openBlock as h, createElementBlock as k, createElementVNode as K, Fragment as ae, renderList as le, normalizeStyle as ye, toDisplayString as q, ref as S, renderSlot as De, createCommentVNode as xe, nextTick as Ye, computed as W, watch as H, onMounted as de, onUnmounted as ge, createVNode as V, withCtx as X, createBlock as Ae, createTextVNode as Oe, normalizeClass as ke } from "vue";
6
- import * as oe from "echarts";
7
- import { _ as $ } from "./_plugin-vue_export-helper-dad06003.js";
8
- import { x as re } from "./index-7ed0999e.js";
9
- import { i as ve, t as be } from "./index.esm-8d9a2abe.js";
10
- import "./el-tag-17cd04a1.js";
11
- import { E as Ee, a as Se } from "./el-select-e51e11c1.js";
3
+ import { E as nt } from "./el-popper-003b3af7.js";
4
+ import { defineComponent as G, openBlock as S, createBlock as Ne, Transition as ot, mergeProps as at, unref as Z, toHandlers as ft, withCtx as ne, renderSlot as K, computed as O, getCurrentInstance as Pe, inject as pe, ref as E, reactive as Be, watch as q, provide as Ee, onMounted as ue, onBeforeUnmount as it, h as U, Fragment as ae, withDirectives as lt, vShow as Tt, nextTick as Le, watchEffect as It, toRef as mt, createElementBlock as R, normalizeClass as de, createElementVNode as oe, createTextVNode as st, toDisplayString as re, renderList as xe, normalizeStyle as Re, createCommentVNode as rt, onUnmounted as Ue, createVNode as te } from "vue";
5
+ import * as fe from "echarts";
6
+ import { _ as ie } from "./_plugin-vue_export-helper-dad06003.js";
7
+ import { x as ve } from "./index-7ed0999e.js";
8
+ import { i as Dt, t as Lt } from "./index.esm-8d9a2abe.js";
9
+ import { i as Me, h as xt, D as vt } from "./use-form-common-props-d170ccfd.js";
10
+ import { g as ht, A as Yt, E as ut, C as At } from "./index-e17987ac.js";
11
+ import { a as X, g as je, t as Te, f as Ct, d as bt } from "./index-19ac550e.js";
12
+ import { T as wt } from "./index-657047bb.js";
13
+ import { C as Ot } from "./el-tag-19cc5b59.js";
14
+ import { m as kt } from "./typescript-7ae59c4c.js";
15
+ import { f as Et } from "./vnode-6d2615f0.js";
16
+ import { E as St, a as _t } from "./el-select-19ee0e79.js";
12
17
  import "./el-scrollbar-323542e7.js";
13
- import "./use-form-common-props-cb0ca65c.js";
14
- import "./index-8391a3df.js";
15
- import "./index-c2b9bbfd.js";
16
- import "./index-0f79095c.js";
17
- import "./index-657047bb.js";
18
- import "./typescript-7ae59c4c.js";
19
- import "./vnode-a83e6de8.js";
20
- import "./index-0ee486ad.js";
21
- import "./index-de24705f.js";
22
- import "./index-1d9b50de.js";
23
- import "./index-95e5d454.js";
24
- import "./castArray-609a313e.js";
25
- import "./index-c71e37dc.js";
26
- import "./scroll-6799bafc.js";
27
- import "./debounce-a09ce9a3.js";
28
- const Fe = { class: "st-kline-tips" }, Qe = { class: "st-kline-tips-row" }, _e = /* @__PURE__ */ Me({
18
+ import "./index-d898531c.js";
19
+ import "./index-6917da9d.js";
20
+ import "./index-f402d1da.js";
21
+ import "./index-308aab33.js";
22
+ import "./index-b56d81e8.js";
23
+ import "./castArray-b9f1609f.js";
24
+ import "./index-808db9b4.js";
25
+ import "./scroll-8642151c.js";
26
+ import "./debounce-23c2f7e1.js";
27
+ const Ft = G({
28
+ name: "ElCollapseTransition"
29
+ }), Qt = /* @__PURE__ */ G({
30
+ ...Ft,
31
+ setup(o) {
32
+ const n = ee("collapse-transition"), a = (e) => {
33
+ e.style.maxHeight = "", e.style.overflow = e.dataset.oldOverflow, e.style.paddingTop = e.dataset.oldPaddingTop, e.style.paddingBottom = e.dataset.oldPaddingBottom;
34
+ }, t = {
35
+ beforeEnter(e) {
36
+ e.dataset || (e.dataset = {}), e.dataset.oldPaddingTop = e.style.paddingTop, e.dataset.oldPaddingBottom = e.style.paddingBottom, e.style.height && (e.dataset.elExistsHeight = e.style.height), e.style.maxHeight = 0, e.style.paddingTop = 0, e.style.paddingBottom = 0;
37
+ },
38
+ enter(e) {
39
+ requestAnimationFrame(() => {
40
+ e.dataset.oldOverflow = e.style.overflow, e.dataset.elExistsHeight ? e.style.maxHeight = e.dataset.elExistsHeight : e.scrollHeight !== 0 ? e.style.maxHeight = `${e.scrollHeight}px` : e.style.maxHeight = 0, e.style.paddingTop = e.dataset.oldPaddingTop, e.style.paddingBottom = e.dataset.oldPaddingBottom, e.style.overflow = "hidden";
41
+ });
42
+ },
43
+ afterEnter(e) {
44
+ e.style.maxHeight = "", e.style.overflow = e.dataset.oldOverflow;
45
+ },
46
+ enterCancelled(e) {
47
+ a(e);
48
+ },
49
+ beforeLeave(e) {
50
+ e.dataset || (e.dataset = {}), e.dataset.oldPaddingTop = e.style.paddingTop, e.dataset.oldPaddingBottom = e.style.paddingBottom, e.dataset.oldOverflow = e.style.overflow, e.style.maxHeight = `${e.scrollHeight}px`, e.style.overflow = "hidden";
51
+ },
52
+ leave(e) {
53
+ e.scrollHeight !== 0 && (e.style.maxHeight = 0, e.style.paddingTop = 0, e.style.paddingBottom = 0);
54
+ },
55
+ afterLeave(e) {
56
+ a(e);
57
+ },
58
+ leaveCancelled(e) {
59
+ a(e);
60
+ }
61
+ };
62
+ return (e, s) => (S(), Ne(ot, at({
63
+ name: Z(n).b()
64
+ }, ft(t)), {
65
+ default: ne(() => [
66
+ K(e.$slots, "default")
67
+ ]),
68
+ _: 3
69
+ }, 16, ["name"]));
70
+ }
71
+ });
72
+ var Pt = /* @__PURE__ */ De(Qt, [["__file", "collapse-transition.vue"]]);
73
+ const Bt = Ke(Pt);
74
+ let Rt = class {
75
+ constructor(n, a) {
76
+ this.parent = n, this.domNode = a, this.subIndex = 0, this.subIndex = 0, this.init();
77
+ }
78
+ init() {
79
+ this.subMenuItems = this.domNode.querySelectorAll("li"), this.addListeners();
80
+ }
81
+ gotoSubIndex(n) {
82
+ n === this.subMenuItems.length ? n = 0 : n < 0 && (n = this.subMenuItems.length - 1), this.subMenuItems[n].focus(), this.subIndex = n;
83
+ }
84
+ addListeners() {
85
+ const n = this.parent.domNode;
86
+ Array.prototype.forEach.call(this.subMenuItems, (a) => {
87
+ a.addEventListener("keydown", (t) => {
88
+ let e = !1;
89
+ switch (t.code) {
90
+ case X.down: {
91
+ this.gotoSubIndex(this.subIndex + 1), e = !0;
92
+ break;
93
+ }
94
+ case X.up: {
95
+ this.gotoSubIndex(this.subIndex - 1), e = !0;
96
+ break;
97
+ }
98
+ case X.tab: {
99
+ je(n, "mouseleave");
100
+ break;
101
+ }
102
+ case X.enter:
103
+ case X.numpadEnter:
104
+ case X.space: {
105
+ e = !0, t.currentTarget.click();
106
+ break;
107
+ }
108
+ }
109
+ return e && (t.preventDefault(), t.stopPropagation()), !1;
110
+ });
111
+ });
112
+ }
113
+ }, Ut = class {
114
+ constructor(n, a) {
115
+ this.domNode = n, this.submenu = null, this.submenu = null, this.init(a);
116
+ }
117
+ init(n) {
118
+ this.domNode.setAttribute("tabindex", "0");
119
+ const a = this.domNode.querySelector(`.${n}-menu`);
120
+ a && (this.submenu = new Rt(this, a)), this.addListeners();
121
+ }
122
+ addListeners() {
123
+ this.domNode.addEventListener("keydown", (n) => {
124
+ let a = !1;
125
+ switch (n.code) {
126
+ case X.down: {
127
+ je(n.currentTarget, "mouseenter"), this.submenu && this.submenu.gotoSubIndex(0), a = !0;
128
+ break;
129
+ }
130
+ case X.up: {
131
+ je(n.currentTarget, "mouseenter"), this.submenu && this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1), a = !0;
132
+ break;
133
+ }
134
+ case X.tab: {
135
+ je(n.currentTarget, "mouseleave");
136
+ break;
137
+ }
138
+ case X.enter:
139
+ case X.numpadEnter:
140
+ case X.space: {
141
+ a = !0, n.currentTarget.click();
142
+ break;
143
+ }
144
+ }
145
+ a && n.preventDefault();
146
+ });
147
+ }
148
+ }, $t = class {
149
+ constructor(n, a) {
150
+ this.domNode = n, this.init(a);
151
+ }
152
+ init(n) {
153
+ const a = this.domNode.childNodes;
154
+ Array.from(a).forEach((t) => {
155
+ t.nodeType === 1 && new Ut(t, n);
156
+ });
157
+ }
158
+ };
159
+ const Vt = G({
160
+ name: "ElMenuCollapseTransition"
161
+ }), Wt = /* @__PURE__ */ G({
162
+ ...Vt,
163
+ setup(o) {
164
+ const n = ee("menu"), a = {
165
+ onBeforeEnter: (t) => t.style.opacity = "0.2",
166
+ onEnter(t, e) {
167
+ ze(t, `${n.namespace.value}-opacity-transition`), t.style.opacity = "1", e();
168
+ },
169
+ onAfterEnter(t) {
170
+ he(t, `${n.namespace.value}-opacity-transition`), t.style.opacity = "";
171
+ },
172
+ onBeforeLeave(t) {
173
+ t.dataset || (t.dataset = {}), jt(t, n.m("collapse")) ? (he(t, n.m("collapse")), t.dataset.oldOverflow = t.style.overflow, t.dataset.scrollWidth = t.clientWidth.toString(), ze(t, n.m("collapse"))) : (ze(t, n.m("collapse")), t.dataset.oldOverflow = t.style.overflow, t.dataset.scrollWidth = t.clientWidth.toString(), he(t, n.m("collapse"))), t.style.width = `${t.scrollWidth}px`, t.style.overflow = "hidden";
174
+ },
175
+ onLeave(t) {
176
+ ze(t, "horizontal-collapse-transition"), t.style.width = `${t.dataset.scrollWidth}px`;
177
+ }
178
+ };
179
+ return (t, e) => (S(), Ne(ot, at({ mode: "out-in" }, Z(a)), {
180
+ default: ne(() => [
181
+ K(t.$slots, "default")
182
+ ]),
183
+ _: 3
184
+ }, 16));
185
+ }
186
+ });
187
+ var Zt = /* @__PURE__ */ De(Wt, [["__file", "menu-collapse-transition.vue"]]);
188
+ function ct(o, n) {
189
+ const a = O(() => {
190
+ let e = o.parent;
191
+ const s = [n.value];
192
+ for (; e.type.name !== "ElMenu"; )
193
+ e.props.index && s.unshift(e.props.index), e = e.parent;
194
+ return s;
195
+ });
196
+ return {
197
+ parentMenu: O(() => {
198
+ let e = o.parent;
199
+ for (; e && !["ElMenu", "ElSubMenu"].includes(e.type.name); )
200
+ e = e.parent;
201
+ return e;
202
+ }),
203
+ indexPath: a
204
+ };
205
+ }
206
+ function Gt(o) {
207
+ return O(() => {
208
+ const a = o.backgroundColor;
209
+ return a ? new wt(a).shade(20).toString() : "";
210
+ });
211
+ }
212
+ const Mt = (o, n) => {
213
+ const a = ee("menu");
214
+ return O(() => a.cssVarBlock({
215
+ "text-color": o.textColor || "",
216
+ "hover-text-color": o.textColor || "",
217
+ "bg-color": o.backgroundColor || "",
218
+ "hover-bg-color": Gt(o).value || "",
219
+ "active-color": o.activeTextColor || "",
220
+ level: `${n}`
221
+ }));
222
+ }, $e = "rootMenu", Ie = "subMenu:", Ht = Fe({
223
+ index: {
224
+ type: String,
225
+ required: !0
226
+ },
227
+ showTimeout: Number,
228
+ hideTimeout: Number,
229
+ popperClass: String,
230
+ disabled: Boolean,
231
+ teleported: {
232
+ type: Boolean,
233
+ default: void 0
234
+ },
235
+ popperOffset: Number,
236
+ expandCloseIcon: {
237
+ type: Me
238
+ },
239
+ expandOpenIcon: {
240
+ type: Me
241
+ },
242
+ collapseCloseIcon: {
243
+ type: Me
244
+ },
245
+ collapseOpenIcon: {
246
+ type: Me
247
+ }
248
+ }), Ye = "ElSubMenu";
249
+ var Ve = G({
250
+ name: Ye,
251
+ props: Ht,
252
+ setup(o, { slots: n, expose: a }) {
253
+ const t = Pe(), { indexPath: e, parentMenu: s } = ct(t, O(() => o.index)), N = ee("menu"), c = ee("sub-menu"), i = pe($e);
254
+ i || Te(Ye, "can not inject root menu");
255
+ const u = pe(`${Ie}${s.value.uid}`);
256
+ u || Te(Ye, "can not inject sub menu");
257
+ const y = E({}), g = E({});
258
+ let r;
259
+ const d = E(!1), p = E(), M = E(), x = O(() => u.level === 0), C = O(() => Y.value === "horizontal" && x.value ? "bottom-start" : "right-start"), b = O(() => Y.value === "horizontal" && x.value || Y.value === "vertical" && !i.props.collapse ? o.expandCloseIcon && o.expandOpenIcon ? I.value ? o.expandOpenIcon : o.expandCloseIcon : ht : o.collapseCloseIcon && o.collapseOpenIcon ? I.value ? o.collapseOpenIcon : o.collapseCloseIcon : Yt), F = O(() => {
260
+ const m = o.teleported;
261
+ return et(m) ? x.value : m;
262
+ }), z = O(() => i.props.collapse ? `${N.namespace.value}-zoom-in-left` : `${N.namespace.value}-zoom-in-top`), f = O(() => Y.value === "horizontal" && x.value ? [
263
+ "bottom-start",
264
+ "bottom-end",
265
+ "top-start",
266
+ "top-end",
267
+ "right-start",
268
+ "left-start"
269
+ ] : [
270
+ "right-start",
271
+ "right",
272
+ "right-end",
273
+ "left-start",
274
+ "bottom-start",
275
+ "bottom-end",
276
+ "top-start",
277
+ "top-end"
278
+ ]), I = O(() => i.openedMenus.includes(o.index)), h = O(() => [...Object.values(y.value), ...Object.values(g.value)].some(({ active: m }) => m)), Y = O(() => i.props.mode), Q = O(() => i.props.persistent), P = Be({
279
+ index: o.index,
280
+ indexPath: e,
281
+ active: h
282
+ }), V = Mt(i.props, u.level + 1), $ = O(() => {
283
+ var m;
284
+ return (m = o.popperOffset) != null ? m : i.props.popperOffset;
285
+ }), W = O(() => {
286
+ var m;
287
+ return (m = o.popperClass) != null ? m : i.props.popperClass;
288
+ }), T = O(() => {
289
+ var m;
290
+ return (m = o.showTimeout) != null ? m : i.props.showTimeout;
291
+ }), v = O(() => {
292
+ var m;
293
+ return (m = o.hideTimeout) != null ? m : i.props.hideTimeout;
294
+ }), L = () => {
295
+ var m, k, w;
296
+ return (w = (k = (m = M.value) == null ? void 0 : m.popperRef) == null ? void 0 : k.popperInstanceRef) == null ? void 0 : w.destroy();
297
+ }, l = (m) => {
298
+ m || L();
299
+ }, j = () => {
300
+ i.props.menuTrigger === "hover" && i.props.mode === "horizontal" || i.props.collapse && i.props.mode === "vertical" || o.disabled || i.handleSubMenuClick({
301
+ index: o.index,
302
+ indexPath: e.value,
303
+ active: h.value
304
+ });
305
+ }, D = (m, k = T.value) => {
306
+ var w;
307
+ if (m.type !== "focus") {
308
+ if (i.props.menuTrigger === "click" && i.props.mode === "horizontal" || !i.props.collapse && i.props.mode === "vertical" || o.disabled) {
309
+ u.mouseInChild.value = !0;
310
+ return;
311
+ }
312
+ u.mouseInChild.value = !0, r == null || r(), { stop: r } = Ze(() => {
313
+ i.openMenu(o.index, e.value);
314
+ }, k), F.value && ((w = s.value.vnode.el) == null || w.dispatchEvent(new MouseEvent("mouseenter"))), m.type === "mouseenter" && m.target && Le(() => {
315
+ Ct(m.target, { preventScroll: !0 });
316
+ });
317
+ }
318
+ }, A = (m = !1) => {
319
+ var k;
320
+ if (i.props.menuTrigger === "click" && i.props.mode === "horizontal" || !i.props.collapse && i.props.mode === "vertical") {
321
+ u.mouseInChild.value = !1;
322
+ return;
323
+ }
324
+ r == null || r(), u.mouseInChild.value = !1, { stop: r } = Ze(() => !d.value && i.closeMenu(o.index, e.value), v.value), F.value && m && ((k = u.handleMouseleave) == null || k.call(u, !0));
325
+ };
326
+ q(() => i.props.collapse, (m) => l(!!m));
327
+ {
328
+ const m = (w) => {
329
+ g.value[w.index] = w;
330
+ }, k = (w) => {
331
+ delete g.value[w.index];
332
+ };
333
+ Ee(`${Ie}${t.uid}`, {
334
+ addSubMenu: m,
335
+ removeSubMenu: k,
336
+ handleMouseleave: A,
337
+ mouseInChild: d,
338
+ level: u.level + 1
339
+ });
340
+ }
341
+ return a({
342
+ opened: I
343
+ }), ue(() => {
344
+ i.addSubMenu(P), u.addSubMenu(P);
345
+ }), it(() => {
346
+ u.removeSubMenu(P), i.removeSubMenu(P);
347
+ }), () => {
348
+ var m;
349
+ const k = [
350
+ (m = n.title) == null ? void 0 : m.call(n),
351
+ U(ut, {
352
+ class: c.e("icon-arrow"),
353
+ style: {
354
+ transform: I.value ? o.expandCloseIcon && o.expandOpenIcon || o.collapseCloseIcon && o.collapseOpenIcon && i.props.collapse ? "none" : "rotateZ(180deg)" : "none"
355
+ }
356
+ }, {
357
+ default: () => se(b.value) ? U(t.appContext.components[b.value]) : U(b.value)
358
+ })
359
+ ], w = i.isMenuPopup ? U(nt, {
360
+ ref: M,
361
+ visible: I.value,
362
+ effect: "light",
363
+ pure: !0,
364
+ offset: $.value,
365
+ showArrow: !1,
366
+ persistent: Q.value,
367
+ popperClass: W.value,
368
+ placement: C.value,
369
+ teleported: F.value,
370
+ fallbackPlacements: f.value,
371
+ transition: z.value,
372
+ gpuAcceleration: !1
373
+ }, {
374
+ content: () => {
375
+ var B;
376
+ return U("div", {
377
+ class: [
378
+ N.m(Y.value),
379
+ N.m("popup-container"),
380
+ W.value
381
+ ],
382
+ onMouseenter: (_) => D(_, 100),
383
+ onMouseleave: () => A(!0),
384
+ onFocus: (_) => D(_, 100)
385
+ }, [
386
+ U("ul", {
387
+ class: [
388
+ N.b(),
389
+ N.m("popup"),
390
+ N.m(`popup-${C.value}`)
391
+ ],
392
+ style: V.value
393
+ }, [(B = n.default) == null ? void 0 : B.call(n)])
394
+ ]);
395
+ },
396
+ default: () => U("div", {
397
+ class: c.e("title"),
398
+ onClick: j
399
+ }, k)
400
+ }) : U(ae, {}, [
401
+ U("div", {
402
+ class: c.e("title"),
403
+ ref: p,
404
+ onClick: j
405
+ }, k),
406
+ U(Bt, {}, {
407
+ default: () => {
408
+ var B;
409
+ return lt(U("ul", {
410
+ role: "menu",
411
+ class: [N.b(), N.m("inline")],
412
+ style: V.value
413
+ }, [(B = n.default) == null ? void 0 : B.call(n)]), [[Tt, I.value]]);
414
+ }
415
+ })
416
+ ]);
417
+ return U("li", {
418
+ class: [
419
+ c.b(),
420
+ c.is("active", h.value),
421
+ c.is("opened", I.value),
422
+ c.is("disabled", o.disabled)
423
+ ],
424
+ role: "menuitem",
425
+ ariaHaspopup: !0,
426
+ ariaExpanded: I.value,
427
+ onMouseenter: D,
428
+ onMouseleave: () => A(),
429
+ onFocus: D
430
+ }, [w]);
431
+ };
432
+ }
433
+ });
434
+ const Jt = Fe({
435
+ mode: {
436
+ type: String,
437
+ values: ["horizontal", "vertical"],
438
+ default: "vertical"
439
+ },
440
+ defaultActive: {
441
+ type: String,
442
+ default: ""
443
+ },
444
+ defaultOpeneds: {
445
+ type: ge(Array),
446
+ default: () => kt([])
447
+ },
448
+ uniqueOpened: Boolean,
449
+ router: Boolean,
450
+ menuTrigger: {
451
+ type: String,
452
+ values: ["hover", "click"],
453
+ default: "hover"
454
+ },
455
+ collapse: Boolean,
456
+ backgroundColor: String,
457
+ textColor: String,
458
+ activeTextColor: String,
459
+ closeOnClickOutside: Boolean,
460
+ collapseTransition: {
461
+ type: Boolean,
462
+ default: !0
463
+ },
464
+ ellipsis: {
465
+ type: Boolean,
466
+ default: !0
467
+ },
468
+ popperOffset: {
469
+ type: Number,
470
+ default: 6
471
+ },
472
+ ellipsisIcon: {
473
+ type: Me,
474
+ default: () => At
475
+ },
476
+ popperEffect: {
477
+ type: ge(String),
478
+ default: "dark"
479
+ },
480
+ popperClass: String,
481
+ showTimeout: {
482
+ type: Number,
483
+ default: 300
484
+ },
485
+ hideTimeout: {
486
+ type: Number,
487
+ default: 300
488
+ },
489
+ persistent: {
490
+ type: Boolean,
491
+ default: !0
492
+ }
493
+ }), Ae = (o) => tt(o) && o.every((n) => se(n)), Xt = {
494
+ close: (o, n) => se(o) && Ae(n),
495
+ open: (o, n) => se(o) && Ae(n),
496
+ select: (o, n, a, t) => se(o) && Ae(n) && gt(a) && (et(t) || t instanceof Promise)
497
+ };
498
+ var qt = G({
499
+ name: "ElMenu",
500
+ props: Jt,
501
+ emits: Xt,
502
+ setup(o, { emit: n, slots: a, expose: t }) {
503
+ const e = Pe(), s = e.appContext.config.globalProperties.$router, N = E(), c = E(), i = ee("menu"), u = ee("sub-menu");
504
+ let y = 64;
505
+ const g = E(-1), r = E(o.defaultOpeneds && !o.collapse ? o.defaultOpeneds.slice(0) : []), d = E(o.defaultActive), p = E({}), M = E({}), x = O(() => o.mode === "horizontal" || o.mode === "vertical" && o.collapse), C = () => {
506
+ const l = d.value && p.value[d.value];
507
+ if (!l || o.mode === "horizontal" || o.collapse)
508
+ return;
509
+ l.indexPath.forEach((D) => {
510
+ const A = M.value[D];
511
+ A && b(D, A.indexPath);
512
+ });
513
+ }, b = (l, j) => {
514
+ r.value.includes(l) || (o.uniqueOpened && (r.value = r.value.filter((D) => j.includes(D))), r.value.push(l), n("open", l, j));
515
+ }, F = (l) => {
516
+ const j = r.value.indexOf(l);
517
+ j !== -1 && r.value.splice(j, 1);
518
+ }, z = (l, j) => {
519
+ F(l), n("close", l, j);
520
+ }, f = ({
521
+ index: l,
522
+ indexPath: j
523
+ }) => {
524
+ r.value.includes(l) ? z(l, j) : b(l, j);
525
+ }, I = (l) => {
526
+ (o.mode === "horizontal" || o.collapse) && (r.value = []);
527
+ const { index: j, indexPath: D } = l;
528
+ if (!(Ge(j) || Ge(D)))
529
+ if (o.router && s) {
530
+ const A = l.route || j, m = s.push(A).then((k) => (k || (d.value = j), k));
531
+ n("select", j, D, { index: j, indexPath: D, route: A }, m);
532
+ } else
533
+ d.value = j, n("select", j, D, { index: j, indexPath: D });
534
+ }, h = (l) => {
535
+ var j;
536
+ const D = p.value, A = D[l] || d.value && D[d.value] || D[o.defaultActive];
537
+ d.value = (j = A == null ? void 0 : A.index) != null ? j : l;
538
+ }, Y = (l) => {
539
+ const j = getComputedStyle(l), D = Number.parseInt(j.marginLeft, 10), A = Number.parseInt(j.marginRight, 10);
540
+ return l.offsetWidth + D + A || 0;
541
+ }, Q = () => {
542
+ var l, j;
543
+ if (!N.value)
544
+ return -1;
545
+ const D = Array.from((j = (l = N.value) == null ? void 0 : l.childNodes) != null ? j : []).filter((H) => H.nodeName !== "#comment" && (H.nodeName !== "#text" || H.nodeValue)), A = getComputedStyle(N.value), m = Number.parseInt(A.paddingLeft, 10), k = Number.parseInt(A.paddingRight, 10), w = N.value.clientWidth - m - k;
546
+ let B = 0, _ = 0;
547
+ return D.forEach((H, le) => {
548
+ B += Y(H), B <= w - y && (_ = le + 1);
549
+ }), _ === D.length ? -1 : _;
550
+ }, P = (l) => M.value[l].indexPath, V = (l, j = 33.34) => {
551
+ let D;
552
+ return () => {
553
+ D && clearTimeout(D), D = setTimeout(() => {
554
+ l();
555
+ }, j);
556
+ };
557
+ };
558
+ let $ = !0;
559
+ const W = () => {
560
+ const l = vt(c);
561
+ if (l && (y = Y(l) || 64), g.value === Q())
562
+ return;
563
+ const j = () => {
564
+ g.value = -1, Le(() => {
565
+ g.value = Q();
566
+ });
567
+ };
568
+ $ ? j() : V(j)(), $ = !1;
569
+ };
570
+ q(() => o.defaultActive, (l) => {
571
+ p.value[l] || (d.value = ""), h(l);
572
+ }), q(() => o.collapse, (l) => {
573
+ l && (r.value = []);
574
+ }), q(p.value, C);
575
+ let T;
576
+ It(() => {
577
+ o.mode === "horizontal" && o.ellipsis ? T = xt(N, W).stop : T == null || T();
578
+ });
579
+ const v = E(!1);
580
+ {
581
+ const l = (m) => {
582
+ M.value[m.index] = m;
583
+ }, j = (m) => {
584
+ delete M.value[m.index];
585
+ };
586
+ Ee($e, Be({
587
+ props: o,
588
+ openedMenus: r,
589
+ items: p,
590
+ subMenus: M,
591
+ activeIndex: d,
592
+ isMenuPopup: x,
593
+ addMenuItem: (m) => {
594
+ p.value[m.index] = m;
595
+ },
596
+ removeMenuItem: (m) => {
597
+ delete p.value[m.index];
598
+ },
599
+ addSubMenu: l,
600
+ removeSubMenu: j,
601
+ openMenu: b,
602
+ closeMenu: z,
603
+ handleMenuItemClick: I,
604
+ handleSubMenuClick: f
605
+ })), Ee(`${Ie}${e.uid}`, {
606
+ addSubMenu: l,
607
+ removeSubMenu: j,
608
+ mouseInChild: v,
609
+ level: 0
610
+ });
611
+ }
612
+ ue(() => {
613
+ o.mode === "horizontal" && new $t(e.vnode.el, i.namespace.value);
614
+ }), t({
615
+ open: (j) => {
616
+ const { indexPath: D } = M.value[j];
617
+ D.forEach((A) => b(A, D));
618
+ },
619
+ close: F,
620
+ updateActiveIndex: h,
621
+ handleResize: W
622
+ });
623
+ const L = Mt(o, 0);
624
+ return () => {
625
+ var l, j;
626
+ let D = (j = (l = a.default) == null ? void 0 : l.call(a)) != null ? j : [];
627
+ const A = [];
628
+ if (o.mode === "horizontal" && N.value) {
629
+ const w = Et(D).filter((H) => (H == null ? void 0 : H.shapeFlag) !== 8), B = g.value === -1 ? w : w.slice(0, g.value), _ = g.value === -1 ? [] : w.slice(g.value);
630
+ _ != null && _.length && o.ellipsis && (D = B, A.push(U(Ve, {
631
+ ref: c,
632
+ index: "sub-menu-more",
633
+ class: u.e("hide-arrow"),
634
+ popperOffset: o.popperOffset
635
+ }, {
636
+ title: () => U(ut, {
637
+ class: u.e("icon-more")
638
+ }, {
639
+ default: () => U(o.ellipsisIcon)
640
+ }),
641
+ default: () => _
642
+ })));
643
+ }
644
+ const m = o.closeOnClickOutside ? [
645
+ [
646
+ Ot,
647
+ () => {
648
+ r.value.length && (v.value || (r.value.forEach((w) => n("close", w, P(w))), r.value = []));
649
+ }
650
+ ]
651
+ ] : [], k = lt(U("ul", {
652
+ key: String(o.collapse),
653
+ role: "menubar",
654
+ ref: N,
655
+ style: L.value,
656
+ class: {
657
+ [i.b()]: !0,
658
+ [i.m(o.mode)]: !0,
659
+ [i.m("collapse")]: o.collapse
660
+ }
661
+ }, [...D, ...A]), m);
662
+ return o.collapseTransition && o.mode === "vertical" ? U(Zt, () => k) : k;
663
+ };
664
+ }
665
+ });
666
+ const Kt = Fe({
667
+ index: {
668
+ type: ge([String, null]),
669
+ default: null
670
+ },
671
+ route: {
672
+ type: ge([String, Object])
673
+ },
674
+ disabled: Boolean
675
+ }), en = {
676
+ click: (o) => se(o.index) && tt(o.indexPath)
677
+ }, Se = "ElMenuItem", tn = G({
678
+ name: Se
679
+ }), nn = /* @__PURE__ */ G({
680
+ ...tn,
681
+ props: Kt,
682
+ emits: en,
683
+ setup(o, { expose: n, emit: a }) {
684
+ const t = o;
685
+ pt(t.index) && bt();
686
+ const e = Pe(), s = pe($e), N = ee("menu"), c = ee("menu-item");
687
+ s || Te(Se, "can not inject root menu");
688
+ const { parentMenu: i, indexPath: u } = ct(e, mt(t, "index")), y = pe(`${Ie}${i.value.uid}`);
689
+ y || Te(Se, "can not inject sub menu");
690
+ const g = O(() => t.index === s.activeIndex), r = Be({
691
+ index: t.index,
692
+ indexPath: u,
693
+ active: g
694
+ }), d = () => {
695
+ t.disabled || (s.handleMenuItemClick({
696
+ index: t.index,
697
+ indexPath: u.value,
698
+ route: t.route
699
+ }), a("click", r));
700
+ };
701
+ return ue(() => {
702
+ y.addSubMenu(r), s.addMenuItem(r);
703
+ }), it(() => {
704
+ y.removeSubMenu(r), s.removeMenuItem(r);
705
+ }), n({
706
+ parentMenu: i,
707
+ rootMenu: s,
708
+ active: g,
709
+ nsMenu: N,
710
+ nsMenuItem: c,
711
+ handleClick: d
712
+ }), (p, M) => (S(), R("li", {
713
+ class: de([
714
+ Z(c).b(),
715
+ Z(c).is("active", Z(g)),
716
+ Z(c).is("disabled", p.disabled)
717
+ ]),
718
+ role: "menuitem",
719
+ tabindex: "-1",
720
+ onClick: d
721
+ }, [
722
+ Z(i).type.name === "ElMenu" && Z(s).props.collapse && p.$slots.title ? (S(), Ne(Z(nt), {
723
+ key: 0,
724
+ effect: Z(s).props.popperEffect,
725
+ placement: "right",
726
+ "fallback-placements": ["left"],
727
+ persistent: Z(s).props.persistent,
728
+ "focus-on-target": ""
729
+ }, {
730
+ content: ne(() => [
731
+ K(p.$slots, "title")
732
+ ]),
733
+ default: ne(() => [
734
+ oe("div", {
735
+ class: de(Z(N).be("tooltip", "trigger"))
736
+ }, [
737
+ K(p.$slots, "default")
738
+ ], 2)
739
+ ]),
740
+ _: 3
741
+ }, 8, ["effect", "persistent"])) : (S(), R(ae, { key: 1 }, [
742
+ K(p.$slots, "default"),
743
+ K(p.$slots, "title")
744
+ ], 64))
745
+ ], 2));
746
+ }
747
+ });
748
+ var dt = /* @__PURE__ */ De(nn, [["__file", "menu-item.vue"]]);
749
+ const on = {
750
+ title: String
751
+ }, an = G({
752
+ name: "ElMenuItemGroup"
753
+ }), ln = /* @__PURE__ */ G({
754
+ ...an,
755
+ props: on,
756
+ setup(o) {
757
+ const n = ee("menu-item-group");
758
+ return (a, t) => (S(), R("li", {
759
+ class: de(Z(n).b())
760
+ }, [
761
+ oe("div", {
762
+ class: de(Z(n).e("title"))
763
+ }, [
764
+ a.$slots.title ? K(a.$slots, "title", { key: 1 }) : (S(), R(ae, { key: 0 }, [
765
+ st(re(a.title), 1)
766
+ ], 64))
767
+ ], 2),
768
+ oe("ul", null, [
769
+ K(a.$slots, "default")
770
+ ])
771
+ ], 2));
772
+ }
773
+ });
774
+ var Nt = /* @__PURE__ */ De(ln, [["__file", "menu-item-group.vue"]]);
775
+ const sn = Ke(qt, {
776
+ MenuItem: dt,
777
+ MenuItemGroup: Nt,
778
+ SubMenu: Ve
779
+ }), rn = Qe(dt);
780
+ Qe(Nt);
781
+ Qe(Ve);
782
+ const un = { class: "st-kline-tips" }, cn = { class: "st-kline-tips-row" }, Mn = /* @__PURE__ */ G({
29
783
  __name: "index",
30
784
  props: {
31
785
  // 提示数据
@@ -34,120 +788,120 @@ const Fe = { class: "st-kline-tips" }, Qe = { class: "st-kline-tips-row" }, _e =
34
788
  default: () => []
35
789
  }
36
790
  },
37
- setup(a) {
38
- return (t, i) => (h(), k("div", Fe, [
39
- K("div", Qe, [
40
- (h(!0), k(ae, null, le(a.data, (e) => (h(), k("div", {
791
+ setup(o) {
792
+ return (n, a) => (S(), R("div", un, [
793
+ oe("div", cn, [
794
+ (S(!0), R(ae, null, xe(o.data, (t) => (S(), R("div", {
41
795
  class: "st-kline-tips-row-item",
42
- style: ye({ color: e.color })
43
- }, q(e.label) + " " + q(e.value), 5))), 256))
796
+ style: Re({ color: t.color })
797
+ }, re(t.label) + " " + re(t.value), 5))), 256))
44
798
  ])
45
799
  ]));
46
800
  }
47
801
  });
48
- const se = /* @__PURE__ */ $(_e, [["__scopeId", "data-v-78aed210"]]), Ue = /* @__PURE__ */ Me({
802
+ const Ce = /* @__PURE__ */ ie(Mn, [["__scopeId", "data-v-78aed210"]]), dn = /* @__PURE__ */ G({
49
803
  __name: "index",
50
804
  emits: ["closeContextMenuCallBack"],
51
- setup(a, { emit: t }) {
52
- const i = t, e = S(), n = S(), o = S({
805
+ setup(o, { emit: n }) {
806
+ const a = n, t = E(), e = E(), s = E({
53
807
  display: "none",
54
808
  top: "0px",
55
809
  left: "0px"
56
- }), z = () => {
57
- o.value.display = "none", i("closeContextMenuCallBack"), document.removeEventListener("click", z);
58
- }, s = (l) => {
59
- if (l.preventDefault(), l.stopPropagation(), o.value.display === "block") {
60
- const { offsetX: r, offsetY: j } = l, { offsetWidth: D, offsetHeight: c } = n.value;
61
- if (r <= D && j <= c)
810
+ }), N = () => {
811
+ s.value.display = "none", a("closeContextMenuCallBack"), document.removeEventListener("click", N);
812
+ }, c = (i) => {
813
+ if (i.preventDefault(), i.stopPropagation(), s.value.display === "block") {
814
+ const { offsetX: u, offsetY: y } = i, { offsetWidth: g, offsetHeight: r } = e.value;
815
+ if (u <= g && y <= r)
62
816
  return;
63
817
  }
64
- e.value.click(), o.value = {
818
+ t.value.click(), s.value = {
65
819
  display: "block",
66
- top: `${l.offsetY}px`,
67
- left: `${l.offsetX}px`
68
- }, Ye(() => {
69
- const { bottom: r, height: j, right: D, width: c } = n.value.getBoundingClientRect();
70
- r > window.innerHeight ? o.value = {
820
+ top: `${i.offsetY}px`,
821
+ left: `${i.offsetX}px`
822
+ }, Le(() => {
823
+ const { bottom: u, height: y, right: g, width: r } = e.value.getBoundingClientRect();
824
+ u > window.innerHeight ? s.value = {
71
825
  display: "block",
72
- top: `${l.offsetY - j}px`,
73
- left: `${l.offsetX}px`
74
- } : D > window.innerWidth && (o.value = {
826
+ top: `${i.offsetY - y}px`,
827
+ left: `${i.offsetX}px`
828
+ } : g > window.innerWidth && (s.value = {
75
829
  display: "block",
76
- top: `${l.offsetY}px`,
77
- left: `${l.offsetX - c}px`
830
+ top: `${i.offsetY}px`,
831
+ left: `${i.offsetX - r}px`
78
832
  });
79
- }), document.addEventListener("click", z);
833
+ }), document.addEventListener("click", N);
80
834
  };
81
- return (l, r) => (h(), k("div", {
835
+ return (i, u) => (S(), R("div", {
82
836
  ref_key: "contextmenuRef",
83
- ref: e,
837
+ ref: t,
84
838
  class: "contextmenu",
85
- onContextmenu: s,
86
- onMouseleave: z
839
+ onContextmenu: c,
840
+ onMouseleave: N
87
841
  }, [
88
- De(l.$slots, "default", {}, void 0, !0),
89
- o.value.display !== "none" ? (h(), k("div", {
842
+ K(i.$slots, "default", {}, void 0, !0),
843
+ s.value.display !== "none" ? (S(), R("div", {
90
844
  key: 0,
91
845
  ref_key: "contextmenuContentRef",
92
- ref: n,
846
+ ref: e,
93
847
  class: "contextmenu-popover",
94
- style: ye(o.value)
848
+ style: Re(s.value)
95
849
  }, [
96
- De(l.$slots, "popover", {}, void 0, !0)
97
- ], 4)) : xe("", !0)
850
+ K(i.$slots, "popover", {}, void 0, !0)
851
+ ], 4)) : rt("", !0)
98
852
  ], 544));
99
853
  }
100
854
  });
101
- const Re = /* @__PURE__ */ $(Ue, [["__scopeId", "data-v-249fd104"]]);
102
- let Ie = !1, Le = !0, pe = [];
103
- const fe = (a) => {
104
- const t = [], i = [], e = [], n = [], o = [], z = [];
105
- return a.forEach((s, l) => {
106
- t.push(s[0]), i.push(s[1]), e.push(s[4]), n.push(s[2]), o.push(s[3]), z.push([s[1], s[4], s[3], s[2], Number(s[6]), l === 0 ? s[4] : a[l - 1][4]]);
107
- }), { time: t, open: i, close: e, high: n, low: o, kLineData: z };
108
- }, Be = async () => {
109
- if (!Ie)
110
- Ie = !0, await ve("./talib.wasm"), Le = !1, pe.forEach((a) => {
111
- a();
855
+ const Nn = /* @__PURE__ */ ie(dn, [["__scopeId", "data-v-249fd104"]]);
856
+ let He = !1, Je = !0, Xe = [];
857
+ const qe = (o) => {
858
+ const n = [], a = [], t = [], e = [], s = [], N = [];
859
+ return o.forEach((c, i) => {
860
+ n.push(c[0]), a.push(c[1]), t.push(c[4]), e.push(c[2]), s.push(c[3]), N.push([c[1], c[4], c[3], c[2], Number(c[6]), i === 0 ? c[4] : o[i - 1][4]]);
861
+ }), { time: n, open: a, close: t, high: e, low: s, kLineData: N };
862
+ }, zn = async () => {
863
+ if (!He)
864
+ He = !0, await Dt("./talib.wasm"), Je = !1, Xe.forEach((o) => {
865
+ o();
112
866
  });
113
- else if (Le)
114
- return new Promise((a) => {
115
- pe.push(a);
867
+ else if (Je)
868
+ return new Promise((o) => {
869
+ Xe.push(o);
116
870
  });
117
- }, ne = (a, t) => a.length > t ? a.slice(a.length - t) : a, Ve = (a, t, i) => a.calculationFn ? a.calculationFn(be, t, i) : new Array(t.time.length).fill(null), Pe = async (a, t, i) => {
118
- const e = fe(a);
119
- let n = [];
120
- return n = fe(n), await Be(), {
121
- originData: ne(a, i),
122
- kLine: ne(e.kLineData, i),
123
- time: ne(e.time, i),
124
- indicator: t.config.reduce((o, z) => (o.push({
125
- key: z.key,
126
- color: z.color,
127
- data: ne(Ve(z, e, n), i)
128
- }), o), [])
871
+ }, ye = (o, n) => o.length > n ? o.slice(o.length - n) : o, yn = (o, n, a) => o.calculationFn ? o.calculationFn(Lt, n, a) : new Array(n.time.length).fill(null), jn = async (o, n, a) => {
872
+ const t = qe(o);
873
+ let e = [];
874
+ return e = qe(e), await zn(), {
875
+ originData: ye(o, a),
876
+ kLine: ye(t.kLineData, a),
877
+ time: ye(t.time, a),
878
+ indicator: n.config.reduce((s, N) => (s.push({
879
+ key: N.key,
880
+ color: N.color,
881
+ data: ye(yn(N, t, e), a)
882
+ }), s), [])
129
883
  };
130
- }, ce = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=", ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+", Ne = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", J = (a, t) => {
131
- const { type: i = "log", color: e = "black" } = t ?? {};
132
- localStorage.getItem("st-kline-console-show") === "true" && console[i](`%c${a}`, `color:${e}`);
133
- }, b = (a) => a || a === 0 ? Math.round(a * 1e3) / 1e3 : null, We = (a) => a >= 1e12 ? `${(a / 1e12).toFixed(2)}万亿` : a >= 1e8 ? `${(a / 1e8).toFixed(2)}亿` : a >= 1e4 ? `${(a / 1e4).toFixed(2)}万` : a.toFixed(2), Ze = (a) => {
134
- const { y: t, text: i, info: e, gridLeft: n, gridRight: o, echartsWidth: z, echartsInstance: s } = a, { config: l, event: r } = e;
135
- let j = 0;
884
+ }, be = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=", we = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+", Oe = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", ce = (o, n) => {
885
+ const { type: a = "log", color: t = "black" } = n ?? {};
886
+ localStorage.getItem("st-kline-console-show") === "true" && console[a](`%c${o}`, `color:${t}`);
887
+ }, J = (o) => o || o === 0 ? Math.round(o * 1e3) / 1e3 : null, gn = (o) => o >= 1e12 ? `${(o / 1e12).toFixed(2)}万亿` : o >= 1e8 ? `${(o / 1e8).toFixed(2)}亿` : o >= 1e4 ? `${(o / 1e4).toFixed(2)}万` : o.toFixed(2), pn = (o) => {
888
+ const { y: n, text: a, info: t, gridLeft: e, gridRight: s, echartsWidth: N, echartsInstance: c } = o, { config: i, event: u } = t;
889
+ let y = 0;
136
890
  return {
137
891
  type: "group",
138
- draggable: l.draggable ? "vertical" : !1,
892
+ draggable: i.draggable ? "vertical" : !1,
139
893
  children: [
140
894
  {
141
895
  type: "line",
142
- info: e,
896
+ info: t,
143
897
  shape: {
144
- x1: n,
145
- y1: t,
146
- x2: z - o,
147
- y2: t
898
+ x1: e,
899
+ y1: n,
900
+ x2: N - s,
901
+ y2: n
148
902
  },
149
903
  style: {
150
- stroke: l.lineColor,
904
+ stroke: i.lineColor,
151
905
  lineWidth: 1,
152
906
  lineDash: [8, 4]
153
907
  },
@@ -155,16 +909,16 @@ const fe = (a) => {
155
909
  },
156
910
  {
157
911
  type: "group",
158
- x: z,
159
- y: t - 5,
912
+ x: N,
913
+ y: n - 5,
160
914
  children: [
161
915
  {
162
916
  type: "text",
163
- left: -1 * o,
164
- info: e,
917
+ left: -1 * s,
918
+ info: t,
165
919
  style: {
166
- fill: l.textColor,
167
- text: i,
920
+ fill: i.textColor,
921
+ text: a,
168
922
  stroke: "#000",
169
923
  lineWidth: 1,
170
924
  opacity: 1
@@ -175,70 +929,70 @@ const fe = (a) => {
175
929
  }
176
930
  ],
177
931
  // 事件:鼠标滑入
178
- onmouseover: (D) => {
179
- r.onmouseover instanceof Function && r.onmouseover(D, e);
932
+ onmouseover: (g) => {
933
+ u.onmouseover instanceof Function && u.onmouseover(g, t);
180
934
  },
181
935
  // 事件:鼠标滑出
182
- onmouseout: (D) => {
183
- r.onmouseout instanceof Function && r.onmouseout(D, e);
936
+ onmouseout: (g) => {
937
+ u.onmouseout instanceof Function && u.onmouseout(g, t);
184
938
  },
185
939
  // 事件:开始拖拽
186
- ondragstart: (D) => {
187
- r.ondragstart instanceof Function && l.draggable && (j = D.offsetY, r.ondragstart(D, e));
940
+ ondragstart: (g) => {
941
+ u.ondragstart instanceof Function && i.draggable && (y = g.offsetY, u.ondragstart(g, t));
188
942
  },
189
943
  // 事件:结束拖拽
190
- ondragend: (D) => {
191
- if (r.ondragend instanceof Function && l.draggable) {
192
- const u = D.offsetY - j;
193
- if (u === 0)
944
+ ondragend: (g) => {
945
+ if (u.ondragend instanceof Function && i.draggable) {
946
+ const d = g.offsetY - y;
947
+ if (d === 0)
194
948
  return;
195
- const I = s.convertFromPixel({ yAxisIndex: 0 }, t + u);
196
- r.ondragend(D, e, I);
949
+ const p = c.convertFromPixel({ yAxisIndex: 0 }, n + d);
950
+ u.ondragend(g, t, p);
197
951
  }
198
952
  }
199
953
  };
200
- }, Ge = (a) => {
201
- const { y: t, text: i, info: e, gridLeft: n, gridRight: o, echartsWidth: z, echartsInstance: s } = a, { config: l, event: r } = e;
202
- let j = 0;
203
- const D = (u) => {
204
- let I = null;
205
- u.target.type === "line" ? I = u.target.parent : u.target.type === "tspan" && (I = u.target.parent.parent.parent), I.children()[1].children()[0].animate("style", !1).when(200, { opacity: 1 }).start();
206
- }, c = (u) => {
207
- let I = null;
208
- u.target.type === "line" ? I = u.target.parent : u.target.type === "tspan" && (I = u.target.parent.parent.parent), I.children()[1].children()[0].animate("style", !1).when(200, { opacity: 0 }).start();
954
+ }, fn = (o) => {
955
+ const { y: n, text: a, info: t, gridLeft: e, gridRight: s, echartsWidth: N, echartsInstance: c } = o, { config: i, event: u } = t;
956
+ let y = 0;
957
+ const g = (d) => {
958
+ let p = null;
959
+ d.target.type === "line" ? p = d.target.parent : d.target.type === "tspan" && (p = d.target.parent.parent.parent), p.children()[1].children()[0].animate("style", !1).when(200, { opacity: 1 }).start();
960
+ }, r = (d) => {
961
+ let p = null;
962
+ d.target.type === "line" ? p = d.target.parent : d.target.type === "tspan" && (p = d.target.parent.parent.parent), p.children()[1].children()[0].animate("style", !1).when(200, { opacity: 0 }).start();
209
963
  };
210
964
  return {
211
965
  type: "group",
212
- draggable: l.draggable ? "vertical" : !1,
966
+ draggable: i.draggable ? "vertical" : !1,
213
967
  // 是否支持拖拽
214
968
  children: [
215
969
  {
216
970
  type: "line",
217
- info: e,
971
+ info: t,
218
972
  shape: {
219
- x1: n,
220
- y1: t,
221
- x2: z - o,
222
- y2: t
973
+ x1: e,
974
+ y1: n,
975
+ x2: N - s,
976
+ y2: n
223
977
  },
224
978
  style: {
225
- stroke: l.lineColor,
979
+ stroke: i.lineColor,
226
980
  lineWidth: 1
227
981
  },
228
982
  z: 10
229
983
  },
230
984
  {
231
985
  type: "group",
232
- x: z / 2,
233
- y: t - 5,
986
+ x: N / 2,
987
+ y: n - 5,
234
988
  children: [
235
989
  {
236
990
  type: "text",
237
991
  left: "center",
238
- info: e,
992
+ info: t,
239
993
  style: {
240
- fill: l.textColor,
241
- text: i,
994
+ fill: i.textColor,
995
+ text: a,
242
996
  stroke: "#000",
243
997
  lineWidth: 1,
244
998
  opacity: 0
@@ -250,62 +1004,62 @@ const fe = (a) => {
250
1004
  }
251
1005
  ],
252
1006
  // 事件:鼠标滑入
253
- onmouseover: (u) => {
254
- r.onmouseover instanceof Function ? r.onmouseover(u, e) : D(u);
1007
+ onmouseover: (d) => {
1008
+ u.onmouseover instanceof Function ? u.onmouseover(d, t) : g(d);
255
1009
  },
256
1010
  // 事件:鼠标滑出
257
- onmouseout: (u) => {
258
- r.onmouseout instanceof Function ? r.onmouseout(u, e) : c(u);
1011
+ onmouseout: (d) => {
1012
+ u.onmouseout instanceof Function ? u.onmouseout(d, t) : r(d);
259
1013
  },
260
1014
  // 事件:开始拖拽
261
- ondragstart: (u) => {
262
- r.ondragstart instanceof Function && l.draggable && (j = u.offsetY, r.ondragstart(u, e));
1015
+ ondragstart: (d) => {
1016
+ u.ondragstart instanceof Function && i.draggable && (y = d.offsetY, u.ondragstart(d, t));
263
1017
  },
264
1018
  // 事件:结束拖拽
265
- ondragend: (u) => {
266
- if (r.ondragend instanceof Function && l.draggable) {
267
- const M = u.offsetY - j;
1019
+ ondragend: (d) => {
1020
+ if (u.ondragend instanceof Function && i.draggable) {
1021
+ const M = d.offsetY - y;
268
1022
  if (M === 0)
269
1023
  return;
270
- const p = s.convertFromPixel({ yAxisIndex: 0 }, t + M);
271
- r.ondragend(u, e, p);
1024
+ const x = c.convertFromPixel({ yAxisIndex: 0 }, n + M);
1025
+ u.ondragend(d, t, x);
272
1026
  }
273
1027
  }
274
1028
  };
275
- }, $e = (a) => {
276
- const { y: t, text: i, profitY: e, profitText: n, lossY: o, lossText: z, info: s, gridLeft: l, gridRight: r, echartsWidth: j, echartsInstance: D } = a, { config: c, event: u } = s;
277
- let I = 0, M = null, p = null;
278
- const m = (N, d) => {
279
- var T, x, A, O;
280
- (T = N.children()[2]) == null || T.animate("style", !1).when(200, { opacity: ~~d }).start(), (x = N.children()[3].children()[0]) == null || x.animate("style", !1).when(200, { opacity: ~~d }).start(), (A = N.children()[4]) == null || A.animate("style", !1).when(200, { opacity: ~~d }).start(), (O = N.children()[5].children()[0]) == null || O.animate("style", !1).when(200, { opacity: ~~d }).start();
281
- }, w = (N) => {
282
- let d = null;
283
- N.target.type === "line" ? d = N.target.parent : N.target.type === "tspan" && (d = N.target.parent.parent.parent), M = (T) => {
284
- T.preventDefault(), (T.code === "AltLeft" || T.code === "AltRight") && m(d, !0);
285
- }, p = (T) => {
286
- (T.code === "AltLeft" || T.code === "AltRight") && m(d, !1);
287
- }, window.addEventListener("keydown", M), window.addEventListener("keyup", p);
288
- }, v = (N) => {
289
- let d = null;
290
- N.target.type === "line" ? d = N.target.parent : N.target.type === "tspan" && (d = N.target.parent.parent.parent), m(d, !1), window.removeEventListener("keydown", M), window.removeEventListener("keyup", p);
1029
+ }, Tn = (o) => {
1030
+ const { y: n, text: a, profitY: t, profitText: e, lossY: s, lossText: N, info: c, gridLeft: i, gridRight: u, echartsWidth: y, echartsInstance: g } = o, { config: r, event: d } = c;
1031
+ let p = 0, M = null, x = null;
1032
+ const C = (z, f) => {
1033
+ var I, h, Y, Q;
1034
+ (I = z.children()[2]) == null || I.animate("style", !1).when(200, { opacity: ~~f }).start(), (h = z.children()[3].children()[0]) == null || h.animate("style", !1).when(200, { opacity: ~~f }).start(), (Y = z.children()[4]) == null || Y.animate("style", !1).when(200, { opacity: ~~f }).start(), (Q = z.children()[5].children()[0]) == null || Q.animate("style", !1).when(200, { opacity: ~~f }).start();
1035
+ }, b = (z) => {
1036
+ let f = null;
1037
+ z.target.type === "line" ? f = z.target.parent : z.target.type === "tspan" && (f = z.target.parent.parent.parent), M = (I) => {
1038
+ I.preventDefault(), (I.code === "AltLeft" || I.code === "AltRight") && C(f, !0);
1039
+ }, x = (I) => {
1040
+ (I.code === "AltLeft" || I.code === "AltRight") && C(f, !1);
1041
+ }, window.addEventListener("keydown", M), window.addEventListener("keyup", x);
1042
+ }, F = (z) => {
1043
+ let f = null;
1044
+ z.target.type === "line" ? f = z.target.parent : z.target.type === "tspan" && (f = z.target.parent.parent.parent), C(f, !1), window.removeEventListener("keydown", M), window.removeEventListener("keyup", x);
291
1045
  };
292
1046
  return {
293
1047
  type: "group",
294
- draggable: c.draggable ? "vertical" : !1,
1048
+ draggable: r.draggable ? "vertical" : !1,
295
1049
  // 是否支持拖拽
296
1050
  children: [
297
1051
  // 条件单-主线
298
1052
  {
299
1053
  type: "line",
300
- info: s,
1054
+ info: c,
301
1055
  shape: {
302
- x1: l,
303
- y1: t,
304
- x2: j - r,
305
- y2: t
1056
+ x1: i,
1057
+ y1: n,
1058
+ x2: y - u,
1059
+ y2: n
306
1060
  },
307
1061
  style: {
308
- stroke: c.lineColor,
1062
+ stroke: r.lineColor,
309
1063
  lineWidth: 1
310
1064
  },
311
1065
  z: 10
@@ -313,17 +1067,17 @@ const fe = (a) => {
313
1067
  // 条件单-文本内容
314
1068
  {
315
1069
  type: "group",
316
- x: j / 2,
317
- y: t - 5,
1070
+ x: y / 2,
1071
+ y: n - 5,
318
1072
  children: [
319
1073
  {
320
1074
  type: "text",
321
1075
  left: "center",
322
- info: s,
1076
+ info: c,
323
1077
  style: {
324
- fill: c.textColor,
1078
+ fill: r.textColor,
325
1079
  // 填充色
326
- text: i,
1080
+ text: a,
327
1081
  stroke: "#000",
328
1082
  // 线条颜色
329
1083
  lineWidth: 1,
@@ -337,15 +1091,15 @@ const fe = (a) => {
337
1091
  // 条件单-止盈线
338
1092
  {
339
1093
  type: "line",
340
- info: s,
1094
+ info: c,
341
1095
  shape: {
342
- x1: l,
343
- y1: e,
344
- x2: j - r,
345
- y2: e
1096
+ x1: i,
1097
+ y1: t,
1098
+ x2: y - u,
1099
+ y2: t
346
1100
  },
347
1101
  style: {
348
- stroke: c.profitLineColor,
1102
+ stroke: r.profitLineColor,
349
1103
  lineWidth: 1,
350
1104
  lineDash: [8, 4],
351
1105
  opacity: 0
@@ -355,16 +1109,16 @@ const fe = (a) => {
355
1109
  // 条件单-止盈线文本内容
356
1110
  {
357
1111
  type: "group",
358
- x: j / 2,
359
- y: e - 5,
1112
+ x: y / 2,
1113
+ y: t - 5,
360
1114
  children: [
361
1115
  {
362
1116
  type: "text",
363
1117
  left: "center",
364
- info: s,
1118
+ info: c,
365
1119
  style: {
366
- fill: c.profitTextColor,
367
- text: n,
1120
+ fill: r.profitTextColor,
1121
+ text: e,
368
1122
  stroke: "#000",
369
1123
  lineWidth: 1,
370
1124
  opacity: 0
@@ -376,15 +1130,15 @@ const fe = (a) => {
376
1130
  // 条件单-止损线
377
1131
  {
378
1132
  type: "line",
379
- info: s,
1133
+ info: c,
380
1134
  shape: {
381
- x1: l,
382
- y1: o,
383
- x2: j - r,
384
- y2: o
1135
+ x1: i,
1136
+ y1: s,
1137
+ x2: y - u,
1138
+ y2: s
385
1139
  },
386
1140
  style: {
387
- stroke: c.lossLineColor,
1141
+ stroke: r.lossLineColor,
388
1142
  lineWidth: 1,
389
1143
  lineDash: [8, 4],
390
1144
  opacity: 0
@@ -394,16 +1148,16 @@ const fe = (a) => {
394
1148
  // 条件单-止损线文本内容
395
1149
  {
396
1150
  type: "group",
397
- x: j / 2,
398
- y: o - 5,
1151
+ x: y / 2,
1152
+ y: s - 5,
399
1153
  children: [
400
1154
  {
401
1155
  type: "text",
402
1156
  left: "center",
403
- info: s,
1157
+ info: c,
404
1158
  style: {
405
- fill: c.lossTextColor,
406
- text: z,
1159
+ fill: r.lossTextColor,
1160
+ text: N,
407
1161
  stroke: "#000",
408
1162
  lineWidth: 1,
409
1163
  opacity: 0
@@ -414,205 +1168,205 @@ const fe = (a) => {
414
1168
  }
415
1169
  ],
416
1170
  // 事件:鼠标滑入
417
- onmouseover: (N) => {
418
- u.onmouseover instanceof Function ? u.onmouseover(N, s) : w(N);
1171
+ onmouseover: (z) => {
1172
+ d.onmouseover instanceof Function ? d.onmouseover(z, c) : b(z);
419
1173
  },
420
1174
  // 事件:鼠标滑出
421
- onmouseout: (N) => {
422
- u.onmouseout instanceof Function ? u.onmouseout(N, s) : v(N);
1175
+ onmouseout: (z) => {
1176
+ d.onmouseout instanceof Function ? d.onmouseout(z, c) : F(z);
423
1177
  },
424
1178
  // 事件:开始拖拽
425
- ondragstart: (N) => {
426
- u.ondragstart instanceof Function && c.draggable && (I = N.offsetY, u.ondragstart(N, s));
1179
+ ondragstart: (z) => {
1180
+ d.ondragstart instanceof Function && r.draggable && (p = z.offsetY, d.ondragstart(z, c));
427
1181
  },
428
1182
  // 事件:结束拖拽
429
- ondragend: (N) => {
430
- if (u.ondragend instanceof Function && c.draggable) {
431
- const T = N.offsetY - I;
432
- if (T === 0)
1183
+ ondragend: (z) => {
1184
+ if (d.ondragend instanceof Function && r.draggable) {
1185
+ const I = z.offsetY - p;
1186
+ if (I === 0)
433
1187
  return;
434
- const x = D.convertFromPixel({ yAxisIndex: 0 }, t + T);
435
- u.ondragend(N, s, x);
1188
+ const h = g.convertFromPixel({ yAxisIndex: 0 }, n + I);
1189
+ d.ondragend(z, c, h);
436
1190
  }
437
1191
  }
438
1192
  };
439
- }, ie = (a, t) => {
440
- const { direction: i = "", tradeAction: e = "", tradeType: n = "" } = a;
441
- if (t === "sellBuy") {
442
- const o = n ?? i + e;
1193
+ }, me = (o, n) => {
1194
+ const { direction: a = "", tradeAction: t = "", tradeType: e = "" } = o;
1195
+ if (n === "sellBuy") {
1196
+ const s = e ?? a + t;
443
1197
  return (/* @__PURE__ */ new Map([
444
1198
  ["开多", "买"],
445
1199
  ["平多", "卖"],
446
1200
  ["开空", "卖"],
447
1201
  ["平空", "买"]
448
- ])).get(o);
449
- } else if (t === "openClose")
450
- return n ?? i + e;
451
- }, He = (a, t) => a.reduce((i, e) => {
452
- var j;
453
- const n = ie(e, "sellBuy"), o = a.filter((D) => D.time === e.time);
454
- let z = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": ce, "./images/sell.svg": ue, "./images/t.svg": Ne }))[`./images/${n === "买" ? "buy" : "sell"}.svg`], self.location).href;
455
- o.length > 1 ? [...new Set(o.map((c) => ie(c, "sellBuy")))].length > 1 ? z = "image://" + new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", self.location).href : z = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": ce, "./images/sell.svg": ue, "./images/t.svg": Ne }))[`./images/${n === "买" ? "buy" : "sell"}.svg`], self.location).href : z = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": ce, "./images/sell.svg": ue, "./images/t.svg": Ne }))[`./images/${n === "买" ? "buy" : "sell"}.svg`], self.location).href;
456
- const l = (t.find((D) => D[0] === e.time) ?? [])[2], r = ((j = e == null ? void 0 : e.markLineTarget) == null ? void 0 : j.map((D) => {
457
- const c = e.time, u = l + "", I = D.time, M = t.find((m) => m[0] === D.time), p = M ? M[3] : null;
1202
+ ])).get(s);
1203
+ } else if (n === "openClose")
1204
+ return e ?? a + t;
1205
+ }, In = (o, n) => o.reduce((a, t) => {
1206
+ var y;
1207
+ const e = me(t, "sellBuy"), s = o.filter((g) => g.time === t.time);
1208
+ let N = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": be, "./images/sell.svg": we, "./images/t.svg": Oe }))[`./images/${e === "买" ? "buy" : "sell"}.svg`], self.location).href;
1209
+ s.length > 1 ? [...new Set(s.map((r) => me(r, "sellBuy")))].length > 1 ? N = "image://" + new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", self.location).href : N = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": be, "./images/sell.svg": we, "./images/t.svg": Oe }))[`./images/${e === "买" ? "buy" : "sell"}.svg`], self.location).href : N = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": be, "./images/sell.svg": we, "./images/t.svg": Oe }))[`./images/${e === "买" ? "buy" : "sell"}.svg`], self.location).href;
1210
+ const i = (n.find((g) => g[0] === t.time) ?? [])[2], u = ((y = t == null ? void 0 : t.markLineTarget) == null ? void 0 : y.map((g) => {
1211
+ const r = t.time, d = i + "", p = g.time, M = n.find((C) => C[0] === g.time), x = M ? M[3] : null;
458
1212
  return [
459
1213
  {
460
- coord: [c, u],
461
- lineStyle: D.lineStyle
1214
+ coord: [r, d],
1215
+ lineStyle: g.lineStyle
462
1216
  },
463
1217
  {
464
- coord: [I, p]
1218
+ coord: [p, x]
465
1219
  }
466
1220
  ];
467
1221
  })) ?? null;
468
- return i.push({
469
- symbol: z,
1222
+ return a.push({
1223
+ symbol: N,
470
1224
  // 图标
471
1225
  symbolSize: 25,
472
1226
  // 图标大小
473
1227
  animation: !1,
474
1228
  // 是否展示动画
475
- coord: [e.time + "", l],
1229
+ coord: [t.time + "", i],
476
1230
  // X轴[时间],Y轴[最高价]
477
1231
  symbolRotate: 0,
478
1232
  // 旋转角度
479
1233
  symbolOffset: [0, "-7"],
480
1234
  // 偏移距离
481
- markLineTarget: r
482
- }), i;
483
- }, []), Je = (a, t) => a.reduce((i, e, n) => {
484
- var D;
485
- const o = ie(e, "openClose"), z = o === "开多" || o === "开空" ? "top" : "bottom", s = t.find((c) => c[0] === e.time) ?? [], l = z === "top" ? s[2] : s[3];
486
- let r = 7;
487
- r += a.slice(0, n).filter((c) => {
488
- const u = ie(c, "openClose");
489
- return (u === "开多" || u === "开空" ? "top" : "bottom") === z && c.time === e.time;
1235
+ markLineTarget: u
1236
+ }), a;
1237
+ }, []), mn = (o, n) => o.reduce((a, t, e) => {
1238
+ var g;
1239
+ const s = me(t, "openClose"), N = s === "开多" || s === "开空" ? "top" : "bottom", c = n.find((r) => r[0] === t.time) ?? [], i = N === "top" ? c[2] : c[3];
1240
+ let u = 7;
1241
+ u += o.slice(0, e).filter((r) => {
1242
+ const d = me(r, "openClose");
1243
+ return (d === "开多" || d === "开空" ? "top" : "bottom") === N && r.time === t.time;
490
1244
  }).length * 7;
491
- const j = ((D = e == null ? void 0 : e.markLineTarget) == null ? void 0 : D.map((c) => {
492
- const u = e.time, I = l + "", M = c.time, p = t.find((m) => m[0] === c.time)[3];
1245
+ const y = ((g = t == null ? void 0 : t.markLineTarget) == null ? void 0 : g.map((r) => {
1246
+ const d = t.time, p = i + "", M = r.time, x = n.find((C) => C[0] === r.time)[3];
493
1247
  return [
494
1248
  {
495
- coord: [u, I],
496
- lineStyle: c.lineStyle
1249
+ coord: [d, p],
1250
+ lineStyle: r.lineStyle
497
1251
  },
498
1252
  {
499
- coord: [M, p]
1253
+ coord: [M, x]
500
1254
  }
501
1255
  ];
502
1256
  })) ?? null;
503
- return i.push({
1257
+ return a.push({
504
1258
  symbol: "triangle",
505
1259
  // 图标
506
1260
  symbolSize: [10, 12],
507
1261
  // 图标大小
508
1262
  animation: !1,
509
1263
  // 是否展示动画
510
- coord: [e.time + "", l],
1264
+ coord: [t.time + "", i],
511
1265
  // X轴[时间],Y轴[最高价||最低价]
512
- symbolRotate: z === "top" ? 180 : 0,
1266
+ symbolRotate: N === "top" ? 180 : 0,
513
1267
  //标注旋转角度
514
- symbolOffset: [0, `${z === "top" ? r * -1 : r}`],
1268
+ symbolOffset: [0, `${N === "top" ? u * -1 : u}`],
515
1269
  //标注偏移距离
516
- itemStyle: { color: z === "top" ? "#FF0000" : "#389e0d" },
1270
+ itemStyle: { color: N === "top" ? "#FF0000" : "#389e0d" },
517
1271
  // 图标颜色
518
1272
  // 文本
519
1273
  label: {
520
1274
  show: !0,
521
1275
  // 是否展示
522
- position: z,
1276
+ position: N,
523
1277
  color: "#fff",
524
- formatter: `${o} ${z === "top" ? "+" : "-"} ${e.amount}手 ${e.part ? `(${e.part}份)` : ""}`
1278
+ formatter: `${s} ${N === "top" ? "+" : "-"} ${t.amount}手 ${t.part ? `(${t.part}份)` : ""}`
525
1279
  },
526
- markLineTarget: j
527
- }), i;
528
- }, []), Xe = (a, t) => a.reduce((i, e) => {
529
- const { key: n, data: o } = e;
530
- if (o === null || o.length === 0)
531
- return i;
532
- const s = (/* @__PURE__ */ new Map([
1280
+ markLineTarget: y
1281
+ }), a;
1282
+ }, []), Dn = (o, n) => o.reduce((a, t) => {
1283
+ const { key: e, data: s } = t;
1284
+ if (s === null || s.length === 0)
1285
+ return a;
1286
+ const c = (/* @__PURE__ */ new Map([
533
1287
  // 买卖点
534
1288
  [
535
1289
  "sellBuy",
536
- () => He(o, t)
1290
+ () => In(s, n)
537
1291
  ],
538
1292
  // 开平点
539
1293
  [
540
1294
  "openClose",
541
- () => Je(o, t)
1295
+ () => mn(s, n)
542
1296
  ],
543
1297
  // 信号点
544
1298
  ["signal", () => {
545
1299
  }]
546
- ])).get(n);
547
- return s instanceof Function && i.push(...s()), i;
548
- }, []), ze = async (a, t, i, e, n, o) => {
549
- const { totalBarCount: z, defaultShowBarCount: s, maxValueSpan: l, gridLeft: r, gridTop: j, gridRight: D, gridBottom: c, zoomLock: u } = e, { time: I, kLine: M, originData: p, indicator: m } = await Pe(a, i, z), w = m.map((d) => {
550
- const { key: T, data: x, color: A } = d;
1300
+ ])).get(e);
1301
+ return c instanceof Function && a.push(...c()), a;
1302
+ }, []), ke = async (o, n, a, t, e, s) => {
1303
+ const { totalBarCount: N, defaultShowBarCount: c, maxValueSpan: i, gridLeft: u, gridTop: y, gridRight: g, gridBottom: r, zoomLock: d } = t, { time: p, kLine: M, originData: x, indicator: C } = await jn(o, a, N), b = C.map((f) => {
1304
+ const { key: I, data: h, color: Y } = f;
551
1305
  return {
552
- name: T,
1306
+ name: I,
553
1307
  type: "line",
554
1308
  silent: !0,
555
1309
  symbol: "none",
556
- data: x,
1310
+ data: h,
557
1311
  lineStyle: {
558
1312
  width: 1
559
1313
  },
560
1314
  itemStyle: {
561
- color: A
1315
+ color: Y
562
1316
  }
563
1317
  };
564
- }), v = Xe(t, p);
565
- let N = [];
566
- return v.forEach((d) => {
567
- d.markLineTarget && (N = [...N, ...d.markLineTarget]);
1318
+ }), F = Dn(n, x);
1319
+ let z = [];
1320
+ return F.forEach((f) => {
1321
+ f.markLineTarget && (z = [...z, ...f.markLineTarget]);
568
1322
  }), {
569
1323
  animation: !1,
570
1324
  dataset: {
571
1325
  id: "data",
572
1326
  source: {
573
1327
  klineData: M,
574
- indicatorData: m
1328
+ indicatorData: C
575
1329
  }
576
1330
  },
577
1331
  grid: {
578
- left: `${r}px`,
579
- top: `${j}px`,
580
- right: `${D}px`,
581
- bottom: `${c}px`
1332
+ left: `${u}px`,
1333
+ top: `${y}px`,
1334
+ right: `${g}px`,
1335
+ bottom: `${r}px`
582
1336
  },
583
1337
  tooltip: {
584
1338
  trigger: "axis",
585
1339
  axisPointer: {
586
1340
  type: "cross",
587
1341
  label: {
588
- formatter: (d) => {
589
- const { axisDimension: T, value: x } = d;
590
- return T === "x" ? x : String(b(x));
1342
+ formatter: (f) => {
1343
+ const { axisDimension: I, value: h } = f;
1344
+ return I === "x" ? h : String(J(h));
591
1345
  }
592
1346
  }
593
1347
  },
594
- formatter: (d) => {
595
- let T = null, x = "";
596
- return d.forEach((A) => {
597
- A.seriesName === "资产持仓净值" && A.data !== null && (x += `<div>资产持仓净值: ${A.data}</div>`), A.componentSubType === "candlestick" && t.forEach((O) => {
598
- const { key: E, data: U } = O;
599
- if (E === "sellBuy") {
600
- const F = U.filter((f) => f.time === A.axisValue);
601
- let B = 0, g = 0;
602
- F.forEach((f) => {
603
- f.tradeType === "开多" || f.tradeType === "平空" ? B += f.amount : g += f.amount;
604
- }), B && (x += `<div>买: ${B}</div>`), g && (x += `<div>卖: ${g}</div>`);
1348
+ formatter: (f) => {
1349
+ let I = null, h = "";
1350
+ return f.forEach((Y) => {
1351
+ Y.seriesName === "资产持仓净值" && Y.data !== null && (h += `<div>资产持仓净值: ${Y.data}</div>`), Y.componentSubType === "candlestick" && n.forEach((Q) => {
1352
+ const { key: P, data: V } = Q;
1353
+ if (P === "sellBuy") {
1354
+ const $ = V.filter((v) => v.time === Y.axisValue);
1355
+ let W = 0, T = 0;
1356
+ $.forEach((v) => {
1357
+ v.tradeType === "开多" || v.tradeType === "平空" ? W += v.amount : T += v.amount;
1358
+ }), W && (h += `<div>买: ${W}</div>`), T && (h += `<div>卖: ${T}</div>`);
605
1359
  }
606
- E === "openClose" && U.forEach((F) => {
607
- F.time === A.axisValue && (x += F.tooltip);
1360
+ P === "openClose" && V.forEach(($) => {
1361
+ $.time === Y.axisValue && (h += $.tooltip);
608
1362
  });
609
- }), x && (T = `<div><span style="font-weight: bold;">${A.axisValue}</span>${x}</div>`);
610
- }), T;
1363
+ }), h && (I = `<div><span style="font-weight: bold;">${Y.axisValue}</span>${h}</div>`);
1364
+ }), I;
611
1365
  }
612
1366
  },
613
1367
  xAxis: {
614
1368
  type: "category",
615
- data: I,
1369
+ data: p,
616
1370
  axisLine: {
617
1371
  show: !0
618
1372
  },
@@ -625,7 +1379,7 @@ const fe = (a) => {
625
1379
  },
626
1380
  axisLabel: {
627
1381
  show: !0,
628
- formatter: (d) => d
1382
+ formatter: (f) => f
629
1383
  }
630
1384
  },
631
1385
  yAxis: [
@@ -638,19 +1392,19 @@ const fe = (a) => {
638
1392
  color: "#333"
639
1393
  }
640
1394
  },
641
- min: (d) => {
642
- const { min: T, max: x } = d, A = Math.abs((x - T) / 10);
643
- return T - A;
1395
+ min: (f) => {
1396
+ const { min: I, max: h } = f, Y = Math.abs((h - I) / 10);
1397
+ return I - Y;
644
1398
  },
645
- max: (d) => {
646
- const { min: T, max: x } = d, A = Math.abs((x - T) / 10);
647
- return x + A;
1399
+ max: (f) => {
1400
+ const { min: I, max: h } = f, Y = Math.abs((h - I) / 10);
1401
+ return h + Y;
648
1402
  },
649
1403
  axisLine: {
650
1404
  show: !0
651
1405
  },
652
1406
  axisLabel: {
653
- formatter: (d) => b(d),
1407
+ formatter: (f) => J(f),
654
1408
  showMaxLabel: !1
655
1409
  }
656
1410
  },
@@ -663,9 +1417,9 @@ const fe = (a) => {
663
1417
  {
664
1418
  type: "inside",
665
1419
  xAxisIndex: [0, 0],
666
- zoomLock: u,
667
- maxValueSpan: l,
668
- start: M.length >= s ? (M.length - s) / M.length * 100 : 0,
1420
+ zoomLock: d,
1421
+ maxValueSpan: i,
1422
+ start: M.length >= c ? (M.length - c) / M.length * 100 : 0,
669
1423
  end: 99.99
670
1424
  // startValue: kLine.length >= defaultShowBarCount ? kLine.length - defaultShowBarCount : 0,
671
1425
  // endValue: kLine.length - 1,
@@ -677,13 +1431,13 @@ const fe = (a) => {
677
1431
  type: "candlestick",
678
1432
  data: M,
679
1433
  markPoint: {
680
- data: v
1434
+ data: F
681
1435
  },
682
1436
  markLine: {
683
1437
  position: "middle",
684
1438
  textStyle: { color: "blue", fontSize: 15 },
685
1439
  animation: !1,
686
- data: N,
1440
+ data: z,
687
1441
  lineStyle: {
688
1442
  width: 3,
689
1443
  type: "solid"
@@ -699,11 +1453,11 @@ const fe = (a) => {
699
1453
  },
700
1454
  z: 1
701
1455
  },
702
- ...w,
1456
+ ...b,
703
1457
  {
704
1458
  name: "资产持仓净值",
705
1459
  type: "line",
706
- data: n ?? [],
1460
+ data: e ?? [],
707
1461
  symbol: "none",
708
1462
  yAxisIndex: 1,
709
1463
  connectNulls: !0,
@@ -714,7 +1468,7 @@ const fe = (a) => {
714
1468
  {
715
1469
  name: "二腿相关度",
716
1470
  type: "line",
717
- data: o ?? [],
1471
+ data: s ?? [],
718
1472
  symbol: "none",
719
1473
  yAxisIndex: 1,
720
1474
  connectNulls: !0,
@@ -730,7 +1484,7 @@ const fe = (a) => {
730
1484
  // 显示文字
731
1485
  position: "top",
732
1486
  // 文字位置
733
- formatter: (d) => `相关度: ${d.data[1]}`,
1487
+ formatter: (f) => `相关度: ${f.data[1]}`,
734
1488
  textStyle: {
735
1489
  color: "#FFF",
736
1490
  // 文字颜色
@@ -756,82 +1510,82 @@ const fe = (a) => {
756
1510
  }
757
1511
  }
758
1512
  };
759
- }, Ke = (a, t, i) => {
760
- var D;
761
- const { gridLeft: e, gridRight: n, gridBottom: o, warningConfig: z, positionConfig: s, conditionConfig: l, isOpenDS: r } = t;
762
- let j = [];
763
- if ((D = i == null ? void 0 : i.getModel()) != null && D.getComponent) {
764
- const [c, u] = i.getModel().getComponent("yAxis").axis.scale._extent;
765
- let I = [], M = {}, p = [], m = {}, w = [], v = {};
766
- if (a.forEach(({ key: N, data: d, ...T }) => {
767
- N === "warning" ? (I = d, M = T) : N === "position" ? (p = d, m = T) : N === "condition" && (w = d, v = T);
768
- }), I.length > 0 && (j = I.reduce((N, d) => {
769
- const { value: T, text: x, info: A, config: O } = d;
770
- if (T > u || T < c)
771
- return N;
772
- const E = {
773
- y: i.convertToPixel({ yAxisIndex: 0 }, T),
774
- text: x,
775
- info: { info: A, config: { ...z, ...O }, event: { ...M } },
776
- gridLeft: e,
777
- gridRight: n,
778
- echartsWidth: i.getWidth(),
779
- echartsInstance: i
1513
+ }, Ln = (o, n, a) => {
1514
+ var g;
1515
+ const { gridLeft: t, gridRight: e, gridBottom: s, warningConfig: N, positionConfig: c, conditionConfig: i, isOpenDS: u } = n;
1516
+ let y = [];
1517
+ if ((g = a == null ? void 0 : a.getModel()) != null && g.getComponent) {
1518
+ const [r, d] = a.getModel().getComponent("yAxis").axis.scale._extent;
1519
+ let p = [], M = {}, x = [], C = {}, b = [], F = {};
1520
+ if (o.forEach(({ key: z, data: f, ...I }) => {
1521
+ z === "warning" ? (p = f, M = I) : z === "position" ? (x = f, C = I) : z === "condition" && (b = f, F = I);
1522
+ }), p.length > 0 && (y = p.reduce((z, f) => {
1523
+ const { value: I, text: h, info: Y, config: Q } = f;
1524
+ if (I > d || I < r)
1525
+ return z;
1526
+ const P = {
1527
+ y: a.convertToPixel({ yAxisIndex: 0 }, I),
1528
+ text: h,
1529
+ info: { info: Y, config: { ...N, ...Q }, event: { ...M } },
1530
+ gridLeft: t,
1531
+ gridRight: e,
1532
+ echartsWidth: a.getWidth(),
1533
+ echartsInstance: a
780
1534
  };
781
- return [...N, Ze(E)];
782
- }, j)), p.length > 0 && (j = p.reduce((N, d) => {
783
- const { value: T, text: x, info: A, config: O } = d;
784
- if (T > u || T < c)
785
- return N;
786
- const E = {
787
- y: i.convertToPixel({ yAxisIndex: 0 }, T),
788
- text: x,
789
- info: { info: A, config: { ...s, ...O }, event: { ...m } },
790
- gridLeft: e,
791
- gridRight: n,
792
- echartsWidth: i.getWidth(),
793
- echartsInstance: i
1535
+ return [...z, pn(P)];
1536
+ }, y)), x.length > 0 && (y = x.reduce((z, f) => {
1537
+ const { value: I, text: h, info: Y, config: Q } = f;
1538
+ if (I > d || I < r)
1539
+ return z;
1540
+ const P = {
1541
+ y: a.convertToPixel({ yAxisIndex: 0 }, I),
1542
+ text: h,
1543
+ info: { info: Y, config: { ...c, ...Q }, event: { ...C } },
1544
+ gridLeft: t,
1545
+ gridRight: e,
1546
+ echartsWidth: a.getWidth(),
1547
+ echartsInstance: a
794
1548
  };
795
- return [...N, Ge(E)];
796
- }, j)), w.length > 0 && (j = w.reduce((N, d) => {
797
- const { value: T, text: x, profitValue: A, profitText: O, lossValue: E, lossText: U, info: F, config: B } = d;
798
- if (T > u || T < c)
799
- return N;
800
- const g = {
801
- y: i.convertToPixel({ yAxisIndex: 0 }, T),
802
- text: x,
803
- profitY: i.convertToPixel({ yAxisIndex: 0 }, A),
804
- profitText: O,
805
- lossY: i.convertToPixel({ yAxisIndex: 0 }, E),
806
- lossText: U,
807
- info: { info: F, config: { ...l, ...B }, event: { ...v } },
808
- gridLeft: e,
809
- gridRight: n,
810
- echartsWidth: i.getWidth(),
811
- echartsInstance: i
1549
+ return [...z, fn(P)];
1550
+ }, y)), b.length > 0 && (y = b.reduce((z, f) => {
1551
+ const { value: I, text: h, profitValue: Y, profitText: Q, lossValue: P, lossText: V, info: $, config: W } = f;
1552
+ if (I > d || I < r)
1553
+ return z;
1554
+ const T = {
1555
+ y: a.convertToPixel({ yAxisIndex: 0 }, I),
1556
+ text: h,
1557
+ profitY: a.convertToPixel({ yAxisIndex: 0 }, Y),
1558
+ profitText: Q,
1559
+ lossY: a.convertToPixel({ yAxisIndex: 0 }, P),
1560
+ lossText: V,
1561
+ info: { info: $, config: { ...i, ...W }, event: { ...F } },
1562
+ gridLeft: t,
1563
+ gridRight: e,
1564
+ echartsWidth: a.getWidth(),
1565
+ echartsInstance: a
812
1566
  };
813
- return [...N, $e(g)];
814
- }, j)), r) {
815
- const N = i.getOption(), d = N.dataset[0].source.klineData.slice(
816
- N.dataZoom[0].startValue,
817
- N.dataZoom[0].endValue + 1
818
- ), T = {};
819
- d.forEach((g) => {
820
- T[g[1]] ? T[g[1]] += 1 : T[g[1]] = 1;
1567
+ return [...z, Tn(T)];
1568
+ }, y)), u) {
1569
+ const z = a.getOption(), f = z.dataset[0].source.klineData.slice(
1570
+ z.dataZoom[0].startValue,
1571
+ z.dataZoom[0].endValue + 1
1572
+ ), I = {};
1573
+ f.forEach((T) => {
1574
+ I[T[1]] ? I[T[1]] += 1 : I[T[1]] = 1;
821
1575
  });
822
- const x = d[d.length - 1][1], A = d.reduce((g, f) => g + f[1], 0) / d.length, O = x - A, E = et(d, 1, 50), U = tt(d), F = U ? O / U : 0, B = qe(d, 1, x);
823
- j = [
824
- ...j,
1576
+ const h = f[f.length - 1][1], Y = f.reduce((T, v) => T + v[1], 0) / f.length, Q = h - Y, P = vn(f, 1, 50), V = hn(f), $ = V ? Q / V : 0, W = xn(f, 1, h);
1577
+ y = [
1578
+ ...y,
825
1579
  {
826
1580
  type: "group",
827
1581
  draggable: !1,
828
- children: Object.keys(T).map((g) => ({
1582
+ children: Object.keys(I).map((T) => ({
829
1583
  type: "line",
830
1584
  shape: {
831
- x1: i.getWidth() - n - 100 * T[g],
832
- y1: i.convertToPixel({ yAxisIndex: 0 }, g),
833
- x2: i.getWidth() - n,
834
- y2: i.convertToPixel({ yAxisIndex: 0 }, g)
1585
+ x1: a.getWidth() - e - 100 * I[T],
1586
+ y1: a.convertToPixel({ yAxisIndex: 0 }, T),
1587
+ x2: a.getWidth() - e,
1588
+ y2: a.convertToPixel({ yAxisIndex: 0 }, T)
835
1589
  },
836
1590
  style: {
837
1591
  stroke: "rgb(124,124,124)",
@@ -842,16 +1596,16 @@ const fe = (a) => {
842
1596
  },
843
1597
  {
844
1598
  type: "text",
845
- x: e + 6,
846
- y: i.getHeight() - o - 20,
1599
+ x: t + 6,
1600
+ y: a.getHeight() - s - 20,
847
1601
  style: {
848
1602
  fill: "#FFF",
849
- text: `均值: ${b(A)}    距均值: ${b(
850
- O
851
- )}    中值: ${b(E)}    标准差: ${b(
852
- U
853
- )}    距均值/标准差: ${b(F)}    百分位: ${b(
854
- B
1603
+ text: `均值: ${J(Y)}    距均值: ${J(
1604
+ Q
1605
+ )}    中值: ${J(P)}    标准差: ${J(
1606
+ V
1607
+ )}    距均值/标准差: ${J($)}    百分位: ${J(
1608
+ W
855
1609
  )}%`,
856
1610
  lineWidth: 1,
857
1611
  opacity: 1
@@ -861,43 +1615,43 @@ const fe = (a) => {
861
1615
  ];
862
1616
  }
863
1617
  }
864
- return { elements: j };
865
- }, qe = (a, t, i) => {
866
- const { round: e, add: n, subtract: o, multiply: z, divide: s } = re, l = a.map((j) => j[t]).sort((j, D) => j - D);
867
- let r = 0;
868
- for (let j = 0; j < l.length; j++)
869
- if (l[j] === i) {
870
- r = j;
1618
+ return { elements: y };
1619
+ }, xn = (o, n, a) => {
1620
+ const { round: t, add: e, subtract: s, multiply: N, divide: c } = ve, i = o.map((y) => y[n]).sort((y, g) => y - g);
1621
+ let u = 0;
1622
+ for (let y = 0; y < i.length; y++)
1623
+ if (i[y] === a) {
1624
+ u = y;
871
1625
  break;
872
- } else if (l[j] >= i) {
873
- r = n(j, s(o(l[j + 1], l[j]), l[j]));
1626
+ } else if (i[y] >= a) {
1627
+ u = e(y, c(s(i[y + 1], i[y]), i[y]));
874
1628
  break;
875
1629
  }
876
- return e(s(z(r, 100), a.length + 1));
877
- }, et = (a, t, i) => {
878
- const { round: e, add: n, subtract: o, multiply: z, divide: s } = re, l = a.map((c) => c[t]).sort((c, u) => c - u), r = z(a.length + 1, s(i, 100)), j = Math.floor(r), D = o(r, j);
879
- return e(D === 0 ? l[r] : n(
880
- l[j],
881
- z(
882
- o(
883
- l[j >= a.length - 1 ? j : j + 1],
884
- l[j]
1630
+ return t(c(N(u, 100), o.length + 1));
1631
+ }, vn = (o, n, a) => {
1632
+ const { round: t, add: e, subtract: s, multiply: N, divide: c } = ve, i = o.map((r) => r[n]).sort((r, d) => r - d), u = N(o.length + 1, c(a, 100)), y = Math.floor(u), g = s(u, y);
1633
+ return t(g === 0 ? i[u] : e(
1634
+ i[y],
1635
+ N(
1636
+ s(
1637
+ i[y >= o.length - 1 ? y : y + 1],
1638
+ i[y]
885
1639
  ),
886
- D
1640
+ g
887
1641
  )
888
1642
  ));
889
1643
  };
890
- function tt(a) {
891
- const t = a.map((z) => z[1]), i = t.length;
892
- let e = 0, n = 0;
893
- for (const z of t)
894
- e += z;
895
- const o = e / i;
896
- for (const z of t)
897
- n += Math.pow(z - o, 2);
898
- return Math.sqrt(n / i);
1644
+ function hn(o) {
1645
+ const n = o.map((N) => N[1]), a = n.length;
1646
+ let t = 0, e = 0;
1647
+ for (const N of n)
1648
+ t += N;
1649
+ const s = t / a;
1650
+ for (const N of n)
1651
+ e += Math.pow(N - s, 2);
1652
+ return Math.sqrt(e / a);
899
1653
  }
900
- const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, Mt = /* @__PURE__ */ Me({
1654
+ const Yn = { class: "st-kline" }, An = { class: "st-kline-header" }, Cn = 300, bn = /* @__PURE__ */ G({
901
1655
  __name: "index",
902
1656
  props: {
903
1657
  indicator: {
@@ -949,8 +1703,8 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
949
1703
  default: () => ({})
950
1704
  }
951
1705
  },
952
- setup(a) {
953
- const t = a, i = {
1706
+ setup(o) {
1707
+ const n = o, a = {
954
1708
  totalBarCount: 2e3,
955
1709
  defaultShowBarCount: 200,
956
1710
  preBarCount: 800,
@@ -1003,26 +1757,26 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1003
1757
  zoomLock: !1,
1004
1758
  // 是否启用计算收盘价分布统计功能
1005
1759
  isOpenDS: !1
1006
- }, e = W(() => ({ ...i, ...t.config })), n = S(null), o = S(-1), z = W(() => {
1007
- var g, f;
1008
- if (n.value && ((f = (g = n.value.dataset[0]) == null ? void 0 : g.source) != null && f.klineData[o.value])) {
1009
- const L = n.value.dataset[0].source.klineData[o.value], y = [], { open: Y, heigh: C, low: Q, close: R, business: Z, riseAndFall: G } = e.value.tipsConfig;
1010
- if (Y && y.push({ label: "开", value: L[0], color: "rgb(153, 153, 153)" }), C && y.push({ label: "高", value: L[3], color: "rgb(153, 153, 153)" }), Q && y.push({ label: "低", value: L[2], color: "rgb(153, 153, 153)" }), R && y.push({ label: "收", value: L[1], color: "rgb(153, 153, 153)" }), Z && y.push({ label: "额", value: We(L[4]), color: "rgb(153, 153, 153)" }), G) {
1011
- let P = ((L[1] - L[5]) / L[1] * 100).toFixed(2), _ = +P == 0 ? "white" : +P > 0 ? "red" : "#00ff00";
1012
- y.push({ label: "涨跌", value: `${P}%`, color: _ });
1760
+ }, t = O(() => ({ ...a, ...n.config })), e = E(null), s = E(-1), N = O(() => {
1761
+ var T, v;
1762
+ if (e.value && ((v = (T = e.value.dataset[0]) == null ? void 0 : T.source) != null && v.klineData[s.value])) {
1763
+ const L = e.value.dataset[0].source.klineData[s.value], l = [], { open: j, heigh: D, low: A, close: m, business: k, riseAndFall: w } = t.value.tipsConfig;
1764
+ if (j && l.push({ label: "开", value: L[0], color: "rgb(153, 153, 153)" }), D && l.push({ label: "高", value: L[3], color: "rgb(153, 153, 153)" }), A && l.push({ label: "低", value: L[2], color: "rgb(153, 153, 153)" }), m && l.push({ label: "收", value: L[1], color: "rgb(153, 153, 153)" }), k && l.push({ label: "额", value: gn(L[4]), color: "rgb(153, 153, 153)" }), w) {
1765
+ let B = ((L[1] - L[5]) / L[1] * 100).toFixed(2), _ = +B == 0 ? "white" : +B > 0 ? "red" : "#00ff00";
1766
+ l.push({ label: "涨跌", value: `${B}%`, color: _ });
1013
1767
  }
1014
- return y;
1768
+ return l;
1015
1769
  }
1016
1770
  return [];
1017
- }), s = W(() => {
1018
- var g, f;
1019
- return n.value && ((f = (g = n.value.dataset[0]) == null ? void 0 : g.source) != null && f.indicatorData) ? n.value.dataset[0].source.indicatorData.reduce((L, y) => (y.data[o.value] && L.push({
1020
- label: y.key,
1021
- value: b(y.data[o.value]),
1022
- color: y.color
1771
+ }), c = O(() => {
1772
+ var T, v;
1773
+ return e.value && ((v = (T = e.value.dataset[0]) == null ? void 0 : T.source) != null && v.indicatorData) ? e.value.dataset[0].source.indicatorData.reduce((L, l) => (l.data[s.value] && L.push({
1774
+ label: l.key,
1775
+ value: J(l.data[s.value]),
1776
+ color: l.color
1023
1777
  }), L), []) : [];
1024
- }), l = W(() => {
1025
- const g = [
1778
+ }), i = O(() => {
1779
+ const T = [
1026
1780
  "#FFFFFF",
1027
1781
  "#FFDD00",
1028
1782
  "#FF00FF",
@@ -1034,178 +1788,178 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1034
1788
  "#FB9A0E",
1035
1789
  "#00B7FF"
1036
1790
  ];
1037
- if (t.priceTrendData.length > 0) {
1038
- const f = [];
1039
- return t.priceTrendData.forEach((L, y) => {
1040
- var C;
1041
- (L.data[o.value] ? b(L.data[o.value][1]) : null) !== null && f.push({
1791
+ if (n.priceTrendData.length > 0) {
1792
+ const v = [];
1793
+ return n.priceTrendData.forEach((L, l) => {
1794
+ var D;
1795
+ (L.data[s.value] ? J(L.data[s.value][1]) : null) !== null && v.push({
1042
1796
  label: L.name,
1043
- value: b((C = L.data[o.value]) == null ? void 0 : C[1]),
1044
- color: g[y]
1797
+ value: J((D = L.data[s.value]) == null ? void 0 : D[1]),
1798
+ color: T[l]
1045
1799
  });
1046
- }), f;
1800
+ }), v;
1047
1801
  }
1048
- if (t.priceTrendPercentData.length > 0) {
1049
- const f = [];
1050
- return M.getOption().series.filter((y) => y.name.includes("二腿价格走势百分比图")).forEach((y, Y) => {
1051
- var Q;
1052
- (y.data[o.value] ? b(y.data[o.value][1]) : null) !== null && f.push({
1053
- label: y.name.split("-")[1],
1054
- value: `${b((Q = y.data[o.value]) == null ? void 0 : Q[1])}%`,
1055
- color: g[Y]
1802
+ if (n.priceTrendPercentData.length > 0) {
1803
+ const v = [];
1804
+ return M.getOption().series.filter((l) => l.name.includes("二腿价格走势百分比图")).forEach((l, j) => {
1805
+ var A;
1806
+ (l.data[s.value] ? J(l.data[s.value][1]) : null) !== null && v.push({
1807
+ label: l.name.split("-")[1],
1808
+ value: `${J((A = l.data[s.value]) == null ? void 0 : A[1])}%`,
1809
+ color: T[j]
1056
1810
  });
1057
- }), f;
1811
+ }), v;
1058
1812
  }
1059
1813
  return [];
1060
1814
  });
1061
- H(
1062
- () => [t.klineData, t.indicator, t.markData, t.netPositionData, t.relevanceData],
1815
+ q(
1816
+ () => [n.klineData, n.indicator, n.markData, n.netPositionData, n.relevanceData],
1063
1817
  () => {
1064
- r();
1818
+ u();
1065
1819
  },
1066
1820
  {
1067
1821
  deep: !0
1068
1822
  }
1069
- ), H(
1070
- () => t.lineData,
1823
+ ), q(
1824
+ () => n.lineData,
1071
1825
  async () => {
1072
- J("st-kline组件消息:props.lineData监控,额外画线数据发生改变,重绘->line", {
1826
+ ce("st-kline组件消息:props.lineData监控,额外画线数据发生改变,重绘->line", {
1073
1827
  color: "red"
1074
- }), r("line");
1828
+ }), u("line");
1075
1829
  },
1076
1830
  {
1077
1831
  deep: !0
1078
1832
  }
1079
- ), H(
1080
- () => t.brushRange,
1833
+ ), q(
1834
+ () => n.brushRange,
1081
1835
  async () => {
1082
- J("st-kline组件消息:props.brushRange监控,区域刷选数据发生改变,重绘->brush", {
1836
+ ce("st-kline组件消息:props.brushRange监控,区域刷选数据发生改变,重绘->brush", {
1083
1837
  color: "red"
1084
- }), r("brush");
1838
+ }), u("brush");
1085
1839
  },
1086
1840
  {
1087
1841
  deep: !0
1088
1842
  }
1089
- ), H(
1090
- () => t.priceTrendData,
1843
+ ), q(
1844
+ () => n.priceTrendData,
1091
1845
  async () => {
1092
- r("priceTrend");
1846
+ u("priceTrend");
1093
1847
  },
1094
1848
  {
1095
1849
  deep: !0
1096
1850
  }
1097
- ), H(
1098
- () => t.priceTrendPercentData,
1851
+ ), q(
1852
+ () => n.priceTrendPercentData,
1099
1853
  async () => {
1100
- r("priceTrendPercent");
1854
+ u("priceTrendPercent");
1101
1855
  },
1102
1856
  {
1103
1857
  deep: !0
1104
1858
  }
1105
1859
  );
1106
- const r = async (g) => {
1860
+ const u = async (T) => {
1107
1861
  const L = (/* @__PURE__ */ new Map([
1108
1862
  // kline-K线绘制
1109
1863
  [
1110
1864
  "kline",
1111
1865
  async () => {
1112
- const y = await ze(
1113
- t.klineData,
1114
- t.markData,
1115
- t.indicator,
1116
- e.value,
1117
- t.netPositionData,
1118
- t.relevanceData
1119
- ), { graphic: Y } = M.getOption() ?? { graphic: [] };
1120
- n.value = { ...y, graphic: Y }, M.setOption(n.value, !0), J("st-kline组件消息:K线绘制完毕-draw", { color: "green" });
1866
+ const l = await ke(
1867
+ n.klineData,
1868
+ n.markData,
1869
+ n.indicator,
1870
+ t.value,
1871
+ n.netPositionData,
1872
+ n.relevanceData
1873
+ ), { graphic: j } = M.getOption() ?? { graphic: [] };
1874
+ e.value = { ...l, graphic: j }, M.setOption(e.value, !0), ce("st-kline组件消息:K线绘制完毕-draw", { color: "green" });
1121
1875
  }
1122
1876
  ],
1123
1877
  // line-额外线条绘制
1124
1878
  [
1125
1879
  "line",
1126
1880
  () => {
1127
- const y = M.getOption(), Y = Ke(t.lineData, e.value, M);
1128
- n.value = { ...y, graphic: Y }, M.setOption(n.value, {
1881
+ const l = M.getOption(), j = Ln(n.lineData, t.value, M);
1882
+ e.value = { ...l, graphic: j }, M.setOption(e.value, {
1129
1883
  replaceMerge: ["graphic"]
1130
- }), J("st-kline组件消息:额外画线绘制完毕-draw", { color: "green" });
1884
+ }), ce("st-kline组件消息:额外画线绘制完毕-draw", { color: "green" });
1131
1885
  }
1132
1886
  ],
1133
1887
  // brush-区域刷选
1134
1888
  [
1135
1889
  "brush",
1136
1890
  () => {
1137
- const { brushRange: y } = t;
1138
- y instanceof Array && y.length > 0 && (M.dispatchAction({
1891
+ const { brushRange: l } = n;
1892
+ l instanceof Array && l.length > 0 && (M.dispatchAction({
1139
1893
  type: "brush",
1140
1894
  areas: [
1141
1895
  {
1142
1896
  brushType: "lineX",
1143
- coordRange: [y[0] + "", y[1] + ""],
1897
+ coordRange: [l[0] + "", l[1] + ""],
1144
1898
  xAxisIndex: 0
1145
1899
  }
1146
1900
  ]
1147
- }), J("st-kline组件消息:区域刷选绘制完毕-draw", { color: "green" }));
1901
+ }), ce("st-kline组件消息:区域刷选绘制完毕-draw", { color: "green" }));
1148
1902
  }
1149
1903
  ],
1150
1904
  // 全部绘制
1151
1905
  [
1152
1906
  void 0,
1153
1907
  async () => {
1154
- await r("kline"), await r("line"), await r("priceTrend"), await r("priceTrendPercent"), await r("brush");
1908
+ await u("kline"), await u("line"), await u("priceTrend"), await u("priceTrendPercent"), await u("brush");
1155
1909
  }
1156
1910
  ],
1157
1911
  // history-K线历史数据绘制
1158
1912
  [
1159
1913
  "history",
1160
1914
  async () => {
1161
- const y = M.getOption(), Y = await ze(
1162
- t.klineData,
1163
- t.markData,
1164
- t.indicator,
1165
- e.value,
1166
- t.netPositionData,
1167
- t.relevanceData
1168
- ), C = Y.dataset.source.klineData.length - y.dataset[0].source.klineData.length;
1915
+ const l = M.getOption(), j = await ke(
1916
+ n.klineData,
1917
+ n.markData,
1918
+ n.indicator,
1919
+ t.value,
1920
+ n.netPositionData,
1921
+ n.relevanceData
1922
+ ), D = j.dataset.source.klineData.length - l.dataset[0].source.klineData.length;
1169
1923
  M.setOption(
1170
1924
  {
1171
- ...Y,
1925
+ ...j,
1172
1926
  dataZoom: [
1173
1927
  {
1174
1928
  type: "inside",
1175
1929
  xAxisIndex: [0, 0],
1176
- zoomLock: e.value.zoomLock,
1177
- maxValueSpan: e.value.maxValueSpan,
1178
- startValue: y.dataZoom[0].startValue + C,
1179
- endValue: y.dataZoom[0].endValue + C
1930
+ zoomLock: t.value.zoomLock,
1931
+ maxValueSpan: t.value.maxValueSpan,
1932
+ startValue: l.dataZoom[0].startValue + D,
1933
+ endValue: l.dataZoom[0].endValue + D
1180
1934
  }
1181
1935
  ]
1182
1936
  },
1183
1937
  !0
1184
- ), await r("priceTrend");
1938
+ ), await u("priceTrend");
1185
1939
  }
1186
1940
  ],
1187
1941
  // future-K线后续数据绘制
1188
1942
  [
1189
1943
  "future",
1190
1944
  async () => {
1191
- const y = M.getOption(), Y = await ze(
1192
- t.klineData,
1193
- t.markData,
1194
- t.indicator,
1195
- e.value,
1196
- t.netPositionData,
1197
- t.relevanceData
1945
+ const l = M.getOption(), j = await ke(
1946
+ n.klineData,
1947
+ n.markData,
1948
+ n.indicator,
1949
+ t.value,
1950
+ n.netPositionData,
1951
+ n.relevanceData
1198
1952
  );
1199
- Y.dataZoom[0].start = (t.klineData.length - y.dataZoom[0].endValue + y.dataZoom[0].startValue) / t.klineData.length * 100, M.setOption(Y, !0), await r("priceTrend");
1953
+ j.dataZoom[0].start = (n.klineData.length - l.dataZoom[0].endValue + l.dataZoom[0].startValue) / n.klineData.length * 100, M.setOption(j, !0), await u("priceTrend");
1200
1954
  }
1201
1955
  ],
1202
1956
  // priceTrend-二腿价格趋势绘制
1203
1957
  [
1204
1958
  "priceTrend",
1205
1959
  () => {
1206
- if (t.priceTrendData.length === 0)
1960
+ if (n.priceTrendData.length === 0)
1207
1961
  return;
1208
- const y = M.getOption(), Y = [
1962
+ const l = M.getOption(), j = [
1209
1963
  "#FFFFFF",
1210
1964
  "#FFDD00",
1211
1965
  "#FF00FF",
@@ -1216,16 +1970,16 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1216
1970
  "#FF0000",
1217
1971
  "#FB9A0E",
1218
1972
  "#00B7FF"
1219
- ], C = t.priceTrendData.reduce((Q, R, Z) => {
1220
- const { name: G, data: P } = R, _ = {
1221
- name: `二腿价格走势图-${G}`,
1973
+ ], D = n.priceTrendData.reduce((A, m, k) => {
1974
+ const { name: w, data: B } = m, _ = {
1975
+ name: `二腿价格走势图-${w}`,
1222
1976
  type: "line",
1223
- data: P,
1977
+ data: B,
1224
1978
  symbol: "none",
1225
1979
  yAxisIndex: 1,
1226
1980
  connectNulls: !0,
1227
1981
  itemStyle: {
1228
- color: Y[Z]
1982
+ color: j[k]
1229
1983
  },
1230
1984
  lineStyle: {
1231
1985
  type: "dashed",
@@ -1233,9 +1987,9 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1233
1987
  width: 1
1234
1988
  }
1235
1989
  };
1236
- return Q.push(_), Q;
1990
+ return A.push(_), A;
1237
1991
  }, []);
1238
- n.value = { ...y, series: [...y.series, ...C] }, M.setOption(n.value, {
1992
+ e.value = { ...l, series: [...l.series, ...D] }, M.setOption(e.value, {
1239
1993
  replaceMerge: ["series"]
1240
1994
  });
1241
1995
  }
@@ -1244,9 +1998,9 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1244
1998
  [
1245
1999
  "priceTrendPercent",
1246
2000
  async () => {
1247
- if (t.priceTrendPercentData.length === 0)
2001
+ if (n.priceTrendPercentData.length === 0)
1248
2002
  return;
1249
- const y = M.getOption(), Y = [
2003
+ const l = M.getOption(), j = [
1250
2004
  "#FFFFFF",
1251
2005
  "#FFDD00",
1252
2006
  "#FF00FF",
@@ -1257,16 +2011,16 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1257
2011
  "#FF0000",
1258
2012
  "#FB9A0E",
1259
2013
  "#00B7FF"
1260
- ], C = y.dataZoom[0].startValue, Q = t.priceTrendPercentData.reduce((R, Z, G) => {
1261
- const { name: P, data: _ } = Z, ee = _.length > e.value.totalBarCount ? _.slice(_.length - e.value.totalBarCount) : _, te = ee[C][1], me = ee.map((Te) => [Te[0], (Te[1] - te) / te * 100]), we = {
1262
- name: `二腿价格走势百分比图-${P}`,
2014
+ ], D = l.dataZoom[0].startValue, A = n.priceTrendPercentData.reduce((m, k, w) => {
2015
+ const { name: B, data: _ } = k, H = _.length > t.value.totalBarCount ? _.slice(_.length - t.value.totalBarCount) : _, le = H[D][1], zt = H.map((We) => [We[0], (We[1] - le) / le * 100]), yt = {
2016
+ name: `二腿价格走势百分比图-${B}`,
1263
2017
  type: "line",
1264
- data: me,
2018
+ data: zt,
1265
2019
  symbol: "none",
1266
2020
  yAxisIndex: 1,
1267
2021
  connectNulls: !0,
1268
2022
  itemStyle: {
1269
- color: Y[G]
2023
+ color: j[w]
1270
2024
  },
1271
2025
  lineStyle: {
1272
2026
  type: "dashed",
@@ -1274,155 +2028,155 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1274
2028
  width: 1
1275
2029
  }
1276
2030
  };
1277
- return R.push(we), R;
2031
+ return m.push(yt), m;
1278
2032
  }, []);
1279
- y.series = [...y.series.filter((R) => !R.name.includes("二腿价格走势百分比图")), ...Q], M.setOption(y, !0);
2033
+ l.series = [...l.series.filter((m) => !m.name.includes("二腿价格走势百分比图")), ...A], M.setOption(l, !0);
1280
2034
  }
1281
2035
  ]
1282
- ])).get(g);
2036
+ ])).get(T);
1283
2037
  L instanceof Function && await L();
1284
- }, j = S(!1), D = S([]), c = (g) => {
1285
- const { callBack: f } = g;
1286
- f instanceof Function && f(M, j);
1287
- }, u = () => {
1288
- D.value = t.defaultMenuData;
1289
- }, I = S();
1290
- let M, p;
1291
- const m = (g, f) => {
1292
- var L, y;
1293
- if (g)
1294
- o.value = typeof ((L = g == null ? void 0 : g.batch[0]) == null ? void 0 : L.dataIndex) == "number" ? (y = g == null ? void 0 : g.batch[0]) == null ? void 0 : y.dataIndex : -1;
2038
+ }, y = E(!1), g = E([]), r = (T) => {
2039
+ const { callBack: v } = T;
2040
+ v instanceof Function && v(M, y);
2041
+ }, d = () => {
2042
+ g.value = n.defaultMenuData;
2043
+ }, p = E();
2044
+ let M, x;
2045
+ const C = (T, v) => {
2046
+ var L, l;
2047
+ if (T)
2048
+ s.value = typeof ((L = T == null ? void 0 : T.batch[0]) == null ? void 0 : L.dataIndex) == "number" ? (l = T == null ? void 0 : T.batch[0]) == null ? void 0 : l.dataIndex : -1;
1295
2049
  else {
1296
- const Y = f.getOption();
1297
- Y.dataZoom instanceof Array && (o.value = Y.dataZoom[0].endValue);
2050
+ const j = v.getOption();
2051
+ j.dataZoom instanceof Array && (s.value = j.dataZoom[0].endValue);
1298
2052
  }
1299
2053
  };
1300
- let w = null, v = !1, N = S(!1), d = !1, T = S(!1);
1301
- const x = async (g) => {
1302
- const f = g.batch ? g.batch[0].start * e.value.totalBarCount : g.startValue;
1303
- e.value.dynamicLoadConfig.historyVisible && f <= 100 && !v && !N.value && (v = !0, await e.value.dynamicLoadConfig.historyLoadCallBack(N), await r("history"), v = !1);
1304
- const L = g.batch ? g.batch[0].end === 100 : g.endValue >= t.klineData.length - e.value.preBarCount - 1, y = g.actionIsWheel;
1305
- e.value.dynamicLoadConfig.futureVisible && L && !d && !T.value && !y && (d = !0, await e.value.dynamicLoadConfig.futureLoadCallBack(T), await r("future"), d = !1), clearTimeout(w), w = setTimeout(() => {
1306
- r("line"), r("priceTrendPercent"), clearTimeout(w), w = null;
1307
- }, it);
2054
+ let b = null, F = !1, z = E(!1), f = !1, I = E(!1);
2055
+ const h = async (T) => {
2056
+ const v = T.batch ? T.batch[0].start * t.value.totalBarCount : T.startValue;
2057
+ t.value.dynamicLoadConfig.historyVisible && v <= 100 && !F && !z.value && (F = !0, await t.value.dynamicLoadConfig.historyLoadCallBack(z), await u("history"), F = !1);
2058
+ const L = T.batch ? T.batch[0].end === 100 : T.endValue >= n.klineData.length - t.value.preBarCount - 1, l = T.actionIsWheel;
2059
+ t.value.dynamicLoadConfig.futureVisible && L && !f && !I.value && !l && (f = !0, await t.value.dynamicLoadConfig.futureLoadCallBack(I), await u("future"), f = !1), clearTimeout(b), b = setTimeout(() => {
2060
+ u("line"), u("priceTrendPercent"), clearTimeout(b), b = null;
2061
+ }, Cn);
1308
2062
  };
1309
- let A = null;
1310
- const O = (g) => {
1311
- A = setTimeout(() => {
1312
- var f;
1313
- if (g.componentType === "graphic") {
1314
- const { oncontextmenu: L } = ((f = g.info) == null ? void 0 : f.event) ?? {};
1315
- L instanceof Function && L(g, g.info, D);
2063
+ let Y = null;
2064
+ const Q = (T) => {
2065
+ Y = setTimeout(() => {
2066
+ var v;
2067
+ if (T.componentType === "graphic") {
2068
+ const { oncontextmenu: L } = ((v = T.info) == null ? void 0 : v.event) ?? {};
2069
+ L instanceof Function && L(T, T.info, g);
1316
2070
  }
1317
- clearTimeout(A), A = null;
2071
+ clearTimeout(Y), Y = null;
1318
2072
  });
1319
- }, E = () => {
1320
- M.on("highlight", (g) => {
1321
- m(g, M);
2073
+ }, P = () => {
2074
+ M.on("highlight", (T) => {
2075
+ C(T, M);
1322
2076
  }), M.on("globalout", () => {
1323
- m(null, M);
1324
- }), M.on("contextmenu", (g) => {
1325
- O(g);
1326
- }), M.on("datazoom", (g) => {
1327
- x(g);
2077
+ C(null, M);
2078
+ }), M.on("contextmenu", (T) => {
2079
+ Q(T);
2080
+ }), M.on("datazoom", (T) => {
2081
+ h(T);
1328
2082
  });
1329
- }, U = () => {
2083
+ }, V = () => {
1330
2084
  M.off("highlight"), M.off("globalout"), M.off("contextmenu"), M.off("datazoom");
1331
- }, F = (g) => {
1332
- if (!M || !(g.ctrlKey || t.isSelect))
2085
+ }, $ = (T) => {
2086
+ if (!M || !(T.ctrlKey || n.isSelect))
1333
2087
  return;
1334
- const f = M.getOption();
1335
- let { startValue: L, endValue: y, start: Y, end: C } = f.dataZoom[0];
1336
- const Q = () => {
1337
- L !== 0 && (L = L - 1, y = y - 1, M.dispatchAction({
2088
+ const v = M.getOption();
2089
+ let { startValue: L, endValue: l, start: j, end: D } = v.dataZoom[0];
2090
+ const A = () => {
2091
+ L !== 0 && (L = L - 1, l = l - 1, M.dispatchAction({
1338
2092
  type: "dataZoom",
1339
2093
  startValue: L,
1340
- endValue: y,
1341
- maxValueSpan: e.value.maxValueSpan
2094
+ endValue: l,
2095
+ maxValueSpan: t.value.maxValueSpan
1342
2096
  }));
1343
- }, R = () => {
1344
- if (e.value.dynamicLoadConfig.futureVisible && !d && !T.value)
1345
- L = L + 1, y = y + 1, M.dispatchAction({
2097
+ }, m = () => {
2098
+ if (t.value.dynamicLoadConfig.futureVisible && !f && !I.value)
2099
+ L = L + 1, l = l + 1, M.dispatchAction({
1346
2100
  type: "dataZoom",
1347
2101
  startValue: L,
1348
- endValue: y,
1349
- maxValueSpan: e.value.maxValueSpan
2102
+ endValue: l,
2103
+ maxValueSpan: t.value.maxValueSpan
1350
2104
  });
1351
2105
  else {
1352
- if (y === f.xAxis[0].data.length - 1)
2106
+ if (l === v.xAxis[0].data.length - 1)
1353
2107
  return;
1354
- L = L + 1, y = y + 1, M.dispatchAction({
2108
+ L = L + 1, l = l + 1, M.dispatchAction({
1355
2109
  type: "dataZoom",
1356
2110
  startValue: L,
1357
- endValue: y,
1358
- maxValueSpan: e.value.maxValueSpan
2111
+ endValue: l,
2112
+ maxValueSpan: t.value.maxValueSpan
1359
2113
  });
1360
2114
  }
1361
- }, Z = () => {
1362
- if (y - L < 5)
2115
+ }, k = () => {
2116
+ if (l - L < 5)
1363
2117
  return;
1364
- const ee = Math.floor((o.value - L) / 2) + 1, te = Math.floor((y - o.value) / 2) + 1;
1365
- L = L + ee, y = y - te, M.dispatchAction({
2118
+ const H = Math.floor((s.value - L) / 2) + 1, le = Math.floor((l - s.value) / 2) + 1;
2119
+ L = L + H, l = l - le, M.dispatchAction({
1366
2120
  type: "dataZoom",
1367
2121
  startValue: L,
1368
- endValue: y,
2122
+ endValue: l,
1369
2123
  actionIsWheel: !0,
1370
2124
  // 标记为缩放
1371
- maxValueSpan: e.value.maxValueSpan
2125
+ maxValueSpan: t.value.maxValueSpan
1372
2126
  });
1373
- }, G = () => {
1374
- Y = Y - (C - Y) / 4, M.dispatchAction({
2127
+ }, w = () => {
2128
+ j = j - (D - j) / 4, M.dispatchAction({
1375
2129
  type: "dataZoom",
1376
- start: Y,
1377
- end: C,
2130
+ start: j,
2131
+ end: D,
1378
2132
  actionIsWheel: !0,
1379
2133
  // 标记为缩放
1380
- maxValueSpan: e.value.maxValueSpan
2134
+ maxValueSpan: t.value.maxValueSpan
1381
2135
  });
1382
2136
  }, _ = (/* @__PURE__ */ new Map([
1383
- ["ArrowLeft", Q],
1384
- ["ArrowRight", R],
1385
- ["ArrowUp", Z],
1386
- ["ArrowDown", G]
1387
- ])).get(g.code);
2137
+ ["ArrowLeft", A],
2138
+ ["ArrowRight", m],
2139
+ ["ArrowUp", k],
2140
+ ["ArrowDown", w]
2141
+ ])).get(T.code);
1388
2142
  _ instanceof Function && _();
1389
- }, B = async () => {
1390
- let g = !0;
1391
- M = oe.init(I.value), await r(), D.value = t.defaultMenuData, o.value = M.getOption().dataZoom[0].endValue ?? -1, E(), p = new ResizeObserver(() => {
1392
- if (g) {
1393
- g = null;
2143
+ }, W = async () => {
2144
+ let T = !0;
2145
+ M = fe.init(p.value), await u(), g.value = n.defaultMenuData, s.value = M.getOption().dataZoom[0].endValue ?? -1, P(), x = new ResizeObserver(() => {
2146
+ if (T) {
2147
+ T = null;
1394
2148
  return;
1395
2149
  }
1396
- M.resize(), r("line");
1397
- }), p.observe(I.value), window.addEventListener("keydown", F);
2150
+ M.resize(), u("line");
2151
+ }), x.observe(p.value), window.addEventListener("keydown", $);
1398
2152
  };
1399
- return de(() => {
1400
- B();
1401
- }), ge(() => {
1402
- U(), window.removeEventListener("keydown", F), M.dispose(), p.disconnect(), p = null;
1403
- }), (g, f) => {
1404
- const L = he, y = Ce;
1405
- return h(), k("div", nt, [
1406
- K("div", ot, [
1407
- V(se, { data: z.value }, null, 8, ["data"]),
1408
- V(se, { data: s.value }, null, 8, ["data"]),
1409
- V(se, { data: l.value }, null, 8, ["data"])
2153
+ return ue(() => {
2154
+ W();
2155
+ }), Ue(() => {
2156
+ V(), window.removeEventListener("keydown", $), M.dispose(), x.disconnect(), x = null;
2157
+ }), (T, v) => {
2158
+ const L = rn, l = sn;
2159
+ return S(), R("div", Yn, [
2160
+ oe("div", An, [
2161
+ te(Ce, { data: N.value }, null, 8, ["data"]),
2162
+ te(Ce, { data: c.value }, null, 8, ["data"]),
2163
+ te(Ce, { data: i.value }, null, 8, ["data"])
1410
2164
  ]),
1411
- V(Re, {
2165
+ te(Nn, {
1412
2166
  class: "st-kline-body",
1413
- onCloseContextMenuCallBack: u
2167
+ onCloseContextMenuCallBack: d
1414
2168
  }, {
1415
- popover: X(() => [
1416
- V(y, { class: "menu" }, {
1417
- default: X(() => [
1418
- (h(!0), k(ae, null, le(D.value, (Y) => (h(), Ae(L, {
1419
- key: Y.label,
1420
- index: Y.label,
2169
+ popover: ne(() => [
2170
+ te(l, { class: "menu" }, {
2171
+ default: ne(() => [
2172
+ (S(!0), R(ae, null, xe(g.value, (j) => (S(), Ne(L, {
2173
+ key: j.label,
2174
+ index: j.label,
1421
2175
  class: "menuItem",
1422
- onClick: (C) => c(Y)
2176
+ onClick: (D) => r(j)
1423
2177
  }, {
1424
- default: X(() => [
1425
- Oe(q(Y.label), 1)
2178
+ default: ne(() => [
2179
+ st(re(j.label), 1)
1426
2180
  ]),
1427
2181
  _: 2
1428
2182
  }, 1032, ["index", "onClick"]))), 128))
@@ -1430,11 +2184,11 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1430
2184
  _: 1
1431
2185
  })
1432
2186
  ]),
1433
- default: X(() => [
1434
- K("div", {
2187
+ default: ne(() => [
2188
+ oe("div", {
1435
2189
  ref_key: "echartsRef",
1436
- ref: I,
1437
- class: ke(j.value ? "st-kline-chart cursorPen" : "st-kline-chart")
2190
+ ref: p,
2191
+ class: de(y.value ? "st-kline-chart cursorPen" : "st-kline-chart")
1438
2192
  }, null, 2)
1439
2193
  ]),
1440
2194
  _: 1
@@ -1443,7 +2197,7 @@ const nt = { class: "st-kline" }, ot = { class: "st-kline-header" }, it = 300, M
1443
2197
  };
1444
2198
  }
1445
2199
  });
1446
- const at = /* @__PURE__ */ $(Mt, [["__scopeId", "data-v-57c04894"]]), lt = { class: "kline-tips" }, rt = /* @__PURE__ */ Me({
2200
+ const wn = /* @__PURE__ */ ie(bn, [["__scopeId", "data-v-57c04894"]]), On = { class: "kline-tips" }, kn = /* @__PURE__ */ G({
1447
2201
  __name: "index",
1448
2202
  props: {
1449
2203
  // 提示数据
@@ -1452,21 +2206,21 @@ const at = /* @__PURE__ */ $(Mt, [["__scopeId", "data-v-57c04894"]]), lt = { cla
1452
2206
  require: !0
1453
2207
  }
1454
2208
  },
1455
- setup(a) {
1456
- return (t, i) => (h(), k("div", lt, [
1457
- (h(!0), k(ae, null, le(a.data, (e, n) => (h(), k("div", {
1458
- key: n,
2209
+ setup(o) {
2210
+ return (n, a) => (S(), R("div", On, [
2211
+ (S(!0), R(ae, null, xe(o.data, (t, e) => (S(), R("div", {
2212
+ key: e,
1459
2213
  class: "kline-tips-item",
1460
- style: ye({ color: e.color })
1461
- }, q(e.label) + " " + q(e.value), 5))), 128))
2214
+ style: Re({ color: t.color })
2215
+ }, re(t.label) + " " + re(t.value), 5))), 128))
1462
2216
  ]));
1463
2217
  }
1464
2218
  });
1465
- const je = /* @__PURE__ */ $(rt, [["__scopeId", "data-v-dc7d381b"]]);
1466
- const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
2219
+ const _e = /* @__PURE__ */ ie(kn, [["__scopeId", "data-v-dc7d381b"]]);
2220
+ const En = { class: "klineSub" }, Sn = { class: "klineSub-tips" }, _n = {
1467
2221
  key: 0,
1468
2222
  class: "klineSub-tips-select"
1469
- }, Nt = {
2223
+ }, Fn = {
1470
2224
  __name: "index",
1471
2225
  props: {
1472
2226
  data: { type: Object, require: !0 },
@@ -1477,57 +2231,57 @@ const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
1477
2231
  // 副图指标列表
1478
2232
  },
1479
2233
  emits: ["update:modelValue"],
1480
- setup(a, { expose: t, emit: i }) {
1481
- const { round: e } = re;
1482
- let n, o;
1483
- const z = i, s = a, l = S(), r = W({
2234
+ setup(o, { expose: n, emit: a }) {
2235
+ const { round: t } = ve;
2236
+ let e, s;
2237
+ const N = a, c = o, i = E(), u = O({
1484
2238
  get() {
1485
- return s.modelValue;
2239
+ return c.modelValue;
1486
2240
  },
1487
- set(c) {
1488
- z("update:modelValue", c);
2241
+ set(r) {
2242
+ N("update:modelValue", r);
1489
2243
  }
1490
- }), j = W(() => {
1491
- var I;
1492
- const { data: c, activeIndex: u } = s;
1493
- return ((I = c == null ? void 0 : c.subIndicator) == null ? void 0 : I.map((M) => ({ label: M.key, color: M.color, value: M.data[u] || "-" }))) || [];
2244
+ }), y = O(() => {
2245
+ var p;
2246
+ const { data: r, activeIndex: d } = c;
2247
+ return ((p = r == null ? void 0 : r.subIndicator) == null ? void 0 : p.map((M) => ({ label: M.key, color: M.color, value: M.data[d] || "-" }))) || [];
1494
2248
  });
1495
- de(() => {
1496
- n = oe.init(l.value);
1497
- let c = !0;
1498
- o = new ResizeObserver(() => {
1499
- if (c) {
1500
- c = null;
2249
+ ue(() => {
2250
+ e = fe.init(i.value);
2251
+ let r = !0;
2252
+ s = new ResizeObserver(() => {
2253
+ if (r) {
2254
+ r = null;
1501
2255
  return;
1502
2256
  }
1503
- n.resize();
1504
- }), o.observe(l.value);
1505
- }), ge(() => {
1506
- n.dispose(), o.disconnect(), o = null;
2257
+ e.resize();
2258
+ }), s.observe(i.value);
2259
+ }), Ue(() => {
2260
+ e.dispose(), s.disconnect(), s = null;
1507
2261
  });
1508
- const D = (c, u) => {
1509
- const I = c[u], M = u === 0 ? c[u] : c[u - 1];
1510
- return I[0] === I[1] ? I[0] >= M[1] ? {
2262
+ const g = (r, d) => {
2263
+ const p = r[d], M = d === 0 ? r[d] : r[d - 1];
2264
+ return p[0] === p[1] ? p[0] >= M[1] ? {
1511
2265
  color: "transparent",
1512
2266
  borderColor: "#FF0000"
1513
2267
  } : {
1514
2268
  color: "#00FFFF"
1515
- } : I[1] > I[0] ? {
2269
+ } : p[1] > p[0] ? {
1516
2270
  color: "transparent",
1517
2271
  borderColor: "#FF0000"
1518
2272
  } : {
1519
2273
  color: "#00FFFF"
1520
2274
  };
1521
2275
  };
1522
- return t({
1523
- connect: (c) => {
1524
- oe.connect([c, n]);
2276
+ return n({
2277
+ connect: (r) => {
2278
+ fe.connect([r, e]);
1525
2279
  },
1526
2280
  // 联动
1527
- draw: (c, u) => {
1528
- Ye(() => {
1529
- const { startValue: I, endValue: M, maxValueSpan: p } = c, { leftYAxisRange: m, rightYAxisRange: w } = s.data.subIndicator[0], v = s.data.subIndicator.map((N) => {
1530
- if (N.series === "bar")
2281
+ draw: (r, d) => {
2282
+ Le(() => {
2283
+ const { startValue: p, endValue: M, maxValueSpan: x } = r, { leftYAxisRange: C, rightYAxisRange: b } = c.data.subIndicator[0], F = c.data.subIndicator.map((z) => {
2284
+ if (z.series === "bar")
1531
2285
  return {
1532
2286
  name: "subMain",
1533
2287
  xAxisIndex: 0,
@@ -1535,53 +2289,53 @@ const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
1535
2289
  type: "bar",
1536
2290
  silent: !0,
1537
2291
  symbol: "none",
1538
- data: N.data.map((d, T) => N.seriesColor === "kline" ? {
1539
- value: d,
1540
- itemStyle: D(s.data.data, T)
1541
- } : N.seriesColor === "value" ? {
1542
- value: d,
2292
+ data: z.data.map((f, I) => z.seriesColor === "kline" ? {
2293
+ value: f,
2294
+ itemStyle: g(c.data.data, I)
2295
+ } : z.seriesColor === "value" ? {
2296
+ value: f,
1543
2297
  itemStyle: {
1544
- color: d >= 0 ? "#FF0000" : "#00FFFF"
2298
+ color: f >= 0 ? "#FF0000" : "#00FFFF"
1545
2299
  }
1546
2300
  } : {
1547
- value: d,
2301
+ value: f,
1548
2302
  itemStyle: {
1549
- color: N.seriesColor
2303
+ color: z.seriesColor
1550
2304
  }
1551
2305
  })
1552
2306
  };
1553
- if (N.series === "line")
2307
+ if (z.series === "line")
1554
2308
  return {
1555
2309
  xAxisIndex: 0,
1556
- yAxisIndex: N.yAxis === "right" ? 2 : 1,
1557
- name: N.key,
2310
+ yAxisIndex: z.yAxis === "right" ? 2 : 1,
2311
+ name: z.key,
1558
2312
  type: "line",
1559
2313
  silent: !0,
1560
2314
  symbol: "none",
1561
- data: N.data,
2315
+ data: z.data,
1562
2316
  lineStyle: {
1563
2317
  width: 1
1564
2318
  },
1565
2319
  itemStyle: {
1566
- color: N.color
2320
+ color: z.color
1567
2321
  }
1568
2322
  };
1569
2323
  });
1570
- n.setOption(
2324
+ e.setOption(
1571
2325
  {
1572
2326
  animation: !1,
1573
2327
  grid: {
1574
- left: `${u.gridLeft}px`,
2328
+ left: `${d.gridLeft}px`,
1575
2329
  top: "10px",
1576
- right: `${u.gridRight}px`,
2330
+ right: `${d.gridRight}px`,
1577
2331
  bottom: "20px"
1578
2332
  },
1579
2333
  dataZoom: [
1580
2334
  {
1581
2335
  type: "inside",
1582
- startValue: I,
2336
+ startValue: p,
1583
2337
  endValue: M,
1584
- maxValueSpan: p
2338
+ maxValueSpan: x
1585
2339
  }
1586
2340
  ],
1587
2341
  tooltip: {
@@ -1592,12 +2346,12 @@ const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
1592
2346
  type: "cross",
1593
2347
  label: {
1594
2348
  rich: {},
1595
- formatter: (N) => {
1596
- const { axisDimension: d, value: T } = N;
1597
- if (d === "x")
1598
- return T;
1599
- if (N.axisIndex === 1)
1600
- return String(e(T));
2349
+ formatter: (z) => {
2350
+ const { axisDimension: f, value: I } = z;
2351
+ if (f === "x")
2352
+ return I;
2353
+ if (z.axisIndex === 1)
2354
+ return String(t(I));
1601
2355
  }
1602
2356
  }
1603
2357
  },
@@ -1605,7 +2359,7 @@ const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
1605
2359
  },
1606
2360
  xAxis: {
1607
2361
  type: "category",
1608
- data: s.data.time,
2362
+ data: c.data.time,
1609
2363
  axisLine: {
1610
2364
  show: !0
1611
2365
  },
@@ -1614,7 +2368,7 @@ const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
1614
2368
  },
1615
2369
  axisLabel: {
1616
2370
  show: !0,
1617
- formatter: (N) => N
2371
+ formatter: (z) => z
1618
2372
  }
1619
2373
  },
1620
2374
  yAxis: [
@@ -1623,8 +2377,8 @@ const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
1623
2377
  },
1624
2378
  {
1625
2379
  position: "left",
1626
- min: m === "cover" ? (N) => N.min : null,
1627
- max: m === "cover" ? (N) => N.max : null,
2380
+ min: C === "cover" ? (z) => z.min : null,
2381
+ max: C === "cover" ? (z) => z.max : null,
1628
2382
  splitNumber: 1,
1629
2383
  axisLine: {
1630
2384
  show: !0
@@ -1639,8 +2393,8 @@ const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
1639
2393
  },
1640
2394
  {
1641
2395
  position: "right",
1642
- min: w === "cover" ? (N) => N.min : null,
1643
- max: w === "cover" ? (N) => N.max : null,
2396
+ min: b === "cover" ? (z) => z.min : null,
2397
+ max: b === "cover" ? (z) => z.max : null,
1644
2398
  splitNumber: 1,
1645
2399
  axisLine: {
1646
2400
  show: !1
@@ -1653,47 +2407,47 @@ const st = { class: "klineSub" }, ct = { class: "klineSub-tips" }, ut = {
1653
2407
  }
1654
2408
  }
1655
2409
  ],
1656
- series: v
2410
+ series: F
1657
2411
  },
1658
2412
  !0
1659
2413
  );
1660
2414
  });
1661
2415
  }
1662
2416
  // 重置
1663
- }), (c, u) => {
1664
- const I = Ee, M = Se;
1665
- return h(), k("div", st, [
1666
- K("div", ct, [
1667
- j.value.length ? (h(), k("div", ut, [
1668
- V(M, {
1669
- modelValue: r.value,
1670
- "onUpdate:modelValue": u[0] || (u[0] = (p) => r.value = p),
2417
+ }), (r, d) => {
2418
+ const p = St, M = _t;
2419
+ return S(), R("div", En, [
2420
+ oe("div", Sn, [
2421
+ y.value.length ? (S(), R("div", _n, [
2422
+ te(M, {
2423
+ modelValue: u.value,
2424
+ "onUpdate:modelValue": d[0] || (d[0] = (x) => u.value = x),
1671
2425
  size: "small",
1672
2426
  "popper-class": "element-dark",
1673
2427
  class: "element-dark subIndicator"
1674
2428
  }, {
1675
- default: X(() => [
1676
- (h(!0), k(ae, null, le(a.subIndicatorList, (p) => (h(), Ae(I, {
1677
- key: p.value,
1678
- label: p.label,
1679
- value: p.value
2429
+ default: ne(() => [
2430
+ (S(!0), R(ae, null, xe(o.subIndicatorList, (x) => (S(), Ne(p, {
2431
+ key: x.value,
2432
+ label: x.label,
2433
+ value: x.value
1680
2434
  }, null, 8, ["label", "value"]))), 128))
1681
2435
  ]),
1682
2436
  _: 1
1683
2437
  }, 8, ["modelValue"])
1684
- ])) : xe("", !0),
1685
- V(je, { data: j.value }, null, 8, ["data"])
2438
+ ])) : rt("", !0),
2439
+ te(_e, { data: y.value }, null, 8, ["data"])
1686
2440
  ]),
1687
- K("div", {
2441
+ oe("div", {
1688
2442
  class: "klineSub-chart",
1689
2443
  ref_key: "subChartRef",
1690
- ref: l
2444
+ ref: i
1691
2445
  }, null, 512)
1692
2446
  ]);
1693
2447
  };
1694
2448
  }
1695
- }, zt = /* @__PURE__ */ $(Nt, [["__scopeId", "data-v-aba58678"]]);
1696
- const jt = { class: "kline-tips" }, yt = {
2449
+ }, Qn = /* @__PURE__ */ ie(Fn, [["__scopeId", "data-v-aba58678"]]);
2450
+ const Pn = { class: "kline-tips" }, Bn = {
1697
2451
  __name: "index",
1698
2452
  props: {
1699
2453
  // 提示数据
@@ -1706,140 +2460,140 @@ const jt = { class: "kline-tips" }, yt = {
1706
2460
  require: !0
1707
2461
  }
1708
2462
  },
1709
- setup(a) {
1710
- const { round: t, formatValue: i } = re, e = a, n = W(() => {
1711
- const { data: z, activeIndex: s } = e;
1712
- if (z.data && z.data[s]) {
1713
- const l = z.data[s], r = [
1714
- { label: "开", value: l[0] },
1715
- { label: "高", value: l[3] },
1716
- { label: "低", value: l[2] },
1717
- { label: "收", value: l[1] }
2463
+ setup(o) {
2464
+ const { round: n, formatValue: a } = ve, t = o, e = O(() => {
2465
+ const { data: N, activeIndex: c } = t;
2466
+ if (N.data && N.data[c]) {
2467
+ const i = N.data[c], u = [
2468
+ { label: "开", value: i[0] },
2469
+ { label: "高", value: i[3] },
2470
+ { label: "低", value: i[2] },
2471
+ { label: "收", value: i[1] }
1718
2472
  ];
1719
- l[4] !== null && r.push({ label: "额", value: i(l[4]) });
1720
- let j;
1721
- return l[6] > 0 ? j = "red" : l[6] < 0 && (j = "green"), r.push({ label: "涨跌", value: `${t(l[6])}%`, color: j }), r;
2473
+ i[4] !== null && u.push({ label: "额", value: a(i[4]) });
2474
+ let y;
2475
+ return i[6] > 0 ? y = "red" : i[6] < 0 && (y = "green"), u.push({ label: "涨跌", value: `${n(i[6])}%`, color: y }), u;
1722
2476
  }
1723
2477
  return [];
1724
- }), o = W(() => {
1725
- var l;
1726
- const { data: z, activeIndex: s } = e;
1727
- return ((l = z == null ? void 0 : z.mainIndicator) == null ? void 0 : l.map((r) => ({ label: r.key, value: t(r.data[s]), color: r.color }))) || [];
2478
+ }), s = O(() => {
2479
+ var i;
2480
+ const { data: N, activeIndex: c } = t;
2481
+ return ((i = N == null ? void 0 : N.mainIndicator) == null ? void 0 : i.map((u) => ({ label: u.key, value: n(u.data[c]), color: u.color }))) || [];
1728
2482
  });
1729
- return (z, s) => (h(), k("div", jt, [
1730
- V(je, { data: n.value }, null, 8, ["data"]),
1731
- V(je, { data: o.value }, null, 8, ["data"])
2483
+ return (N, c) => (S(), R("div", Pn, [
2484
+ te(_e, { data: e.value }, null, 8, ["data"]),
2485
+ te(_e, { data: s.value }, null, 8, ["data"])
1732
2486
  ]));
1733
2487
  }
1734
- }, dt = /* @__PURE__ */ $(yt, [["__scopeId", "data-v-09ec31e8"]]), gt = {
2488
+ }, Rn = /* @__PURE__ */ ie(Bn, [["__scopeId", "data-v-09ec31e8"]]), Un = {
1735
2489
  __name: "index",
1736
- setup(a, { expose: t }) {
1737
- return t({
2490
+ setup(o, { expose: n }) {
2491
+ return n({
1738
2492
  // 键盘事件处理
1739
- handleKeyDown: (i, e) => {
1740
- let { startValue: n, endValue: o, maxIndex: z } = e;
1741
- if (i.code === "ArrowLeft") {
1742
- if (n === 0)
2493
+ handleKeyDown: (a, t) => {
2494
+ let { startValue: e, endValue: s, maxIndex: N } = t;
2495
+ if (a.code === "ArrowLeft") {
2496
+ if (e === 0)
1743
2497
  return;
1744
- n = n - 1, o = o - 1;
1745
- } else if (i.code === "ArrowRight") {
1746
- if (o === z)
2498
+ e = e - 1, s = s - 1;
2499
+ } else if (a.code === "ArrowRight") {
2500
+ if (s === N)
1747
2501
  return;
1748
- n = n + 1, o = o + 1;
1749
- } else if (i.code === "ArrowUp") {
1750
- if (o - n < 5)
2502
+ e = e + 1, s = s + 1;
2503
+ } else if (a.code === "ArrowUp") {
2504
+ if (s - e < 5)
1751
2505
  return;
1752
- const s = Math.floor((o - n) / 2) + 1;
1753
- n = n + s, o - n < 5 && (n = o - 4);
1754
- } else if (i.code === "ArrowDown") {
1755
- const s = Math.min(500, o - n);
1756
- n = n - s - 1;
2506
+ const c = Math.floor((s - e) / 2) + 1;
2507
+ e = e + c, s - e < 5 && (e = s - 4);
2508
+ } else if (a.code === "ArrowDown") {
2509
+ const c = Math.min(500, s - e);
2510
+ e = e - c - 1;
1757
2511
  }
1758
2512
  return {
1759
- startValue: n,
1760
- endValue: o
2513
+ startValue: e,
2514
+ endValue: s
1761
2515
  };
1762
2516
  },
1763
2517
  // 合并数据
1764
- mergeData: (i, e) => ({
1765
- time: [...i.time, ...e.time.slice(1)],
1766
- data: [...i.data, ...e.data.slice(1)],
1767
- mainIndicator: i.mainIndicator.map((n, o) => ({
1768
- ...n,
1769
- data: [...n.data, ...e.mainIndicator[o].data.slice(1)]
2518
+ mergeData: (a, t) => ({
2519
+ time: [...a.time, ...t.time.slice(1)],
2520
+ data: [...a.data, ...t.data.slice(1)],
2521
+ mainIndicator: a.mainIndicator.map((e, s) => ({
2522
+ ...e,
2523
+ data: [...e.data, ...t.mainIndicator[s].data.slice(1)]
1770
2524
  })),
1771
- subIndicator: i.subIndicator.map((n, o) => ({
1772
- ...n,
1773
- data: [...n.data, ...e.subIndicator[o].data.slice(1)]
2525
+ subIndicator: a.subIndicator.map((e, s) => ({
2526
+ ...e,
2527
+ data: [...e.data, ...t.subIndicator[s].data.slice(1)]
1774
2528
  }))
1775
2529
  }),
1776
2530
  // 根据时间解析dataZoom
1777
- getDataZoomInfoByTime: (i) => {
1778
- const { showStartTime: e, showEndTime: n, maxShowDays: o } = i;
1779
- let z = -1, s = -1, l = {};
1780
- return i.time.forEach((r, j) => {
1781
- const D = r.split(" ")[0];
1782
- l[D] = l[D] || 0, l[D] += 1, z === -1 && new Date(r) >= new Date(e) && (z = j), s === -1 && new Date(r) >= new Date(n) && (s = j);
1783
- }), s = s === -1 ? i.time.length - 1 : s, {
1784
- startValue: z,
1785
- endValue: s,
1786
- maxValueSpan: Math.max(...Object.values(l)) * o
2531
+ getDataZoomInfoByTime: (a) => {
2532
+ const { showStartTime: t, showEndTime: e, maxShowDays: s } = a;
2533
+ let N = -1, c = -1, i = {};
2534
+ return a.time.forEach((u, y) => {
2535
+ const g = u.split(" ")[0];
2536
+ i[g] = i[g] || 0, i[g] += 1, N === -1 && new Date(u) >= new Date(t) && (N = y), c === -1 && new Date(u) >= new Date(e) && (c = y);
2537
+ }), c = c === -1 ? a.time.length - 1 : c, {
2538
+ startValue: N,
2539
+ endValue: c,
2540
+ maxValueSpan: Math.max(...Object.values(i)) * s
1787
2541
  };
1788
2542
  }
1789
- }), (i, e) => null;
2543
+ }), (a, t) => null;
1790
2544
  }
1791
2545
  };
1792
- const Tt = {
2546
+ const $n = {
1793
2547
  __name: "index",
1794
2548
  props: {
1795
2549
  data: { type: Array, default: () => [] }
1796
2550
  // 时间数据
1797
2551
  },
1798
2552
  emits: ["change"],
1799
- setup(a, { expose: t, emit: i }) {
1800
- let e, n, o = null;
1801
- const z = i, s = a, l = S();
1802
- H(
1803
- () => s.data,
2553
+ setup(o, { expose: n, emit: a }) {
2554
+ let t, e, s = null;
2555
+ const N = a, c = o, i = E();
2556
+ q(
2557
+ () => c.data,
1804
2558
  () => {
1805
- D();
2559
+ g();
1806
2560
  },
1807
2561
  { deep: !0 }
1808
- ), de(() => {
1809
- e = oe.init(l.value), r(), D();
1810
- let c = !0;
1811
- n = new ResizeObserver(() => {
1812
- if (c) {
1813
- c = null;
2562
+ ), ue(() => {
2563
+ t = fe.init(i.value), u(), g();
2564
+ let r = !0;
2565
+ e = new ResizeObserver(() => {
2566
+ if (r) {
2567
+ r = null;
1814
2568
  return;
1815
2569
  }
1816
- e.resize();
1817
- }), n.observe(l.value);
1818
- }), ge(() => {
1819
- e.off("datazoom"), e.dispose(), n.disconnect(), n = null;
2570
+ t.resize();
2571
+ }), e.observe(i.value);
2572
+ }), Ue(() => {
2573
+ t.off("datazoom"), t.dispose(), e.disconnect(), e = null;
1820
2574
  });
1821
- const r = () => {
1822
- e.on("datazoom", (c) => {
1823
- c.dataZoomId && (clearTimeout(o), o = setTimeout(() => {
1824
- const { data: u } = s, { start: I, end: M } = c, p = Math.floor(I * u.length / 100), m = M === 100 ? u.length - 1 : Math.floor(M * u.length / 100);
1825
- j(p, m), clearTimeout(o);
2575
+ const u = () => {
2576
+ t.on("datazoom", (r) => {
2577
+ r.dataZoomId && (clearTimeout(s), s = setTimeout(() => {
2578
+ const { data: d } = c, { start: p, end: M } = r, x = Math.floor(p * d.length / 100), C = M === 100 ? d.length - 1 : Math.floor(M * d.length / 100);
2579
+ y(x, C), clearTimeout(s);
1826
2580
  }, 100));
1827
2581
  });
1828
- }, j = (c, u) => {
1829
- const I = s.data;
1830
- if (I.length === 0)
2582
+ }, y = (r, d) => {
2583
+ const p = c.data;
2584
+ if (p.length === 0)
1831
2585
  return;
1832
- const M = I[c][0].split(" ")[0], p = I[u][0].split(" ")[0];
1833
- z("change", {
2586
+ const M = p[r][0].split(" ")[0], x = p[d][0].split(" ")[0];
2587
+ N("change", {
1834
2588
  startTime: `${M} 00:00:00`,
1835
- endTime: `${p} 24:00:00`
2589
+ endTime: `${x} 24:00:00`
1836
2590
  });
1837
- }, D = () => {
1838
- const { data: c } = s;
1839
- if (c.length === 0)
2591
+ }, g = () => {
2592
+ const { data: r } = c;
2593
+ if (r.length === 0)
1840
2594
  return;
1841
- const u = c.map((M) => M[0].split(" ")[0]), I = c.map((M) => M[1]);
1842
- e.setOption({
2595
+ const d = r.map((M) => M[0].split(" ")[0]), p = r.map((M) => M[1]);
2596
+ t.setOption({
1843
2597
  grid: {
1844
2598
  height: 0,
1845
2599
  left: "80px",
@@ -1847,7 +2601,7 @@ const Tt = {
1847
2601
  },
1848
2602
  xAxis: {
1849
2603
  type: "category",
1850
- data: u,
2604
+ data: d,
1851
2605
  show: !1
1852
2606
  },
1853
2607
  yAxis: {
@@ -1855,24 +2609,24 @@ const Tt = {
1855
2609
  },
1856
2610
  series: [
1857
2611
  {
1858
- data: I,
2612
+ data: p,
1859
2613
  type: "line"
1860
2614
  }
1861
2615
  ]
1862
2616
  }, !0);
1863
2617
  };
1864
- return t({
1865
- resetSlide: (c, u, I) => {
1866
- let M = -1, p = -1;
1867
- s.data.forEach((m, w) => {
1868
- M === -1 && m[0] === c ? M = w : M === -1 && new Date(m[0]) > new Date(c) && (M = w - 1), (p === -1 && m[0] === u || p === -1 && new Date(m[0]) > new Date(u)) && (p = w);
1869
- }), p = p === -1 ? s.data.length - 1 : p, e.setOption({
2618
+ return n({
2619
+ resetSlide: (r, d, p) => {
2620
+ let M = -1, x = -1;
2621
+ c.data.forEach((C, b) => {
2622
+ M === -1 && C[0] === r ? M = b : M === -1 && new Date(C[0]) > new Date(r) && (M = b - 1), (x === -1 && C[0] === d || x === -1 && new Date(C[0]) > new Date(d)) && (x = b);
2623
+ }), x = x === -1 ? c.data.length - 1 : x, t.setOption({
1870
2624
  dataZoom: [
1871
2625
  {
1872
2626
  show: !0,
1873
2627
  startValue: M,
1874
- endValue: p,
1875
- maxValueSpan: I,
2628
+ endValue: x,
2629
+ maxValueSpan: p,
1876
2630
  textStyle: {
1877
2631
  color: "#ccc"
1878
2632
  }
@@ -1880,27 +2634,27 @@ const Tt = {
1880
2634
  {
1881
2635
  type: "inside",
1882
2636
  startValue: M,
1883
- endValue: p,
1884
- maxValueSpan: I
2637
+ endValue: x,
2638
+ maxValueSpan: p
1885
2639
  }
1886
2640
  ]
1887
2641
  });
1888
2642
  },
1889
2643
  // 重置
1890
2644
  resize: () => {
1891
- e == null || e.resize();
2645
+ t == null || t.resize();
1892
2646
  }
1893
- }), (c, u) => (h(), k("div", {
2647
+ }), (r, d) => (S(), R("div", {
1894
2648
  class: "klineSlide",
1895
2649
  ref_key: "slideChartRef",
1896
- ref: l
2650
+ ref: i
1897
2651
  }, null, 512));
1898
2652
  }
1899
- }, Dt = /* @__PURE__ */ $(Tt, [["__scopeId", "data-v-7a2f3dd0"]]), Zt = {
1900
- install(a) {
1901
- a.component("st-kline", at), a.component("st-kline-sub-new", zt), a.component("st-kline-tips-new", dt), a.component("st-kline-slide-new", Dt), a.component("st-kline-utils-new", gt);
2653
+ }, Vn = /* @__PURE__ */ ie($n, [["__scopeId", "data-v-7a2f3dd0"]]), Io = {
2654
+ install(o) {
2655
+ o.component("st-kline", wn), o.component("st-kline-sub-new", Qn), o.component("st-kline-tips-new", Rn), o.component("st-kline-slide-new", Vn), o.component("st-kline-utils-new", Un);
1902
2656
  }
1903
2657
  };
1904
2658
  export {
1905
- Zt as default
2659
+ Io as default
1906
2660
  };