st-comp 0.0.207 → 0.0.208

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 (160) hide show
  1. package/es/ChartLayout.cjs +1 -1
  2. package/es/ChartLayout.js +1 -74
  3. package/es/CustomFunction.cjs +1 -1
  4. package/es/CustomFunction.js +53 -56
  5. package/es/FactorWarning.cjs +1 -1
  6. package/es/FactorWarning.js +45 -48
  7. package/es/HeatMap.cjs +1 -1
  8. package/es/HeatMap.js +1 -118
  9. package/es/Kline.cjs +1 -1
  10. package/es/Kline.js +16 -19
  11. package/es/KlineBasic.cjs +1 -1
  12. package/es/KlineBasic.js +81 -84
  13. package/es/KlineConfig.cjs +1 -1
  14. package/es/KlineConfig.js +161 -164
  15. package/es/KlineNew.cjs +1 -1
  16. package/es/KlineNew.js +15 -18
  17. package/es/KlinePlus.cjs +1 -1
  18. package/es/KlinePlus.js +18 -21
  19. package/es/Pagination.cjs +1 -1
  20. package/es/Pagination.js +140 -143
  21. package/es/PasswordPrompt.cjs +1 -1
  22. package/es/PasswordPrompt.js +2 -3
  23. package/es/Table.cjs +1 -1
  24. package/es/Table.js +55 -58
  25. package/es/User.cjs +1 -1
  26. package/es/User.js +85 -88
  27. package/es/VarSelectDialog.cjs +2 -2
  28. package/es/VarSelectDialog.js +53 -56
  29. package/es/VarietyAutoComplete.cjs +1 -1
  30. package/es/VarietyAutoComplete.js +15 -17
  31. package/es/VarietySearch.cjs +10 -10
  32. package/es/VarietySearch.js +53 -56
  33. package/es/VarietyTextCopy.cjs +3 -3
  34. package/es/VarietyTextCopy.js +33 -36
  35. package/es/VirtualTable.cjs +1 -1
  36. package/es/VirtualTable.js +103 -106
  37. package/es/{_initCloneObject-eaef9418.js → _initCloneObject-c477c74d.js} +25 -26
  38. package/es/_initCloneObject-e660897e.cjs +1 -0
  39. package/es/base-7ba08794.cjs +5 -0
  40. package/es/{index-a871c3eb.js → base-aa512893.js} +454 -171
  41. package/es/{castArray-7741a212.js → castArray-1eb17278.js} +1 -1
  42. package/es/castArray-efa457a5.cjs +1 -0
  43. package/es/{config-provider-a584d81e.cjs → config-provider-18c0a68a.cjs} +1 -1
  44. package/es/{config-provider-b16efd62.js → config-provider-49c17381.js} +6 -6
  45. package/es/{debounce-8d53f4dd.js → debounce-33406a0d.js} +9 -9
  46. package/es/debounce-4aa22feb.cjs +1 -0
  47. package/es/{dropdown-071c5d7e.cjs → dropdown-3f1fe325.cjs} +1 -1
  48. package/es/{dropdown-a59bba73.js → dropdown-6e7b1df0.js} +15 -15
  49. package/es/el-autocomplete-609ac86d.cjs +1 -0
  50. package/es/{el-autocomplete-ba808eb6.js → el-autocomplete-87b7f461.js} +51 -53
  51. package/es/el-button-08310c06.cjs +1 -0
  52. package/es/{el-button-c95adb85.js → el-button-56624e61.js} +45 -46
  53. package/es/{el-checkbox-c25236a6.cjs → el-checkbox-09f3b57f.cjs} +1 -1
  54. package/es/{el-checkbox-7421ccd3.js → el-checkbox-f13560e9.js} +40 -40
  55. package/es/{el-dialog-41ab8417.js → el-dialog-1d5f5877.js} +9 -10
  56. package/es/el-dialog-ea480083.cjs +1 -0
  57. package/es/{el-divider-4e059794.js → el-divider-1cda1783.js} +1 -1
  58. package/es/{el-divider-4713d74c.cjs → el-divider-8a4c87e3.cjs} +1 -1
  59. package/es/{el-empty-33cb66f1.js → el-empty-04682b5d.js} +3 -3
  60. package/es/el-empty-b40fa7ea.cjs +1 -0
  61. package/es/el-form-item-338ea2f7.cjs +12 -0
  62. package/es/{el-form-item-c53c374d.js → el-form-item-505c0b70.js} +75 -76
  63. package/es/{el-input-2f75c4ba.js → el-input-262851e8.js} +84 -85
  64. package/es/el-input-b04b5bfc.cjs +1 -0
  65. package/es/el-input-number-7242c8b5.cjs +1 -0
  66. package/es/{el-input-number-5193fe6d.js → el-input-number-fdac2b86.js} +82 -83
  67. package/es/{el-loading-cfd86c15.cjs → el-loading-3cf7b796.cjs} +1 -1
  68. package/es/{el-loading-f6022062.js → el-loading-7440dc64.js} +2 -2
  69. package/es/{el-menu-item-7e881203.js → el-menu-item-36c3004c.js} +53 -54
  70. package/es/el-menu-item-7aca344e.cjs +1 -0
  71. package/es/el-message-05cd85bf.cjs +1 -0
  72. package/es/{el-message-e544a8f5.js → el-message-416bd265.js} +28 -29
  73. package/es/{el-message-box-a93d2f6a.js → el-message-box-8f5e34ca.js} +20 -22
  74. package/es/el-message-box-b7e9917e.cjs +1 -0
  75. package/es/{el-overlay-09ad71cd.js → el-overlay-04426e36.js} +52 -53
  76. package/es/el-overlay-60bc5a02.cjs +1 -0
  77. package/es/el-popconfirm-24b622c5.cjs +1 -0
  78. package/es/{el-popconfirm-81dcd202.js → el-popconfirm-3790cda2.js} +38 -39
  79. package/es/el-popper-1dd8f5b4.cjs +1 -0
  80. package/es/{el-popper-b4f97157.js → el-popper-49152708.js} +191 -192
  81. package/es/{el-segmented-b868d074.js → el-segmented-05509f9d.js} +12 -13
  82. package/es/el-segmented-a928d89b.cjs +1 -0
  83. package/es/el-select-5fd77a96.cjs +1 -0
  84. package/es/{el-select-95627997.js → el-select-700f3686.js} +292 -295
  85. package/es/{el-table-column-376cd907.js → el-table-column-44360700.js} +54 -57
  86. package/es/el-table-column-bf3ab2a6.cjs +14 -0
  87. package/es/{el-tag-66cab138.js → el-tag-55a172c9.js} +30 -31
  88. package/es/el-tag-d59f3463.cjs +1 -0
  89. package/es/{el-text-c20a9f48.cjs → el-text-5bcaffb6.cjs} +1 -1
  90. package/es/{el-text-ac60d0f2.js → el-text-ab6bfc40.js} +4 -4
  91. package/es/{index-1f7d4f70.js → index-0afedcbd.js} +11 -12
  92. package/es/{index-88546436.js → index-29418a8d.js} +18 -18
  93. package/es/index-3d0bc5da.js +566 -0
  94. package/es/{index-57672682.js → index-4e46f96c.js} +12 -13
  95. package/es/{index-844bdd85.js → index-66ad0d6a.js} +34 -34
  96. package/es/{index-f967d6c1.cjs → index-882d77d3.cjs} +1 -1
  97. package/es/index-a206f6eb.cjs +1 -0
  98. package/es/{index-298075cf.cjs → index-ae6c9d97.cjs} +1 -1
  99. package/es/index-b4700d83.cjs +1 -0
  100. package/es/index-c30cf7f9.cjs +1 -0
  101. package/es/{index-d91dc23f.js → index-cbbd78b4.js} +12 -12
  102. package/es/{index-11547a0c.cjs → index-d8294b1a.cjs} +1 -1
  103. package/es/{raf-8249652f.cjs → raf-336ef01e.cjs} +1 -1
  104. package/es/raf-d8c44079.js +6 -0
  105. package/es/{scroll-679bd6bf.js → scroll-0a48995c.js} +5 -5
  106. package/es/{scroll-b108dabd.cjs → scroll-19533c53.cjs} +1 -1
  107. package/es/style.css +1 -1
  108. package/es/use-form-common-props-41182853.cjs +1 -0
  109. package/es/use-form-common-props-4cdda474.js +671 -0
  110. package/es/use-global-config-7bfbe48c.js +71 -0
  111. package/es/use-global-config-dc5527e8.cjs +1 -0
  112. package/es/{validator-1b8a6128.cjs → validator-28b22907.cjs} +1 -1
  113. package/es/{validator-764a9db0.js → validator-e35f7978.js} +1 -1
  114. package/es/{vnode-b906ae6d.cjs → vnode-8cb31692.cjs} +1 -1
  115. package/es/{vnode-5ddb7ed1.js → vnode-b62d0045.js} +1 -1
  116. package/es/{zh-cn-e963c628.js → zh-cn-346f3a73.js} +2 -2
  117. package/es/{zh-cn-90317f62.cjs → zh-cn-7c8640bb.cjs} +1 -1
  118. package/lib/bundle.js +1 -1
  119. package/lib/bundle.umd.cjs +1 -1
  120. package/lib/{index-f27d8c7a.js → index-da0f2951.js} +3 -3
  121. package/lib/{python-c345f0e2.js → python-c0a1e4ef.js} +1 -1
  122. package/lib/style.css +1 -1
  123. package/package.json +1 -1
  124. package/packages/KlineBasic/components/KlineTips/index.vue +1 -1
  125. package/es/_initCloneObject-52b6a510.cjs +0 -1
  126. package/es/base-a5af3db3.js +0 -288
  127. package/es/base-ef747d02.cjs +0 -5
  128. package/es/castArray-35947698.cjs +0 -1
  129. package/es/debounce-62f5b6e8.cjs +0 -1
  130. package/es/el-autocomplete-a07e9439.cjs +0 -1
  131. package/es/el-button-eec58cff.cjs +0 -1
  132. package/es/el-dialog-ae86edb8.cjs +0 -1
  133. package/es/el-empty-1697ded8.cjs +0 -1
  134. package/es/el-form-item-c3fe189b.cjs +0 -12
  135. package/es/el-input-7fd293af.cjs +0 -1
  136. package/es/el-input-number-22e21d16.cjs +0 -1
  137. package/es/el-menu-item-17dc717e.cjs +0 -1
  138. package/es/el-message-5e6a6be9.cjs +0 -1
  139. package/es/el-message-box-c10adb52.cjs +0 -1
  140. package/es/el-overlay-9e34965f.cjs +0 -1
  141. package/es/el-popconfirm-70a976bf.cjs +0 -1
  142. package/es/el-popper-b6c99b28.cjs +0 -1
  143. package/es/el-segmented-f8fce9ac.cjs +0 -1
  144. package/es/el-select-d8d91db1.cjs +0 -1
  145. package/es/el-table-column-c974cb96.cjs +0 -14
  146. package/es/el-tag-a33c4b22.cjs +0 -1
  147. package/es/index-098c2447.cjs +0 -1
  148. package/es/index-960806da.js +0 -314
  149. package/es/index-9780a537.cjs +0 -1
  150. package/es/index-9b9ef5dd.cjs +0 -1
  151. package/es/index-bb833443.cjs +0 -1
  152. package/es/index-c108567d.cjs +0 -1
  153. package/es/index-d77a7336.js +0 -204
  154. package/es/index-e5566b94.js +0 -368
  155. package/es/index-f3562b52.cjs +0 -1
  156. package/es/raf-80ef0c0a.js +0 -6
  157. package/es/use-form-common-props-815d48a6.js +0 -364
  158. package/es/use-form-common-props-fd9b61a0.cjs +0 -1
  159. package/es/use-global-config-30d7d8ce.cjs +0 -1
  160. package/es/use-global-config-b5e9d3d5.js +0 -72
@@ -1,46 +1,43 @@
1
- import "./base-a5af3db3.js";
2
- import { z as re, E as ne } from "./zh-cn-e963c628.js";
3
- import { E as ue } from "./el-dialog-41ab8417.js";
4
- import "./el-overlay-09ad71cd.js";
5
- import "./el-tag-66cab138.js";
1
+ import { e as R, E as re } from "./base-aa512893.js";
2
+ import { z as ne, E as ue } from "./zh-cn-346f3a73.js";
3
+ import { E as se } from "./el-dialog-1d5f5877.js";
4
+ import "./el-overlay-04426e36.js";
5
+ import "./el-tag-55a172c9.js";
6
6
  import "./el-tooltip-4ed993c7.js";
7
- import { E as se } from "./el-popper-b4f97157.js";
8
- import { E as ie, a as ce } from "./el-table-column-376cd907.js";
9
- import { E as de, a as me } from "./el-checkbox-7421ccd3.js";
7
+ import { E as ie } from "./el-popper-49152708.js";
8
+ import { E as ce, a as de } from "./el-table-column-44360700.js";
9
+ import { E as me, a as fe } from "./el-checkbox-f13560e9.js";
10
10
  import "./el-scrollbar-323542e7.js";
11
- import { E as fe } from "./el-popconfirm-81dcd202.js";
11
+ import { E as pe } from "./el-popconfirm-3790cda2.js";
12
12
  import "./el-popover-4ed993c7.js";
13
- import { E as pe } from "./el-button-c95adb85.js";
14
- import { a as ye, E as ve } from "./el-form-item-c53c374d.js";
15
- import { E as _e } from "./el-input-2f75c4ba.js";
16
- import { E as be } from "./el-text-ac60d0f2.js";
17
- import { E as he } from "./el-input-number-5193fe6d.js";
13
+ import { E as ye } from "./el-button-56624e61.js";
14
+ import { a as ve, E as _e } from "./el-form-item-505c0b70.js";
15
+ import { E as be } from "./el-input-262851e8.js";
16
+ import { E as he } from "./el-text-ab6bfc40.js";
17
+ import { E as ge } from "./el-input-number-fdac2b86.js";
18
18
  import "./el-checkbox-group-4ed993c7.js";
19
- import { E as ge } from "./el-segmented-b868d074.js";
20
- import { mergeModels as R, ref as x, useModel as ke, watch as Ce, openBlock as o, createElementBlock as d, createVNode as a, unref as k, withCtx as l, createElementVNode as f, normalizeClass as Te, toDisplayString as C, createTextVNode as m, createBlock as p, createCommentVNode as y, Fragment as S, renderList as N, pushScopeId as we, popScopeId as xe } from "vue";
21
- import { i as j, E as Se } from "./index-a871c3eb.js";
19
+ import { E as ke } from "./el-segmented-05509f9d.js";
20
+ import { mergeModels as j, ref as x, useModel as Ce, watch as Te, openBlock as o, createElementBlock as d, createVNode as a, unref as k, withCtx as l, createElementVNode as f, normalizeClass as we, toDisplayString as C, createTextVNode as m, createBlock as p, createCommentVNode as y, Fragment as S, renderList as N, pushScopeId as xe, popScopeId as Se } from "vue";
22
21
  import { G as Ee } from "./index-7ed0999e.js";
23
- import { _ as Ve } from "./_plugin-vue_export-helper-dad06003.js";
24
- import { E as Ne } from "./el-message-box-a93d2f6a.js";
25
- import { E as Fe } from "./index-57672682.js";
26
- import "./config-provider-b16efd62.js";
27
- import "./use-global-config-b5e9d3d5.js";
28
- import "./use-form-common-props-815d48a6.js";
29
- import "./index-960806da.js";
30
- import "./index-d77a7336.js";
31
- import "./index-e5566b94.js";
22
+ import { E as Ve } from "./el-message-box-8f5e34ca.js";
23
+ import { _ as Ne } from "./_plugin-vue_export-helper-dad06003.js";
24
+ import { E as Fe } from "./index-4e46f96c.js";
25
+ import "./config-provider-49c17381.js";
26
+ import "./use-global-config-7bfbe48c.js";
27
+ import "./use-form-common-props-4cdda474.js";
28
+ import "./index-3d0bc5da.js";
32
29
  import "./index-2e331d74.js";
33
- import "./vnode-5ddb7ed1.js";
34
- import "./scroll-679bd6bf.js";
35
- import "./index-844bdd85.js";
36
- import "./_initCloneObject-eaef9418.js";
37
- import "./castArray-7741a212.js";
38
- import "./debounce-8d53f4dd.js";
39
- import "./raf-80ef0c0a.js";
30
+ import "./vnode-b62d0045.js";
31
+ import "./scroll-0a48995c.js";
32
+ import "./index-66ad0d6a.js";
33
+ import "./_initCloneObject-c477c74d.js";
34
+ import "./castArray-1eb17278.js";
35
+ import "./debounce-33406a0d.js";
36
+ import "./raf-d8c44079.js";
40
37
  import "./index-657047bb.js";
41
38
  import "./typescript-7ae59c4c.js";
42
- import "./index-d91dc23f.js";
43
- import "./validator-764a9db0.js";
39
+ import "./index-cbbd78b4.js";
40
+ import "./validator-e35f7978.js";
44
41
  const Le = {
45
42
  // 表单字段
46
43
  ruleFormPrice: !0,
@@ -57,7 +54,7 @@ const Le = {
57
54
  tableEnable: !0
58
55
  // 启用按钮
59
56
  };
60
- const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-factorWarning" }, De = { class: "custom-header" }, Pe = /* @__PURE__ */ P(() => /* @__PURE__ */ f("span", { style: { "margin-right": "4px" } }, "因子预警", -1)), $e = { class: "factor-name" }, ze = ["onClick"], Me = { class: "factor-name" }, Ue = ["onClick"], Be = { style: { display: "flex", "align-items": "start" } }, Ie = {
57
+ const P = (n) => (xe("data-v-b2d15520"), n = n(), Se(), n), Oe = { class: "st-factorWarning" }, De = { class: "custom-header" }, Pe = /* @__PURE__ */ P(() => /* @__PURE__ */ f("span", { style: { "margin-right": "4px" } }, "因子预警", -1)), $e = { class: "factor-name" }, ze = ["onClick"], Me = { class: "factor-name" }, Ue = ["onClick"], Be = { style: { display: "flex", "align-items": "start" } }, Ie = {
61
58
  key: 0,
62
59
  style: { flex: "1" }
63
60
  }, qe = /* @__PURE__ */ P(() => /* @__PURE__ */ f("span", { style: { margin: "0 5px" } }, "~", -1)), Ae = {
@@ -71,7 +68,7 @@ const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-fa
71
68
  class: "empty"
72
69
  }, Xe = { class: "shortcut-title" }, Ye = /* @__PURE__ */ P(() => /* @__PURE__ */ f("span", null, "新增配置", -1)), Ze = { class: "custom-footer" }, et = {
73
70
  __name: "index",
74
- props: /* @__PURE__ */ R({
71
+ props: /* @__PURE__ */ j({
75
72
  // 弹窗名称
76
73
  title: { type: [String, null], default: null },
77
74
  // 因子数据
@@ -89,9 +86,9 @@ const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-fa
89
86
  visible: { default: !1 },
90
87
  visibleModifiers: {}
91
88
  }),
92
- emits: /* @__PURE__ */ R(["add", "delete", "enabled", "closed", "shortcutAdd", "shortcutDelete"], ["update:visible"]),
89
+ emits: /* @__PURE__ */ j(["add", "delete", "enabled", "closed", "shortcutAdd", "shortcutDelete"], ["update:visible"]),
93
90
  setup(n, { emit: J }) {
94
- const T = x("ruleForm"), F = ke(n, "visible"), E = J, L = n, V = Object.assign(Le, L.showConfig), O = x(null), r = x({
91
+ const T = x("ruleForm"), F = Ce(n, "visible"), E = J, L = n, V = Object.assign(Le, L.showConfig), O = x(null), r = x({
95
92
  factorType: 1,
96
93
  factorSelectedList: [],
97
94
  totalCount: 1,
@@ -199,13 +196,13 @@ const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-fa
199
196
  }, Q = (c) => {
200
197
  u.value = JSON.parse(c.data);
201
198
  }, X = (c) => {
202
- Ne.confirm(`是否确认删除配置: ${c.shortcutName} ?`, "删除提示", {
199
+ Ve.confirm(`是否确认删除配置: ${c.shortcutName} ?`, "删除提示", {
203
200
  confirmButtonText: "确认",
204
201
  cancelButtonText: "取消",
205
202
  type: "warning"
206
203
  }).then(() => E("shortcutDelete", c));
207
204
  };
208
- return Ce(
205
+ return Te(
209
206
  () => F.value,
210
207
  (c) => {
211
208
  c && (T.value = L.allowOperation ? "ruleForm" : "table", D());
@@ -214,9 +211,9 @@ const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-fa
214
211
  immediate: !0
215
212
  }
216
213
  ), (c, t) => {
217
- const h = ge, s = pe, i = ye, v = de, b = me, g = he, Y = be, B = _e, I = ve, w = ie, Z = fe, ee = ce, q = Se, A = se, te = Fe, le = ue, ae = ne;
214
+ const h = ke, s = ye, i = ve, v = me, b = fe, g = ge, Y = he, B = be, I = _e, w = ce, Z = pe, ee = de, q = re, A = ie, te = Fe, le = se, ae = ue;
218
215
  return o(), d("div", Oe, [
219
- a(ae, { locale: k(re) }, {
216
+ a(ae, { locale: k(ne) }, {
220
217
  default: l(() => [
221
218
  a(le, {
222
219
  modelValue: F.value,
@@ -229,7 +226,7 @@ const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-fa
229
226
  header: l(({ close: e, titleId: _, titleClass: z }) => [
230
227
  f("div", De, [
231
228
  f("div", {
232
- class: Te(z)
229
+ class: we(z)
233
230
  }, [
234
231
  Pe,
235
232
  f("span", null, C(n.title), 1)
@@ -578,7 +575,7 @@ const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-fa
578
575
  default: l(() => [
579
576
  a(q, null, {
580
577
  default: l(() => [
581
- a(k(j))
578
+ a(k(R))
582
579
  ]),
583
580
  _: 1
584
581
  })
@@ -611,7 +608,7 @@ const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-fa
611
608
  default: l(() => [
612
609
  a(q, null, {
613
610
  default: l(() => [
614
- a(k(j))
611
+ a(k(R))
615
612
  ]),
616
613
  _: 1
617
614
  })
@@ -732,11 +729,11 @@ const P = (n) => (we("data-v-b2d15520"), n = n(), xe(), n), Oe = { class: "st-fa
732
729
  ]);
733
730
  };
734
731
  }
735
- }, tt = /* @__PURE__ */ Ve(et, [["__scopeId", "data-v-b2d15520"]]), Jt = {
732
+ }, tt = /* @__PURE__ */ Ne(et, [["__scopeId", "data-v-b2d15520"]]), At = {
736
733
  install(n) {
737
734
  n.component("st-factorWarning", tt);
738
735
  }
739
736
  };
740
737
  export {
741
- Jt as default
738
+ At as default
742
739
  };
package/es/HeatMap.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const a=require("vue"),g=require("echarts"),v=require("./_plugin-vue_export-helper-f246444f.cjs");function y(e){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(c,n,o.get?o:{enumerable:!0,get:()=>e[n]})}}return c.default=e,Object.freeze(c)}const x=y(g),h=a.defineComponent({__name:"index",props:{data:{type:Object,default:()=>({})},config:{type:Object,default:()=>({})}},setup(e,{expose:c}){const n={tooltipFormatter:null,dataZoom:null,grid:{left:"60px",bottom:"20px",right:"0",top:0}};let o,l;const r=e,u=a.ref(),s=a.computed(()=>({...n,...r.config}));a.watch(()=>[r.data],()=>{i()},{deep:!0}),a.onMounted(()=>{o=x.init(u.value),i();let t=!0;l=new ResizeObserver(()=>{if(t){t=null;return}o.resize()}),l.observe(u.value)}),a.onUnmounted(()=>{o.dispose(),l.disconnect(),l=null});const i=()=>{o.setOption({tooltip:{confine:!0,formatter:s.value.tooltipFormatter?t=>s.value.tooltipFormatter(t,r.data):null},grid:s.value.grid,xAxis:{type:"category",data:r.data.date},yAxis:{type:"category",inverse:!0,data:r.data.data.map(t=>t.name)},visualMap:{type:"piecewise",show:!1,inRange:[]},dataZoom:s.value.dataZoom,series:[{name:"热力图",type:"heatmap",info:r.data,data:r.data.data.reduce((t,p,m)=>[...t,...p.data.reduce((f,d,_)=>d===null?f:[...f,{value:[_,m,d.value],itemStyle:{color:d.color}}],[])],[]),label:{show:!1}}]})};return c({reset:()=>{i()}}),(t,p)=>(a.openBlock(),a.createElementBlock("div",{ref_key:"chartRef",ref:u,class:"chart"},null,512))}});const b=v._export_sfc(h,[["__scopeId","data-v-4c74604d"]]),O={install(e){e.component("st-heatMap",b)}};module.exports=O;
1
+ "use strict";
package/es/HeatMap.js CHANGED
@@ -1,118 +1 @@
1
- import { defineComponent as _, ref as v, computed as g, watch as x, onMounted as y, onUnmounted as h, openBlock as b, createElementBlock as w } from "vue";
2
- import * as R from "echarts";
3
- import { _ as F } from "./_plugin-vue_export-helper-dad06003.js";
4
- const M = /* @__PURE__ */ _({
5
- __name: "index",
6
- props: {
7
- data: {
8
- type: Object,
9
- default: () => ({})
10
- },
11
- // 数据
12
- config: {
13
- type: Object,
14
- default: () => ({})
15
- }
16
- },
17
- setup(n, { expose: p }) {
18
- const u = {
19
- tooltipFormatter: null,
20
- dataZoom: null,
21
- grid: {
22
- left: "60px",
23
- bottom: "20px",
24
- right: "0",
25
- top: 0
26
- }
27
- };
28
- let a, o;
29
- const t = n, l = v(), r = g(() => ({ ...u, ...t.config }));
30
- x(
31
- () => [t.data],
32
- () => {
33
- s();
34
- },
35
- { deep: !0 }
36
- ), y(() => {
37
- a = R.init(l.value), s();
38
- let e = !0;
39
- o = new ResizeObserver(() => {
40
- if (e) {
41
- e = null;
42
- return;
43
- }
44
- a.resize();
45
- }), o.observe(l.value);
46
- }), h(() => {
47
- a.dispose(), o.disconnect(), o = null;
48
- });
49
- const s = () => {
50
- a.setOption(
51
- {
52
- tooltip: {
53
- confine: !0,
54
- formatter: r.value.tooltipFormatter ? (e) => r.value.tooltipFormatter(e, t.data) : null
55
- },
56
- grid: r.value.grid,
57
- xAxis: {
58
- type: "category",
59
- data: t.data.date
60
- },
61
- yAxis: {
62
- type: "category",
63
- inverse: !0,
64
- data: t.data.data.map((e) => e.name)
65
- },
66
- visualMap: {
67
- type: "piecewise",
68
- // 类型: 分段式[piecewise] | 连续形[continuous]
69
- show: !1,
70
- inRange: []
71
- },
72
- dataZoom: r.value.dataZoom,
73
- series: [
74
- {
75
- name: "热力图",
76
- type: "heatmap",
77
- info: t.data,
78
- data: t.data.data.reduce((e, d, f) => [
79
- ...e,
80
- ...d.data.reduce((i, c, m) => c === null ? i : [
81
- ...i,
82
- {
83
- value: [m, f, c.value],
84
- itemStyle: {
85
- color: c.color
86
- }
87
- }
88
- ], [])
89
- ], []),
90
- label: {
91
- show: !1
92
- // 是否展示方块格上的数字
93
- }
94
- }
95
- ]
96
- }
97
- );
98
- };
99
- return p({
100
- reset: () => {
101
- s();
102
- }
103
- // 重置
104
- }), (e, d) => (b(), w("div", {
105
- ref_key: "chartRef",
106
- ref: l,
107
- class: "chart"
108
- }, null, 512));
109
- }
110
- });
111
- const O = /* @__PURE__ */ F(M, [["__scopeId", "data-v-4c74604d"]]), C = {
112
- install(n) {
113
- n.component("st-heatMap", O);
114
- }
115
- };
116
- export {
117
- C as default
118
- };
1
+
package/es/Kline.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";require("./base-ef747d02.cjs");const ae=require("./el-menu-item-17dc717e.cjs");require("./el-tooltip-0ea8fbf8.cjs");require("./el-popper-b6c99b28.cjs");const n=require("vue"),je=require("echarts"),P=require("./_plugin-vue_export-helper-f246444f.cjs"),J=require("./index-8901a38c.cjs"),ue=require("./index.esm-94a95a2a.cjs");require("./el-tag-a33c4b22.cjs");const Me=require("./el-select-d8d91db1.cjs");require("./el-scrollbar-bc3f790d.cjs");require("./use-form-common-props-fd9b61a0.cjs");require("./index-9780a537.cjs");require("./index-098c2447.cjs");require("./index-eea0bcb3.cjs");require("./typescript-b63f8e83.cjs");require("./vnode-b906ae6d.cjs");require("./index-c108567d.cjs");require("./index-bb833443.cjs");require("./index-298075cf.cjs");require("./index-f3562b52.cjs");require("./castArray-35947698.cjs");require("./index-11547a0c.cjs");require("./scroll-b108dabd.cjs");require("./debounce-62f5b6e8.cjs");function de(M){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(M){for(const i in M)if(i!=="default"){const e=Object.getOwnPropertyDescriptor(M,i);Object.defineProperty(t,i,e.get?e:{enumerable:!0,get:()=>M[i]})}}return t.default=M,Object.freeze(t)}const H=de(je),ye={class:"st-kline-tips"},ge={class:"st-kline-tips-row"},Te=n.defineComponent({__name:"index",props:{data:{type:Array,default:()=>[]}},setup(M){return(t,i)=>(n.openBlock(),n.createElementBlock("div",ye,[n.createElementVNode("div",ge,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.data,e=>(n.openBlock(),n.createElementBlock("div",{class:"st-kline-tips-row-item",style:n.normalizeStyle({color:e.color})},n.toDisplayString(e.label)+" "+n.toDisplayString(e.value),5))),256))])]))}});const X=P._export_sfc(Te,[["__scopeId","data-v-78aed210"]]),De=n.defineComponent({__name:"index",emits:["closeContextMenuCallBack"],setup(M,{emit:t}){const i=t,e=n.ref(),o=n.ref(),a=n.ref({display:"none",top:"0px",left:"0px"}),j=()=>{a.value.display="none",i("closeContextMenuCallBack"),document.removeEventListener("click",j)},s=r=>{if(r.preventDefault(),r.stopPropagation(),a.value.display==="block"){const{offsetX:c,offsetY:d}=r,{offsetWidth:I,offsetHeight:u}=o.value;if(c<=I&&d<=u)return}e.value.click(),a.value={display:"block",top:`${r.offsetY}px`,left:`${r.offsetX}px`},n.nextTick(()=>{const{bottom:c,height:d,right:I,width:u}=o.value.getBoundingClientRect();c>window.innerHeight?a.value={display:"block",top:`${r.offsetY-d}px`,left:`${r.offsetX}px`}:I>window.innerWidth&&(a.value={display:"block",top:`${r.offsetY}px`,left:`${r.offsetX-u}px`})}),document.addEventListener("click",j)};return(r,c)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"contextmenuRef",ref:e,class:"contextmenu",onContextmenu:s,onMouseleave:j},[n.renderSlot(r.$slots,"default",{},void 0,!0),a.value.display!=="none"?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"contextmenuContentRef",ref:o,class:"contextmenu-popover",style:n.normalizeStyle(a.value)},[n.renderSlot(r.$slots,"popover",{},void 0,!0)],4)):n.createCommentVNode("",!0)],544))}});const Ie=P._export_sfc(De,[["__scopeId","data-v-249fd104"]]);let le=!1,re=!0,ce=[];const se=M=>{const t=[],i=[],e=[],o=[],a=[],j=[];return M.forEach((s,r)=>{t.push(s[0]),i.push(s[1]),e.push(s[4]),o.push(s[2]),a.push(s[3]),j.push([s[1],s[4],s[3],s[2],Number(s[6]),r===0?s[4]:M[r-1][4]])}),{time:t,open:i,close:e,high:o,low:a,kLineData:j}},Le=async()=>{if(!le)le=!0,await ue.init("./talib.wasm"),re=!1,ce.forEach(M=>{M()});else if(re)return new Promise(M=>{ce.push(M)})},$=(M,t)=>M.length>t?M.slice(M.length-t):M,pe=(M,t,i)=>M.calculationFn?M.calculationFn(ue.talib,t,i):new Array(t.time.length).fill(null),fe=async(M,t,i)=>{const e=se(M);let o=[];return o=se(o),await Le(),{originData:$(M,i),kLine:$(e.kLineData,i),time:$(e.time,i),indicator:t.config.reduce((a,j)=>(a.push({key:j.key,color:j.color,data:$(pe(j,e,o),i)}),a),[])}},K="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=",ee="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+",te="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",W=(M,t)=>{const{type:i="log",color:e="black"}=t??{};localStorage.getItem("st-kline-console-show")==="true"&&console[i](`%c${M}`,`color:${e}`)},C=M=>M||M===0?Math.round(M*1e3)/1e3:null,xe=M=>M>=1e12?`${(M/1e12).toFixed(2)}万亿`:M>=1e8?`${(M/1e8).toFixed(2)}亿`:M>=1e4?`${(M/1e4).toFixed(2)}万`:M.toFixed(2),Ye=M=>{const{y:t,text:i,info:e,gridLeft:o,gridRight:a,echartsWidth:j,echartsInstance:s}=M,{config:r,event:c}=e;let d=0;return{type:"group",draggable:r.draggable?"vertical":!1,children:[{type:"line",info:e,shape:{x1:o,y1:t,x2:j-a,y2:t},style:{stroke:r.lineColor,lineWidth:1,lineDash:[8,4]},z:10},{type:"group",x:j,y:t-5,children:[{type:"text",left:-1*a,info:e,style:{fill:r.textColor,text:i,stroke:"#000",lineWidth:1,opacity:1},z:10}]}],onmouseover:I=>{c.onmouseover instanceof Function&&c.onmouseover(I,e)},onmouseout:I=>{c.onmouseout instanceof Function&&c.onmouseout(I,e)},ondragstart:I=>{c.ondragstart instanceof Function&&r.draggable&&(d=I.offsetY,c.ondragstart(I,e))},ondragend:I=>{if(c.ondragend instanceof Function&&r.draggable){const N=I.offsetY-d;if(N===0)return;const L=s.convertFromPixel({yAxisIndex:0},t+N);c.ondragend(I,e,L)}}}},Ae=M=>{const{y:t,text:i,info:e,gridLeft:o,gridRight:a,echartsWidth:j,echartsInstance:s}=M,{config:r,event:c}=e;let d=0;const I=N=>{let L=null;N.target.type==="line"?L=N.target.parent:N.target.type==="tspan"&&(L=N.target.parent.parent.parent),L.children()[1].children()[0].animate("style",!1).when(200,{opacity:1}).start()},u=N=>{let L=null;N.target.type==="line"?L=N.target.parent:N.target.type==="tspan"&&(L=N.target.parent.parent.parent),L.children()[1].children()[0].animate("style",!1).when(200,{opacity:0}).start()};return{type:"group",draggable:r.draggable?"vertical":!1,children:[{type:"line",info:e,shape:{x1:o,y1:t,x2:j-a,y2:t},style:{stroke:r.lineColor,lineWidth:1},z:10},{type:"group",x:j/2,y:t-5,children:[{type:"text",left:"center",info:e,style:{fill:r.textColor,text:i,stroke:"#000",lineWidth:1,opacity:0},z:10}]}],onmouseover:N=>{c.onmouseover instanceof Function?c.onmouseover(N,e):I(N)},onmouseout:N=>{c.onmouseout instanceof Function?c.onmouseout(N,e):u(N)},ondragstart:N=>{c.ondragstart instanceof Function&&r.draggable&&(d=N.offsetY,c.ondragstart(N,e))},ondragend:N=>{if(c.ondragend instanceof Function&&r.draggable){const l=N.offsetY-d;if(l===0)return;const f=s.convertFromPixel({yAxisIndex:0},t+l);c.ondragend(N,e,f)}}}},me=M=>{const{y:t,text:i,profitY:e,profitText:o,lossY:a,lossText:j,info:s,gridLeft:r,gridRight:c,echartsWidth:d,echartsInstance:I}=M,{config:u,event:N}=s;let L=0,l=null,f=null;const w=(z,g)=>{var D,Y,m,k;(D=z.children()[2])==null||D.animate("style",!1).when(200,{opacity:~~g}).start(),(Y=z.children()[3].children()[0])==null||Y.animate("style",!1).when(200,{opacity:~~g}).start(),(m=z.children()[4])==null||m.animate("style",!1).when(200,{opacity:~~g}).start(),(k=z.children()[5].children()[0])==null||k.animate("style",!1).when(200,{opacity:~~g}).start()},h=z=>{let g=null;z.target.type==="line"?g=z.target.parent:z.target.type==="tspan"&&(g=z.target.parent.parent.parent),l=D=>{D.preventDefault(),(D.code==="AltLeft"||D.code==="AltRight")&&w(g,!0)},f=D=>{(D.code==="AltLeft"||D.code==="AltRight")&&w(g,!1)},window.addEventListener("keydown",l),window.addEventListener("keyup",f)},v=z=>{let g=null;z.target.type==="line"?g=z.target.parent:z.target.type==="tspan"&&(g=z.target.parent.parent.parent),w(g,!1),window.removeEventListener("keydown",l),window.removeEventListener("keyup",f)};return{type:"group",draggable:u.draggable?"vertical":!1,children:[{type:"line",info:s,shape:{x1:r,y1:t,x2:d-c,y2:t},style:{stroke:u.lineColor,lineWidth:1},z:10},{type:"group",x:d/2,y:t-5,children:[{type:"text",left:"center",info:s,style:{fill:u.textColor,text:i,stroke:"#000",lineWidth:1,opacity:1},z:10}]},{type:"line",info:s,shape:{x1:r,y1:e,x2:d-c,y2:e},style:{stroke:u.profitLineColor,lineWidth:1,lineDash:[8,4],opacity:0},z:10},{type:"group",x:d/2,y:e-5,children:[{type:"text",left:"center",info:s,style:{fill:u.profitTextColor,text:o,stroke:"#000",lineWidth:1,opacity:0},z:10}]},{type:"line",info:s,shape:{x1:r,y1:a,x2:d-c,y2:a},style:{stroke:u.lossLineColor,lineWidth:1,lineDash:[8,4],opacity:0},z:10},{type:"group",x:d/2,y:a-5,children:[{type:"text",left:"center",info:s,style:{fill:u.lossTextColor,text:j,stroke:"#000",lineWidth:1,opacity:0},z:10}]}],onmouseover:z=>{N.onmouseover instanceof Function?N.onmouseover(z,s):h(z)},onmouseout:z=>{N.onmouseout instanceof Function?N.onmouseout(z,s):v(z)},ondragstart:z=>{N.ondragstart instanceof Function&&u.draggable&&(L=z.offsetY,N.ondragstart(z,s))},ondragend:z=>{if(N.ondragend instanceof Function&&u.draggable){const D=z.offsetY-L;if(D===0)return;const Y=I.convertFromPixel({yAxisIndex:0},t+D);N.ondragend(z,s,Y)}}}},q=(M,t)=>{const{direction:i="",tradeAction:e="",tradeType:o=""}=M;if(t==="sellBuy"){const a=o??i+e;return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(a)}else if(t==="openClose")return o??i+e},we=(M,t)=>M.reduce((i,e)=>{var d;const o=q(e,"sellBuy"),a=M.filter(I=>I.time===e.time);let j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;a.length>1?[...new Set(a.map(u=>q(u,"sellBuy")))].length>1?j="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href:j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;const r=(t.find(I=>I[0]===e.time)??[])[2],c=((d=e==null?void 0:e.markLineTarget)==null?void 0:d.map(I=>{const u=e.time,N=r+"",L=I.time,l=t.find(w=>w[0]===I.time),f=l?l[3]:null;return[{coord:[u,N],lineStyle:I.lineStyle},{coord:[L,f]}]}))??null;return i.push({symbol:j,symbolSize:25,animation:!1,coord:[e.time+"",r],symbolRotate:0,symbolOffset:[0,"-7"],markLineTarget:c}),i},[]),he=(M,t)=>M.reduce((i,e,o)=>{var I;const a=q(e,"openClose"),j=a==="开多"||a==="开空"?"top":"bottom",s=t.find(u=>u[0]===e.time)??[],r=j==="top"?s[2]:s[3];let c=7;c+=M.slice(0,o).filter(u=>{const N=q(u,"openClose");return(N==="开多"||N==="开空"?"top":"bottom")===j&&u.time===e.time}).length*7;const d=((I=e==null?void 0:e.markLineTarget)==null?void 0:I.map(u=>{const N=e.time,L=r+"",l=u.time,f=t.find(w=>w[0]===u.time)[3];return[{coord:[N,L],lineStyle:u.lineStyle},{coord:[l,f]}]}))??null;return i.push({symbol:"triangle",symbolSize:[10,12],animation:!1,coord:[e.time+"",r],symbolRotate:j==="top"?180:0,symbolOffset:[0,`${j==="top"?c*-1:c}`],itemStyle:{color:j==="top"?"#FF0000":"#389e0d"},label:{show:!0,position:j,color:"#fff",formatter:`${a} ${j==="top"?"+":"-"} ${e.amount}手 ${e.part?`(${e.part}份)`:""}`},markLineTarget:d}),i},[]),Ce=(M,t)=>M.reduce((i,e)=>{const{key:o,data:a}=e;if(a===null||a.length===0)return i;const s=new Map([["sellBuy",()=>we(a,t)],["openClose",()=>he(a,t)],["signal",()=>{}]]).get(o);return s instanceof Function&&i.push(...s()),i},[]),ne=async(M,t,i,e,o,a)=>{const{totalBarCount:j,defaultShowBarCount:s,maxValueSpan:r,gridLeft:c,gridTop:d,gridRight:I,gridBottom:u,zoomLock:N}=e,{time:L,kLine:l,originData:f,indicator:w}=await fe(M,i,j),h=w.map(g=>{const{key:D,data:Y,color:m}=g;return{name:D,type:"line",silent:!0,symbol:"none",data:Y,lineStyle:{width:1},itemStyle:{color:m}}}),v=Ce(t,f);let z=[];return v.forEach(g=>{g.markLineTarget&&(z=[...z,...g.markLineTarget])}),{animation:!1,dataset:{id:"data",source:{klineData:l,indicatorData:w}},grid:{left:`${c}px`,top:`${d}px`,right:`${I}px`,bottom:`${u}px`},tooltip:{trigger:"axis",axisPointer:{type:"cross",label:{formatter:g=>{const{axisDimension:D,value:Y}=g;return D==="x"?Y:String(C(Y))}}},formatter:g=>{let D=null,Y="";return g.forEach(m=>{m.seriesName==="资产持仓净值"&&m.data!==null&&(Y+=`<div>资产持仓净值: ${m.data}</div>`),m.componentSubType==="candlestick"&&t.forEach(k=>{const{key:E,data:F}=k;if(E==="sellBuy"){const b=F.filter(x=>x.time===m.axisValue);let B=0,T=0;b.forEach(x=>{x.tradeType==="开多"||x.tradeType==="平空"?B+=x.amount:T+=x.amount}),B&&(Y+=`<div>买: ${B}</div>`),T&&(Y+=`<div>卖: ${T}</div>`)}E==="openClose"&&F.forEach(b=>{b.time===m.axisValue&&(Y+=b.tooltip)})}),Y&&(D=`<div><span style="font-weight: bold;">${m.axisValue}</span>${Y}</div>`)}),D}},xAxis:{type:"category",data:L,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},axisLabel:{show:!0,formatter:g=>g}},yAxis:[{index:0,splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:g=>{const{min:D,max:Y}=g,m=Math.abs((Y-D)/10);return D-m},max:g=>{const{min:D,max:Y}=g,m=Math.abs((Y-D)/10);return Y+m},axisLine:{show:!0},axisLabel:{formatter:g=>C(g),showMaxLabel:!1}},{show:!1,min:"dataMin"}],dataZoom:[{type:"inside",xAxisIndex:[0,0],zoomLock:N,maxValueSpan:r,start:l.length>=s?(l.length-s)/l.length*100:0,end:99.99}],series:[{name:"k线",type:"candlestick",data:l,markPoint:{data:v},markLine:{position:"middle",textStyle:{color:"blue",fontSize:15},animation:!1,data:z,lineStyle:{width:3,type:"solid"},symbol:["none","none"]},itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1},z:1},...h,{name:"资产持仓净值",type:"line",data:o??[],symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#666"}},{name:"二腿相关度",type:"line",data:a??[],symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#FFF"},lineStyle:{width:2},label:{show:!0,position:"top",formatter:g=>`相关度: ${g.data[1]}`,textStyle:{color:"#FFF",fontSize:14}}}],toolbox:{show:!1},brush:{xAxisIndex:"all",brushLink:"all",transformable:!1,outOfBrush:{colorAlpha:1},brushStyle:{color:"rgba(120,140,180,0)",borderColor:"rgba(255,255,255,0.4)"}}}},Oe=(M,t,i)=>{var I;const{gridLeft:e,gridRight:o,gridBottom:a,warningConfig:j,positionConfig:s,conditionConfig:r,isOpenDS:c}=t;let d=[];if((I=i==null?void 0:i.getModel())!=null&&I.getComponent){const[u,N]=i.getModel().getComponent("yAxis").axis.scale._extent;let L=[],l={},f=[],w={},h=[],v={};if(M.forEach(({key:z,data:g,...D})=>{z==="warning"?(L=g,l=D):z==="position"?(f=g,w=D):z==="condition"&&(h=g,v=D)}),L.length>0&&(d=L.reduce((z,g)=>{const{value:D,text:Y,info:m,config:k}=g;if(D>N||D<u)return z;const E={y:i.convertToPixel({yAxisIndex:0},D),text:Y,info:{info:m,config:{...j,...k},event:{...l}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,Ye(E)]},d)),f.length>0&&(d=f.reduce((z,g)=>{const{value:D,text:Y,info:m,config:k}=g;if(D>N||D<u)return z;const E={y:i.convertToPixel({yAxisIndex:0},D),text:Y,info:{info:m,config:{...s,...k},event:{...w}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,Ae(E)]},d)),h.length>0&&(d=h.reduce((z,g)=>{const{value:D,text:Y,profitValue:m,profitText:k,lossValue:E,lossText:F,info:b,config:B}=g;if(D>N||D<u)return z;const T={y:i.convertToPixel({yAxisIndex:0},D),text:Y,profitY:i.convertToPixel({yAxisIndex:0},m),profitText:k,lossY:i.convertToPixel({yAxisIndex:0},E),lossText:F,info:{info:b,config:{...r,...B},event:{...v}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,me(T)]},d)),c){const z=i.getOption(),g=z.dataset[0].source.klineData.slice(z.dataZoom[0].startValue,z.dataZoom[0].endValue+1),D={};g.forEach(T=>{D[T[1]]?D[T[1]]+=1:D[T[1]]=1});const Y=g[g.length-1][1],m=g.reduce((T,x)=>T+x[1],0)/g.length,k=Y-m,E=ve(g,1,50),F=Ee(g),b=F?k/F:0,B=ke(g,1,Y);d=[...d,{type:"group",draggable:!1,children:Object.keys(D).map(T=>({type:"line",shape:{x1:i.getWidth()-o-100*D[T],y1:i.convertToPixel({yAxisIndex:0},T),x2:i.getWidth()-o,y2:i.convertToPixel({yAxisIndex:0},T)},style:{stroke:"rgb(124,124,124)",lineWidth:1},z:10}))},{type:"text",x:e+6,y:i.getHeight()-a-20,style:{fill:"#FFF",text:`均值: ${C(m)}    距均值: ${C(k)}    中值: ${C(E)}    标准差: ${C(F)}    距均值/标准差: ${C(b)}    百分位: ${C(B)}%`,lineWidth:1,opacity:1},z:10}]}}return{elements:d}},ke=(M,t,i)=>{const{round:e,add:o,subtract:a,multiply:j,divide:s}=J.x,r=M.map(d=>d[t]).sort((d,I)=>d-I);let c=0;for(let d=0;d<r.length;d++)if(r[d]===i){c=d;break}else if(r[d]>=i){c=o(d,s(a(r[d+1],r[d]),r[d]));break}return e(s(j(c,100),M.length+1))},ve=(M,t,i)=>{const{round:e,add:o,subtract:a,multiply:j,divide:s}=J.x,r=M.map(u=>u[t]).sort((u,N)=>u-N),c=j(M.length+1,s(i,100)),d=Math.floor(c),I=a(c,d);return e(I===0?r[c]:o(r[d],j(a(r[d>=M.length-1?d:d+1],r[d]),I)))};function Ee(M){const t=M.map(j=>j[1]),i=t.length;let e=0,o=0;for(const j of t)e+=j;const a=e/i;for(const j of t)o+=Math.pow(j-a,2);return Math.sqrt(o/i)}const be={class:"st-kline"},Se={class:"st-kline-header"},_e=300,Fe=n.defineComponent({__name:"index",props:{indicator:{type:Object,default:()=>({})},klineData:{type:Array,default:()=>[]},markData:{type:Array,default:()=>[]},lineData:{type:Array,default:()=>[]},netPositionData:{type:Array,default:()=>[]},relevanceData:{type:Array,default:()=>[]},priceTrendData:{type:Array,default:()=>[]},priceTrendPercentData:{type:Array,default:()=>[]},brushRange:{type:Array,default:()=>[]},defaultMenuData:{type:Array,default:()=>[]},isSelect:{type:Boolean,default:()=>!1},config:{type:Object,default:()=>({})}},setup(M){const t=M,i={totalBarCount:2e3,defaultShowBarCount:200,preBarCount:800,maxValueSpan:1e4,gridLeft:60,gridTop:0,gridRight:60,gridBottom:30,warningConfig:{draggable:!1,lineColor:"#fff",textColor:"#fff"},positionConfig:{draggable:!1,lineColor:"#e45d07",textColor:"#fff"},conditionConfig:{draggable:!1,lineColor:"#fff",textColor:"#fff",profitLineColor:"#b71e44",profitTextColor:"#fff",lossLineColor:"#749b66",lossTextColor:"#fff"},tipsConfig:{open:!0,heigh:!0,low:!0,close:!0,business:!0,riseAndFall:!0},dynamicLoadConfig:{historyVisible:!1,historyLoadCallBack:()=>{},futureVisible:!1,futureLoadCallBack:()=>{}},zoomLock:!1,isOpenDS:!1},e=n.computed(()=>({...i,...t.config})),o=n.ref(null),a=n.ref(-1),j=n.computed(()=>{var T,x;if(o.value&&((x=(T=o.value.dataset[0])==null?void 0:T.source)!=null&&x.klineData[a.value])){const p=o.value.dataset[0].source.klineData[a.value],y=[],{open:A,heigh:O,low:S,close:Q,business:V,riseAndFall:R}=e.value.tipsConfig;if(A&&y.push({label:"开",value:C(p[0]),color:"rgb(153, 153, 153)"}),O&&y.push({label:"高",value:C(p[3]),color:"rgb(153, 153, 153)"}),S&&y.push({label:"低",value:C(p[2]),color:"rgb(153, 153, 153)"}),Q&&y.push({label:"收",value:C(p[1]),color:"rgb(153, 153, 153)"}),V&&y.push({label:"额",value:xe(p[4]),color:"rgb(153, 153, 153)"}),R){let U=((p[1]-p[5])/p[1]*100).toFixed(2),_=+U==0?"white":+U>0?"red":"#00ff00";y.push({label:"涨跌",value:`${U}%`,color:_})}return y}return[]}),s=n.computed(()=>{var T,x;return o.value&&((x=(T=o.value.dataset[0])==null?void 0:T.source)!=null&&x.indicatorData)?o.value.dataset[0].source.indicatorData.reduce((p,y)=>(y.data[a.value]&&p.push({label:y.key,value:C(y.data[a.value]),color:y.color}),p),[]):[]}),r=n.computed(()=>{const T=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"];if(t.priceTrendData.length>0){const x=[];return t.priceTrendData.forEach((p,y)=>{var O;(p.data[a.value]?C(p.data[a.value][1]):null)!==null&&x.push({label:p.name,value:C((O=p.data[a.value])==null?void 0:O[1]),color:T[y]})}),x}if(t.priceTrendPercentData.length>0){const x=[];return l.getOption().series.filter(y=>y.name.includes("二腿价格走势百分比图")).forEach((y,A)=>{var S;(y.data[a.value]?C(y.data[a.value][1]):null)!==null&&x.push({label:y.name.split("-")[1],value:`${C((S=y.data[a.value])==null?void 0:S[1])}%`,color:T[A]})}),x}return[]});n.watch(()=>[t.klineData,t.indicator,t.markData,t.netPositionData,t.relevanceData],()=>{c()},{deep:!0}),n.watch(()=>t.lineData,async()=>{W("st-kline组件消息:props.lineData监控,额外画线数据发生改变,重绘->line",{color:"red"}),c("line")},{deep:!0}),n.watch(()=>t.brushRange,async()=>{W("st-kline组件消息:props.brushRange监控,区域刷选数据发生改变,重绘->brush",{color:"red"}),c("brush")},{deep:!0}),n.watch(()=>t.priceTrendData,async()=>{c("priceTrend")},{deep:!0}),n.watch(()=>t.priceTrendPercentData,async()=>{c("priceTrendPercent")},{deep:!0});const c=async T=>{const p=new Map([["kline",async()=>{const y=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData),{graphic:A}=l.getOption()??{graphic:[]};o.value={...y,graphic:A},l.setOption(o.value,!0),W("st-kline组件消息:K线绘制完毕-draw",{color:"green"})}],["line",()=>{const y=l.getOption(),A=Oe(t.lineData,e.value,l);o.value={...y,graphic:A},l.setOption(o.value,{replaceMerge:["graphic"]}),W("st-kline组件消息:额外画线绘制完毕-draw",{color:"green"})}],["brush",()=>{const{brushRange:y}=t;y instanceof Array&&y.length>0&&(l.dispatchAction({type:"brush",areas:[{brushType:"lineX",coordRange:[y[0]+"",y[1]+""],xAxisIndex:0}]}),W("st-kline组件消息:区域刷选绘制完毕-draw",{color:"green"}))}],[void 0,async()=>{await c("kline"),await c("line"),await c("priceTrend"),await c("priceTrendPercent"),await c("brush")}],["history",async()=>{const y=l.getOption(),A=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData),O=A.dataset.source.klineData.length-y.dataset[0].source.klineData.length;l.setOption({...A,dataZoom:[{type:"inside",xAxisIndex:[0,0],zoomLock:e.value.zoomLock,maxValueSpan:e.value.maxValueSpan,startValue:y.dataZoom[0].startValue+O,endValue:y.dataZoom[0].endValue+O}]},!0),await c("priceTrend")}],["future",async()=>{const y=l.getOption(),A=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData);A.dataZoom[0].start=(t.klineData.length-y.dataZoom[0].endValue+y.dataZoom[0].startValue)/t.klineData.length*100,l.setOption(A,!0),await c("priceTrend")}],["priceTrend",()=>{if(t.priceTrendData.length===0)return;const y=l.getOption(),A=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"],O=t.priceTrendData.reduce((S,Q,V)=>{const{name:R,data:U}=Q,_={name:`二腿价格走势图-${R}`,type:"line",data:U,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:A[V]},lineStyle:{type:"dashed",width:1}};return S.push(_),S},[]);o.value={...y,series:[...y.series,...O]},l.setOption(o.value,{replaceMerge:["series"]})}],["priceTrendPercent",async()=>{if(t.priceTrendPercentData.length===0)return;const y=l.getOption(),A=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"],O=y.dataZoom[0].startValue,S=t.priceTrendPercentData.reduce((Q,V,R)=>{const{name:U,data:_}=V,Z=_.length>e.value.totalBarCount?_.slice(_.length-e.value.totalBarCount):_,G=Z[O][1],Ne=Z.map(ie=>[ie[0],(ie[1]-G)/G*100]),ze={name:`二腿价格走势百分比图-${U}`,type:"line",data:Ne,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:A[R]},lineStyle:{type:"dashed",width:1}};return Q.push(ze),Q},[]);y.series=[...y.series.filter(Q=>!Q.name.includes("二腿价格走势百分比图")),...S],l.setOption(y,!0)}]]).get(T);p instanceof Function&&await p()},d=n.ref(!1),I=n.ref([]),u=T=>{const{callBack:x}=T;x instanceof Function&&x(l,d)},N=()=>{I.value=t.defaultMenuData},L=n.ref();let l,f;const w=(T,x)=>{var p,y;if(T)a.value=typeof((p=T==null?void 0:T.batch[0])==null?void 0:p.dataIndex)=="number"?(y=T==null?void 0:T.batch[0])==null?void 0:y.dataIndex:-1;else{const A=x.getOption();A.dataZoom instanceof Array&&(a.value=A.dataZoom[0].endValue)}};let h=null,v=!1,z=n.ref(!1),g=!1,D=n.ref(!1);const Y=async T=>{const x=T.batch?T.batch[0].start*e.value.totalBarCount:T.startValue;e.value.dynamicLoadConfig.historyVisible&&x<=100&&!v&&!z.value&&(v=!0,await e.value.dynamicLoadConfig.historyLoadCallBack(z),await c("history"),v=!1);const p=T.batch?T.batch[0].end===100:T.endValue>=t.klineData.length-e.value.preBarCount-1,y=T.actionIsWheel;e.value.dynamicLoadConfig.futureVisible&&p&&!g&&!D.value&&!y&&(g=!0,await e.value.dynamicLoadConfig.futureLoadCallBack(D),await c("future"),g=!1),clearTimeout(h),h=setTimeout(()=>{c("line"),c("priceTrendPercent"),clearTimeout(h),h=null},_e)};let m=null;const k=T=>{m=setTimeout(()=>{var x;if(T.componentType==="graphic"){const{oncontextmenu:p}=((x=T.info)==null?void 0:x.event)??{};p instanceof Function&&p(T,T.info,I)}clearTimeout(m),m=null})},E=()=>{l.on("highlight",T=>{w(T,l)}),l.on("globalout",()=>{w(null,l)}),l.on("contextmenu",T=>{k(T)}),l.on("datazoom",T=>{Y(T)})},F=()=>{l.off("highlight"),l.off("globalout"),l.off("contextmenu"),l.off("datazoom")},b=T=>{if(!l||!(T.ctrlKey||t.isSelect))return;const x=l.getOption();let{startValue:p,endValue:y,start:A,end:O}=x.dataZoom[0];const S=()=>{p!==0&&(p=p-1,y=y-1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan}))},Q=()=>{if(e.value.dynamicLoadConfig.futureVisible&&!g&&!D.value)p=p+1,y=y+1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan});else{if(y===x.xAxis[0].data.length-1)return;p=p+1,y=y+1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan})}},V=()=>{if(y-p<5)return;const Z=Math.floor((a.value-p)/2)+1,G=Math.floor((y-a.value)/2)+1;p=p+Z,y=y-G,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,actionIsWheel:!0,maxValueSpan:e.value.maxValueSpan})},R=()=>{A=A-(O-A)/4,l.dispatchAction({type:"dataZoom",start:A,end:O,actionIsWheel:!0,maxValueSpan:e.value.maxValueSpan})},_=new Map([["ArrowLeft",S],["ArrowRight",Q],["ArrowUp",V],["ArrowDown",R]]).get(T.code);_ instanceof Function&&_()},B=async()=>{let T=!0;l=H.init(L.value),await c(),I.value=t.defaultMenuData,a.value=l.getOption().dataZoom[0].endValue??-1,E(),f=new ResizeObserver(()=>{if(T){T=null;return}l.resize(),c("line")}),f.observe(L.value),window.addEventListener("keydown",b)};return n.onMounted(()=>{B()}),n.onUnmounted(()=>{F(),window.removeEventListener("keydown",b),l.dispose(),f.disconnect(),f=null}),(T,x)=>{const p=ae.ElMenuItem,y=ae.ElMenu;return n.openBlock(),n.createElementBlock("div",be,[n.createElementVNode("div",Se,[n.createVNode(X,{data:j.value},null,8,["data"]),n.createVNode(X,{data:s.value},null,8,["data"]),n.createVNode(X,{data:r.value},null,8,["data"])]),n.createVNode(Ie,{class:"st-kline-body",onCloseContextMenuCallBack:N},{popover:n.withCtx(()=>[n.createVNode(y,{class:"menu"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(I.value,A=>(n.openBlock(),n.createBlock(p,{key:A.label,index:A.label,class:"menuItem",onClick:O=>u(A)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(A.label),1)]),_:2},1032,["index","onClick"]))),128))]),_:1})]),default:n.withCtx(()=>[n.createElementVNode("div",{ref_key:"echartsRef",ref:L,class:n.normalizeClass(d.value?"st-kline-chart cursorPen":"st-kline-chart")},null,2)]),_:1})])}}});const Qe=P._export_sfc(Fe,[["__scopeId","data-v-7f014d0e"]]),Be={class:"kline-tips"},Ue=n.defineComponent({__name:"index",props:{data:{type:Array,require:!0}},setup(M){return(t,i)=>(n.openBlock(),n.createElementBlock("div",Be,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.data,(e,o)=>(n.openBlock(),n.createElementBlock("div",{key:o,class:"kline-tips-item",style:n.normalizeStyle({color:e.color})},n.toDisplayString(e.label)+" "+n.toDisplayString(e.value),5))),128))]))}});const oe=P._export_sfc(Ue,[["__scopeId","data-v-dc7d381b"]]);const Ve={class:"klineSub"},Re={class:"klineSub-tips"},Pe={key:0,class:"klineSub-tips-select"},We={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0},modelValue:{type:String,required:!0},subIndicatorList:{type:Array,required:!0}},emits:["update:modelValue"],setup(M,{expose:t,emit:i}){const{round:e}=J.x;let o,a;const j=i,s=M,r=n.ref(),c=n.computed({get(){return s.modelValue},set(u){j("update:modelValue",u)}}),d=n.computed(()=>{var L;const{data:u,activeIndex:N}=s;return((L=u==null?void 0:u.subIndicator)==null?void 0:L.map(l=>({label:l.key,color:l.color,value:l.data[N]||"-"})))||[]});n.onMounted(()=>{o=H.init(r.value);let u=!0;a=new ResizeObserver(()=>{if(u){u=null;return}o.resize()}),a.observe(r.value)}),n.onUnmounted(()=>{o.dispose(),a.disconnect(),a=null});const I=(u,N)=>{const L=u[N],l=N===0?u[N]:u[N-1];return L[0]===L[1]?L[0]>=l[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:L[1]>L[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}};return t({connect:u=>{H.connect([u,o])},draw:(u,N)=>{n.nextTick(()=>{const{startValue:L,endValue:l,maxValueSpan:f}=u,{leftYAxisRange:w,rightYAxisRange:h}=s.data.subIndicator[0],v=s.data.subIndicator.map(z=>{if(z.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:z.data.map((g,D)=>z.seriesColor==="kline"?{value:g,itemStyle:I(s.data.data,D)}:z.seriesColor==="value"?{value:g,itemStyle:{color:g>=0?"#FF0000":"#00FFFF"}}:{value:g,itemStyle:{color:z.seriesColor}})};if(z.series==="line")return{xAxisIndex:0,yAxisIndex:z.yAxis==="right"?2:1,name:z.key,type:"line",silent:!0,symbol:"none",data:z.data,lineStyle:{width:1},itemStyle:{color:z.color}}});o.setOption({animation:!1,grid:{left:`${N.gridLeft}px`,top:"10px",right:`${N.gridRight}px`,bottom:"20px"},dataZoom:[{type:"inside",startValue:L,endValue:l,maxValueSpan:f}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:z=>{const{axisDimension:g,value:D}=z;if(g==="x")return D;if(z.axisIndex===1)return String(e(D))}}},formatter:()=>""},xAxis:{type:"category",data:s.data.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!0,formatter:z=>z}},yAxis:[{position:"right"},{position:"left",min:w==="cover"?z=>z.min:null,max:w==="cover"?z=>z.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:h==="cover"?z=>z.min:null,max:h==="cover"?z=>z.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:v},!0)})}}),(u,N)=>{const L=Me.ElOption,l=Me.ElSelect;return n.openBlock(),n.createElementBlock("div",Ve,[n.createElementVNode("div",Re,[d.value.length?(n.openBlock(),n.createElementBlock("div",Pe,[n.createVNode(l,{modelValue:c.value,"onUpdate:modelValue":N[0]||(N[0]=f=>c.value=f),size:"small","popper-class":"element-dark",class:"element-dark subIndicator"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.subIndicatorList,f=>(n.openBlock(),n.createBlock(L,{key:f.value,label:f.label,value:f.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):n.createCommentVNode("",!0),n.createVNode(oe,{data:d.value},null,8,["data"])]),n.createElementVNode("div",{class:"klineSub-chart",ref_key:"subChartRef",ref:r},null,512)])}}},Ze=P._export_sfc(We,[["__scopeId","data-v-aba58678"]]);const Ge={class:"kline-tips"},$e={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0}},setup(M){const{round:t,formatValue:i}=J.x,e=M,o=n.computed(()=>{const{data:j,activeIndex:s}=e;if(j.data&&j.data[s]){const r=j.data[s],c=[{label:"开",value:t(r[0])},{label:"高",value:t(r[3])},{label:"低",value:t(r[2])},{label:"收",value:t(r[1])}];r[4]!==null&&c.push({label:"额",value:i(r[4])});let d;return r[6]>0?d="red":r[6]<0&&(d="green"),c.push({label:"涨跌",value:`${t(r[6])}%`,color:d}),c}return[]}),a=n.computed(()=>{var r;const{data:j,activeIndex:s}=e;return((r=j==null?void 0:j.mainIndicator)==null?void 0:r.map(c=>({label:c.key,value:t(c.data[s]),color:c.color})))||[]});return(j,s)=>(n.openBlock(),n.createElementBlock("div",Ge,[n.createVNode(oe,{data:o.value},null,8,["data"]),n.createVNode(oe,{data:a.value},null,8,["data"])]))}},He=P._export_sfc($e,[["__scopeId","data-v-a12855fe"]]),qe={__name:"index",setup(M,{expose:t}){return t({handleKeyDown:(i,e)=>{let{startValue:o,endValue:a,maxIndex:j}=e;if(i.code==="ArrowLeft"){if(o===0)return;o=o-1,a=a-1}else if(i.code==="ArrowRight"){if(a===j)return;o=o+1,a=a+1}else if(i.code==="ArrowUp"){if(a-o<5)return;const s=Math.floor((a-o)/2)+1;o=o+s,a-o<5&&(o=a-4)}else if(i.code==="ArrowDown"){const s=Math.min(500,a-o);o=o-s-1}return{startValue:o,endValue:a}},mergeData:(i,e)=>({time:[...i.time,...e.time.slice(1)],data:[...i.data,...e.data.slice(1)],mainIndicator:i.mainIndicator.map((o,a)=>({...o,data:[...o.data,...e.mainIndicator[a].data.slice(1)]})),subIndicator:i.subIndicator.map((o,a)=>({...o,data:[...o.data,...e.subIndicator[a].data.slice(1)]}))}),getDataZoomInfoByTime:i=>{const{showStartTime:e,showEndTime:o,maxShowDays:a}=i;let j=-1,s=-1,r={};return i.time.forEach((c,d)=>{const I=c.split(" ")[0];r[I]=r[I]||0,r[I]+=1,j===-1&&new Date(c)>=new Date(e)&&(j=d),s===-1&&new Date(c)>=new Date(o)&&(s=d)}),s=s===-1?i.time.length-1:s,{startValue:j,endValue:s,maxValueSpan:Math.max(...Object.values(r))*a}}}),(i,e)=>null}};const Je={__name:"index",props:{data:{type:Array,default:()=>[]}},emits:["change"],setup(M,{expose:t,emit:i}){let e,o,a=null;const j=i,s=M,r=n.ref();n.watch(()=>s.data,()=>{I()},{deep:!0}),n.onMounted(()=>{e=H.init(r.value),c(),I();let u=!0;o=new ResizeObserver(()=>{if(u){u=null;return}e.resize()}),o.observe(r.value)}),n.onUnmounted(()=>{e.off("datazoom"),e.dispose(),o.disconnect(),o=null});const c=()=>{e.on("datazoom",u=>{u.dataZoomId&&(clearTimeout(a),a=setTimeout(()=>{const{data:N}=s,{start:L,end:l}=u,f=Math.floor(L*N.length/100),w=l===100?N.length-1:Math.floor(l*N.length/100);d(f,w),clearTimeout(a)},100))})},d=(u,N)=>{const L=s.data;if(L.length===0)return;const l=L[u][0].split(" ")[0],f=L[N][0].split(" ")[0];j("change",{startTime:`${l} 00:00:00`,endTime:`${f} 24:00:00`})},I=()=>{const{data:u}=s;if(u.length===0)return;const N=u.map(l=>l[0].split(" ")[0]),L=u.map(l=>l[1]);e.setOption({grid:{height:0,left:"80px",right:"80px"},xAxis:{type:"category",data:N,show:!1},yAxis:{type:"value"},series:[{data:L,type:"line"}]},!0)};return t({resetSlide:(u,N,L)=>{let l=-1,f=-1;s.data.forEach((w,h)=>{l===-1&&w[0]===u?l=h:l===-1&&new Date(w[0])>new Date(u)&&(l=h-1),(f===-1&&w[0]===N||f===-1&&new Date(w[0])>new Date(N))&&(f=h)}),f=f===-1?s.data.length-1:f,e.setOption({dataZoom:[{show:!0,startValue:l,endValue:f,maxValueSpan:L,textStyle:{color:"#ccc"}},{type:"inside",startValue:l,endValue:f,maxValueSpan:L}]})},resize:()=>{e==null||e.resize()}}),(u,N)=>(n.openBlock(),n.createElementBlock("div",{class:"klineSlide",ref_key:"slideChartRef",ref:r},null,512))}},Xe=P._export_sfc(Je,[["__scopeId","data-v-7a2f3dd0"]]),Ke={install(M){M.component("st-kline",Qe),M.component("st-kline-sub-new",Ze),M.component("st-kline-tips-new",He),M.component("st-kline-slide-new",Xe),M.component("st-kline-utils-new",qe)}};module.exports=Ke;
1
+ "use strict";require("./base-7ba08794.cjs");const ae=require("./el-menu-item-7aca344e.cjs");require("./el-tooltip-0ea8fbf8.cjs");require("./el-popper-1dd8f5b4.cjs");const n=require("vue"),je=require("echarts"),P=require("./_plugin-vue_export-helper-f246444f.cjs"),J=require("./index-8901a38c.cjs"),ue=require("./index.esm-94a95a2a.cjs");require("./el-tag-d59f3463.cjs");const Me=require("./el-select-5fd77a96.cjs");require("./el-scrollbar-bc3f790d.cjs");require("./use-form-common-props-41182853.cjs");require("./index-eea0bcb3.cjs");require("./typescript-b63f8e83.cjs");require("./vnode-8cb31692.cjs");require("./index-c30cf7f9.cjs");require("./index-ae6c9d97.cjs");require("./index-a206f6eb.cjs");require("./castArray-efa457a5.cjs");require("./index-d8294b1a.cjs");require("./scroll-19533c53.cjs");require("./debounce-4aa22feb.cjs");function de(M){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(M){for(const i in M)if(i!=="default"){const e=Object.getOwnPropertyDescriptor(M,i);Object.defineProperty(t,i,e.get?e:{enumerable:!0,get:()=>M[i]})}}return t.default=M,Object.freeze(t)}const H=de(je),ye={class:"st-kline-tips"},ge={class:"st-kline-tips-row"},Te=n.defineComponent({__name:"index",props:{data:{type:Array,default:()=>[]}},setup(M){return(t,i)=>(n.openBlock(),n.createElementBlock("div",ye,[n.createElementVNode("div",ge,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.data,e=>(n.openBlock(),n.createElementBlock("div",{class:"st-kline-tips-row-item",style:n.normalizeStyle({color:e.color})},n.toDisplayString(e.label)+" "+n.toDisplayString(e.value),5))),256))])]))}});const X=P._export_sfc(Te,[["__scopeId","data-v-78aed210"]]),De=n.defineComponent({__name:"index",emits:["closeContextMenuCallBack"],setup(M,{emit:t}){const i=t,e=n.ref(),o=n.ref(),a=n.ref({display:"none",top:"0px",left:"0px"}),j=()=>{a.value.display="none",i("closeContextMenuCallBack"),document.removeEventListener("click",j)},s=r=>{if(r.preventDefault(),r.stopPropagation(),a.value.display==="block"){const{offsetX:c,offsetY:d}=r,{offsetWidth:I,offsetHeight:u}=o.value;if(c<=I&&d<=u)return}e.value.click(),a.value={display:"block",top:`${r.offsetY}px`,left:`${r.offsetX}px`},n.nextTick(()=>{const{bottom:c,height:d,right:I,width:u}=o.value.getBoundingClientRect();c>window.innerHeight?a.value={display:"block",top:`${r.offsetY-d}px`,left:`${r.offsetX}px`}:I>window.innerWidth&&(a.value={display:"block",top:`${r.offsetY}px`,left:`${r.offsetX-u}px`})}),document.addEventListener("click",j)};return(r,c)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"contextmenuRef",ref:e,class:"contextmenu",onContextmenu:s,onMouseleave:j},[n.renderSlot(r.$slots,"default",{},void 0,!0),a.value.display!=="none"?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"contextmenuContentRef",ref:o,class:"contextmenu-popover",style:n.normalizeStyle(a.value)},[n.renderSlot(r.$slots,"popover",{},void 0,!0)],4)):n.createCommentVNode("",!0)],544))}});const Ie=P._export_sfc(De,[["__scopeId","data-v-249fd104"]]);let le=!1,re=!0,ce=[];const se=M=>{const t=[],i=[],e=[],o=[],a=[],j=[];return M.forEach((s,r)=>{t.push(s[0]),i.push(s[1]),e.push(s[4]),o.push(s[2]),a.push(s[3]),j.push([s[1],s[4],s[3],s[2],Number(s[6]),r===0?s[4]:M[r-1][4]])}),{time:t,open:i,close:e,high:o,low:a,kLineData:j}},Le=async()=>{if(!le)le=!0,await ue.init("./talib.wasm"),re=!1,ce.forEach(M=>{M()});else if(re)return new Promise(M=>{ce.push(M)})},$=(M,t)=>M.length>t?M.slice(M.length-t):M,pe=(M,t,i)=>M.calculationFn?M.calculationFn(ue.talib,t,i):new Array(t.time.length).fill(null),fe=async(M,t,i)=>{const e=se(M);let o=[];return o=se(o),await Le(),{originData:$(M,i),kLine:$(e.kLineData,i),time:$(e.time,i),indicator:t.config.reduce((a,j)=>(a.push({key:j.key,color:j.color,data:$(pe(j,e,o),i)}),a),[])}},K="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=",ee="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+",te="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",W=(M,t)=>{const{type:i="log",color:e="black"}=t??{};localStorage.getItem("st-kline-console-show")==="true"&&console[i](`%c${M}`,`color:${e}`)},C=M=>M||M===0?Math.round(M*1e3)/1e3:null,xe=M=>M>=1e12?`${(M/1e12).toFixed(2)}万亿`:M>=1e8?`${(M/1e8).toFixed(2)}亿`:M>=1e4?`${(M/1e4).toFixed(2)}万`:M.toFixed(2),Ye=M=>{const{y:t,text:i,info:e,gridLeft:o,gridRight:a,echartsWidth:j,echartsInstance:s}=M,{config:r,event:c}=e;let d=0;return{type:"group",draggable:r.draggable?"vertical":!1,children:[{type:"line",info:e,shape:{x1:o,y1:t,x2:j-a,y2:t},style:{stroke:r.lineColor,lineWidth:1,lineDash:[8,4]},z:10},{type:"group",x:j,y:t-5,children:[{type:"text",left:-1*a,info:e,style:{fill:r.textColor,text:i,stroke:"#000",lineWidth:1,opacity:1},z:10}]}],onmouseover:I=>{c.onmouseover instanceof Function&&c.onmouseover(I,e)},onmouseout:I=>{c.onmouseout instanceof Function&&c.onmouseout(I,e)},ondragstart:I=>{c.ondragstart instanceof Function&&r.draggable&&(d=I.offsetY,c.ondragstart(I,e))},ondragend:I=>{if(c.ondragend instanceof Function&&r.draggable){const N=I.offsetY-d;if(N===0)return;const L=s.convertFromPixel({yAxisIndex:0},t+N);c.ondragend(I,e,L)}}}},Ae=M=>{const{y:t,text:i,info:e,gridLeft:o,gridRight:a,echartsWidth:j,echartsInstance:s}=M,{config:r,event:c}=e;let d=0;const I=N=>{let L=null;N.target.type==="line"?L=N.target.parent:N.target.type==="tspan"&&(L=N.target.parent.parent.parent),L.children()[1].children()[0].animate("style",!1).when(200,{opacity:1}).start()},u=N=>{let L=null;N.target.type==="line"?L=N.target.parent:N.target.type==="tspan"&&(L=N.target.parent.parent.parent),L.children()[1].children()[0].animate("style",!1).when(200,{opacity:0}).start()};return{type:"group",draggable:r.draggable?"vertical":!1,children:[{type:"line",info:e,shape:{x1:o,y1:t,x2:j-a,y2:t},style:{stroke:r.lineColor,lineWidth:1},z:10},{type:"group",x:j/2,y:t-5,children:[{type:"text",left:"center",info:e,style:{fill:r.textColor,text:i,stroke:"#000",lineWidth:1,opacity:0},z:10}]}],onmouseover:N=>{c.onmouseover instanceof Function?c.onmouseover(N,e):I(N)},onmouseout:N=>{c.onmouseout instanceof Function?c.onmouseout(N,e):u(N)},ondragstart:N=>{c.ondragstart instanceof Function&&r.draggable&&(d=N.offsetY,c.ondragstart(N,e))},ondragend:N=>{if(c.ondragend instanceof Function&&r.draggable){const l=N.offsetY-d;if(l===0)return;const f=s.convertFromPixel({yAxisIndex:0},t+l);c.ondragend(N,e,f)}}}},me=M=>{const{y:t,text:i,profitY:e,profitText:o,lossY:a,lossText:j,info:s,gridLeft:r,gridRight:c,echartsWidth:d,echartsInstance:I}=M,{config:u,event:N}=s;let L=0,l=null,f=null;const w=(z,g)=>{var D,Y,m,k;(D=z.children()[2])==null||D.animate("style",!1).when(200,{opacity:~~g}).start(),(Y=z.children()[3].children()[0])==null||Y.animate("style",!1).when(200,{opacity:~~g}).start(),(m=z.children()[4])==null||m.animate("style",!1).when(200,{opacity:~~g}).start(),(k=z.children()[5].children()[0])==null||k.animate("style",!1).when(200,{opacity:~~g}).start()},h=z=>{let g=null;z.target.type==="line"?g=z.target.parent:z.target.type==="tspan"&&(g=z.target.parent.parent.parent),l=D=>{D.preventDefault(),(D.code==="AltLeft"||D.code==="AltRight")&&w(g,!0)},f=D=>{(D.code==="AltLeft"||D.code==="AltRight")&&w(g,!1)},window.addEventListener("keydown",l),window.addEventListener("keyup",f)},v=z=>{let g=null;z.target.type==="line"?g=z.target.parent:z.target.type==="tspan"&&(g=z.target.parent.parent.parent),w(g,!1),window.removeEventListener("keydown",l),window.removeEventListener("keyup",f)};return{type:"group",draggable:u.draggable?"vertical":!1,children:[{type:"line",info:s,shape:{x1:r,y1:t,x2:d-c,y2:t},style:{stroke:u.lineColor,lineWidth:1},z:10},{type:"group",x:d/2,y:t-5,children:[{type:"text",left:"center",info:s,style:{fill:u.textColor,text:i,stroke:"#000",lineWidth:1,opacity:1},z:10}]},{type:"line",info:s,shape:{x1:r,y1:e,x2:d-c,y2:e},style:{stroke:u.profitLineColor,lineWidth:1,lineDash:[8,4],opacity:0},z:10},{type:"group",x:d/2,y:e-5,children:[{type:"text",left:"center",info:s,style:{fill:u.profitTextColor,text:o,stroke:"#000",lineWidth:1,opacity:0},z:10}]},{type:"line",info:s,shape:{x1:r,y1:a,x2:d-c,y2:a},style:{stroke:u.lossLineColor,lineWidth:1,lineDash:[8,4],opacity:0},z:10},{type:"group",x:d/2,y:a-5,children:[{type:"text",left:"center",info:s,style:{fill:u.lossTextColor,text:j,stroke:"#000",lineWidth:1,opacity:0},z:10}]}],onmouseover:z=>{N.onmouseover instanceof Function?N.onmouseover(z,s):h(z)},onmouseout:z=>{N.onmouseout instanceof Function?N.onmouseout(z,s):v(z)},ondragstart:z=>{N.ondragstart instanceof Function&&u.draggable&&(L=z.offsetY,N.ondragstart(z,s))},ondragend:z=>{if(N.ondragend instanceof Function&&u.draggable){const D=z.offsetY-L;if(D===0)return;const Y=I.convertFromPixel({yAxisIndex:0},t+D);N.ondragend(z,s,Y)}}}},q=(M,t)=>{const{direction:i="",tradeAction:e="",tradeType:o=""}=M;if(t==="sellBuy"){const a=o??i+e;return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(a)}else if(t==="openClose")return o??i+e},we=(M,t)=>M.reduce((i,e)=>{var d;const o=q(e,"sellBuy"),a=M.filter(I=>I.time===e.time);let j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;a.length>1?[...new Set(a.map(u=>q(u,"sellBuy")))].length>1?j="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href:j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;const r=(t.find(I=>I[0]===e.time)??[])[2],c=((d=e==null?void 0:e.markLineTarget)==null?void 0:d.map(I=>{const u=e.time,N=r+"",L=I.time,l=t.find(w=>w[0]===I.time),f=l?l[3]:null;return[{coord:[u,N],lineStyle:I.lineStyle},{coord:[L,f]}]}))??null;return i.push({symbol:j,symbolSize:25,animation:!1,coord:[e.time+"",r],symbolRotate:0,symbolOffset:[0,"-7"],markLineTarget:c}),i},[]),he=(M,t)=>M.reduce((i,e,o)=>{var I;const a=q(e,"openClose"),j=a==="开多"||a==="开空"?"top":"bottom",s=t.find(u=>u[0]===e.time)??[],r=j==="top"?s[2]:s[3];let c=7;c+=M.slice(0,o).filter(u=>{const N=q(u,"openClose");return(N==="开多"||N==="开空"?"top":"bottom")===j&&u.time===e.time}).length*7;const d=((I=e==null?void 0:e.markLineTarget)==null?void 0:I.map(u=>{const N=e.time,L=r+"",l=u.time,f=t.find(w=>w[0]===u.time)[3];return[{coord:[N,L],lineStyle:u.lineStyle},{coord:[l,f]}]}))??null;return i.push({symbol:"triangle",symbolSize:[10,12],animation:!1,coord:[e.time+"",r],symbolRotate:j==="top"?180:0,symbolOffset:[0,`${j==="top"?c*-1:c}`],itemStyle:{color:j==="top"?"#FF0000":"#389e0d"},label:{show:!0,position:j,color:"#fff",formatter:`${a} ${j==="top"?"+":"-"} ${e.amount}手 ${e.part?`(${e.part}份)`:""}`},markLineTarget:d}),i},[]),Ce=(M,t)=>M.reduce((i,e)=>{const{key:o,data:a}=e;if(a===null||a.length===0)return i;const s=new Map([["sellBuy",()=>we(a,t)],["openClose",()=>he(a,t)],["signal",()=>{}]]).get(o);return s instanceof Function&&i.push(...s()),i},[]),ne=async(M,t,i,e,o,a)=>{const{totalBarCount:j,defaultShowBarCount:s,maxValueSpan:r,gridLeft:c,gridTop:d,gridRight:I,gridBottom:u,zoomLock:N}=e,{time:L,kLine:l,originData:f,indicator:w}=await fe(M,i,j),h=w.map(g=>{const{key:D,data:Y,color:m}=g;return{name:D,type:"line",silent:!0,symbol:"none",data:Y,lineStyle:{width:1},itemStyle:{color:m}}}),v=Ce(t,f);let z=[];return v.forEach(g=>{g.markLineTarget&&(z=[...z,...g.markLineTarget])}),{animation:!1,dataset:{id:"data",source:{klineData:l,indicatorData:w}},grid:{left:`${c}px`,top:`${d}px`,right:`${I}px`,bottom:`${u}px`},tooltip:{trigger:"axis",axisPointer:{type:"cross",label:{formatter:g=>{const{axisDimension:D,value:Y}=g;return D==="x"?Y:String(C(Y))}}},formatter:g=>{let D=null,Y="";return g.forEach(m=>{m.seriesName==="资产持仓净值"&&m.data!==null&&(Y+=`<div>资产持仓净值: ${m.data}</div>`),m.componentSubType==="candlestick"&&t.forEach(k=>{const{key:E,data:F}=k;if(E==="sellBuy"){const b=F.filter(x=>x.time===m.axisValue);let B=0,T=0;b.forEach(x=>{x.tradeType==="开多"||x.tradeType==="平空"?B+=x.amount:T+=x.amount}),B&&(Y+=`<div>买: ${B}</div>`),T&&(Y+=`<div>卖: ${T}</div>`)}E==="openClose"&&F.forEach(b=>{b.time===m.axisValue&&(Y+=b.tooltip)})}),Y&&(D=`<div><span style="font-weight: bold;">${m.axisValue}</span>${Y}</div>`)}),D}},xAxis:{type:"category",data:L,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},axisLabel:{show:!0,formatter:g=>g}},yAxis:[{index:0,splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:g=>{const{min:D,max:Y}=g,m=Math.abs((Y-D)/10);return D-m},max:g=>{const{min:D,max:Y}=g,m=Math.abs((Y-D)/10);return Y+m},axisLine:{show:!0},axisLabel:{formatter:g=>C(g),showMaxLabel:!1}},{show:!1,min:"dataMin"}],dataZoom:[{type:"inside",xAxisIndex:[0,0],zoomLock:N,maxValueSpan:r,start:l.length>=s?(l.length-s)/l.length*100:0,end:99.99}],series:[{name:"k线",type:"candlestick",data:l,markPoint:{data:v},markLine:{position:"middle",textStyle:{color:"blue",fontSize:15},animation:!1,data:z,lineStyle:{width:3,type:"solid"},symbol:["none","none"]},itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1},z:1},...h,{name:"资产持仓净值",type:"line",data:o??[],symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#666"}},{name:"二腿相关度",type:"line",data:a??[],symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#FFF"},lineStyle:{width:2},label:{show:!0,position:"top",formatter:g=>`相关度: ${g.data[1]}`,textStyle:{color:"#FFF",fontSize:14}}}],toolbox:{show:!1},brush:{xAxisIndex:"all",brushLink:"all",transformable:!1,outOfBrush:{colorAlpha:1},brushStyle:{color:"rgba(120,140,180,0)",borderColor:"rgba(255,255,255,0.4)"}}}},Oe=(M,t,i)=>{var I;const{gridLeft:e,gridRight:o,gridBottom:a,warningConfig:j,positionConfig:s,conditionConfig:r,isOpenDS:c}=t;let d=[];if((I=i==null?void 0:i.getModel())!=null&&I.getComponent){const[u,N]=i.getModel().getComponent("yAxis").axis.scale._extent;let L=[],l={},f=[],w={},h=[],v={};if(M.forEach(({key:z,data:g,...D})=>{z==="warning"?(L=g,l=D):z==="position"?(f=g,w=D):z==="condition"&&(h=g,v=D)}),L.length>0&&(d=L.reduce((z,g)=>{const{value:D,text:Y,info:m,config:k}=g;if(D>N||D<u)return z;const E={y:i.convertToPixel({yAxisIndex:0},D),text:Y,info:{info:m,config:{...j,...k},event:{...l}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,Ye(E)]},d)),f.length>0&&(d=f.reduce((z,g)=>{const{value:D,text:Y,info:m,config:k}=g;if(D>N||D<u)return z;const E={y:i.convertToPixel({yAxisIndex:0},D),text:Y,info:{info:m,config:{...s,...k},event:{...w}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,Ae(E)]},d)),h.length>0&&(d=h.reduce((z,g)=>{const{value:D,text:Y,profitValue:m,profitText:k,lossValue:E,lossText:F,info:b,config:B}=g;if(D>N||D<u)return z;const T={y:i.convertToPixel({yAxisIndex:0},D),text:Y,profitY:i.convertToPixel({yAxisIndex:0},m),profitText:k,lossY:i.convertToPixel({yAxisIndex:0},E),lossText:F,info:{info:b,config:{...r,...B},event:{...v}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,me(T)]},d)),c){const z=i.getOption(),g=z.dataset[0].source.klineData.slice(z.dataZoom[0].startValue,z.dataZoom[0].endValue+1),D={};g.forEach(T=>{D[T[1]]?D[T[1]]+=1:D[T[1]]=1});const Y=g[g.length-1][1],m=g.reduce((T,x)=>T+x[1],0)/g.length,k=Y-m,E=ve(g,1,50),F=Ee(g),b=F?k/F:0,B=ke(g,1,Y);d=[...d,{type:"group",draggable:!1,children:Object.keys(D).map(T=>({type:"line",shape:{x1:i.getWidth()-o-100*D[T],y1:i.convertToPixel({yAxisIndex:0},T),x2:i.getWidth()-o,y2:i.convertToPixel({yAxisIndex:0},T)},style:{stroke:"rgb(124,124,124)",lineWidth:1},z:10}))},{type:"text",x:e+6,y:i.getHeight()-a-20,style:{fill:"#FFF",text:`均值: ${C(m)}    距均值: ${C(k)}    中值: ${C(E)}    标准差: ${C(F)}    距均值/标准差: ${C(b)}    百分位: ${C(B)}%`,lineWidth:1,opacity:1},z:10}]}}return{elements:d}},ke=(M,t,i)=>{const{round:e,add:o,subtract:a,multiply:j,divide:s}=J.x,r=M.map(d=>d[t]).sort((d,I)=>d-I);let c=0;for(let d=0;d<r.length;d++)if(r[d]===i){c=d;break}else if(r[d]>=i){c=o(d,s(a(r[d+1],r[d]),r[d]));break}return e(s(j(c,100),M.length+1))},ve=(M,t,i)=>{const{round:e,add:o,subtract:a,multiply:j,divide:s}=J.x,r=M.map(u=>u[t]).sort((u,N)=>u-N),c=j(M.length+1,s(i,100)),d=Math.floor(c),I=a(c,d);return e(I===0?r[c]:o(r[d],j(a(r[d>=M.length-1?d:d+1],r[d]),I)))};function Ee(M){const t=M.map(j=>j[1]),i=t.length;let e=0,o=0;for(const j of t)e+=j;const a=e/i;for(const j of t)o+=Math.pow(j-a,2);return Math.sqrt(o/i)}const be={class:"st-kline"},Se={class:"st-kline-header"},_e=300,Fe=n.defineComponent({__name:"index",props:{indicator:{type:Object,default:()=>({})},klineData:{type:Array,default:()=>[]},markData:{type:Array,default:()=>[]},lineData:{type:Array,default:()=>[]},netPositionData:{type:Array,default:()=>[]},relevanceData:{type:Array,default:()=>[]},priceTrendData:{type:Array,default:()=>[]},priceTrendPercentData:{type:Array,default:()=>[]},brushRange:{type:Array,default:()=>[]},defaultMenuData:{type:Array,default:()=>[]},isSelect:{type:Boolean,default:()=>!1},config:{type:Object,default:()=>({})}},setup(M){const t=M,i={totalBarCount:2e3,defaultShowBarCount:200,preBarCount:800,maxValueSpan:1e4,gridLeft:60,gridTop:0,gridRight:60,gridBottom:30,warningConfig:{draggable:!1,lineColor:"#fff",textColor:"#fff"},positionConfig:{draggable:!1,lineColor:"#e45d07",textColor:"#fff"},conditionConfig:{draggable:!1,lineColor:"#fff",textColor:"#fff",profitLineColor:"#b71e44",profitTextColor:"#fff",lossLineColor:"#749b66",lossTextColor:"#fff"},tipsConfig:{open:!0,heigh:!0,low:!0,close:!0,business:!0,riseAndFall:!0},dynamicLoadConfig:{historyVisible:!1,historyLoadCallBack:()=>{},futureVisible:!1,futureLoadCallBack:()=>{}},zoomLock:!1,isOpenDS:!1},e=n.computed(()=>({...i,...t.config})),o=n.ref(null),a=n.ref(-1),j=n.computed(()=>{var T,x;if(o.value&&((x=(T=o.value.dataset[0])==null?void 0:T.source)!=null&&x.klineData[a.value])){const p=o.value.dataset[0].source.klineData[a.value],y=[],{open:A,heigh:O,low:S,close:Q,business:V,riseAndFall:R}=e.value.tipsConfig;if(A&&y.push({label:"开",value:C(p[0]),color:"rgb(153, 153, 153)"}),O&&y.push({label:"高",value:C(p[3]),color:"rgb(153, 153, 153)"}),S&&y.push({label:"低",value:C(p[2]),color:"rgb(153, 153, 153)"}),Q&&y.push({label:"收",value:C(p[1]),color:"rgb(153, 153, 153)"}),V&&y.push({label:"额",value:xe(p[4]),color:"rgb(153, 153, 153)"}),R){let U=((p[1]-p[5])/p[1]*100).toFixed(2),_=+U==0?"white":+U>0?"red":"#00ff00";y.push({label:"涨跌",value:`${U}%`,color:_})}return y}return[]}),s=n.computed(()=>{var T,x;return o.value&&((x=(T=o.value.dataset[0])==null?void 0:T.source)!=null&&x.indicatorData)?o.value.dataset[0].source.indicatorData.reduce((p,y)=>(y.data[a.value]&&p.push({label:y.key,value:C(y.data[a.value]),color:y.color}),p),[]):[]}),r=n.computed(()=>{const T=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"];if(t.priceTrendData.length>0){const x=[];return t.priceTrendData.forEach((p,y)=>{var O;(p.data[a.value]?C(p.data[a.value][1]):null)!==null&&x.push({label:p.name,value:C((O=p.data[a.value])==null?void 0:O[1]),color:T[y]})}),x}if(t.priceTrendPercentData.length>0){const x=[];return l.getOption().series.filter(y=>y.name.includes("二腿价格走势百分比图")).forEach((y,A)=>{var S;(y.data[a.value]?C(y.data[a.value][1]):null)!==null&&x.push({label:y.name.split("-")[1],value:`${C((S=y.data[a.value])==null?void 0:S[1])}%`,color:T[A]})}),x}return[]});n.watch(()=>[t.klineData,t.indicator,t.markData,t.netPositionData,t.relevanceData],()=>{c()},{deep:!0}),n.watch(()=>t.lineData,async()=>{W("st-kline组件消息:props.lineData监控,额外画线数据发生改变,重绘->line",{color:"red"}),c("line")},{deep:!0}),n.watch(()=>t.brushRange,async()=>{W("st-kline组件消息:props.brushRange监控,区域刷选数据发生改变,重绘->brush",{color:"red"}),c("brush")},{deep:!0}),n.watch(()=>t.priceTrendData,async()=>{c("priceTrend")},{deep:!0}),n.watch(()=>t.priceTrendPercentData,async()=>{c("priceTrendPercent")},{deep:!0});const c=async T=>{const p=new Map([["kline",async()=>{const y=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData),{graphic:A}=l.getOption()??{graphic:[]};o.value={...y,graphic:A},l.setOption(o.value,!0),W("st-kline组件消息:K线绘制完毕-draw",{color:"green"})}],["line",()=>{const y=l.getOption(),A=Oe(t.lineData,e.value,l);o.value={...y,graphic:A},l.setOption(o.value,{replaceMerge:["graphic"]}),W("st-kline组件消息:额外画线绘制完毕-draw",{color:"green"})}],["brush",()=>{const{brushRange:y}=t;y instanceof Array&&y.length>0&&(l.dispatchAction({type:"brush",areas:[{brushType:"lineX",coordRange:[y[0]+"",y[1]+""],xAxisIndex:0}]}),W("st-kline组件消息:区域刷选绘制完毕-draw",{color:"green"}))}],[void 0,async()=>{await c("kline"),await c("line"),await c("priceTrend"),await c("priceTrendPercent"),await c("brush")}],["history",async()=>{const y=l.getOption(),A=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData),O=A.dataset.source.klineData.length-y.dataset[0].source.klineData.length;l.setOption({...A,dataZoom:[{type:"inside",xAxisIndex:[0,0],zoomLock:e.value.zoomLock,maxValueSpan:e.value.maxValueSpan,startValue:y.dataZoom[0].startValue+O,endValue:y.dataZoom[0].endValue+O}]},!0),await c("priceTrend")}],["future",async()=>{const y=l.getOption(),A=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData);A.dataZoom[0].start=(t.klineData.length-y.dataZoom[0].endValue+y.dataZoom[0].startValue)/t.klineData.length*100,l.setOption(A,!0),await c("priceTrend")}],["priceTrend",()=>{if(t.priceTrendData.length===0)return;const y=l.getOption(),A=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"],O=t.priceTrendData.reduce((S,Q,V)=>{const{name:R,data:U}=Q,_={name:`二腿价格走势图-${R}`,type:"line",data:U,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:A[V]},lineStyle:{type:"dashed",width:1}};return S.push(_),S},[]);o.value={...y,series:[...y.series,...O]},l.setOption(o.value,{replaceMerge:["series"]})}],["priceTrendPercent",async()=>{if(t.priceTrendPercentData.length===0)return;const y=l.getOption(),A=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"],O=y.dataZoom[0].startValue,S=t.priceTrendPercentData.reduce((Q,V,R)=>{const{name:U,data:_}=V,Z=_.length>e.value.totalBarCount?_.slice(_.length-e.value.totalBarCount):_,G=Z[O][1],Ne=Z.map(ie=>[ie[0],(ie[1]-G)/G*100]),ze={name:`二腿价格走势百分比图-${U}`,type:"line",data:Ne,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:A[R]},lineStyle:{type:"dashed",width:1}};return Q.push(ze),Q},[]);y.series=[...y.series.filter(Q=>!Q.name.includes("二腿价格走势百分比图")),...S],l.setOption(y,!0)}]]).get(T);p instanceof Function&&await p()},d=n.ref(!1),I=n.ref([]),u=T=>{const{callBack:x}=T;x instanceof Function&&x(l,d)},N=()=>{I.value=t.defaultMenuData},L=n.ref();let l,f;const w=(T,x)=>{var p,y;if(T)a.value=typeof((p=T==null?void 0:T.batch[0])==null?void 0:p.dataIndex)=="number"?(y=T==null?void 0:T.batch[0])==null?void 0:y.dataIndex:-1;else{const A=x.getOption();A.dataZoom instanceof Array&&(a.value=A.dataZoom[0].endValue)}};let h=null,v=!1,z=n.ref(!1),g=!1,D=n.ref(!1);const Y=async T=>{const x=T.batch?T.batch[0].start*e.value.totalBarCount:T.startValue;e.value.dynamicLoadConfig.historyVisible&&x<=100&&!v&&!z.value&&(v=!0,await e.value.dynamicLoadConfig.historyLoadCallBack(z),await c("history"),v=!1);const p=T.batch?T.batch[0].end===100:T.endValue>=t.klineData.length-e.value.preBarCount-1,y=T.actionIsWheel;e.value.dynamicLoadConfig.futureVisible&&p&&!g&&!D.value&&!y&&(g=!0,await e.value.dynamicLoadConfig.futureLoadCallBack(D),await c("future"),g=!1),clearTimeout(h),h=setTimeout(()=>{c("line"),c("priceTrendPercent"),clearTimeout(h),h=null},_e)};let m=null;const k=T=>{m=setTimeout(()=>{var x;if(T.componentType==="graphic"){const{oncontextmenu:p}=((x=T.info)==null?void 0:x.event)??{};p instanceof Function&&p(T,T.info,I)}clearTimeout(m),m=null})},E=()=>{l.on("highlight",T=>{w(T,l)}),l.on("globalout",()=>{w(null,l)}),l.on("contextmenu",T=>{k(T)}),l.on("datazoom",T=>{Y(T)})},F=()=>{l.off("highlight"),l.off("globalout"),l.off("contextmenu"),l.off("datazoom")},b=T=>{if(!l||!(T.ctrlKey||t.isSelect))return;const x=l.getOption();let{startValue:p,endValue:y,start:A,end:O}=x.dataZoom[0];const S=()=>{p!==0&&(p=p-1,y=y-1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan}))},Q=()=>{if(e.value.dynamicLoadConfig.futureVisible&&!g&&!D.value)p=p+1,y=y+1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan});else{if(y===x.xAxis[0].data.length-1)return;p=p+1,y=y+1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan})}},V=()=>{if(y-p<5)return;const Z=Math.floor((a.value-p)/2)+1,G=Math.floor((y-a.value)/2)+1;p=p+Z,y=y-G,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,actionIsWheel:!0,maxValueSpan:e.value.maxValueSpan})},R=()=>{A=A-(O-A)/4,l.dispatchAction({type:"dataZoom",start:A,end:O,actionIsWheel:!0,maxValueSpan:e.value.maxValueSpan})},_=new Map([["ArrowLeft",S],["ArrowRight",Q],["ArrowUp",V],["ArrowDown",R]]).get(T.code);_ instanceof Function&&_()},B=async()=>{let T=!0;l=H.init(L.value),await c(),I.value=t.defaultMenuData,a.value=l.getOption().dataZoom[0].endValue??-1,E(),f=new ResizeObserver(()=>{if(T){T=null;return}l.resize(),c("line")}),f.observe(L.value),window.addEventListener("keydown",b)};return n.onMounted(()=>{B()}),n.onUnmounted(()=>{F(),window.removeEventListener("keydown",b),l.dispose(),f.disconnect(),f=null}),(T,x)=>{const p=ae.ElMenuItem,y=ae.ElMenu;return n.openBlock(),n.createElementBlock("div",be,[n.createElementVNode("div",Se,[n.createVNode(X,{data:j.value},null,8,["data"]),n.createVNode(X,{data:s.value},null,8,["data"]),n.createVNode(X,{data:r.value},null,8,["data"])]),n.createVNode(Ie,{class:"st-kline-body",onCloseContextMenuCallBack:N},{popover:n.withCtx(()=>[n.createVNode(y,{class:"menu"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(I.value,A=>(n.openBlock(),n.createBlock(p,{key:A.label,index:A.label,class:"menuItem",onClick:O=>u(A)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(A.label),1)]),_:2},1032,["index","onClick"]))),128))]),_:1})]),default:n.withCtx(()=>[n.createElementVNode("div",{ref_key:"echartsRef",ref:L,class:n.normalizeClass(d.value?"st-kline-chart cursorPen":"st-kline-chart")},null,2)]),_:1})])}}});const Qe=P._export_sfc(Fe,[["__scopeId","data-v-7f014d0e"]]),Be={class:"kline-tips"},Ue=n.defineComponent({__name:"index",props:{data:{type:Array,require:!0}},setup(M){return(t,i)=>(n.openBlock(),n.createElementBlock("div",Be,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.data,(e,o)=>(n.openBlock(),n.createElementBlock("div",{key:o,class:"kline-tips-item",style:n.normalizeStyle({color:e.color})},n.toDisplayString(e.label)+" "+n.toDisplayString(e.value),5))),128))]))}});const oe=P._export_sfc(Ue,[["__scopeId","data-v-dc7d381b"]]);const Ve={class:"klineSub"},Re={class:"klineSub-tips"},Pe={key:0,class:"klineSub-tips-select"},We={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0},modelValue:{type:String,required:!0},subIndicatorList:{type:Array,required:!0}},emits:["update:modelValue"],setup(M,{expose:t,emit:i}){const{round:e}=J.x;let o,a;const j=i,s=M,r=n.ref(),c=n.computed({get(){return s.modelValue},set(u){j("update:modelValue",u)}}),d=n.computed(()=>{var L;const{data:u,activeIndex:N}=s;return((L=u==null?void 0:u.subIndicator)==null?void 0:L.map(l=>({label:l.key,color:l.color,value:l.data[N]||"-"})))||[]});n.onMounted(()=>{o=H.init(r.value);let u=!0;a=new ResizeObserver(()=>{if(u){u=null;return}o.resize()}),a.observe(r.value)}),n.onUnmounted(()=>{o.dispose(),a.disconnect(),a=null});const I=(u,N)=>{const L=u[N],l=N===0?u[N]:u[N-1];return L[0]===L[1]?L[0]>=l[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:L[1]>L[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}};return t({connect:u=>{H.connect([u,o])},draw:(u,N)=>{n.nextTick(()=>{const{startValue:L,endValue:l,maxValueSpan:f}=u,{leftYAxisRange:w,rightYAxisRange:h}=s.data.subIndicator[0],v=s.data.subIndicator.map(z=>{if(z.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:z.data.map((g,D)=>z.seriesColor==="kline"?{value:g,itemStyle:I(s.data.data,D)}:z.seriesColor==="value"?{value:g,itemStyle:{color:g>=0?"#FF0000":"#00FFFF"}}:{value:g,itemStyle:{color:z.seriesColor}})};if(z.series==="line")return{xAxisIndex:0,yAxisIndex:z.yAxis==="right"?2:1,name:z.key,type:"line",silent:!0,symbol:"none",data:z.data,lineStyle:{width:1},itemStyle:{color:z.color}}});o.setOption({animation:!1,grid:{left:`${N.gridLeft}px`,top:"10px",right:`${N.gridRight}px`,bottom:"20px"},dataZoom:[{type:"inside",startValue:L,endValue:l,maxValueSpan:f}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:z=>{const{axisDimension:g,value:D}=z;if(g==="x")return D;if(z.axisIndex===1)return String(e(D))}}},formatter:()=>""},xAxis:{type:"category",data:s.data.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!0,formatter:z=>z}},yAxis:[{position:"right"},{position:"left",min:w==="cover"?z=>z.min:null,max:w==="cover"?z=>z.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:h==="cover"?z=>z.min:null,max:h==="cover"?z=>z.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:v},!0)})}}),(u,N)=>{const L=Me.ElOption,l=Me.ElSelect;return n.openBlock(),n.createElementBlock("div",Ve,[n.createElementVNode("div",Re,[d.value.length?(n.openBlock(),n.createElementBlock("div",Pe,[n.createVNode(l,{modelValue:c.value,"onUpdate:modelValue":N[0]||(N[0]=f=>c.value=f),size:"small","popper-class":"element-dark",class:"element-dark subIndicator"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.subIndicatorList,f=>(n.openBlock(),n.createBlock(L,{key:f.value,label:f.label,value:f.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):n.createCommentVNode("",!0),n.createVNode(oe,{data:d.value},null,8,["data"])]),n.createElementVNode("div",{class:"klineSub-chart",ref_key:"subChartRef",ref:r},null,512)])}}},Ze=P._export_sfc(We,[["__scopeId","data-v-aba58678"]]);const Ge={class:"kline-tips"},$e={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0}},setup(M){const{round:t,formatValue:i}=J.x,e=M,o=n.computed(()=>{const{data:j,activeIndex:s}=e;if(j.data&&j.data[s]){const r=j.data[s],c=[{label:"开",value:t(r[0])},{label:"高",value:t(r[3])},{label:"低",value:t(r[2])},{label:"收",value:t(r[1])}];r[4]!==null&&c.push({label:"额",value:i(r[4])});let d;return r[6]>0?d="red":r[6]<0&&(d="green"),c.push({label:"涨跌",value:`${t(r[6])}%`,color:d}),c}return[]}),a=n.computed(()=>{var r;const{data:j,activeIndex:s}=e;return((r=j==null?void 0:j.mainIndicator)==null?void 0:r.map(c=>({label:c.key,value:t(c.data[s]),color:c.color})))||[]});return(j,s)=>(n.openBlock(),n.createElementBlock("div",Ge,[n.createVNode(oe,{data:o.value},null,8,["data"]),n.createVNode(oe,{data:a.value},null,8,["data"])]))}},He=P._export_sfc($e,[["__scopeId","data-v-a12855fe"]]),qe={__name:"index",setup(M,{expose:t}){return t({handleKeyDown:(i,e)=>{let{startValue:o,endValue:a,maxIndex:j}=e;if(i.code==="ArrowLeft"){if(o===0)return;o=o-1,a=a-1}else if(i.code==="ArrowRight"){if(a===j)return;o=o+1,a=a+1}else if(i.code==="ArrowUp"){if(a-o<5)return;const s=Math.floor((a-o)/2)+1;o=o+s,a-o<5&&(o=a-4)}else if(i.code==="ArrowDown"){const s=Math.min(500,a-o);o=o-s-1}return{startValue:o,endValue:a}},mergeData:(i,e)=>({time:[...i.time,...e.time.slice(1)],data:[...i.data,...e.data.slice(1)],mainIndicator:i.mainIndicator.map((o,a)=>({...o,data:[...o.data,...e.mainIndicator[a].data.slice(1)]})),subIndicator:i.subIndicator.map((o,a)=>({...o,data:[...o.data,...e.subIndicator[a].data.slice(1)]}))}),getDataZoomInfoByTime:i=>{const{showStartTime:e,showEndTime:o,maxShowDays:a}=i;let j=-1,s=-1,r={};return i.time.forEach((c,d)=>{const I=c.split(" ")[0];r[I]=r[I]||0,r[I]+=1,j===-1&&new Date(c)>=new Date(e)&&(j=d),s===-1&&new Date(c)>=new Date(o)&&(s=d)}),s=s===-1?i.time.length-1:s,{startValue:j,endValue:s,maxValueSpan:Math.max(...Object.values(r))*a}}}),(i,e)=>null}};const Je={__name:"index",props:{data:{type:Array,default:()=>[]}},emits:["change"],setup(M,{expose:t,emit:i}){let e,o,a=null;const j=i,s=M,r=n.ref();n.watch(()=>s.data,()=>{I()},{deep:!0}),n.onMounted(()=>{e=H.init(r.value),c(),I();let u=!0;o=new ResizeObserver(()=>{if(u){u=null;return}e.resize()}),o.observe(r.value)}),n.onUnmounted(()=>{e.off("datazoom"),e.dispose(),o.disconnect(),o=null});const c=()=>{e.on("datazoom",u=>{u.dataZoomId&&(clearTimeout(a),a=setTimeout(()=>{const{data:N}=s,{start:L,end:l}=u,f=Math.floor(L*N.length/100),w=l===100?N.length-1:Math.floor(l*N.length/100);d(f,w),clearTimeout(a)},100))})},d=(u,N)=>{const L=s.data;if(L.length===0)return;const l=L[u][0].split(" ")[0],f=L[N][0].split(" ")[0];j("change",{startTime:`${l} 00:00:00`,endTime:`${f} 24:00:00`})},I=()=>{const{data:u}=s;if(u.length===0)return;const N=u.map(l=>l[0].split(" ")[0]),L=u.map(l=>l[1]);e.setOption({grid:{height:0,left:"80px",right:"80px"},xAxis:{type:"category",data:N,show:!1},yAxis:{type:"value"},series:[{data:L,type:"line"}]},!0)};return t({resetSlide:(u,N,L)=>{let l=-1,f=-1;s.data.forEach((w,h)=>{l===-1&&w[0]===u?l=h:l===-1&&new Date(w[0])>new Date(u)&&(l=h-1),(f===-1&&w[0]===N||f===-1&&new Date(w[0])>new Date(N))&&(f=h)}),f=f===-1?s.data.length-1:f,e.setOption({dataZoom:[{show:!0,startValue:l,endValue:f,maxValueSpan:L,textStyle:{color:"#ccc"}},{type:"inside",startValue:l,endValue:f,maxValueSpan:L}]})},resize:()=>{e==null||e.resize()}}),(u,N)=>(n.openBlock(),n.createElementBlock("div",{class:"klineSlide",ref_key:"slideChartRef",ref:r},null,512))}},Xe=P._export_sfc(Je,[["__scopeId","data-v-7a2f3dd0"]]),Ke={install(M){M.component("st-kline",Qe),M.component("st-kline-sub-new",Ze),M.component("st-kline-tips-new",He),M.component("st-kline-slide-new",Xe),M.component("st-kline-utils-new",qe)}};module.exports=Ke;
package/es/Kline.js CHANGED
@@ -1,29 +1,26 @@
1
- import "./base-a5af3db3.js";
2
- import { E as he, a as Ce } from "./el-menu-item-7e881203.js";
1
+ import "./base-aa512893.js";
2
+ import { E as he, a as Ce } from "./el-menu-item-36c3004c.js";
3
3
  import "./el-tooltip-4ed993c7.js";
4
- import "./el-popper-b4f97157.js";
4
+ import "./el-popper-49152708.js";
5
5
  import { defineComponent as Me, openBlock as C, createElementBlock as v, 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
6
  import * as oe from "echarts";
7
7
  import { _ as $ } from "./_plugin-vue_export-helper-dad06003.js";
8
8
  import { x as re } from "./index-7ed0999e.js";
9
9
  import { i as ve, t as be } from "./index.esm-8d9a2abe.js";
10
- import "./el-tag-66cab138.js";
11
- import { E as Ee, a as Se } from "./el-select-95627997.js";
10
+ import "./el-tag-55a172c9.js";
11
+ import { E as Ee, a as Se } from "./el-select-700f3686.js";
12
12
  import "./el-scrollbar-323542e7.js";
13
- import "./use-form-common-props-815d48a6.js";
14
- import "./index-960806da.js";
15
- import "./index-a871c3eb.js";
13
+ import "./use-form-common-props-4cdda474.js";
16
14
  import "./index-657047bb.js";
17
15
  import "./typescript-7ae59c4c.js";
18
- import "./vnode-5ddb7ed1.js";
19
- import "./index-e5566b94.js";
20
- import "./index-d77a7336.js";
21
- import "./index-844bdd85.js";
22
- import "./index-57672682.js";
23
- import "./castArray-7741a212.js";
24
- import "./index-d91dc23f.js";
25
- import "./scroll-679bd6bf.js";
26
- import "./debounce-8d53f4dd.js";
16
+ import "./vnode-b62d0045.js";
17
+ import "./index-3d0bc5da.js";
18
+ import "./index-66ad0d6a.js";
19
+ import "./index-4e46f96c.js";
20
+ import "./castArray-1eb17278.js";
21
+ import "./index-cbbd78b4.js";
22
+ import "./scroll-0a48995c.js";
23
+ import "./debounce-33406a0d.js";
27
24
  const Fe = { class: "st-kline-tips" }, Qe = { class: "st-kline-tips-row" }, _e = /* @__PURE__ */ Me({
28
25
  __name: "index",
29
26
  props: {
@@ -1895,11 +1892,11 @@ const Tt = {
1895
1892
  ref: l
1896
1893
  }, null, 512));
1897
1894
  }
1898
- }, Dt = /* @__PURE__ */ $(Tt, [["__scopeId", "data-v-7a2f3dd0"]]), Wt = {
1895
+ }, Dt = /* @__PURE__ */ $(Tt, [["__scopeId", "data-v-7a2f3dd0"]]), Bt = {
1899
1896
  install(a) {
1900
1897
  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);
1901
1898
  }
1902
1899
  };
1903
1900
  export {
1904
- Wt as default
1901
+ Bt as default
1905
1902
  };