st-comp 0.0.169 → 0.0.171

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