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