st-comp 0.0.167 → 0.0.169

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es/KlinePlus.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import "./base-4bcd2756.js";
2
2
  import { v as Ce } from "./el-loading-5d29f26d.js";
3
- import { E as fe } from "./el-empty-64b2ea8a.js";
3
+ import { E as be } from "./el-empty-64b2ea8a.js";
4
4
  import "./el-tag-6036f51c.js";
5
- import { E as ke, a as be } from "./el-select-d3bce4d1.js";
5
+ import { E as he, a as ke } from "./el-select-d3bce4d1.js";
6
6
  import "./el-scrollbar-bcf29780.js";
7
7
  import "./el-popper-85365d5b.js";
8
- import { openBlock as R, createElementBlock as _, Fragment as Le, renderList as Ae, normalizeStyle as he, toDisplayString as te, inject as me, ref as P, onMounted as xe, nextTick as Ee, watch as Ne, onUnmounted as we, computed as se, withDirectives as ve, createElementVNode as $, createVNode as ee, createCommentVNode as oe, withCtx as Se, createBlock as ge } from "vue";
9
- import { d as p } from "./dayjs.min-54a4e095.js";
10
- import * as ce from "echarts";
11
- import { x as pe, G as Me, D as Qe } from "./index-7ed0999e.js";
12
- import { _ as ze } from "./_plugin-vue_export-helper-dad06003.js";
8
+ import { openBlock as F, createElementBlock as H, Fragment as me, renderList as Ae, normalizeStyle as ve, toDisplayString as Me, inject as we, ref as R, onMounted as pe, nextTick as Ee, watch as te, onUnmounted as xe, computed as ce, withDirectives as Se, createElementVNode as $, createVNode as ee, createCommentVNode as Ne, withCtx as Qe, createBlock as ge } from "vue";
9
+ import { d as g } from "./dayjs.min-54a4e095.js";
10
+ import * as se from "echarts";
11
+ import { x as Oe, G as ae, D as Ue } from "./index-7ed0999e.js";
12
+ import { _ as je } from "./_plugin-vue_export-helper-dad06003.js";
13
13
  import "./use-global-config-946f61a4.js";
14
14
  import "./use-form-common-props-54c31983.js";
15
15
  import "./index-ef7c4392.js";
@@ -21,7 +21,7 @@ import "./index-21fb27eb.js";
21
21
  import "./scroll-0277d145.js";
22
22
  import "./debounce-51046b06.js";
23
23
  import "./_commonjsHelpers-10dfc225.js";
24
- const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=", Pe = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+", Re = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", { round: Fe } = pe, J = {
24
+ const Pe = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=", Re = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+", Fe = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", { round: Ve } = Oe, W = {
25
25
  // 单屏展示条目上限
26
26
  minValueSpan: 5,
27
27
  maxValueSpan: 2e3,
@@ -29,22 +29,52 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
29
29
  loadCheckCount: 500,
30
30
  // 加载更多: 载入条目
31
31
  loadAddCount: 2e3
32
- }, Ve = (n, d) => {
33
- const l = n[d], j = d === 0 ? n[d] : n[d - 1];
34
- return l[0] === l[1] ? l[0] >= j[1] ? {
32
+ }, He = {
33
+ 1: 240,
34
+ // 每天240根(4小时×60分钟)
35
+ 2: 48,
36
+ // 每天48根(4小时×12根)
37
+ 3: 16,
38
+ // 每天16根(4小时×4根)
39
+ 4: 8,
40
+ // 每天8根(4小时×2根)
41
+ 5: 4,
42
+ // 每天4根(4小时×1根)
43
+ 6: 1,
44
+ // 每天1根
45
+ 7: 0.2,
46
+ // 每周1根(按5个交易日算)
47
+ 8: 0.033
48
+ // 每月1根(按21个交易日算)
49
+ }, Ie = ({ startTime: n, endTime: y, cycle: u, type: r = "end" }) => {
50
+ const { maxValueSpan: j } = W, L = Math.ceil((j + 1e3) / He[u]), I = g(n);
51
+ if (g(y).diff(I, "day") <= L)
52
+ return [n, y];
53
+ if (r === "end")
54
+ return [g(y).subtract(L, "day").format("YYYY-MM-DD HH:mm:ss"), y];
55
+ if (r === "middle") {
56
+ const b = g((g(n).valueOf() + g(y).valueOf()) / 2).format("YYYY-MM-DD HH:mm:ss");
57
+ return console.log("超过一屏数量上限, 进行中间时间计算", b, L / 2), [
58
+ g(b).subtract(L / 2, "day").format("YYYY-MM-DD HH:mm:ss"),
59
+ g(b).add(L / 2, "day").format("YYYY-MM-DD HH:mm:ss")
60
+ ];
61
+ }
62
+ }, _e = (n, y) => {
63
+ const u = n[y], r = y === 0 ? n[y] : n[y - 1];
64
+ return u[0] === u[1] ? u[0] >= r[1] ? {
35
65
  color: "transparent",
36
66
  borderColor: "#FF0000"
37
67
  } : {
38
68
  color: "#00FFFF"
39
- } : l[1] > l[0] ? {
69
+ } : u[1] > u[0] ? {
40
70
  color: "transparent",
41
71
  borderColor: "#FF0000"
42
72
  } : {
43
73
  color: "#00FFFF"
44
74
  };
45
- }, _e = (n, d, l) => {
46
- var u, A, I, D;
47
- const j = n.subIndicator.map((e) => {
75
+ }, Be = (n, y, u) => {
76
+ var j, L, I, T;
77
+ const r = n.subIndicator.map((e) => {
48
78
  if (e.series === "bar")
49
79
  return {
50
80
  name: "subMain",
@@ -53,16 +83,16 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
53
83
  type: "bar",
54
84
  silent: !0,
55
85
  symbol: "none",
56
- data: e.data.map((E, v) => e.seriesColor === "kline" ? {
57
- value: E,
58
- itemStyle: Ve(n.data, v)
86
+ data: e.data.map((b, E) => e.seriesColor === "kline" ? {
87
+ value: b,
88
+ itemStyle: _e(n.data, E)
59
89
  } : e.seriesColor === "value" ? {
60
- value: E,
90
+ value: b,
61
91
  itemStyle: {
62
- color: E >= 0 ? "#FF0000" : "#00FFFF"
92
+ color: b >= 0 ? "#FF0000" : "#00FFFF"
63
93
  }
64
94
  } : {
65
- value: E,
95
+ value: b,
66
96
  itemStyle: {
67
97
  color: e.seriesColor
68
98
  }
@@ -96,9 +126,9 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
96
126
  dataZoom: [
97
127
  {
98
128
  type: "inside",
99
- startValue: d,
100
- endValue: l,
101
- maxValueSpan: J.maxValueSpan
129
+ startValue: y,
130
+ endValue: u,
131
+ maxValueSpan: W.maxValueSpan
102
132
  }
103
133
  ],
104
134
  tooltip: {
@@ -110,11 +140,11 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
110
140
  label: {
111
141
  rich: {},
112
142
  formatter: (e) => {
113
- const { axisDimension: E, value: v } = e;
114
- if (E === "x")
143
+ const { axisDimension: b, value: E } = e;
144
+ if (b === "x")
115
145
  return null;
116
146
  if (e.axisIndex === 1)
117
- return String(Fe(v));
147
+ return String(Ve(E));
118
148
  }
119
149
  }
120
150
  },
@@ -137,8 +167,8 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
137
167
  },
138
168
  {
139
169
  position: "left",
140
- min: ((u = n.subIndicator[0]) == null ? void 0 : u.leftYAxisRange) === "cover" ? (e) => e.min : null,
141
- max: ((A = n.subIndicator[0]) == null ? void 0 : A.leftYAxisRange) === "cover" ? (e) => e.max : null,
170
+ min: ((j = n.subIndicator[0]) == null ? void 0 : j.leftYAxisRange) === "cover" ? (e) => e.min : null,
171
+ max: ((L = n.subIndicator[0]) == null ? void 0 : L.leftYAxisRange) === "cover" ? (e) => e.max : null,
142
172
  splitNumber: 1,
143
173
  axisLine: {
144
174
  show: !0
@@ -154,7 +184,7 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
154
184
  {
155
185
  position: "right",
156
186
  min: ((I = n.subIndicator[0]) == null ? void 0 : I.rightYAxisRange) === "cover" ? (e) => e.min : null,
157
- max: ((D = n.subIndicator[0]) == null ? void 0 : D.rightYAxisRange) === "cover" ? (e) => e.max : null,
187
+ max: ((T = n.subIndicator[0]) == null ? void 0 : T.rightYAxisRange) === "cover" ? (e) => e.max : null,
158
188
  splitNumber: 1,
159
189
  axisLine: {
160
190
  show: !1
@@ -167,143 +197,143 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
167
197
  }
168
198
  }
169
199
  ],
170
- series: j
200
+ series: r
171
201
  };
172
- }, je = (n, d, l = "strict") => {
173
- let j = 0, u = n.length - 1, A = -1;
174
- for (; j <= u; ) {
175
- let I = Math.floor((j + u) / 2);
176
- if (l === "strict") {
177
- if (n[I] === d)
202
+ }, ue = (n, y, u = "strict") => {
203
+ let r = 0, j = n.length - 1, L = -1;
204
+ for (; r <= j; ) {
205
+ let I = Math.floor((r + j) / 2);
206
+ if (u === "strict") {
207
+ if (n[I] === y)
178
208
  return I;
179
- n[I] < d ? j = I + 1 : u = I - 1;
209
+ n[I] < y ? r = I + 1 : j = I - 1;
180
210
  } else
181
- l === "gte" && (n[I] >= d ? (A = I, u = I - 1) : j = I + 1);
211
+ u === "gte" && (n[I] >= y ? (L = I, j = I - 1) : r = I + 1);
182
212
  }
183
- return l === "strict" ? -1 : A;
184
- }, Ie = (n, d) => ({
185
- data: [...n.data, ...d.data.slice(1)],
186
- mainIndicator: n.mainIndicator.map((l, j) => ({
187
- ...l,
188
- data: [...l.data, ...d.mainIndicator[j].data.slice(1)]
213
+ return u === "strict" ? -1 : L;
214
+ }, Ye = (n, y) => ({
215
+ data: [...n.data, ...y.data.slice(1)],
216
+ mainIndicator: n.mainIndicator.map((u, r) => ({
217
+ ...u,
218
+ data: [...u.data, ...y.mainIndicator[r].data.slice(1)]
189
219
  })),
190
- subIndicator: n.subIndicator.map((l, j) => ({
191
- ...l,
192
- data: [...l.data, ...d.subIndicator[j].data.slice(1)]
220
+ subIndicator: n.subIndicator.map((u, r) => ({
221
+ ...u,
222
+ data: [...u.data, ...y.subIndicator[r].data.slice(1)]
193
223
  })),
194
- time: [...n.time, ...d.time.slice(1)]
195
- }), Ye = (n, d, l) => {
196
- switch (l) {
224
+ time: [...n.time, ...y.time.slice(1)]
225
+ }), Le = (n, y, u) => {
226
+ switch (u) {
197
227
  case "5": {
198
- let g = [
228
+ let Y = [
199
229
  ...new Set(
200
- n.slice(-20).map((z) => {
201
- const t = new Date(z), N = String(t.getHours()).padStart(2, "0"), Y = String(t.getMinutes()).padStart(2, "0"), f = String(t.getSeconds()).padStart(2, "0");
202
- return `${N}:${Y}:${f}`;
230
+ n.slice(-20).map((d) => {
231
+ const a = new Date(d), s = String(a.getHours()).padStart(2, "0"), m = String(a.getMinutes()).padStart(2, "0"), h = String(a.getSeconds()).padStart(2, "0");
232
+ return `${s}:${m}:${h}`;
203
233
  })
204
234
  )
205
235
  ];
206
- g.includes("00:00:00") && (g.splice(g.indexOf("00:00:00"), 1), g.push("24:00:00")), g = g.sort((z, t) => (/* @__PURE__ */ new Date(`2000-01-30 ${z}`)).getTime() - (/* @__PURE__ */ new Date(`2000-01-30 ${t}`)).getTime());
207
- const y = new Date(d), o = y.getFullYear(), s = String(y.getMonth() + 1).padStart(2, "0"), M = String(y.getDate()).padStart(2, "0"), L = String(y.getHours()).padStart(2, "0"), c = String(y.getMinutes()).padStart(2, "0"), i = String(y.getSeconds()).padStart(2, "0");
208
- if (`${L}:${c}:${i}` == "00:00:00")
209
- return `${o}-${s}-${M} 01:00:00`;
236
+ Y.includes("00:00:00") && (Y.splice(Y.indexOf("00:00:00"), 1), Y.push("24:00:00")), Y = Y.sort((d, a) => (/* @__PURE__ */ new Date(`2000-01-30 ${d}`)).getTime() - (/* @__PURE__ */ new Date(`2000-01-30 ${a}`)).getTime());
237
+ const D = new Date(y), N = D.getFullYear(), l = String(D.getMonth() + 1).padStart(2, "0"), M = String(D.getDate()).padStart(2, "0"), p = String(D.getHours()).padStart(2, "0"), c = String(D.getMinutes()).padStart(2, "0"), i = String(D.getSeconds()).padStart(2, "0");
238
+ if (`${p}:${c}:${i}` == "00:00:00")
239
+ return `${N}-${l}-${M} 01:00:00`;
210
240
  {
211
- let z = null;
212
- for (let t = 0; t < g.length; t++) {
213
- const N = g[t].split(":");
214
- if (+`${N[0]}${N[1]}${N[2]}` >= +`${L}${c}${i}`) {
215
- z = g[t];
241
+ let d = null;
242
+ for (let a = 0; a < Y.length; a++) {
243
+ const s = Y[a].split(":");
244
+ if (+`${s[0]}${s[1]}${s[2]}` >= +`${p}${c}${i}`) {
245
+ d = Y[a];
216
246
  break;
217
247
  }
218
248
  }
219
- if (z === "24:00:00") {
220
- const t = new Date(d);
221
- t.setDate(t.getDate() + 1);
222
- const N = t.getFullYear(), Y = String(t.getMonth() + 1).padStart(2, "0"), f = String(t.getDate()).padStart(2, "0");
223
- return `${N}-${Y}-${f} 00:00:00`;
249
+ if (d === "24:00:00") {
250
+ const a = new Date(y);
251
+ a.setDate(a.getDate() + 1);
252
+ const s = a.getFullYear(), m = String(a.getMonth() + 1).padStart(2, "0"), h = String(a.getDate()).padStart(2, "0");
253
+ return `${s}-${m}-${h} 00:00:00`;
224
254
  }
225
- return `${o}-${s}-${M} ${z}`;
255
+ return `${N}-${l}-${M} ${d}`;
226
256
  }
227
257
  }
228
258
  case "6": {
229
- const g = new Date(d), y = g.getHours();
230
- if (y >= 4 && y < 21) {
231
- const o = g.getFullYear(), s = String(g.getMonth() + 1).padStart(2, "0"), M = String(g.getDate()).padStart(2, "0");
232
- return `${o}-${s}-${M} 09:00:00`;
259
+ const Y = new Date(y), D = Y.getHours();
260
+ if (D >= 4 && D < 21) {
261
+ const N = Y.getFullYear(), l = String(Y.getMonth() + 1).padStart(2, "0"), M = String(Y.getDate()).padStart(2, "0");
262
+ return `${N}-${l}-${M} 09:00:00`;
233
263
  } else {
234
- const o = new Date(d);
235
- o.getHours() >= 21 && o.setDate(o.getDate() + 1);
236
- const s = o.getFullYear(), M = String(o.getMonth() + 1).padStart(2, "0"), L = String(o.getDate()).padStart(2, "0"), c = `${s}-${M}-${L} 09:00:00`, i = je(n, c, "gte");
264
+ const N = new Date(y);
265
+ N.getHours() >= 21 && N.setDate(N.getDate() + 1);
266
+ const l = N.getFullYear(), M = String(N.getMonth() + 1).padStart(2, "0"), p = String(N.getDate()).padStart(2, "0"), c = `${l}-${M}-${p} 09:00:00`, i = ue(n, c, "gte");
237
267
  return i === -1 ? c : n[i];
238
268
  }
239
269
  }
240
270
  case "7": {
241
- const g = new Date(d), y = new Date(g);
242
- y.setDate(g.getDate() - g.getDay()), y.setHours(0, 0, 0, 0);
243
- const o = new Date(y);
244
- o.setDate(y.getDate() + 5), o.setHours(23, 59, 59, 0);
245
- const s = new Date(y);
246
- s.setDate(y.getDate() + 12), s.setHours(9, 0, 0, 0);
247
- const M = g <= o ? o : s, L = M.getFullYear(), c = String(M.getMonth() + 1).padStart(2, "0"), i = String(M.getDate()).padStart(2, "0");
248
- return `${L}-${c}-${i} 09:00:00`;
271
+ const Y = new Date(y), D = new Date(Y);
272
+ D.setDate(Y.getDate() - Y.getDay()), D.setHours(0, 0, 0, 0);
273
+ const N = new Date(D);
274
+ N.setDate(D.getDate() + 5), N.setHours(23, 59, 59, 0);
275
+ const l = new Date(D);
276
+ l.setDate(D.getDate() + 12), l.setHours(9, 0, 0, 0);
277
+ const M = Y <= N ? N : l, p = M.getFullYear(), c = String(M.getMonth() + 1).padStart(2, "0"), i = String(M.getDate()).padStart(2, "0");
278
+ return `${p}-${c}-${i} 09:00:00`;
249
279
  }
250
280
  case "8": {
251
- const g = new Date(d), y = new Date(g.getFullYear(), g.getMonth() + 1, 1), o = new Date(y);
252
- o.setDate(y.getDate() - 1), o.setHours(9, 0, 0, 0);
253
- const s = o.getFullYear(), M = String(o.getMonth() + 1).padStart(2, "0"), L = String(o.getDate()).padStart(2, "0");
254
- return `${s}-${M}-${L} 09:00:00`;
281
+ const Y = new Date(y), D = new Date(Y.getFullYear(), Y.getMonth() + 1, 1), N = new Date(D);
282
+ N.setDate(D.getDate() - 1), N.setHours(9, 0, 0, 0);
283
+ const l = N.getFullYear(), M = String(N.getMonth() + 1).padStart(2, "0"), p = String(N.getDate()).padStart(2, "0");
284
+ return `${l}-${M}-${p} 09:00:00`;
255
285
  }
256
286
  }
257
- const j = new Date(d), u = j.getFullYear(), A = j.getMonth(), I = j.getDate(), D = j.getHours(), e = j.getMinutes(), E = j.getSeconds(), v = (g) => {
258
- let y = null;
259
- const o = Math.floor(e / g);
260
- e % g === 0 && E === 0 ? y = e : y = (o + 1) * g;
261
- const s = Math.floor(y / 60), M = D + s, L = y % 60, c = new Date(u, A, I, M, L, 0), i = (S) => String(S).padStart(2, "0"), z = c.getFullYear(), t = i(c.getMonth() + 1), N = i(c.getDate()), Y = i(c.getHours()), f = i(c.getMinutes());
262
- return `${z}-${t}-${N} ${Y}:${f}:00`;
287
+ const r = new Date(y), j = r.getFullYear(), L = r.getMonth(), I = r.getDate(), T = r.getHours(), e = r.getMinutes(), b = r.getSeconds(), E = (Y) => {
288
+ let D = null;
289
+ const N = Math.floor(e / Y);
290
+ e % Y === 0 && b === 0 ? D = e : D = (N + 1) * Y;
291
+ const l = Math.floor(D / 60), M = T + l, p = D % 60, c = new Date(j, L, I, M, p, 0), i = (S) => String(S).padStart(2, "0"), d = c.getFullYear(), a = i(c.getMonth() + 1), s = i(c.getDate()), m = i(c.getHours()), h = i(c.getMinutes());
292
+ return `${d}-${a}-${s} ${m}:${h}:00`;
263
293
  };
264
- switch (l) {
294
+ switch (u) {
265
295
  case "1":
266
- return v(1);
296
+ return E(1);
267
297
  case "2":
268
- return v(5);
298
+ return E(5);
269
299
  case "3":
270
- return v(15);
300
+ return E(15);
271
301
  case "4":
272
- return v(30);
302
+ return E(30);
273
303
  default:
274
- throw new Error(`Unsupported cycle: ${d} ${l}`);
304
+ throw new Error(`Unsupported cycle: ${y} ${u}`);
275
305
  }
276
- }, re = (n, d, l) => {
277
- let j = null, u = null;
278
- const [A, I] = d;
279
- switch (l) {
306
+ }, re = (n, y, u) => {
307
+ let r = null, j = null;
308
+ const [L, I] = y;
309
+ switch (u) {
280
310
  case "6": {
281
- j = n.find((D) => new Date(p(D).format("YYYY-MM-DD 23:59:59")).getTime() >= new Date(A).getTime()), u = n.findLast((D) => new Date(p(D).format("YYYY-MM-DD 00:00:00")).getTime() <= new Date(I).getTime());
311
+ r = n.find((T) => new Date(g(T).format("YYYY-MM-DD 23:59:59")).getTime() >= new Date(L).getTime()), j = n.findLast((T) => new Date(g(T).format("YYYY-MM-DD 00:00:00")).getTime() <= new Date(I).getTime());
282
312
  break;
283
313
  }
284
314
  case "7": {
285
- const D = p(I).endOf("week").add(1, "day").format("YYYY-MM-DD 23:59:59");
286
- j = n.find((e) => p(e).endOf("week").add(1, "day").format("YYYY-MM-DD") === p(A).endOf("week").add(1, "day").format("YYYY-MM-DD")), u = n.findLast((e) => new Date(e).getTime() <= new Date(D).getTime());
315
+ const T = g(I).endOf("week").add(1, "day").format("YYYY-MM-DD 23:59:59");
316
+ r = n.find((e) => g(e).endOf("week").add(1, "day").format("YYYY-MM-DD") === g(L).endOf("week").add(1, "day").format("YYYY-MM-DD")), j = n.findLast((e) => new Date(e).getTime() <= new Date(T).getTime());
287
317
  break;
288
318
  }
289
319
  case "8": {
290
- j = n.find((D) => p(D).format("YYYY-MM") === p(A).format("YYYY-MM")), u = n.findLast((D) => p(D).format("YYYY-MM") === p(I).format("YYYY-MM"));
320
+ r = n.find((T) => g(T).format("YYYY-MM") === g(L).format("YYYY-MM")), j = n.findLast((T) => g(T).format("YYYY-MM") === g(I).format("YYYY-MM"));
291
321
  break;
292
322
  }
293
323
  default:
294
- j = n.find((D) => new Date(D).getTime() >= new Date(A).getTime()), u = n.findLast((D) => new Date(D).getTime() <= new Date(I).getTime());
324
+ r = n.find((T) => new Date(T).getTime() >= new Date(L).getTime()), j = n.findLast((T) => new Date(T).getTime() <= new Date(I).getTime());
295
325
  }
296
- return [j, u];
297
- }, Ge = (n) => {
298
- const d = [];
299
- return n.reduce((l, j) => {
300
- const u = `${j.coord[0]}+${j.label.position}`, A = j.label.position === "top" ? -16 : 16, I = l.get(u);
301
- return I ? (l.set(u, I + 1), j.symbolOffset[1] = A * (I + 1)) : (l.set(u, 1), j.symbolOffset[1] = j.label.position === "top" ? -7 : 7), d.push(j), l;
302
- }, /* @__PURE__ */ new Map()), d;
303
- }, Ze = (n, d, l, j, u) => {
304
- const A = (y, o) => {
305
- const { direction: s = "", tradeAction: M = "", tradeType: L = "" } = y, c = L ?? s + M;
306
- switch (o) {
326
+ return [r, j];
327
+ }, Ze = (n) => {
328
+ const y = [];
329
+ return n.reduce((u, r) => {
330
+ const j = `${r.coord[0]}+${r.label.position}`, L = r.label.position === "top" ? -16 : 16, I = u.get(j);
331
+ return I ? (u.set(j, I + 1), r.symbolOffset[1] = L * (I + 1)) : (u.set(j, 1), r.symbolOffset[1] = r.label.position === "top" ? -7 : 7), y.push(r), u;
332
+ }, /* @__PURE__ */ new Map()), y;
333
+ }, Ge = (n, y, u, r, j) => {
334
+ const L = (D, N) => {
335
+ const { direction: l = "", tradeAction: M = "", tradeType: p = "" } = D, c = p ?? l + M;
336
+ switch (N) {
307
337
  case 0:
308
338
  return (/* @__PURE__ */ new Map([
309
339
  ["开多", "买"],
@@ -312,20 +342,20 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
312
342
  ["平空", "买"]
313
343
  ])).get(c);
314
344
  case 1:
315
- return L ?? s + M;
345
+ return p ?? l + M;
316
346
  }
317
- }, I = (y, o, s, M) => y.reduce((L, c) => {
347
+ }, I = (D, N, l, M) => D.reduce((p, c) => {
318
348
  var S;
319
- const i = A(c, 0), z = y.filter((U) => U.klineTime === c.klineTime), t = [...new Set(z.map((U) => A(U, 0)))];
320
- let N = null;
321
- t.length > 1 ? N = "image://" + new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", self.location).href : N = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": Ue, "./images/sell.svg": Pe, "./images/t.svg": Re }))[`./images/${i === "买" ? "buy" : "sell"}.svg`], self.location).href;
322
- const Y = je(s, c.klineTime), f = (S = M[Y]) == null ? void 0 : S[3];
323
- return o.forEach((U) => {
324
- var Z;
349
+ const i = L(c, 0), d = D.filter((P) => P.klineTime === c.klineTime), a = [...new Set(d.map((P) => L(P, 0)))];
350
+ let s = null;
351
+ a.length > 1 ? s = "image://" + new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==", self.location).href : s = "image://" + new URL((/* @__PURE__ */ Object.assign({ "./images/buy.svg": Pe, "./images/sell.svg": Re, "./images/t.svg": Fe }))[`./images/${i === "买" ? "buy" : "sell"}.svg`], self.location).href;
352
+ const m = ue(l, c.klineTime), h = (S = M[m]) == null ? void 0 : S[3];
353
+ return N.forEach((P) => {
354
+ var _;
325
355
  const K = i === "买" ? 0 : 1;
326
- U.range[K] === c.klineTime && (U.rangeValue[K] = (Z = M[Y]) == null ? void 0 : Z[i === "买" ? 2 : 3]);
327
- }), L.push({
328
- symbol: N,
356
+ P.range[K] === c.klineTime && (P.rangeValue[K] = (_ = M[m]) == null ? void 0 : _[i === "买" ? 2 : 3]);
357
+ }), p.push({
358
+ symbol: s,
329
359
  symbolSize: 25,
330
360
  symbolRotate: 0,
331
361
  symbolOffset: [0, 0],
@@ -333,7 +363,7 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
333
363
  show: !1,
334
364
  position: "top"
335
365
  },
336
- coord: [c.klineTime, f],
366
+ coord: [c.klineTime, h],
337
367
  silent: !0,
338
368
  animation: !1,
339
369
  customData: {
@@ -349,29 +379,29 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
349
379
  closePriceAll: c.closePriceAll
350
380
  // 收仓价
351
381
  }
352
- }), L;
353
- }, []), D = (y, o, s, M) => y.reduce((L, c, i) => {
354
- var f, S;
355
- const z = A(c, 1), t = ["开多", "开空"].includes(z) ? "top" : "bottom", N = je(s, c.klineTime), Y = t === "top" ? (f = M[N]) == null ? void 0 : f[3] : (S = M[N]) == null ? void 0 : S[2];
356
- return o.forEach((U) => {
357
- (t === "top" ? U.range[0] : U.range[1]) === c.klineTime && (U.rangeValue[t === "top" ? 0 : 1] = Y);
358
- }), L.push({
382
+ }), p;
383
+ }, []), T = (D, N, l, M) => D.reduce((p, c, i) => {
384
+ var h, S;
385
+ const d = L(c, 1), a = ["开多", "开空"].includes(d) ? "top" : "bottom", s = ue(l, c.klineTime), m = a === "top" ? (h = M[s]) == null ? void 0 : h[3] : (S = M[s]) == null ? void 0 : S[2];
386
+ return N.forEach((P) => {
387
+ (a === "top" ? P.range[0] : P.range[1]) === c.klineTime && (P.rangeValue[a === "top" ? 0 : 1] = m);
388
+ }), p.push({
359
389
  symbol: "triangle",
360
390
  symbolSize: [10, 12],
361
- symbolRotate: t === "top" ? 180 : 0,
391
+ symbolRotate: a === "top" ? 180 : 0,
362
392
  symbolOffset: [0, 0],
363
393
  label: {
364
394
  show: !0,
365
- position: t,
395
+ position: a,
366
396
  color: "#fff",
367
- formatter: `${z} ${t === "top" ? "+" : "-"} ${c.amount}手 ${c.part ? `(${c.part}份)` : ""}`
397
+ formatter: `${d} ${a === "top" ? "+" : "-"} ${c.amount}手 ${c.part ? `(${c.part}份)` : ""}`
368
398
  },
369
- itemStyle: { color: t === "top" ? "#FF0000" : "#389e0d" },
370
- coord: [c.klineTime, Y],
399
+ itemStyle: { color: a === "top" ? "#FF0000" : "#389e0d" },
400
+ coord: [c.klineTime, m],
371
401
  silent: !0,
372
402
  animation: !1,
373
403
  customData: {
374
- tradeType: z,
404
+ tradeType: d,
375
405
  amount: c.amount,
376
406
  // 手数
377
407
  part: c.part,
@@ -383,56 +413,56 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
383
413
  closePriceAll: c.closePriceAll
384
414
  // 收仓价
385
415
  }
386
- }), L;
387
- }, []), e = (y, o, s) => {
388
- const { basePointData: M, baseLineData: L } = y.reduce(
389
- (t, N) => {
390
- const Y = {
391
- pointTime: N.openTime,
416
+ }), p;
417
+ }, []), e = (D, N, l) => {
418
+ const { basePointData: M, baseLineData: p } = D.reduce(
419
+ (a, s) => {
420
+ const m = {
421
+ pointTime: s.openTime,
392
422
  // 交易点位的真实时间
393
- klineTime: Ye(s, N.openTime, o),
423
+ klineTime: Le(l, s.openTime, N),
394
424
  // 交易点位的K线时间
395
425
  tradeAction: "开",
396
426
  // 交易行为
397
- tradeDirection: N.tradeDirection ? "空" : "多",
427
+ tradeDirection: s.tradeDirection ? "空" : "多",
398
428
  // 交易方向 1:空, 0:多
399
- tradeType: `开${N.tradeDirection ? "空" : "多"}`,
429
+ tradeType: `开${s.tradeDirection ? "空" : "多"}`,
400
430
  part: null,
401
431
  // 份数,
402
- amount: N.tradeVolume,
432
+ amount: s.tradeVolume,
403
433
  // 手数
404
- profitAndLoss: N.profitAndLoss,
434
+ profitAndLoss: s.profitAndLoss,
405
435
  // 盈亏
406
- openPriceAll: N.openPrice * N.tradeVolume,
436
+ openPriceAll: s.openPrice * s.tradeVolume,
407
437
  // 开仓价格
408
- closePriceAll: N.closePrice * N.tradeVolume
438
+ closePriceAll: s.closePrice * s.tradeVolume
409
439
  // 平仓价格
410
- }, f = {
411
- pointTime: N.closeTime,
440
+ }, h = {
441
+ pointTime: s.closeTime,
412
442
  // 交易点位的真实时间
413
- klineTime: Ye(s, N.closeTime, o),
443
+ klineTime: Le(l, s.closeTime, N),
414
444
  // 交易点位的K线时间
415
445
  tradeAction: "平",
416
446
  // 交易行为
417
- tradeDirection: N.tradeDirection ? "空" : "多",
447
+ tradeDirection: s.tradeDirection ? "空" : "多",
418
448
  // 交易方向 1:空, 0:多
419
- tradeType: `平${N.tradeDirection ? "空" : "多"}`,
449
+ tradeType: `平${s.tradeDirection ? "空" : "多"}`,
420
450
  part: null,
421
451
  // 份数,
422
- amount: N.tradeVolume,
452
+ amount: s.tradeVolume,
423
453
  // 手数
424
- profitAndLoss: N.profitAndLoss,
454
+ profitAndLoss: s.profitAndLoss,
425
455
  // 盈亏
426
- openPriceAll: N.openPrice * N.tradeVolume,
456
+ openPriceAll: s.openPrice * s.tradeVolume,
427
457
  // 开仓价格
428
- closePriceAll: N.closePrice * N.tradeVolume
458
+ closePriceAll: s.closePrice * s.tradeVolume
429
459
  // 平仓价格
430
460
  };
431
- return t.basePointData.push(Y, f), t.baseLineData.push({
432
- range: [Y.klineTime, f.klineTime],
461
+ return a.basePointData.push(m, h), a.baseLineData.push({
462
+ range: [m.klineTime, h.klineTime],
433
463
  rangeValue: [null, null],
434
- color: f.profitAndLoss > 0 ? "#FF0000" : "#389e0d"
435
- }), t;
464
+ color: h.profitAndLoss > 0 ? "#FF0000" : "#389e0d"
465
+ }), a;
436
466
  },
437
467
  {
438
468
  basePointData: [],
@@ -440,49 +470,49 @@ const Ue = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPS
440
470
  baseLineData: []
441
471
  // 连线数据
442
472
  }
443
- ), i = [...M.reduce((t, N) => {
444
- const Y = JSON.parse(JSON.stringify(N)), f = Y.klineTime + Y.tradeType;
445
- if (t.has(f)) {
446
- const S = t.get(f);
447
- Y.amount += S.amount, Y.part += S.part, Y.profitAndLoss += S.profitAndLoss, Y.openPriceAll += S.openPriceAll, Y.closePriceAll += S.closePriceAll;
473
+ ), i = [...M.reduce((a, s) => {
474
+ const m = JSON.parse(JSON.stringify(s)), h = m.klineTime + m.tradeType;
475
+ if (a.has(h)) {
476
+ const S = a.get(h);
477
+ m.amount += S.amount, m.part += S.part, m.profitAndLoss += S.profitAndLoss, m.openPriceAll += S.openPriceAll, m.closePriceAll += S.closePriceAll;
448
478
  }
449
- return t.set(f, Y), t;
450
- }, /* @__PURE__ */ new Map([])).values()].sort((t, N) => new Date(t.klineTime) - new Date(N.klineTime)), z = L.filter(({ range: t }) => t[0] !== t[1]);
451
- return { pointData: i, lineData: z };
452
- }, { pointData: E, lineData: v } = e(n, d, j);
479
+ return a.set(h, m), a;
480
+ }, /* @__PURE__ */ new Map([])).values()].sort((a, s) => new Date(a.klineTime) - new Date(s.klineTime)), d = p.filter(({ range: a }) => a[0] !== a[1]);
481
+ return { pointData: i, lineData: d };
482
+ }, { pointData: b, lineData: E } = e(n, y, r);
453
483
  return {
454
- tradePointData: (l === 0 ? I : D)(E, v, j, u),
455
- tradeLineData: v.map(({ range: y, rangeValue: o, color: s }) => [
484
+ tradePointData: (u === 0 ? I : T)(b, E, r, j),
485
+ tradeLineData: E.map(({ range: D, rangeValue: N, color: l }) => [
456
486
  {
457
487
  symbol: "none",
458
- coord: [y[0], o[0]],
459
- lineStyle: { color: s, width: 2, type: "solid" },
488
+ coord: [D[0], N[0]],
489
+ lineStyle: { color: l, width: 2, type: "solid" },
460
490
  silent: !0,
461
491
  animation: !1
462
492
  },
463
493
  {
464
494
  symbol: "none",
465
- coord: [y[1], o[1]],
495
+ coord: [D[1], N[1]],
466
496
  silent: !0,
467
497
  animation: !1
468
498
  }
469
499
  ])
470
500
  };
471
- }, Be = (n, d) => {
472
- let l = [];
473
- if (Number(d) <= 5)
474
- l = n.map(({ tradeDate: j, netPositionValue: u }) => [p(j).format("YYYY-MM-DD HH:mm:ss"), u]);
475
- else if (Number(d) === 6) {
476
- const j = n.reduce((u, A) => {
477
- const { tradeDate: I, netPositionValue: D } = A;
478
- return u.set(p(I).format("YYYY-MM-DD 09:00:00"), D), u;
501
+ }, $e = (n, y) => {
502
+ let u = [];
503
+ if (Number(y) <= 5)
504
+ u = n.map(({ tradeDate: r, netPositionValue: j }) => [g(r).format("YYYY-MM-DD HH:mm:ss"), j]);
505
+ else if (Number(y) === 6) {
506
+ const r = n.reduce((j, L) => {
507
+ const { tradeDate: I, netPositionValue: T } = L;
508
+ return j.set(g(I).format("YYYY-MM-DD 09:00:00"), T), j;
479
509
  }, /* @__PURE__ */ new Map());
480
- l = Array.from(j, ([u, A]) => [u, A]);
510
+ u = Array.from(r, ([j, L]) => [j, L]);
481
511
  } else
482
- l = [];
483
- return { netPositionLineData: l };
512
+ u = [];
513
+ return { netPositionLineData: u };
484
514
  };
485
- const He = { class: "tips" }, $e = {
515
+ const We = { class: "tips" }, Je = {
486
516
  __name: "Tips",
487
517
  props: {
488
518
  data: {
@@ -491,16 +521,16 @@ const He = { class: "tips" }, $e = {
491
521
  }
492
522
  },
493
523
  setup(n) {
494
- return (d, l) => (R(), _("div", He, [
495
- (R(!0), _(Le, null, Ae(n.data, (j, u) => (R(), _("span", {
496
- key: u,
524
+ return (y, u) => (F(), H("div", We, [
525
+ (F(!0), H(me, null, Ae(n.data, (r, j) => (F(), H("span", {
526
+ key: j,
497
527
  class: "item",
498
- style: he({ color: j.color })
499
- }, te(j.label) + " " + te(j.value), 5))), 128))
528
+ style: ve({ color: r.color })
529
+ }, Me(r.label) + " " + Me(r.value), 5))), 128))
500
530
  ]));
501
531
  }
502
- }, le = /* @__PURE__ */ ze($e, [["__scopeId", "data-v-df1caefe"]]);
503
- const We = {
532
+ }, le = /* @__PURE__ */ je(Je, [["__scopeId", "data-v-df1caefe"]]);
533
+ const Ke = {
504
534
  __name: "SliderChart",
505
535
  props: {
506
536
  // K线当屏时间范围
@@ -515,57 +545,57 @@ const We = {
515
545
  klineType: { type: Number, required: !0 }
516
546
  },
517
547
  emits: ["change"],
518
- setup(n, { expose: d, emit: l }) {
519
- const { request: j } = me("stConfig");
520
- let u = null;
521
- const A = P(null), I = l, D = n, e = P({
548
+ setup(n, { expose: y, emit: u }) {
549
+ const { request: r } = we("stConfig");
550
+ let j = null;
551
+ const L = R(null), I = u, T = n, e = R({
522
552
  data: [],
523
553
  // <[开 收 低 高 成交额 涨跌值 涨跌百分比]>
524
554
  mainIndicator: [],
525
555
  subIndicator: [],
526
556
  time: []
527
- }), E = async () => {
528
- const o = {
529
- varietyCode: D.varietyCode,
557
+ }), b = async () => {
558
+ const N = {
559
+ varietyCode: T.varietyCode,
530
560
  cycle: "6",
531
561
  startTime: "1999-01-01 00:00:00",
532
- endTime: p().format("YYYY-MM-DD 23:59:59"),
562
+ endTime: g().format("YYYY-MM-DD 23:59:59"),
533
563
  deleteFirstNumber: 1
534
564
  // 后端要求标识
535
565
  };
536
- switch (D.varietyStock) {
566
+ switch (T.varietyStock) {
537
567
  case 0: {
538
- Object.assign(o, {
539
- contractType: D.klineType
568
+ Object.assign(N, {
569
+ contractType: T.klineType
540
570
  });
541
571
  break;
542
572
  }
543
573
  case 1: {
544
- Object.assign(o, {
545
- right: D.rightType
574
+ Object.assign(N, {
575
+ right: T.rightType
546
576
  });
547
577
  break;
548
578
  }
549
579
  }
550
- const { body: s } = await j.post("/middleLayer/kline/getKline", o);
551
- s ? e.value = s : e.value = { data: [], mainIndicator: [], subIndicator: [], time: [] }, y("init");
552
- }, v = Me((o) => {
553
- if (!o.dataZoomId)
580
+ const { body: l } = await r.post("/middleLayer/kline/getKline", N);
581
+ l ? e.value = l : e.value = { data: [], mainIndicator: [], subIndicator: [], time: [] }, D("init");
582
+ }, E = ae((N) => {
583
+ if (!N.dataZoomId)
554
584
  return;
555
- const s = u.getOption();
556
- if (s != null && s.dataZoom[0]) {
557
- const { startValue: M, endValue: L } = u.getOption().dataZoom[0], { time: c } = e.value, i = `${c[M].split(" ")[0]} 00:00:00`, z = `${c[L].split(" ")[0]} 23:59:59`;
558
- console.log(`检测到拖拽轴被拖动, 时间区间: ${i} - ${z}`), I("change", { startTime: i, endTime: z });
585
+ const l = j.getOption();
586
+ if (l != null && l.dataZoom[0]) {
587
+ const { startValue: M, endValue: p } = j.getOption().dataZoom[0], { time: c } = e.value, i = `${c[M].split(" ")[0]} 00:00:00`, d = `${c[p].split(" ")[0]} 23:59:59`;
588
+ console.log(`检测到拖拽轴被拖动, 时间区间: ${i} - ${d}`), I("change", { startTime: i, endTime: d });
559
589
  }
560
- }, 200), g = Me(({ startTime: o, endTime: s }) => {
561
- y("reset", { startTime: o, endTime: s });
562
- }, 100), y = (o, s) => {
563
- switch (o) {
590
+ }, 200), Y = ae(({ startTime: N, endTime: l }) => {
591
+ D("reset", { startTime: N, endTime: l });
592
+ }, 100), D = (N, l) => {
593
+ switch (N) {
564
594
  case "init": {
565
- const { data: M, time: L } = e.value, { xAxisData: c, lineData: i } = M.reduce(
566
- (t, N, Y) => (t.xAxisData.push(L[Y].split(" ")[0]), t.lineData.push(N[1]), t),
595
+ const { data: M, time: p } = e.value, { xAxisData: c, lineData: i } = M.reduce(
596
+ (a, s, m) => (a.xAxisData.push(p[m].split(" ")[0]), a.lineData.push(s[1]), a),
567
597
  { xAxisData: [], lineData: [] }
568
- ), z = {
598
+ ), d = {
569
599
  grid: {
570
600
  height: 0,
571
601
  left: "100px",
@@ -601,62 +631,62 @@ const We = {
601
631
  }
602
632
  ]
603
633
  };
604
- if (u.setOption(z, !0), D.screenTimeRange.length) {
605
- const [t, N] = D.screenTimeRange;
606
- g({ startTime: t, endTime: N });
634
+ if (j.setOption(d, !0), T.screenTimeRange.length) {
635
+ const [a, s] = T.screenTimeRange;
636
+ Y({ startTime: a, endTime: s });
607
637
  }
608
638
  break;
609
639
  }
610
640
  case "reset": {
611
- const { time: M } = e.value, L = p(s.startTime).format("YYYY-MM-DD"), c = p(s.endTime).format("YYYY-MM-DD");
612
- let i = -1, z = -1;
613
- for (let t = 0; t < M.length; t++) {
614
- const N = p(M[t]).format("YYYY-MM-DD");
615
- if (i !== -1 && z !== -1)
641
+ const { time: M } = e.value, p = g(l.startTime).format("YYYY-MM-DD"), c = g(l.endTime).format("YYYY-MM-DD");
642
+ let i = -1, d = -1;
643
+ for (let a = 0; a < M.length; a++) {
644
+ const s = g(M[a]).format("YYYY-MM-DD");
645
+ if (i !== -1 && d !== -1)
616
646
  break;
617
- i === -1 && (new Date(N) === new Date(L) ? i = t : new Date(N) > new Date(L) && (i = t - 1)), z === -1 && (new Date(N) === new Date(c) ? z = t : new Date(N) > new Date(c) && (z = t - 1));
647
+ i === -1 && (new Date(s) === new Date(p) ? i = a : new Date(s) > new Date(p) && (i = a - 1)), d === -1 && (new Date(s) === new Date(c) ? d = a : new Date(s) > new Date(c) && (d = a - 1));
618
648
  }
619
- z === -1 && (z = M.length - 1), u.dispatchAction({
649
+ d === -1 && (d = M.length - 1), j.dispatchAction({
620
650
  type: "dataZoom",
621
651
  startValue: i,
622
- endValue: z
652
+ endValue: d
623
653
  });
624
654
  break;
625
655
  }
626
656
  }
627
657
  };
628
- return xe(() => {
658
+ return pe(() => {
629
659
  Ee(() => {
630
- u = ce.init(A.value), u.on("datazoom", v), E();
660
+ j = se.init(L.value), j.on("datazoom", E), b();
631
661
  });
632
- }), Ne(
633
- () => D.screenTimeRange,
634
- (o) => {
635
- const [s, M] = o;
636
- g({ startTime: s, endTime: M });
662
+ }), te(
663
+ () => T.screenTimeRange,
664
+ (N) => {
665
+ const [l, M] = N;
666
+ Y({ startTime: l, endTime: M });
637
667
  },
638
668
  { deep: !0 }
639
- ), we(() => {
640
- u.off("datazoom"), u.dispose();
641
- }), d({
642
- resize: Me(() => u.resize(), 100)
643
- }), (o, s) => (R(), _("div", {
669
+ ), xe(() => {
670
+ j.off("datazoom"), j.dispose();
671
+ }), y({
672
+ resize: ae(() => j.resize(), 100)
673
+ }), (N, l) => (F(), H("div", {
644
674
  class: "chart",
645
675
  ref_key: "sliderChartRef",
646
- ref: A
676
+ ref: L
647
677
  }, null, 512));
648
678
  }
649
- }, Je = /* @__PURE__ */ ze(We, [["__scopeId", "data-v-503077bd"]]);
650
- const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
679
+ }, qe = /* @__PURE__ */ je(Ke, [["__scopeId", "data-v-503077bd"]]);
680
+ const Xe = { class: "main-chart" }, et = { class: "indicator" }, tt = {
651
681
  key: 0,
652
682
  class: "screen-time-range"
653
- }, et = {
683
+ }, Mt = {
654
684
  key: 0,
655
685
  class: "sub-chart"
656
- }, tt = { class: "indicator" }, Mt = { class: "title" }, at = {
686
+ }, at = { class: "indicator" }, it = { class: "title" }, nt = {
657
687
  key: 1,
658
688
  class: "slider-chart"
659
- }, it = {
689
+ }, ot = {
660
690
  __name: "index",
661
691
  props: {
662
692
  varietyCode: { type: String, required: !0 },
@@ -684,17 +714,17 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
684
714
  // 功能: 同步刷选范围(非必填)
685
715
  syncBrushRange: { type: Object, default: () => ({ cycleList: [], startTime: null, endTime: null }) }
686
716
  },
687
- setup(n, { expose: d }) {
688
- const { round: l, formatValue: j } = pe, { request: u } = me("stConfig"), A = P(), I = P(!1), D = P(!1), e = n;
689
- let E = !1, v = !1, g = !1, y = !1, o = null, s = null, M = null;
690
- const L = P(null), c = P(null), i = P({
717
+ setup(n, { expose: y }) {
718
+ const { round: u, formatValue: r } = Oe, { request: j } = we("stConfig"), L = R(), I = R(!1), T = R(!1), e = n;
719
+ let b = !1, E = !1, Y = !1, D = !1, N = null, l = null, M = null;
720
+ const p = R(null), c = R(null), i = R({
691
721
  data: [],
692
722
  mainIndicator: [],
693
723
  subIndicator: [],
694
724
  time: []
695
- }), z = P(0), t = P([]), N = P(null), Y = P("VOL"), f = se(() => {
696
- const a = i.value.data[z.value];
697
- if (!a)
725
+ }), d = R(0), a = R([]), s = R(null), m = R("VOL"), h = ce(() => {
726
+ const t = i.value.data[d.value];
727
+ if (!t)
698
728
  return [
699
729
  { label: "开", value: "-" },
700
730
  { label: "高", value: "-" },
@@ -703,52 +733,52 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
703
733
  { label: "额", value: "-" },
704
734
  { label: "涨跌", value: "-" }
705
735
  ];
706
- const r = [
707
- { label: "开", value: l(a[0]) },
708
- { label: "高", value: l(a[3]) },
709
- { label: "低", value: l(a[2]) },
710
- { label: "收", value: l(a[1]) }
736
+ const o = [
737
+ { label: "开", value: u(t[0]) },
738
+ { label: "高", value: u(t[3]) },
739
+ { label: "低", value: u(t[2]) },
740
+ { label: "收", value: u(t[1]) }
711
741
  ];
712
- a[4] !== null && r.push({ label: "额", value: j(a[4]) });
713
- let T;
714
- return a[6] > 0 ? T = "red" : a[6] < 0 && (T = "green"), r.push({ label: "涨跌", value: `${l(a[6])}%`, color: T }), r;
715
- }), S = se(() => {
716
- var a, r;
717
- return ((r = (a = i.value) == null ? void 0 : a.mainIndicator) == null ? void 0 : r.map((T) => ({ label: T.key, value: l(T.data[z.value]), color: T.color }))) || [];
718
- }), U = se(() => {
719
- var a, r;
720
- return ((r = (a = i.value) == null ? void 0 : a.subIndicator) == null ? void 0 : r.map((T) => ({ label: T.key, color: T.color, value: T.data[z.value] || "-" }))) || [];
742
+ t[4] !== null && o.push({ label: "额", value: r(t[4]) });
743
+ let z;
744
+ return t[6] > 0 ? z = "red" : t[6] < 0 && (z = "green"), o.push({ label: "涨跌", value: `${u(t[6])}%`, color: z }), o;
745
+ }), S = ce(() => {
746
+ var t, o;
747
+ return ((o = (t = i.value) == null ? void 0 : t.mainIndicator) == null ? void 0 : o.map((z) => ({ label: z.key, value: u(z.data[d.value]), color: z.color }))) || [];
748
+ }), P = ce(() => {
749
+ var t, o;
750
+ return ((o = (t = i.value) == null ? void 0 : t.subIndicator) == null ? void 0 : o.map((z) => ({ label: z.key, color: z.color, value: z.data[d.value] || "-" }))) || [];
721
751
  }), K = () => {
722
- M || (M = ce.init(c.value), M.on(
752
+ M || (M = se.init(c.value), M.on(
723
753
  "highlight",
724
- Me((a) => {
725
- var r;
726
- a.dataIndex ? z.value = a.dataIndex : z.value = ((r = a.batch) == null ? void 0 : r[0].dataIndex) ?? -1;
754
+ ae((t) => {
755
+ var o;
756
+ t.dataIndex ? d.value = t.dataIndex : d.value = ((o = t.batch) == null ? void 0 : o[0].dataIndex) ?? -1;
727
757
  }, 10)
728
758
  ), M.on(
729
759
  "datazoom",
730
- Me(async () => {
731
- var k;
732
- const { loadCheckCount: a } = J, { startValue: r, endValue: T } = ((k = M.getOption()) == null ? void 0 : k.dataZoom[0]) ?? {};
733
- g === !1 && y === !1 && r < a && await ue("history"), E === !1 && v === !1 && T > i.value.time.length - a && await ue("new"), ye();
760
+ ae(async () => {
761
+ var f;
762
+ const { loadCheckCount: t } = W, { startValue: o, endValue: z } = ((f = M.getOption()) == null ? void 0 : f.dataZoom[0]) ?? {};
763
+ Y === !1 && D === !1 && o < t && await ze("history"), b === !1 && E === !1 && z > i.value.time.length - t && await ze("new"), ye();
734
764
  })
735
765
  ), M.on("globalout", () => {
736
- const a = M.getOption();
737
- z.value = a.dataZoom[0].endValue;
766
+ const t = M.getOption();
767
+ d.value = t.dataZoom[0].endValue;
738
768
  }), M.getZr().on("contextmenu", () => {
739
- var a;
740
- N.value = (a = i.value) == null ? void 0 : a.time[z.value];
741
- }), window.addEventListener("keydown", Te), e.userKlineConfig.enable_subChart && (s = ce.init(L.value), ce.connect([M, s])), o = Qe(c.value), o.listen(() => {
769
+ var t;
770
+ s.value = (t = i.value) == null ? void 0 : t.time[d.value];
771
+ }), window.addEventListener("keydown", de), e.userKlineConfig.enable_subChart && (l = se.init(p.value), se.connect([M, l])), N = Ue(c.value), N.listen(() => {
742
772
  requestAnimationFrame(() => {
743
- var a;
744
- M.resize(), s == null || s.resize(), (a = A.value) == null || a.resize();
773
+ var t;
774
+ M.resize(), l == null || l.resize(), (t = L.value) == null || t.resize();
745
775
  });
746
776
  }));
747
- }, Z = async ({ startTime: a, endTime: r }) => {
748
- g = !1, y = !1, E = !1, v = !1;
777
+ }, _ = async ({ startTime: t, endTime: o }) => {
778
+ Y = !1, D = !1, b = !1, E = !1;
749
779
  try {
750
780
  I.value = !0;
751
- const T = {
781
+ const z = {
752
782
  varietyCode: e.varietyCode,
753
783
  cycle: e.cycle,
754
784
  // 周期
@@ -757,46 +787,59 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
757
787
  contractType: e.varietyStock ? null : e.klineType,
758
788
  // 合约类型
759
789
  mainIndicatorList: e.indicatorStore.getIndicatorParams(e.mainIndicator),
760
- subIndicator: Y.value,
761
- startTime: p(a).subtract(50, "day").format("YYYY-MM-DD HH:mm:ss"),
762
- // 确保缩放, 多请求部分数据, 也可以兼容undefined的情况
763
- endTime: p(r).add(50, "day").format("YYYY-MM-DD HH:mm:ss"),
764
- // 确保缩放, 多请求部分数据, 也可以兼容undefined的情况
790
+ subIndicator: m.value,
765
791
  deleteFirstNumber: 1
766
792
  // >> 重要: 绩效后端特殊要求传参 <<
767
- }, { body: k } = await u.post("/middleLayer/kline/getKline", T);
768
- i.value = k ?? { data: [], mainIndicator: [], subIndicator: [], time: [] };
769
- const C = i.value.time.findIndex((m) => new Date(m) >= new Date(a)), w = i.value.time.findIndex((m) => new Date(m) >= new Date(r));
770
- ae({
771
- startValue: C === -1 ? 0 : C,
772
- endValue: w === -1 ? i.value.time.length - 1 : w
793
+ };
794
+ ["1", "2", "3", "4", "5"].includes(e.cycle) ? Object.assign(z, {
795
+ startTime: g(t).subtract(1, "day").format("YYYY-MM-DD HH:mm:ss"),
796
+ endTime: g(o).add(1, "day").format("YYYY-MM-DD HH:mm:ss")
797
+ }) : ["6", "7"].includes(e.cycle) ? Object.assign(z, {
798
+ startTime: g(t).subtract(50, "day").format("YYYY-MM-DD HH:mm:ss"),
799
+ endTime: g(o).add(50, "day").format("YYYY-MM-DD HH:mm:ss")
800
+ }) : Object.assign(z, {
801
+ startTime: g(t).subtract(10, "month").format("YYYY-MM-DD HH:mm:ss"),
802
+ endTime: g(o).add(10, "month").format("YYYY-MM-DD HH:mm:ss")
803
+ });
804
+ const { body: f } = await j.post("/middleLayer/kline/getKline", z);
805
+ i.value = f ?? { data: [], mainIndicator: [], subIndicator: [], time: [] };
806
+ let x = -1, A = -1;
807
+ for (let w = 0; w < i.value.time.length; w++) {
808
+ const Q = g(i.value.time[w]).format("YYYY-MM-DD");
809
+ if (x !== -1 && A !== -1)
810
+ break;
811
+ x === -1 && (new Date(Q) === new Date(t) ? x = w : new Date(Q) > new Date(t) && (x = w - 1)), A === -1 && (new Date(Q) === new Date(o) ? A = w : new Date(Q) > new Date(o) && (A = w - 1));
812
+ }
813
+ A === -1 && (A = i.value.time.length - 1), ie({
814
+ startValue: x === -1 ? 0 : x,
815
+ endValue: A === -1 ? i.value.time.length - 1 : A
773
816
  });
774
817
  } finally {
775
818
  I.value = !1;
776
819
  }
777
- }, ue = async (a) => {
778
- var F, ie;
779
- const { loadAddCount: r } = J;
780
- switch (a) {
820
+ }, ze = async (t) => {
821
+ var Q, ne;
822
+ const { loadAddCount: o } = W;
823
+ switch (t) {
781
824
  case "history": {
782
- g = !0;
783
- const Q = {
825
+ Y = !0;
826
+ const U = {
784
827
  varietyCode: e.varietyCode,
785
828
  cycle: e.cycle,
786
829
  right: e.rightType,
787
830
  contractType: e.varietyStock ? null : e.klineType,
788
831
  endTime: i.value.time[0],
789
- limit: r,
832
+ limit: o,
790
833
  mainIndicatorList: e.indicatorStore.getIndicatorParams(e.mainIndicator),
791
- subIndicator: Y.value,
834
+ subIndicator: m.value,
792
835
  deleteFirstNumber: 1
793
- }, { body: B } = await u.post("/middleLayer/kline/getKline", Q);
794
- i.value = Ie(B, i.value), B.data.length < r && (console.log("[K线] 获取更多数据: 左侧已全部获取完毕, 关闭"), y = !0), g = !1;
836
+ }, { body: Z } = await j.post("/middleLayer/kline/getKline", U);
837
+ i.value = Ye(Z, i.value), Z.data.length < o && (console.log("[K线] 获取更多数据: 左侧已全部获取完毕, 关闭"), D = !0), Y = !1;
795
838
  break;
796
839
  }
797
840
  case "new": {
798
- E = !0;
799
- const Q = {
841
+ b = !0;
842
+ const U = {
800
843
  varietyCode: e.varietyCode,
801
844
  cycle: e.cycle,
802
845
  // 周期
@@ -806,43 +849,43 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
806
849
  // 合约类型
807
850
  startTime: i.value.time[i.value.time.length - 1],
808
851
  // 开始时间
809
- limit: r,
852
+ limit: o,
810
853
  // 查询K线数量
811
854
  deleteFirstNumber: 1,
812
855
  // >> 重要: 绩效后端特殊要求传参 <<
813
856
  mainIndicatorList: e.indicatorStore.getIndicatorParams(e.mainIndicator),
814
- subIndicator: Y.value
815
- }, { body: B } = await u.post("/middleLayer/kline/getKline", Q);
816
- i.value = Ie(i.value, B), B.data.length < r && (console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"), v = !0), E = !1;
857
+ subIndicator: m.value
858
+ }, { body: Z } = await j.post("/middleLayer/kline/getKline", U);
859
+ i.value = Ye(i.value, Z), Z.data.length < o && (console.log("[K线] 获取更多数据: 右侧已全部获取完毕, 关闭"), E = !0), b = !1;
817
860
  break;
818
861
  }
819
862
  }
820
- const { startValue: T, endValue: k } = ((F = M.getOption()) == null ? void 0 : F.dataZoom[0]) ?? {}, C = (ie = M.getOption()) == null ? void 0 : ie.xAxis[0].data, w = i.value.time.findIndex((Q) => new Date(Q) >= new Date(C[T])), m = i.value.time.findIndex((Q) => new Date(Q) >= new Date(C[k]));
821
- ae({
822
- startValue: w === -1 ? 0 : w,
823
- endValue: m === -1 ? i.value.time.length - 1 : m
863
+ const { startValue: z, endValue: f } = ((Q = M.getOption()) == null ? void 0 : Q.dataZoom[0]) ?? {}, x = (ne = M.getOption()) == null ? void 0 : ne.xAxis[0].data, A = i.value.time.findIndex((U) => new Date(U) >= new Date(x[z])), w = i.value.time.findIndex((U) => new Date(U) >= new Date(x[f]));
864
+ ie({
865
+ startValue: A === -1 ? 0 : A,
866
+ endValue: w === -1 ? i.value.time.length - 1 : w
824
867
  });
825
868
  }, ye = () => {
826
- var w;
869
+ var A;
827
870
  if (!i.value.time)
828
- return t.value = [];
829
- const { time: a } = i.value, { startValue: r, endValue: T } = ((w = M.getOption()) == null ? void 0 : w.dataZoom[0]) ?? {}, k = a[r], C = a[T];
830
- ["6", "7", "8"].includes(e.cycle) ? t.value = [p(k).format("YYYY-MM-DD"), p(C).format("YYYY-MM-DD")] : t.value = [k, C];
831
- }, ae = (a = { startValue: 0, endValue: 0 }) => {
871
+ return a.value = [];
872
+ const { time: t } = i.value, { startValue: o, endValue: z } = ((A = M.getOption()) == null ? void 0 : A.dataZoom[0]) ?? {}, f = t[o], x = t[z];
873
+ ["6", "7", "8"].includes(e.cycle) ? a.value = [g(f).format("YYYY-MM-DD"), g(x).format("YYYY-MM-DD")] : a.value = [f, x];
874
+ }, ie = (t = { startValue: 0, endValue: 0 }) => {
832
875
  K();
833
- const { maxValueSpan: r } = J, { time: T, data: k, mainIndicator: C } = i.value, w = a.endValue - a.startValue > r ? a.endValue - r : a.startValue, m = a.endValue, F = C.map((x) => ({
834
- name: x.key,
876
+ const { maxValueSpan: o } = W, { time: z, data: f, mainIndicator: x } = i.value, A = t.endValue - t.startValue > o ? t.endValue - o : t.startValue, w = t.endValue, Q = x.map((O) => ({
877
+ name: O.key,
835
878
  type: "line",
836
879
  silent: !0,
837
880
  symbol: "none",
838
- data: x.data,
881
+ data: O.data,
839
882
  lineStyle: {
840
- width: x.width || 1
883
+ width: O.width || 1
841
884
  },
842
885
  itemStyle: {
843
- color: x.color
886
+ color: O.color
844
887
  }
845
- })), { netPositionLineData: ie } = Be(e.netPositionData, e.cycle), { tradePointData: Q, tradeLineData: B } = Ze(e.tradeLog, e.cycle, e.sellBuy, T, k);
888
+ })), { netPositionLineData: ne } = $e(e.netPositionData, e.cycle), { tradePointData: U, tradeLineData: Z } = Ge(e.tradeLog, e.cycle, e.sellBuy, z, f);
846
889
  M.setOption(
847
890
  {
848
891
  animation: !1,
@@ -855,10 +898,10 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
855
898
  dataZoom: [
856
899
  {
857
900
  type: "inside",
858
- startValue: w,
859
- endValue: m,
860
- minValueSpan: J.minValueSpan,
861
- maxValueSpan: J.maxValueSpan
901
+ startValue: A,
902
+ endValue: w,
903
+ minValueSpan: W.minValueSpan,
904
+ maxValueSpan: W.maxValueSpan
862
905
  }
863
906
  ],
864
907
  tooltip: {
@@ -869,44 +912,44 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
869
912
  type: "cross",
870
913
  label: {
871
914
  rich: {},
872
- formatter: (x) => {
873
- const { axisDimension: O, value: b } = x;
874
- return O === "x" ? ["6", "7", "8"].includes(e.cycle) ? p(b).format("YYYY-MM-DD") : b : String(l(b));
915
+ formatter: (O) => {
916
+ const { axisDimension: C, value: k } = O;
917
+ return C === "x" ? ["6", "7", "8"].includes(e.cycle) ? g(k).format("YYYY-MM-DD") : k : String(u(k));
875
918
  }
876
919
  }
877
920
  },
878
- formatter: (x) => {
879
- if (!(x != null && x.length))
921
+ formatter: (O) => {
922
+ if (!(O != null && O.length))
880
923
  return null;
881
- let O = "";
882
- if (x.forEach((h) => {
883
- if (h.seriesName === "netPosition" && h.data !== null && (O += `<div>资产持仓净值: ${h.data[1]}</div>`), h.componentSubType === "candlestick")
924
+ let C = "";
925
+ if (O.forEach((v) => {
926
+ if (v.seriesName === "netPosition" && v.data !== null && (C += `<div>资产持仓净值: ${v.data[1]}</div>`), v.componentSubType === "candlestick")
884
927
  if (e.sellBuy === 0) {
885
- const W = Q.filter((V) => (V == null ? void 0 : V.coord[0]) === h.axisValue);
886
- let H = 0, G = 0;
887
- W.forEach((V) => {
888
- const { tradeType: q, amount: ne } = V.customData;
889
- q === "买" && (H += ne), q === "卖" && (G += ne);
890
- }), H && (O += `<div>买: ${H}</div>`), G && (O += `<div>卖: ${G}</div>`);
928
+ const J = U.filter((V) => (V == null ? void 0 : V.coord[0]) === v.axisValue);
929
+ let G = 0, B = 0;
930
+ J.forEach((V) => {
931
+ const { tradeType: q, amount: oe } = V.customData;
932
+ q === "买" && (G += oe), q === "卖" && (B += oe);
933
+ }), G && (C += `<div>买: ${G}</div>`), B && (C += `<div>卖: ${B}</div>`);
891
934
  } else
892
- Q.forEach((W) => {
893
- if ((W == null ? void 0 : W.coord[0]) === h.axisValue) {
894
- const { tradeType: H, amount: G, profitAndLoss: V, openPriceAll: q, closePriceAll: ne } = W.customData;
895
- let X = `<div>${H}: ${G}手</div>`;
896
- if (H.includes("开") && (X += `<div>开仓价: ${(q / G).toFixed(2)}</div>`), H.includes("平")) {
897
- const de = (q / G).toFixed(2), De = (ne / G).toFixed(2);
898
- X += `<div>平仓价: ${De}</div>`, X += `<div>盈亏: ${V == null ? void 0 : V.toFixed(2)}</div>`, X += `<div>盈亏比率: ${((De - de) / de * 100).toFixed(2)} %</div>`;
935
+ U.forEach((J) => {
936
+ if ((J == null ? void 0 : J.coord[0]) === v.axisValue) {
937
+ const { tradeType: G, amount: B, profitAndLoss: V, openPriceAll: q, closePriceAll: oe } = J.customData;
938
+ let X = `<div>${G}: ${B}手</div>`;
939
+ if (G.includes("开") && (X += `<div>开仓价: ${(q / B).toFixed(2)}</div>`), G.includes("平")) {
940
+ const De = (q / B).toFixed(2), Te = (oe / B).toFixed(2);
941
+ X += `<div>平仓价: ${Te}</div>`, X += `<div>盈亏: ${V == null ? void 0 : V.toFixed(2)}</div>`, X += `<div>盈亏比率: ${((Te - De) / De * 100).toFixed(2)} %</div>`;
899
942
  }
900
- O += X;
943
+ C += X;
901
944
  }
902
945
  });
903
- }), !O)
946
+ }), !C)
904
947
  return null;
905
- let b = x[0].axisValue;
906
- return ["6", "7", "8"].includes(e.cycle) && (b = p(b).format("YYYY-MM-DD")), `
948
+ let k = O[0].axisValue;
949
+ return ["6", "7", "8"].includes(e.cycle) && (k = g(k).format("YYYY-MM-DD")), `
907
950
  <div>
908
- <span style="font-weight: bold;">${b}</span>
909
- ${O}
951
+ <span style="font-weight: bold;">${k}</span>
952
+ ${C}
910
953
  </div>
911
954
  `;
912
955
  }
@@ -914,12 +957,12 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
914
957
  xAxis: {
915
958
  show: !0,
916
959
  type: "category",
917
- data: T,
960
+ data: z,
918
961
  splitLine: {
919
962
  show: !1
920
963
  },
921
964
  axisLabel: {
922
- formatter: (x) => ["6", "7", "8"].includes(e.cycle) ? p(x).format("YYYY-MM-DD") : x
965
+ formatter: (O) => ["6", "7", "8"].includes(e.cycle) ? g(O).format("YYYY-MM-DD") : O
923
966
  }
924
967
  },
925
968
  yAxis: [
@@ -935,30 +978,30 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
935
978
  color: "#333"
936
979
  }
937
980
  },
938
- min: (x) => {
939
- const { min: O, max: b } = x, h = Math.abs((b - O) / 10);
940
- return l(O - h);
981
+ min: (O) => {
982
+ const { min: C, max: k } = O, v = Math.abs((k - C) / 10);
983
+ return u(C - v);
941
984
  },
942
- max: (x) => l(x.max)
985
+ max: (O) => u(O.max)
943
986
  },
944
987
  {
945
988
  show: !1,
946
- min: (x) => {
947
- const { min: O, max: b } = x, h = Math.abs((b - O) / 10);
948
- return O - h;
989
+ min: (O) => {
990
+ const { min: C, max: k } = O, v = Math.abs((k - C) / 10);
991
+ return C - v;
949
992
  },
950
- max: (x) => {
951
- const { min: O, max: b } = x, h = Math.abs((b - O) / 10);
952
- return b + h;
993
+ max: (O) => {
994
+ const { min: C, max: k } = O, v = Math.abs((k - C) / 10);
995
+ return k + v;
953
996
  }
954
997
  }
955
998
  ],
956
999
  series: [
957
1000
  {
958
1001
  type: "candlestick",
959
- data: k,
960
- markPoint: { data: Ge([...Q]) },
961
- markLine: { data: [...B] },
1002
+ data: f,
1003
+ markPoint: { data: Ze([...U]) },
1004
+ markLine: { data: [...Z] },
962
1005
  itemStyle: {
963
1006
  color: "transparent",
964
1007
  color0: "#00FFFF",
@@ -968,12 +1011,12 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
968
1011
  }
969
1012
  },
970
1013
  // 指标线
971
- ...F,
1014
+ ...Q,
972
1015
  // 净值曲线
973
1016
  {
974
1017
  type: "line",
975
1018
  name: "netPosition",
976
- data: ie,
1019
+ data: ne,
977
1020
  symbol: "none",
978
1021
  yAxisIndex: 1,
979
1022
  connectNulls: !0,
@@ -1002,25 +1045,25 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
1002
1045
  }
1003
1046
  },
1004
1047
  !0
1005
- ), e.userKlineConfig.enable_subChart && s.setOption(_e(i.value, w, m), !0), ye(), z.value = m;
1048
+ ), e.userKlineConfig.enable_subChart && l.setOption(Be(i.value, A, w), !0), ye(), d.value = w;
1006
1049
  {
1007
- const x = [];
1008
- if (e.userKlineConfig.enable_tradeLogBrush && Q.length) {
1009
- const [O, b] = [Q[0].coord[0], Q.at(-1).coord[0]], h = re(T, [O, b], e.cycle);
1010
- x.push({
1050
+ const O = [];
1051
+ if (e.userKlineConfig.enable_tradeLogBrush && U.length) {
1052
+ const [C, k] = [U[0].coord[0], U.at(-1).coord[0]], v = re(z, [C, k], e.cycle);
1053
+ O.push({
1011
1054
  brushId: "开平仓范围",
1012
1055
  brushType: "lineX",
1013
1056
  xAxisIndex: 0,
1014
- coordRange: h
1057
+ coordRange: v
1015
1058
  });
1016
1059
  }
1017
1060
  if (e.syncBrushRange.cycleList.includes(e.cycle)) {
1018
- const { startTime: O, endTime: b } = e.syncBrushRange, h = re(T, [O, b], e.cycle);
1019
- x.push({
1061
+ const { startTime: C, endTime: k } = e.syncBrushRange, v = re(z, [C, k], e.cycle);
1062
+ O.push({
1020
1063
  brushId: "同步刷选范围",
1021
1064
  brushType: "lineX",
1022
1065
  xAxisIndex: 0,
1023
- coordRange: h,
1066
+ coordRange: v,
1024
1067
  brushStyle: {
1025
1068
  fill: "rgba(64, 158, 255, 0.2)",
1026
1069
  stroke: "rgba(64, 158, 255, 0.8)",
@@ -1029,12 +1072,12 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
1029
1072
  });
1030
1073
  }
1031
1074
  if (e.positionTime) {
1032
- const [O, b] = [p(e.positionTime).format("YYYY-MM-DD 00:00:00"), p(e.positionTime).format("YYYY-MM-DD 23:59:59")], h = re(T, [O, b], e.cycle);
1033
- x.push({
1075
+ const [C, k] = [g(e.positionTime).format("YYYY-MM-DD 00:00:00"), g(e.positionTime).format("YYYY-MM-DD 23:59:59")], v = re(z, [C, k], e.cycle);
1076
+ O.push({
1034
1077
  brushId: "强制定位高亮",
1035
1078
  brushType: "lineX",
1036
1079
  xAxisIndex: 0,
1037
- coordRange: h,
1080
+ coordRange: v,
1038
1081
  brushStyle: {
1039
1082
  fill: "rgba(217, 179, 255, 0.2)",
1040
1083
  stroke: "rgba(217, 179, 255, 0.8)",
@@ -1044,169 +1087,186 @@ const Ke = { class: "main-chart" }, qe = { class: "indicator" }, Xe = {
1044
1087
  }
1045
1088
  M.dispatchAction({
1046
1089
  type: "brush",
1047
- areas: x
1090
+ areas: O
1048
1091
  });
1049
1092
  }
1050
- }, Oe = (a) => {
1051
- const { startTime: r, endTime: T } = a;
1052
- Z({ startTime: r, endTime: T });
1053
- }, Te = ({ code: a, ctrlKey: r }) => {
1054
- if (!(r || D.value))
1093
+ }, fe = (t) => {
1094
+ const [o, z] = Ie({
1095
+ startTime: t.startTime,
1096
+ endTime: t.endTime,
1097
+ cycle: e.cycle
1098
+ });
1099
+ _({ startTime: o, endTime: z });
1100
+ }, de = ({ code: t, ctrlKey: o }) => {
1101
+ if (!(o || T.value))
1055
1102
  return;
1056
- const { xAxis: T, dataZoom: k } = M.getOption(), { data: C } = (T == null ? void 0 : T[0]) ?? { data: [] };
1057
- let { startValue: w, endValue: m } = (k == null ? void 0 : k[0]) ?? {};
1058
- if (C != null && C.length) {
1059
- switch (a) {
1103
+ const { xAxis: z, dataZoom: f } = M.getOption(), { data: x } = (z == null ? void 0 : z[0]) ?? { data: [] };
1104
+ let { startValue: A, endValue: w } = (f == null ? void 0 : f[0]) ?? {};
1105
+ if (x != null && x.length) {
1106
+ switch (t) {
1060
1107
  case "ArrowUp": {
1061
- if (m - w < 5)
1108
+ if (w - A < 5)
1062
1109
  return;
1063
- const F = Math.floor((m - w) / 2) + 1;
1064
- w = w + F, m - w < 5 && (w = m - 4);
1110
+ const Q = Math.floor((w - A) / 2) + 1;
1111
+ A = A + Q, w - A < 5 && (A = w - 4);
1065
1112
  break;
1066
1113
  }
1067
1114
  case "ArrowDown": {
1068
- const F = Math.min(500, m - w);
1069
- w = w - F - 1;
1115
+ const Q = Math.min(500, w - A);
1116
+ A = A - Q - 1;
1070
1117
  break;
1071
1118
  }
1072
1119
  case "ArrowLeft": {
1073
- w > 0 && (w -= 1, m -= 1), z.value > 0 && (z.value -= 1);
1120
+ A > 0 && (A -= 1, w -= 1), d.value > 0 && (d.value -= 1);
1074
1121
  break;
1075
1122
  }
1076
1123
  case "ArrowRight": {
1077
- m < C.length - 1 && (w += 1, m += 1), D.value && z.value < C.length - 1 && (z.value += 1);
1124
+ w < x.length - 1 && (A += 1, w += 1), T.value && d.value < x.length - 1 && (d.value += 1);
1078
1125
  break;
1079
1126
  }
1080
1127
  }
1081
1128
  M.dispatchAction({
1082
1129
  type: "dataZoom",
1083
- startValue: w,
1084
- endValue: m
1130
+ startValue: A,
1131
+ endValue: w
1085
1132
  }), M.dispatchAction({
1086
1133
  type: "updateAxisPointer",
1087
1134
  seriesIndex: 0,
1088
- dataIndex: D.value ? z.value : null
1135
+ dataIndex: T.value ? d.value : null
1089
1136
  }), M.dispatchAction({
1090
1137
  type: "highlight",
1091
- dataIndex: D.value ? z.value : m
1138
+ dataIndex: T.value ? d.value : w
1092
1139
  });
1093
1140
  }
1094
1141
  };
1095
- return xe(() => {
1096
- const [a, r] = e.initTimeRange;
1097
- Z({ startTime: a, endTime: r });
1098
- }), Ne(
1142
+ return pe(() => {
1143
+ const [t, o] = e.initTimeRange;
1144
+ _({ startTime: t, endTime: o });
1145
+ }), te(
1099
1146
  () => [e.varietyCode, e.initTimeRange],
1100
1147
  () => {
1101
- const [a, r] = e.initTimeRange;
1102
- Z({ startTime: a, endTime: r });
1148
+ const [t, o] = e.initTimeRange;
1149
+ _({ startTime: t, endTime: o });
1103
1150
  },
1104
1151
  { deep: !0 }
1105
- ), Ne(
1152
+ ), te(
1153
+ () => [e.cycle],
1106
1154
  () => {
1107
- var a, r;
1108
- return [e.mainIndicator, Y.value, (a = e.indicatorStore) == null ? void 0 : a.filterIndicator, (r = e.indicatorStore) == null ? void 0 : r.customIndicator, e.cycle, e.rightType, e.klineType];
1155
+ var x;
1156
+ const { startValue: t, endValue: o } = ((x = M.getOption()) == null ? void 0 : x.dataZoom[0]) ?? {}, [z, f] = Ie({
1157
+ startTime: i.value.time[t],
1158
+ endTime: i.value.time[o],
1159
+ cycle: e.cycle,
1160
+ type: "middle"
1161
+ });
1162
+ _({ startTime: z, endTime: f });
1163
+ },
1164
+ { deep: !0 }
1165
+ ), te(
1166
+ () => {
1167
+ var t, o;
1168
+ return [e.mainIndicator, m.value, (t = e.indicatorStore) == null ? void 0 : t.filterIndicator, (o = e.indicatorStore) == null ? void 0 : o.customIndicator, e.rightType, e.klineType];
1109
1169
  },
1110
1170
  () => {
1111
- var C;
1112
- const { startValue: a, endValue: r } = ((C = M.getOption()) == null ? void 0 : C.dataZoom[0]) ?? {}, [T, k] = [i.value.time[a], i.value.time[r]];
1113
- Z({ startTime: T, endTime: k });
1171
+ var x;
1172
+ const { startValue: t, endValue: o } = ((x = M.getOption()) == null ? void 0 : x.dataZoom[0]) ?? {}, [z, f] = [i.value.time[t], i.value.time[o]];
1173
+ _({ startTime: z, endTime: f });
1114
1174
  },
1115
1175
  { deep: !0 }
1116
- ), Ne(
1176
+ ), te(
1117
1177
  () => [e.sellBuy, e.tradeLog, e.netPositionData],
1118
1178
  () => {
1119
- var T;
1120
- const { startValue: a, endValue: r } = ((T = M.getOption()) == null ? void 0 : T.dataZoom[0]) ?? {};
1121
- ae({ startValue: a, endValue: r });
1179
+ var z;
1180
+ const { startValue: t, endValue: o } = ((z = M.getOption()) == null ? void 0 : z.dataZoom[0]) ?? {};
1181
+ ie({ startValue: t, endValue: o });
1122
1182
  },
1123
1183
  { deep: !0 }
1124
- ), we(() => {
1125
- M.off("highlight"), M.off("globalout"), M.off("datazoom"), M.getZr().off("contextmenu"), window.removeEventListener("keydown", Te), M.dispose(), s == null || s.dispose(), o.dispose(), o = null;
1126
- }), d({
1127
- screenTimeRange: t,
1128
- contextmenuKlineTime: N,
1184
+ ), xe(() => {
1185
+ M.off("highlight"), M.off("globalout"), M.off("datazoom"), M.getZr().off("contextmenu"), window.removeEventListener("keydown", de), M.dispose(), l == null || l.dispose(), N.dispose(), N = null;
1186
+ }), y({
1187
+ screenTimeRange: a,
1188
+ contextmenuKlineTime: s,
1129
1189
  reDraw: () => {
1130
- var T;
1131
- const { startValue: a, endValue: r } = ((T = M.getOption()) == null ? void 0 : T.dataZoom[0]) ?? {};
1132
- ae({ startValue: a, endValue: r });
1190
+ var z;
1191
+ const { startValue: t, endValue: o } = ((z = M.getOption()) == null ? void 0 : z.dataZoom[0]) ?? {};
1192
+ ie({ startValue: t, endValue: o });
1133
1193
  }
1134
- }), (a, r) => {
1135
- const T = ke, k = be, C = fe, w = Ce;
1136
- return ve((R(), _("div", {
1194
+ }), (t, o) => {
1195
+ const z = he, f = ke, x = be, A = Ce;
1196
+ return Se((F(), H("div", {
1137
1197
  class: "kline-plus",
1138
- onMousemove: r[1] || (r[1] = (m) => D.value = !0),
1139
- onMouseout: r[2] || (r[2] = (m) => D.value = !1)
1198
+ onMousemove: o[1] || (o[1] = (w) => T.value = !0),
1199
+ onMouseout: o[2] || (o[2] = (w) => T.value = !1)
1140
1200
  }, [
1141
- $("div", Ke, [
1142
- $("div", qe, [
1143
- ee(le, { data: f.value }, null, 8, ["data"]),
1201
+ $("div", Xe, [
1202
+ $("div", et, [
1203
+ ee(le, { data: h.value }, null, 8, ["data"]),
1144
1204
  ee(le, { data: S.value }, null, 8, ["data"])
1145
1205
  ]),
1146
- n.userKlineConfig.enable_showScreenTimeRange ? (R(), _("span", Xe, te(t.value[0]) + " - " + te(t.value[1]), 1)) : oe("", !0),
1206
+ n.userKlineConfig.enable_showScreenTimeRange ? (F(), H("span", tt, Me(a.value[0]) + " - " + Me(a.value[1]), 1)) : Ne("", !0),
1147
1207
  $("div", {
1148
1208
  ref_key: "mainChartRef",
1149
1209
  ref: c,
1150
1210
  class: "chart"
1151
1211
  }, null, 512)
1152
1212
  ]),
1153
- n.userKlineConfig.enable_subChart ? (R(), _("div", et, [
1154
- $("div", tt, [
1155
- $("div", Mt, [
1156
- $("span", null, te(Y.value), 1),
1157
- ee(k, {
1158
- modelValue: Y.value,
1159
- "onUpdate:modelValue": r[0] || (r[0] = (m) => Y.value = m),
1213
+ n.userKlineConfig.enable_subChart ? (F(), H("div", Mt, [
1214
+ $("div", at, [
1215
+ $("div", it, [
1216
+ $("span", null, Me(m.value), 1),
1217
+ ee(f, {
1218
+ modelValue: m.value,
1219
+ "onUpdate:modelValue": o[0] || (o[0] = (w) => m.value = w),
1160
1220
  style: { width: "100px", "margin-right": "4px", height: "25px" },
1161
1221
  size: "small",
1162
1222
  class: "element-dark",
1163
1223
  "popper-class": "element-dark"
1164
1224
  }, {
1165
- default: Se(() => [
1166
- (R(!0), _(Le, null, Ae(n.indicatorStore.subIndicatorList, (m, F) => (R(), ge(T, {
1167
- key: F,
1168
- label: m.label,
1169
- value: m.value
1225
+ default: Qe(() => [
1226
+ (F(!0), H(me, null, Ae(n.indicatorStore.subIndicatorList, (w, Q) => (F(), ge(z, {
1227
+ key: Q,
1228
+ label: w.label,
1229
+ value: w.value
1170
1230
  }, null, 8, ["label", "value"]))), 128))
1171
1231
  ]),
1172
1232
  _: 1
1173
1233
  }, 8, ["modelValue"])
1174
1234
  ]),
1175
- ee(le, { data: U.value }, null, 8, ["data"])
1235
+ ee(le, { data: P.value }, null, 8, ["data"])
1176
1236
  ]),
1177
1237
  $("div", {
1178
1238
  ref_key: "subChartRef",
1179
- ref: L,
1239
+ ref: p,
1180
1240
  class: "chart"
1181
1241
  }, null, 512)
1182
- ])) : oe("", !0),
1183
- n.userKlineConfig.enable_sliderChart ? (R(), _("div", at, [
1184
- ee(Je, {
1242
+ ])) : Ne("", !0),
1243
+ n.userKlineConfig.enable_sliderChart ? (F(), H("div", nt, [
1244
+ ee(qe, {
1185
1245
  ref_key: "sliderChartRef",
1186
- ref: A,
1187
- screenTimeRange: t.value,
1246
+ ref: L,
1247
+ screenTimeRange: a.value,
1188
1248
  varietyCode: n.varietyCode,
1189
1249
  varietyStock: n.varietyStock,
1190
1250
  rightType: n.rightType,
1191
1251
  klineType: n.klineType,
1192
- onChange: Oe
1252
+ onChange: fe
1193
1253
  }, null, 8, ["screenTimeRange", "varietyCode", "varietyStock", "rightType", "klineType"])
1194
- ])) : oe("", !0),
1195
- i.value.time.length ? oe("", !0) : (R(), ge(C, {
1254
+ ])) : Ne("", !0),
1255
+ i.value.time.length ? Ne("", !0) : (F(), ge(x, {
1196
1256
  key: 2,
1197
1257
  class: "empty",
1198
1258
  description: "暂无数据"
1199
1259
  }))
1200
1260
  ], 32)), [
1201
- [w, I.value]
1261
+ [A, I.value]
1202
1262
  ]);
1203
1263
  };
1204
1264
  }
1205
- }, nt = /* @__PURE__ */ ze(it, [["__scopeId", "data-v-9917caf7"]]), Ot = {
1265
+ }, Nt = /* @__PURE__ */ je(ot, [["__scopeId", "data-v-3cab7378"]]), Ct = {
1206
1266
  install(n) {
1207
- n.component("st-klinePlus", nt);
1267
+ n.component("st-klinePlus", Nt);
1208
1268
  }
1209
1269
  };
1210
1270
  export {
1211
- Ot as default
1271
+ Ct as default
1212
1272
  };