st-comp 0.0.164 → 0.0.166

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/components.d.ts +3 -0
  2. package/es/ChartLayout.cjs +1 -1
  3. package/es/ChartLayout.js +3 -3
  4. package/es/Dialog.cjs +1 -1
  5. package/es/Dialog.js +16 -14
  6. package/es/FactorWarning.cjs +1 -1
  7. package/es/FactorWarning.js +492 -614
  8. package/es/Kline.cjs +1 -1
  9. package/es/Kline.js +16 -16
  10. package/es/KlineBasic.cjs +1 -1
  11. package/es/KlineBasic.js +477 -766
  12. package/es/KlineConfig.cjs +1 -0
  13. package/es/KlineConfig.js +703 -0
  14. package/es/KlineNew.cjs +1 -1
  15. package/es/KlineNew.js +14 -14
  16. package/es/KlinePlus.cjs +6 -0
  17. package/es/KlinePlus.js +1212 -0
  18. package/es/Pagination.cjs +1 -1
  19. package/es/Pagination.js +21 -20
  20. package/es/PasswordPrompt.cjs +1 -1
  21. package/es/PasswordPrompt.js +3 -3
  22. package/es/Table.cjs +1 -1
  23. package/es/Table.js +100 -279
  24. package/es/User.cjs +1 -1
  25. package/es/User.js +41 -39
  26. package/es/VarSelectDialog.cjs +1 -1
  27. package/es/VarSelectDialog.js +23 -22
  28. package/es/VarietySearch.cjs +1 -1
  29. package/es/VarietySearch.js +34 -32
  30. package/es/VirtualTable.cjs +5 -5
  31. package/es/VirtualTable.js +1018 -1056
  32. package/es/{_initCloneObject-47814efa.cjs → _initCloneObject-9ccbb113.cjs} +1 -1
  33. package/es/{_initCloneObject-c939f3af.js → _initCloneObject-a9305c1e.js} +3 -3
  34. package/es/base-4bcd2756.js +304 -0
  35. package/es/base-bdc10baa.cjs +5 -0
  36. package/es/{castArray-a78ae889.cjs → castArray-37eb9980.cjs} +1 -1
  37. package/es/{castArray-2440268f.js → castArray-681d750b.js} +1 -1
  38. package/es/{config-provider-722dca36.js → config-provider-93846ae3.js} +9 -9
  39. package/es/config-provider-ec6b09df.cjs +1 -0
  40. package/es/dayjs.min-19fb125f.cjs +1 -0
  41. package/es/dayjs.min-54a4e095.js +296 -0
  42. package/es/{debounce-82e23c4b.js → debounce-51046b06.js} +1 -1
  43. package/es/{debounce-cf26af24.cjs → debounce-9e323221.cjs} +1 -1
  44. package/es/{dropdown-6f8379f0.js → dropdown-65e74de8.js} +6 -6
  45. package/es/{dropdown-790d31ea.cjs → dropdown-b2dab5bb.cjs} +1 -1
  46. package/es/{el-autocomplete-75762ef9.js → el-autocomplete-5064d466.js} +9 -9
  47. package/es/{el-autocomplete-84de99ba.cjs → el-autocomplete-814993af.cjs} +1 -1
  48. package/es/el-button-960edd49.cjs +1 -0
  49. package/es/{el-button-2e878325.js → el-button-d39472d3.js} +37 -36
  50. package/es/{el-checkbox-group-45247bbf.cjs → el-checkbox-group-020b49f5.cjs} +1 -1
  51. package/es/{el-checkbox-group-5e4f32f0.js → el-checkbox-group-779f353a.js} +2 -2
  52. package/es/el-dialog-cd484c1f.cjs +1 -0
  53. package/es/el-dialog-f45ec2a1.js +267 -0
  54. package/es/el-divider-40c50ce7.cjs +1 -0
  55. package/es/el-divider-7cf13678.js +45 -0
  56. package/es/{el-empty-2ece1134.cjs → el-empty-627ec09e.cjs} +1 -1
  57. package/es/{el-empty-7f8acbdc.js → el-empty-64b2ea8a.js} +2 -2
  58. package/es/{el-form-item-45ba08ff.js → el-form-item-b31e7a98.js} +8 -8
  59. package/es/{el-form-item-47e255d4.cjs → el-form-item-e1c3104b.cjs} +2 -2
  60. package/es/{el-input-1323afd2.js → el-input-42315ac4.js} +48 -48
  61. package/es/{el-input-cb340042.cjs → el-input-5163bda3.cjs} +1 -1
  62. package/es/{el-input-number-0f194f3f.cjs → el-input-number-eb54cde4.cjs} +1 -1
  63. package/es/{el-input-number-991f8bfc.js → el-input-number-ebd64e22.js} +19 -19
  64. package/es/el-loading-15a5501c.cjs +1 -0
  65. package/es/el-loading-5d29f26d.js +187 -0
  66. package/es/{el-menu-item-4c9eb7ad.cjs → el-menu-item-ac89e804.cjs} +1 -1
  67. package/es/{el-menu-item-dbbcd01a.js → el-menu-item-d62e0a3f.js} +32 -32
  68. package/es/el-message-ad87b9dd.cjs +1 -0
  69. package/es/{el-message-03e6f342.js → el-message-bd1d2c82.js} +17 -17
  70. package/es/el-overlay-690b50aa.js +269 -0
  71. package/es/el-overlay-e5d318c3.cjs +1 -0
  72. package/es/{el-popconfirm-8372cd13.js → el-popconfirm-88bbd066.js} +13 -13
  73. package/es/{el-popconfirm-86503f8a.cjs → el-popconfirm-a497b279.cjs} +1 -1
  74. package/es/{el-popper-7adbf1c6.cjs → el-popper-14a9d493.cjs} +1 -1
  75. package/es/{el-popper-b5315f5b.js → el-popper-85365d5b.js} +63 -63
  76. package/es/{el-scrollbar-ac525239.cjs → el-scrollbar-8bf765f2.cjs} +1 -1
  77. package/es/{el-scrollbar-4dc1493a.js → el-scrollbar-bcf29780.js} +21 -21
  78. package/es/el-segmented-84707138.js +136 -0
  79. package/es/el-segmented-bccd9f2a.cjs +1 -0
  80. package/es/{el-select-31f8ac8a.cjs → el-select-1d2309a1.cjs} +1 -1
  81. package/es/{el-select-a4ad7c8b.js → el-select-d3bce4d1.js} +13 -13
  82. package/es/{el-table-column-2e7132b3.js → el-table-column-9691b26d.js} +19 -18
  83. package/es/el-table-column-be9a76bb.cjs +14 -0
  84. package/es/{el-tag-a79385c6.js → el-tag-6036f51c.js} +39 -39
  85. package/es/{el-tag-9732314f.cjs → el-tag-8d49d4d2.cjs} +1 -1
  86. package/es/{index-375e8de4.cjs → index-02ca0096.cjs} +1 -1
  87. package/es/{index-afc88a4b.cjs → index-19fa1fcf.cjs} +1 -1
  88. package/es/{index-733cd68a.js → index-21fb27eb.js} +17 -17
  89. package/es/{index-e5fe37a4.js → index-3425f2f0.js} +10 -10
  90. package/es/{index-1d85ba4b.cjs → index-5b81f4da.cjs} +1 -1
  91. package/es/index-8d3c5e96.cjs +3 -0
  92. package/es/{index-97d24ab7.js → index-8ee89b40.js} +16 -16
  93. package/es/{index-9e6e8d03.cjs → index-a99a5307.cjs} +1 -1
  94. package/es/{index-58521b9e.cjs → index-b90c746b.cjs} +1 -1
  95. package/es/index-c45ac024.js +14 -0
  96. package/es/{index-f5b9b211.js → index-cb8157f2.js} +2 -2
  97. package/es/{index-e6a36e09.js → index-d3c37134.js} +7 -7
  98. package/es/{index-65b4113e.cjs → index-d94bae37.cjs} +1 -1
  99. package/es/{index-2d9c78d4.cjs → index-e348d5e8.cjs} +1 -1
  100. package/es/{index-57a7323a.js → index-ef7c4392.js} +11 -11
  101. package/es/{index-e3353eeb.js → index-fbe85773.js} +13 -13
  102. package/es/{raf-f46caea0.cjs → raf-07cb6953.cjs} +1 -1
  103. package/es/{raf-c817c3f7.js → raf-36faa519.js} +1 -1
  104. package/es/{scroll-4fe7a76f.js → scroll-0277d145.js} +1 -1
  105. package/es/{scroll-339681d4.cjs → scroll-4769a65d.cjs} +1 -1
  106. package/es/style.css +1 -1
  107. package/es/{use-form-common-props-04fb0752.js → use-form-common-props-54c31983.js} +40 -40
  108. package/es/{use-form-common-props-74a96df2.cjs → use-form-common-props-592797e2.cjs} +1 -1
  109. package/es/use-global-config-584b62f1.cjs +1 -0
  110. package/es/use-global-config-946f61a4.js +73 -0
  111. package/es/{vnode-b15eb11b.cjs → vnode-1b827c99.cjs} +1 -1
  112. package/es/{vnode-0fd3003d.js → vnode-dfc92f20.js} +1 -1
  113. package/es/{zh-cn-cac8283b.js → zh-cn-5066f5e9.js} +2 -2
  114. package/es/{zh-cn-36f34912.cjs → zh-cn-b24a7dc9.cjs} +1 -1
  115. package/lib/bundle.js +1 -1
  116. package/lib/bundle.umd.cjs +217 -212
  117. package/lib/{index-5f63dc2e.js → index-80531492.js} +39042 -37182
  118. package/lib/{python-5918f7d5.js → python-20a1a5fc.js} +1 -1
  119. package/lib/style.css +1 -1
  120. package/package.json +1 -1
  121. package/packages/KlineConfig/config.js +39 -0
  122. package/packages/KlineConfig/index.ts +8 -0
  123. package/packages/KlineConfig/index.vue +315 -0
  124. package/packages/KlinePlus/components/SliderChart.vue +218 -0
  125. package/packages/KlinePlus/components/Tips.vue +36 -0
  126. package/packages/KlinePlus/images/buy.svg +1 -0
  127. package/packages/KlinePlus/images/sell.svg +1 -0
  128. package/packages/KlinePlus/images/t.svg +1 -0
  129. package/packages/KlinePlus/index.ts +8 -0
  130. package/packages/KlinePlus/index.vue +880 -0
  131. package/packages/KlinePlus/utils.js +705 -0
  132. package/packages/index.ts +4 -0
  133. package/src/pages/KlineConfig/index.vue +20 -0
  134. package/src/pages/KlinePlus/index.vue +180 -0
  135. package/src/router/routes.ts +10 -0
  136. package/es/base-0ca7c43a.cjs +0 -5
  137. package/es/base-b56cf478.js +0 -303
  138. package/es/config-provider-cfbb9cd8.cjs +0 -1
  139. package/es/el-button-62966947.cjs +0 -1
  140. package/es/el-message-d5ed7a4f.cjs +0 -1
  141. package/es/el-overlay-41994f67.cjs +0 -1
  142. package/es/el-overlay-47b665a0.js +0 -521
  143. package/es/el-table-column-bdc46568.cjs +0 -14
  144. package/es/index-0baeaec7.js +0 -82
  145. package/es/index-2f958e56.cjs +0 -3
package/es/Kline.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";require("./base-0ca7c43a.cjs");const ae=require("./el-menu-item-4c9eb7ad.cjs");require("./el-tooltip-0ea8fbf8.cjs");require("./el-popper-7adbf1c6.cjs");const n=require("vue"),je=require("echarts"),P=require("./_plugin-vue_export-helper-f246444f.cjs"),J=require("./index-8901a38c.cjs"),ue=require("./index.esm-94a95a2a.cjs");require("./el-tag-9732314f.cjs");const Me=require("./el-select-31f8ac8a.cjs");require("./el-scrollbar-ac525239.cjs");require("./index-afc88a4b.cjs");require("./index-65b4113e.cjs");require("./index-eea0bcb3.cjs");require("./use-form-common-props-74a96df2.cjs");require("./index-375e8de4.cjs");require("./typescript-b63f8e83.cjs");require("./vnode-b15eb11b.cjs");require("./index-9e6e8d03.cjs");require("./castArray-a78ae889.cjs");require("./index-1d85ba4b.cjs");require("./scroll-339681d4.cjs");require("./debounce-cf26af24.cjs");function de(M){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(M){for(const i in M)if(i!=="default"){const e=Object.getOwnPropertyDescriptor(M,i);Object.defineProperty(t,i,e.get?e:{enumerable:!0,get:()=>M[i]})}}return t.default=M,Object.freeze(t)}const H=de(je),ye={class:"st-kline-tips"},ge={class:"st-kline-tips-row"},Te=n.defineComponent({__name:"index",props:{data:{type:Array,default:()=>[]}},setup(M){return(t,i)=>(n.openBlock(),n.createElementBlock("div",ye,[n.createElementVNode("div",ge,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.data,e=>(n.openBlock(),n.createElementBlock("div",{class:"st-kline-tips-row-item",style:n.normalizeStyle({color:e.color})},n.toDisplayString(e.label)+" "+n.toDisplayString(e.value),5))),256))])]))}});const X=P._export_sfc(Te,[["__scopeId","data-v-78aed210"]]),De=n.defineComponent({__name:"index",emits:["closeContextMenuCallBack"],setup(M,{emit:t}){const i=t,e=n.ref(),o=n.ref(),a=n.ref({display:"none",top:"0px",left:"0px"}),j=()=>{a.value.display="none",i("closeContextMenuCallBack"),document.removeEventListener("click",j)},s=r=>{if(r.preventDefault(),r.stopPropagation(),a.value.display==="block"){const{offsetX:c,offsetY:d}=r,{offsetWidth:I,offsetHeight:u}=o.value;if(c<=I&&d<=u)return}e.value.click(),a.value={display:"block",top:`${r.offsetY}px`,left:`${r.offsetX}px`},n.nextTick(()=>{const{bottom:c,height:d,right:I,width:u}=o.value.getBoundingClientRect();c>window.innerHeight?a.value={display:"block",top:`${r.offsetY-d}px`,left:`${r.offsetX}px`}:I>window.innerWidth&&(a.value={display:"block",top:`${r.offsetY}px`,left:`${r.offsetX-u}px`})}),document.addEventListener("click",j)};return(r,c)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"contextmenuRef",ref:e,class:"contextmenu",onContextmenu:s,onMouseleave:j},[n.renderSlot(r.$slots,"default",{},void 0,!0),a.value.display!=="none"?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"contextmenuContentRef",ref:o,class:"contextmenu-popover",style:n.normalizeStyle(a.value)},[n.renderSlot(r.$slots,"popover",{},void 0,!0)],4)):n.createCommentVNode("",!0)],544))}});const Ie=P._export_sfc(De,[["__scopeId","data-v-249fd104"]]);let le=!1,re=!0,ce=[];const se=M=>{const t=[],i=[],e=[],o=[],a=[],j=[];return M.forEach((s,r)=>{t.push(s[0]),i.push(s[1]),e.push(s[4]),o.push(s[2]),a.push(s[3]),j.push([s[1],s[4],s[3],s[2],Number(s[6]),r===0?s[4]:M[r-1][4]])}),{time:t,open:i,close:e,high:o,low:a,kLineData:j}},Le=async()=>{if(!le)le=!0,await ue.init("./talib.wasm"),re=!1,ce.forEach(M=>{M()});else if(re)return new Promise(M=>{ce.push(M)})},$=(M,t)=>M.length>t?M.slice(M.length-t):M,pe=(M,t,i)=>M.calculationFn?M.calculationFn(ue.talib,t,i):new Array(t.time.length).fill(null),fe=async(M,t,i)=>{const e=se(M);let o=[];return o=se(o),await Le(),{originData:$(M,i),kLine:$(e.kLineData,i),time:$(e.time,i),indicator:t.config.reduce((a,j)=>(a.push({key:j.key,color:j.color,data:$(pe(j,e,o),i)}),a),[])}},K="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=",ee="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+",te="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",W=(M,t)=>{const{type:i="log",color:e="black"}=t??{};localStorage.getItem("st-kline-console-show")==="true"&&console[i](`%c${M}`,`color:${e}`)},C=M=>M||M===0?Math.round(M*1e3)/1e3:null,xe=M=>M>=1e12?`${(M/1e12).toFixed(2)}万亿`:M>=1e8?`${(M/1e8).toFixed(2)}亿`:M>=1e4?`${(M/1e4).toFixed(2)}万`:M.toFixed(2),Ye=M=>{const{y:t,text:i,info:e,gridLeft:o,gridRight:a,echartsWidth:j,echartsInstance:s}=M,{config:r,event:c}=e;let d=0;return{type:"group",draggable:r.draggable?"vertical":!1,children:[{type:"line",info:e,shape:{x1:o,y1:t,x2:j-a,y2:t},style:{stroke:r.lineColor,lineWidth:1,lineDash:[8,4]},z:10},{type:"group",x:j,y:t-5,children:[{type:"text",left:-1*a,info:e,style:{fill:r.textColor,text:i,stroke:"#000",lineWidth:1,opacity:1},z:10}]}],onmouseover:I=>{c.onmouseover instanceof Function&&c.onmouseover(I,e)},onmouseout:I=>{c.onmouseout instanceof Function&&c.onmouseout(I,e)},ondragstart:I=>{c.ondragstart instanceof Function&&r.draggable&&(d=I.offsetY,c.ondragstart(I,e))},ondragend:I=>{if(c.ondragend instanceof Function&&r.draggable){const N=I.offsetY-d;if(N===0)return;const L=s.convertFromPixel({yAxisIndex:0},t+N);c.ondragend(I,e,L)}}}},Ae=M=>{const{y:t,text:i,info:e,gridLeft:o,gridRight:a,echartsWidth:j,echartsInstance:s}=M,{config:r,event:c}=e;let d=0;const I=N=>{let L=null;N.target.type==="line"?L=N.target.parent:N.target.type==="tspan"&&(L=N.target.parent.parent.parent),L.children()[1].children()[0].animate("style",!1).when(200,{opacity:1}).start()},u=N=>{let L=null;N.target.type==="line"?L=N.target.parent:N.target.type==="tspan"&&(L=N.target.parent.parent.parent),L.children()[1].children()[0].animate("style",!1).when(200,{opacity:0}).start()};return{type:"group",draggable:r.draggable?"vertical":!1,children:[{type:"line",info:e,shape:{x1:o,y1:t,x2:j-a,y2:t},style:{stroke:r.lineColor,lineWidth:1},z:10},{type:"group",x:j/2,y:t-5,children:[{type:"text",left:"center",info:e,style:{fill:r.textColor,text:i,stroke:"#000",lineWidth:1,opacity:0},z:10}]}],onmouseover:N=>{c.onmouseover instanceof Function?c.onmouseover(N,e):I(N)},onmouseout:N=>{c.onmouseout instanceof Function?c.onmouseout(N,e):u(N)},ondragstart:N=>{c.ondragstart instanceof Function&&r.draggable&&(d=N.offsetY,c.ondragstart(N,e))},ondragend:N=>{if(c.ondragend instanceof Function&&r.draggable){const l=N.offsetY-d;if(l===0)return;const f=s.convertFromPixel({yAxisIndex:0},t+l);c.ondragend(N,e,f)}}}},me=M=>{const{y:t,text:i,profitY:e,profitText:o,lossY:a,lossText:j,info:s,gridLeft:r,gridRight:c,echartsWidth:d,echartsInstance:I}=M,{config:u,event:N}=s;let L=0,l=null,f=null;const w=(z,g)=>{var D,Y,m,k;(D=z.children()[2])==null||D.animate("style",!1).when(200,{opacity:~~g}).start(),(Y=z.children()[3].children()[0])==null||Y.animate("style",!1).when(200,{opacity:~~g}).start(),(m=z.children()[4])==null||m.animate("style",!1).when(200,{opacity:~~g}).start(),(k=z.children()[5].children()[0])==null||k.animate("style",!1).when(200,{opacity:~~g}).start()},h=z=>{let g=null;z.target.type==="line"?g=z.target.parent:z.target.type==="tspan"&&(g=z.target.parent.parent.parent),l=D=>{D.preventDefault(),(D.code==="AltLeft"||D.code==="AltRight")&&w(g,!0)},f=D=>{(D.code==="AltLeft"||D.code==="AltRight")&&w(g,!1)},window.addEventListener("keydown",l),window.addEventListener("keyup",f)},v=z=>{let g=null;z.target.type==="line"?g=z.target.parent:z.target.type==="tspan"&&(g=z.target.parent.parent.parent),w(g,!1),window.removeEventListener("keydown",l),window.removeEventListener("keyup",f)};return{type:"group",draggable:u.draggable?"vertical":!1,children:[{type:"line",info:s,shape:{x1:r,y1:t,x2:d-c,y2:t},style:{stroke:u.lineColor,lineWidth:1},z:10},{type:"group",x:d/2,y:t-5,children:[{type:"text",left:"center",info:s,style:{fill:u.textColor,text:i,stroke:"#000",lineWidth:1,opacity:1},z:10}]},{type:"line",info:s,shape:{x1:r,y1:e,x2:d-c,y2:e},style:{stroke:u.profitLineColor,lineWidth:1,lineDash:[8,4],opacity:0},z:10},{type:"group",x:d/2,y:e-5,children:[{type:"text",left:"center",info:s,style:{fill:u.profitTextColor,text:o,stroke:"#000",lineWidth:1,opacity:0},z:10}]},{type:"line",info:s,shape:{x1:r,y1:a,x2:d-c,y2:a},style:{stroke:u.lossLineColor,lineWidth:1,lineDash:[8,4],opacity:0},z:10},{type:"group",x:d/2,y:a-5,children:[{type:"text",left:"center",info:s,style:{fill:u.lossTextColor,text:j,stroke:"#000",lineWidth:1,opacity:0},z:10}]}],onmouseover:z=>{N.onmouseover instanceof Function?N.onmouseover(z,s):h(z)},onmouseout:z=>{N.onmouseout instanceof Function?N.onmouseout(z,s):v(z)},ondragstart:z=>{N.ondragstart instanceof Function&&u.draggable&&(L=z.offsetY,N.ondragstart(z,s))},ondragend:z=>{if(N.ondragend instanceof Function&&u.draggable){const D=z.offsetY-L;if(D===0)return;const Y=I.convertFromPixel({yAxisIndex:0},t+D);N.ondragend(z,s,Y)}}}},q=(M,t)=>{const{direction:i="",tradeAction:e="",tradeType:o=""}=M;if(t==="sellBuy"){const a=o??i+e;return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(a)}else if(t==="openClose")return o??i+e},we=(M,t)=>M.reduce((i,e)=>{var d;const o=q(e,"sellBuy"),a=M.filter(I=>I.time===e.time);let j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;a.length>1?[...new Set(a.map(u=>q(u,"sellBuy")))].length>1?j="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href:j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;const r=(t.find(I=>I[0]===e.time)??[])[2],c=((d=e==null?void 0:e.markLineTarget)==null?void 0:d.map(I=>{const u=e.time,N=r+"",L=I.time,l=t.find(w=>w[0]===I.time),f=l?l[3]:null;return[{coord:[u,N],lineStyle:I.lineStyle},{coord:[L,f]}]}))??null;return i.push({symbol:j,symbolSize:25,animation:!1,coord:[e.time+"",r],symbolRotate:0,symbolOffset:[0,"-7"],markLineTarget:c}),i},[]),he=(M,t)=>M.reduce((i,e,o)=>{var I;const a=q(e,"openClose"),j=a==="开多"||a==="开空"?"top":"bottom",s=t.find(u=>u[0]===e.time)??[],r=j==="top"?s[2]:s[3];let c=7;c+=M.slice(0,o).filter(u=>{const N=q(u,"openClose");return(N==="开多"||N==="开空"?"top":"bottom")===j&&u.time===e.time}).length*7;const d=((I=e==null?void 0:e.markLineTarget)==null?void 0:I.map(u=>{const N=e.time,L=r+"",l=u.time,f=t.find(w=>w[0]===u.time)[3];return[{coord:[N,L],lineStyle:u.lineStyle},{coord:[l,f]}]}))??null;return i.push({symbol:"triangle",symbolSize:[10,12],animation:!1,coord:[e.time+"",r],symbolRotate:j==="top"?180:0,symbolOffset:[0,`${j==="top"?c*-1:c}`],itemStyle:{color:j==="top"?"#FF0000":"#389e0d"},label:{show:!0,position:j,color:"#fff",formatter:`${a} ${j==="top"?"+":"-"} ${e.amount}手 ${e.part?`(${e.part}份)`:""}`},markLineTarget:d}),i},[]),Ce=(M,t)=>M.reduce((i,e)=>{const{key:o,data:a}=e;if(a===null||a.length===0)return i;const s=new Map([["sellBuy",()=>we(a,t)],["openClose",()=>he(a,t)],["signal",()=>{}]]).get(o);return s instanceof Function&&i.push(...s()),i},[]),ne=async(M,t,i,e,o,a)=>{const{totalBarCount:j,defaultShowBarCount:s,maxValueSpan:r,gridLeft:c,gridTop:d,gridRight:I,gridBottom:u,zoomLock:N}=e,{time:L,kLine:l,originData:f,indicator:w}=await fe(M,i,j),h=w.map(g=>{const{key:D,data:Y,color:m}=g;return{name:D,type:"line",silent:!0,symbol:"none",data:Y,lineStyle:{width:1},itemStyle:{color:m}}}),v=Ce(t,f);let z=[];return v.forEach(g=>{g.markLineTarget&&(z=[...z,...g.markLineTarget])}),{animation:!1,dataset:{id:"data",source:{klineData:l,indicatorData:w}},grid:{left:`${c}px`,top:`${d}px`,right:`${I}px`,bottom:`${u}px`},tooltip:{trigger:"axis",axisPointer:{type:"cross",label:{formatter:g=>{const{axisDimension:D,value:Y}=g;return D==="x"?Y:String(C(Y))}}},formatter:g=>{let D=null,Y="";return g.forEach(m=>{m.seriesName==="资产持仓净值"&&m.data!==null&&(Y+=`<div>资产持仓净值: ${m.data}</div>`),m.componentSubType==="candlestick"&&t.forEach(k=>{const{key:E,data:F}=k;if(E==="sellBuy"){const b=F.filter(x=>x.time===m.axisValue);let B=0,T=0;b.forEach(x=>{x.tradeType==="开多"||x.tradeType==="平空"?B+=x.amount:T+=x.amount}),B&&(Y+=`<div>买: ${B}</div>`),T&&(Y+=`<div>卖: ${T}</div>`)}E==="openClose"&&F.forEach(b=>{b.time===m.axisValue&&(Y+=b.tooltip)})}),Y&&(D=`<div><span style="font-weight: bold;">${m.axisValue}</span>${Y}</div>`)}),D}},xAxis:{type:"category",data:L,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},axisLabel:{show:!0,formatter:g=>g}},yAxis:[{index:0,splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:g=>{const{min:D,max:Y}=g,m=Math.abs((Y-D)/10);return D-m},max:g=>{const{min:D,max:Y}=g,m=Math.abs((Y-D)/10);return Y+m},axisLine:{show:!0},axisLabel:{formatter:g=>C(g),showMaxLabel:!1}},{show:!1,min:"dataMin"}],dataZoom:[{type:"inside",xAxisIndex:[0,0],zoomLock:N,maxValueSpan:r,start:l.length>=s?(l.length-s)/l.length*100:0,end:99.99}],series:[{name:"k线",type:"candlestick",data:l,markPoint:{data:v},markLine:{position:"middle",textStyle:{color:"blue",fontSize:15},animation:!1,data:z,lineStyle:{width:3,type:"solid"},symbol:["none","none"]},itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1},z:1},...h,{name:"资产持仓净值",type:"line",data:o??[],symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#666"}},{name:"二腿相关度",type:"line",data:a??[],symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#FFF"},lineStyle:{width:2},label:{show:!0,position:"top",formatter:g=>`相关度: ${g.data[1]}`,textStyle:{color:"#FFF",fontSize:14}}}],toolbox:{show:!1},brush:{xAxisIndex:"all",brushLink:"all",transformable:!1,outOfBrush:{colorAlpha:1},brushStyle:{color:"rgba(120,140,180,0)",borderColor:"rgba(255,255,255,0.4)"}}}},Oe=(M,t,i)=>{var I;const{gridLeft:e,gridRight:o,gridBottom:a,warningConfig:j,positionConfig:s,conditionConfig:r,isOpenDS:c}=t;let d=[];if((I=i==null?void 0:i.getModel())!=null&&I.getComponent){const[u,N]=i.getModel().getComponent("yAxis").axis.scale._extent;let L=[],l={},f=[],w={},h=[],v={};if(M.forEach(({key:z,data:g,...D})=>{z==="warning"?(L=g,l=D):z==="position"?(f=g,w=D):z==="condition"&&(h=g,v=D)}),L.length>0&&(d=L.reduce((z,g)=>{const{value:D,text:Y,info:m,config:k}=g;if(D>N||D<u)return z;const E={y:i.convertToPixel({yAxisIndex:0},D),text:Y,info:{info:m,config:{...j,...k},event:{...l}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,Ye(E)]},d)),f.length>0&&(d=f.reduce((z,g)=>{const{value:D,text:Y,info:m,config:k}=g;if(D>N||D<u)return z;const E={y:i.convertToPixel({yAxisIndex:0},D),text:Y,info:{info:m,config:{...s,...k},event:{...w}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,Ae(E)]},d)),h.length>0&&(d=h.reduce((z,g)=>{const{value:D,text:Y,profitValue:m,profitText:k,lossValue:E,lossText:F,info:b,config:B}=g;if(D>N||D<u)return z;const T={y:i.convertToPixel({yAxisIndex:0},D),text:Y,profitY:i.convertToPixel({yAxisIndex:0},m),profitText:k,lossY:i.convertToPixel({yAxisIndex:0},E),lossText:F,info:{info:b,config:{...r,...B},event:{...v}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,me(T)]},d)),c){const z=i.getOption(),g=z.dataset[0].source.klineData.slice(z.dataZoom[0].startValue,z.dataZoom[0].endValue+1),D={};g.forEach(T=>{D[T[1]]?D[T[1]]+=1:D[T[1]]=1});const Y=g[g.length-1][1],m=g.reduce((T,x)=>T+x[1],0)/g.length,k=Y-m,E=ve(g,1,50),F=Ee(g),b=F?k/F:0,B=ke(g,1,Y);d=[...d,{type:"group",draggable:!1,children:Object.keys(D).map(T=>({type:"line",shape:{x1:i.getWidth()-o-100*D[T],y1:i.convertToPixel({yAxisIndex:0},T),x2:i.getWidth()-o,y2:i.convertToPixel({yAxisIndex:0},T)},style:{stroke:"rgb(124,124,124)",lineWidth:1},z:10}))},{type:"text",x:e+6,y:i.getHeight()-a-20,style:{fill:"#FFF",text:`均值: ${C(m)}    距均值: ${C(k)}    中值: ${C(E)}    标准差: ${C(F)}    距均值/标准差: ${C(b)}    百分位: ${C(B)}%`,lineWidth:1,opacity:1},z:10}]}}return{elements:d}},ke=(M,t,i)=>{const{round:e,add:o,subtract:a,multiply:j,divide:s}=J.x,r=M.map(d=>d[t]).sort((d,I)=>d-I);let c=0;for(let d=0;d<r.length;d++)if(r[d]===i){c=d;break}else if(r[d]>=i){c=o(d,s(a(r[d+1],r[d]),r[d]));break}return e(s(j(c,100),M.length+1))},ve=(M,t,i)=>{const{round:e,add:o,subtract:a,multiply:j,divide:s}=J.x,r=M.map(u=>u[t]).sort((u,N)=>u-N),c=j(M.length+1,s(i,100)),d=Math.floor(c),I=a(c,d);return e(I===0?r[c]:o(r[d],j(a(r[d>=M.length-1?d:d+1],r[d]),I)))};function Ee(M){const t=M.map(j=>j[1]),i=t.length;let e=0,o=0;for(const j of t)e+=j;const a=e/i;for(const j of t)o+=Math.pow(j-a,2);return Math.sqrt(o/i)}const be={class:"st-kline"},Se={class:"st-kline-header"},_e=300,Fe=n.defineComponent({__name:"index",props:{indicator:{type:Object,default:()=>({})},klineData:{type:Array,default:()=>[]},markData:{type:Array,default:()=>[]},lineData:{type:Array,default:()=>[]},netPositionData:{type:Array,default:()=>[]},relevanceData:{type:Array,default:()=>[]},priceTrendData:{type:Array,default:()=>[]},priceTrendPercentData:{type:Array,default:()=>[]},brushRange:{type:Array,default:()=>[]},defaultMenuData:{type:Array,default:()=>[]},isSelect:{type:Boolean,default:()=>!1},config:{type:Object,default:()=>({})}},setup(M){const t=M,i={totalBarCount:2e3,defaultShowBarCount:200,preBarCount:800,maxValueSpan:1e4,gridLeft:60,gridTop:0,gridRight:60,gridBottom:30,warningConfig:{draggable:!1,lineColor:"#fff",textColor:"#fff"},positionConfig:{draggable:!1,lineColor:"#e45d07",textColor:"#fff"},conditionConfig:{draggable:!1,lineColor:"#fff",textColor:"#fff",profitLineColor:"#b71e44",profitTextColor:"#fff",lossLineColor:"#749b66",lossTextColor:"#fff"},tipsConfig:{open:!0,heigh:!0,low:!0,close:!0,business:!0,riseAndFall:!0},dynamicLoadConfig:{historyVisible:!1,historyLoadCallBack:()=>{},futureVisible:!1,futureLoadCallBack:()=>{}},zoomLock:!1,isOpenDS:!1},e=n.computed(()=>({...i,...t.config})),o=n.ref(null),a=n.ref(-1),j=n.computed(()=>{var T,x;if(o.value&&((x=(T=o.value.dataset[0])==null?void 0:T.source)!=null&&x.klineData[a.value])){const p=o.value.dataset[0].source.klineData[a.value],y=[],{open:A,heigh:O,low:S,close:Q,business:V,riseAndFall:R}=e.value.tipsConfig;if(A&&y.push({label:"开",value:C(p[0]),color:"rgb(153, 153, 153)"}),O&&y.push({label:"高",value:C(p[3]),color:"rgb(153, 153, 153)"}),S&&y.push({label:"低",value:C(p[2]),color:"rgb(153, 153, 153)"}),Q&&y.push({label:"收",value:C(p[1]),color:"rgb(153, 153, 153)"}),V&&y.push({label:"额",value:xe(p[4]),color:"rgb(153, 153, 153)"}),R){let U=((p[1]-p[5])/p[1]*100).toFixed(2),_=+U==0?"white":+U>0?"red":"#00ff00";y.push({label:"涨跌",value:`${U}%`,color:_})}return y}return[]}),s=n.computed(()=>{var T,x;return o.value&&((x=(T=o.value.dataset[0])==null?void 0:T.source)!=null&&x.indicatorData)?o.value.dataset[0].source.indicatorData.reduce((p,y)=>(y.data[a.value]&&p.push({label:y.key,value:C(y.data[a.value]),color:y.color}),p),[]):[]}),r=n.computed(()=>{const T=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"];if(t.priceTrendData.length>0){const x=[];return t.priceTrendData.forEach((p,y)=>{var O;(p.data[a.value]?C(p.data[a.value][1]):null)!==null&&x.push({label:p.name,value:C((O=p.data[a.value])==null?void 0:O[1]),color:T[y]})}),x}if(t.priceTrendPercentData.length>0){const x=[];return l.getOption().series.filter(y=>y.name.includes("二腿价格走势百分比图")).forEach((y,A)=>{var S;(y.data[a.value]?C(y.data[a.value][1]):null)!==null&&x.push({label:y.name.split("-")[1],value:`${C((S=y.data[a.value])==null?void 0:S[1])}%`,color:T[A]})}),x}return[]});n.watch(()=>[t.klineData,t.indicator,t.markData,t.netPositionData,t.relevanceData],()=>{c()},{deep:!0}),n.watch(()=>t.lineData,async()=>{W("st-kline组件消息:props.lineData监控,额外画线数据发生改变,重绘->line",{color:"red"}),c("line")},{deep:!0}),n.watch(()=>t.brushRange,async()=>{W("st-kline组件消息:props.brushRange监控,区域刷选数据发生改变,重绘->brush",{color:"red"}),c("brush")},{deep:!0}),n.watch(()=>t.priceTrendData,async()=>{c("priceTrend")},{deep:!0}),n.watch(()=>t.priceTrendPercentData,async()=>{c("priceTrendPercent")},{deep:!0});const c=async T=>{const p=new Map([["kline",async()=>{const y=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData),{graphic:A}=l.getOption()??{graphic:[]};o.value={...y,graphic:A},l.setOption(o.value,!0),W("st-kline组件消息:K线绘制完毕-draw",{color:"green"})}],["line",()=>{const y=l.getOption(),A=Oe(t.lineData,e.value,l);o.value={...y,graphic:A},l.setOption(o.value,{replaceMerge:["graphic"]}),W("st-kline组件消息:额外画线绘制完毕-draw",{color:"green"})}],["brush",()=>{const{brushRange:y}=t;y instanceof Array&&y.length>0&&(l.dispatchAction({type:"brush",areas:[{brushType:"lineX",coordRange:[y[0]+"",y[1]+""],xAxisIndex:0}]}),W("st-kline组件消息:区域刷选绘制完毕-draw",{color:"green"}))}],[void 0,async()=>{await c("kline"),await c("line"),await c("priceTrend"),await c("priceTrendPercent"),await c("brush")}],["history",async()=>{const y=l.getOption(),A=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData),O=A.dataset.source.klineData.length-y.dataset[0].source.klineData.length;l.setOption({...A,dataZoom:[{type:"inside",xAxisIndex:[0,0],zoomLock:e.value.zoomLock,maxValueSpan:e.value.maxValueSpan,startValue:y.dataZoom[0].startValue+O,endValue:y.dataZoom[0].endValue+O}]},!0),await c("priceTrend")}],["future",async()=>{const y=l.getOption(),A=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData);A.dataZoom[0].start=(t.klineData.length-y.dataZoom[0].endValue+y.dataZoom[0].startValue)/t.klineData.length*100,l.setOption(A,!0),await c("priceTrend")}],["priceTrend",()=>{if(t.priceTrendData.length===0)return;const y=l.getOption(),A=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"],O=t.priceTrendData.reduce((S,Q,V)=>{const{name:R,data:U}=Q,_={name:`二腿价格走势图-${R}`,type:"line",data:U,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:A[V]},lineStyle:{type:"dashed",width:1}};return S.push(_),S},[]);o.value={...y,series:[...y.series,...O]},l.setOption(o.value,{replaceMerge:["series"]})}],["priceTrendPercent",async()=>{if(t.priceTrendPercentData.length===0)return;const y=l.getOption(),A=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"],O=y.dataZoom[0].startValue,S=t.priceTrendPercentData.reduce((Q,V,R)=>{const{name:U,data:_}=V,Z=_.length>e.value.totalBarCount?_.slice(_.length-e.value.totalBarCount):_,G=Z[O][1],Ne=Z.map(ie=>[ie[0],(ie[1]-G)/G*100]),ze={name:`二腿价格走势百分比图-${U}`,type:"line",data:Ne,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:A[R]},lineStyle:{type:"dashed",width:1}};return Q.push(ze),Q},[]);y.series=[...y.series.filter(Q=>!Q.name.includes("二腿价格走势百分比图")),...S],l.setOption(y,!0)}]]).get(T);p instanceof Function&&await p()},d=n.ref(!1),I=n.ref([]),u=T=>{const{callBack:x}=T;x instanceof Function&&x(l,d)},N=()=>{I.value=t.defaultMenuData},L=n.ref();let l,f;const w=(T,x)=>{var p,y;if(T)a.value=typeof((p=T==null?void 0:T.batch[0])==null?void 0:p.dataIndex)=="number"?(y=T==null?void 0:T.batch[0])==null?void 0:y.dataIndex:-1;else{const A=x.getOption();A.dataZoom instanceof Array&&(a.value=A.dataZoom[0].endValue)}};let h=null,v=!1,z=n.ref(!1),g=!1,D=n.ref(!1);const Y=async T=>{const x=T.batch?T.batch[0].start*e.value.totalBarCount:T.startValue;e.value.dynamicLoadConfig.historyVisible&&x<=100&&!v&&!z.value&&(v=!0,await e.value.dynamicLoadConfig.historyLoadCallBack(z),await c("history"),v=!1);const p=T.batch?T.batch[0].end===100:T.endValue>=t.klineData.length-e.value.preBarCount-1,y=T.actionIsWheel;e.value.dynamicLoadConfig.futureVisible&&p&&!g&&!D.value&&!y&&(g=!0,await e.value.dynamicLoadConfig.futureLoadCallBack(D),await c("future"),g=!1),clearTimeout(h),h=setTimeout(()=>{c("line"),c("priceTrendPercent"),clearTimeout(h),h=null},_e)};let m=null;const k=T=>{m=setTimeout(()=>{var x;if(T.componentType==="graphic"){const{oncontextmenu:p}=((x=T.info)==null?void 0:x.event)??{};p instanceof Function&&p(T,T.info,I)}clearTimeout(m),m=null})},E=()=>{l.on("highlight",T=>{w(T,l)}),l.on("globalout",()=>{w(null,l)}),l.on("contextmenu",T=>{k(T)}),l.on("datazoom",T=>{Y(T)})},F=()=>{l.off("highlight"),l.off("globalout"),l.off("contextmenu"),l.off("datazoom")},b=T=>{if(!l||!(T.ctrlKey||t.isSelect))return;const x=l.getOption();let{startValue:p,endValue:y,start:A,end:O}=x.dataZoom[0];const S=()=>{p!==0&&(p=p-1,y=y-1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan}))},Q=()=>{if(e.value.dynamicLoadConfig.futureVisible&&!g&&!D.value)p=p+1,y=y+1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan});else{if(y===x.xAxis[0].data.length-1)return;p=p+1,y=y+1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan})}},V=()=>{if(y-p<5)return;const Z=Math.floor((a.value-p)/2)+1,G=Math.floor((y-a.value)/2)+1;p=p+Z,y=y-G,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,actionIsWheel:!0,maxValueSpan:e.value.maxValueSpan})},R=()=>{A=A-(O-A)/4,l.dispatchAction({type:"dataZoom",start:A,end:O,actionIsWheel:!0,maxValueSpan:e.value.maxValueSpan})},_=new Map([["ArrowLeft",S],["ArrowRight",Q],["ArrowUp",V],["ArrowDown",R]]).get(T.code);_ instanceof Function&&_()},B=async()=>{let T=!0;l=H.init(L.value),await c(),I.value=t.defaultMenuData,a.value=l.getOption().dataZoom[0].endValue??-1,E(),f=new ResizeObserver(()=>{if(T){T=null;return}l.resize(),c("line")}),f.observe(L.value),window.addEventListener("keydown",b)};return n.onMounted(()=>{B()}),n.onUnmounted(()=>{F(),window.removeEventListener("keydown",b),l.dispose(),f.disconnect(),f=null}),(T,x)=>{const p=ae.ElMenuItem,y=ae.ElMenu;return n.openBlock(),n.createElementBlock("div",be,[n.createElementVNode("div",Se,[n.createVNode(X,{data:j.value},null,8,["data"]),n.createVNode(X,{data:s.value},null,8,["data"]),n.createVNode(X,{data:r.value},null,8,["data"])]),n.createVNode(Ie,{class:"st-kline-body",onCloseContextMenuCallBack:N},{popover:n.withCtx(()=>[n.createVNode(y,{class:"menu"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(I.value,A=>(n.openBlock(),n.createBlock(p,{key:A.label,index:A.label,class:"menuItem",onClick:O=>u(A)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(A.label),1)]),_:2},1032,["index","onClick"]))),128))]),_:1})]),default:n.withCtx(()=>[n.createElementVNode("div",{ref_key:"echartsRef",ref:L,class:n.normalizeClass(d.value?"st-kline-chart cursorPen":"st-kline-chart")},null,2)]),_:1})])}}});const Qe=P._export_sfc(Fe,[["__scopeId","data-v-7f014d0e"]]),Be={class:"kline-tips"},Ue=n.defineComponent({__name:"index",props:{data:{type:Array,require:!0}},setup(M){return(t,i)=>(n.openBlock(),n.createElementBlock("div",Be,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.data,(e,o)=>(n.openBlock(),n.createElementBlock("div",{key:o,class:"kline-tips-item",style:n.normalizeStyle({color:e.color})},n.toDisplayString(e.label)+" "+n.toDisplayString(e.value),5))),128))]))}});const oe=P._export_sfc(Ue,[["__scopeId","data-v-dc7d381b"]]);const Ve={class:"klineSub"},Re={class:"klineSub-tips"},Pe={key:0,class:"klineSub-tips-select"},We={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0},modelValue:{type:String,required:!0},subIndicatorList:{type:Array,required:!0}},emits:["update:modelValue"],setup(M,{expose:t,emit:i}){const{round:e}=J.x;let o,a;const j=i,s=M,r=n.ref(),c=n.computed({get(){return s.modelValue},set(u){j("update:modelValue",u)}}),d=n.computed(()=>{var L;const{data:u,activeIndex:N}=s;return((L=u==null?void 0:u.subIndicator)==null?void 0:L.map(l=>({label:l.key,color:l.color,value:l.data[N]||"-"})))||[]});n.onMounted(()=>{o=H.init(r.value);let u=!0;a=new ResizeObserver(()=>{if(u){u=null;return}o.resize()}),a.observe(r.value)}),n.onUnmounted(()=>{o.dispose(),a.disconnect(),a=null});const I=(u,N)=>{const L=u[N],l=N===0?u[N]:u[N-1];return L[0]===L[1]?L[0]>=l[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:L[1]>L[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}};return t({connect:u=>{H.connect([u,o])},draw:(u,N)=>{n.nextTick(()=>{const{startValue:L,endValue:l,maxValueSpan:f}=u,{leftYAxisRange:w,rightYAxisRange:h}=s.data.subIndicator[0],v=s.data.subIndicator.map(z=>{if(z.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:z.data.map((g,D)=>z.seriesColor==="kline"?{value:g,itemStyle:I(s.data.data,D)}:z.seriesColor==="value"?{value:g,itemStyle:{color:g>=0?"#FF0000":"#00FFFF"}}:{value:g,itemStyle:{color:z.seriesColor}})};if(z.series==="line")return{xAxisIndex:0,yAxisIndex:z.yAxis==="right"?2:1,name:z.key,type:"line",silent:!0,symbol:"none",data:z.data,lineStyle:{width:1},itemStyle:{color:z.color}}});o.setOption({animation:!1,grid:{left:`${N.gridLeft}px`,top:"10px",right:`${N.gridRight}px`,bottom:"20px"},dataZoom:[{type:"inside",startValue:L,endValue:l,maxValueSpan:f}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:z=>{const{axisDimension:g,value:D}=z;if(g==="x")return D;if(z.axisIndex===1)return String(e(D))}}},formatter:()=>""},xAxis:{type:"category",data:s.data.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!0,formatter:z=>z}},yAxis:[{position:"right"},{position:"left",min:w==="cover"?z=>z.min:null,max:w==="cover"?z=>z.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:h==="cover"?z=>z.min:null,max:h==="cover"?z=>z.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:v},!0)})}}),(u,N)=>{const L=Me.ElOption,l=Me.ElSelect;return n.openBlock(),n.createElementBlock("div",Ve,[n.createElementVNode("div",Re,[d.value.length?(n.openBlock(),n.createElementBlock("div",Pe,[n.createVNode(l,{modelValue:c.value,"onUpdate:modelValue":N[0]||(N[0]=f=>c.value=f),size:"small","popper-class":"element-dark",class:"element-dark subIndicator"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.subIndicatorList,f=>(n.openBlock(),n.createBlock(L,{key:f.value,label:f.label,value:f.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):n.createCommentVNode("",!0),n.createVNode(oe,{data:d.value},null,8,["data"])]),n.createElementVNode("div",{class:"klineSub-chart",ref_key:"subChartRef",ref:r},null,512)])}}},Ze=P._export_sfc(We,[["__scopeId","data-v-aba58678"]]);const Ge={class:"kline-tips"},$e={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0}},setup(M){const{round:t,formatValue:i}=J.x,e=M,o=n.computed(()=>{const{data:j,activeIndex:s}=e;if(j.data&&j.data[s]){const r=j.data[s],c=[{label:"开",value:t(r[0])},{label:"高",value:t(r[3])},{label:"低",value:t(r[2])},{label:"收",value:t(r[1])}];r[4]!==null&&c.push({label:"额",value:i(r[4])});let d;return r[6]>0?d="red":r[6]<0&&(d="green"),c.push({label:"涨跌",value:`${t(r[6])}%`,color:d}),c}return[]}),a=n.computed(()=>{var r;const{data:j,activeIndex:s}=e;return((r=j==null?void 0:j.mainIndicator)==null?void 0:r.map(c=>({label:c.key,value:t(c.data[s]),color:c.color})))||[]});return(j,s)=>(n.openBlock(),n.createElementBlock("div",Ge,[n.createVNode(oe,{data:o.value},null,8,["data"]),n.createVNode(oe,{data:a.value},null,8,["data"])]))}},He=P._export_sfc($e,[["__scopeId","data-v-a12855fe"]]),qe={__name:"index",setup(M,{expose:t}){return t({handleKeyDown:(i,e)=>{let{startValue:o,endValue:a,maxIndex:j}=e;if(i.code==="ArrowLeft"){if(o===0)return;o=o-1,a=a-1}else if(i.code==="ArrowRight"){if(a===j)return;o=o+1,a=a+1}else if(i.code==="ArrowUp"){if(a-o<5)return;const s=Math.floor((a-o)/2)+1;o=o+s,a-o<5&&(o=a-4)}else if(i.code==="ArrowDown"){const s=Math.min(500,a-o);o=o-s-1}return{startValue:o,endValue:a}},mergeData:(i,e)=>({time:[...i.time,...e.time.slice(1)],data:[...i.data,...e.data.slice(1)],mainIndicator:i.mainIndicator.map((o,a)=>({...o,data:[...o.data,...e.mainIndicator[a].data.slice(1)]})),subIndicator:i.subIndicator.map((o,a)=>({...o,data:[...o.data,...e.subIndicator[a].data.slice(1)]}))}),getDataZoomInfoByTime:i=>{const{showStartTime:e,showEndTime:o,maxShowDays:a}=i;let j=-1,s=-1,r={};return i.time.forEach((c,d)=>{const I=c.split(" ")[0];r[I]=r[I]||0,r[I]+=1,j===-1&&new Date(c)>=new Date(e)&&(j=d),s===-1&&new Date(c)>=new Date(o)&&(s=d)}),s=s===-1?i.time.length-1:s,{startValue:j,endValue:s,maxValueSpan:Math.max(...Object.values(r))*a}}}),(i,e)=>null}};const Je={__name:"index",props:{data:{type:Array,default:()=>[]}},emits:["change"],setup(M,{expose:t,emit:i}){let e,o,a=null;const j=i,s=M,r=n.ref();n.watch(()=>s.data,()=>{I()},{deep:!0}),n.onMounted(()=>{e=H.init(r.value),c(),I();let u=!0;o=new ResizeObserver(()=>{if(u){u=null;return}e.resize()}),o.observe(r.value)}),n.onUnmounted(()=>{e.off("datazoom"),e.dispose(),o.disconnect(),o=null});const c=()=>{e.on("datazoom",u=>{u.dataZoomId&&(clearTimeout(a),a=setTimeout(()=>{const{data:N}=s,{start:L,end:l}=u,f=Math.floor(L*N.length/100),w=l===100?N.length-1:Math.floor(l*N.length/100);d(f,w),clearTimeout(a)},100))})},d=(u,N)=>{const L=s.data;if(L.length===0)return;const l=L[u][0].split(" ")[0],f=L[N][0].split(" ")[0];j("change",{startTime:`${l} 00:00:00`,endTime:`${f} 24:00:00`})},I=()=>{const{data:u}=s;if(u.length===0)return;const N=u.map(l=>l[0].split(" ")[0]),L=u.map(l=>l[1]);e.setOption({grid:{height:0,left:"80px",right:"80px"},xAxis:{type:"category",data:N,show:!1},yAxis:{type:"value"},series:[{data:L,type:"line"}]},!0)};return t({resetSlide:(u,N,L)=>{let l=-1,f=-1;s.data.forEach((w,h)=>{l===-1&&w[0]===u?l=h:l===-1&&new Date(w[0])>new Date(u)&&(l=h-1),(f===-1&&w[0]===N||f===-1&&new Date(w[0])>new Date(N))&&(f=h)}),f=f===-1?s.data.length-1:f,e.setOption({dataZoom:[{show:!0,startValue:l,endValue:f,maxValueSpan:L,textStyle:{color:"#ccc"}},{type:"inside",startValue:l,endValue:f,maxValueSpan:L}]})},resize:()=>{e==null||e.resize()}}),(u,N)=>(n.openBlock(),n.createElementBlock("div",{class:"klineSlide",ref_key:"slideChartRef",ref:r},null,512))}},Xe=P._export_sfc(Je,[["__scopeId","data-v-7a2f3dd0"]]),Ke={install(M){M.component("st-kline",Qe),M.component("st-kline-sub-new",Ze),M.component("st-kline-tips-new",He),M.component("st-kline-slide-new",Xe),M.component("st-kline-utils-new",qe)}};module.exports=Ke;
1
+ "use strict";require("./base-bdc10baa.cjs");const ae=require("./el-menu-item-ac89e804.cjs");require("./el-tooltip-0ea8fbf8.cjs");require("./el-popper-14a9d493.cjs");const n=require("vue"),je=require("echarts"),P=require("./_plugin-vue_export-helper-f246444f.cjs"),J=require("./index-8901a38c.cjs"),ue=require("./index.esm-94a95a2a.cjs");require("./el-tag-8d49d4d2.cjs");const Me=require("./el-select-1d2309a1.cjs");require("./el-scrollbar-8bf765f2.cjs");require("./index-19fa1fcf.cjs");require("./index-d94bae37.cjs");require("./index-eea0bcb3.cjs");require("./use-form-common-props-592797e2.cjs");require("./index-02ca0096.cjs");require("./typescript-b63f8e83.cjs");require("./vnode-1b827c99.cjs");require("./index-a99a5307.cjs");require("./castArray-37eb9980.cjs");require("./index-5b81f4da.cjs");require("./scroll-4769a65d.cjs");require("./debounce-9e323221.cjs");function de(M){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(M){for(const i in M)if(i!=="default"){const e=Object.getOwnPropertyDescriptor(M,i);Object.defineProperty(t,i,e.get?e:{enumerable:!0,get:()=>M[i]})}}return t.default=M,Object.freeze(t)}const H=de(je),ye={class:"st-kline-tips"},ge={class:"st-kline-tips-row"},Te=n.defineComponent({__name:"index",props:{data:{type:Array,default:()=>[]}},setup(M){return(t,i)=>(n.openBlock(),n.createElementBlock("div",ye,[n.createElementVNode("div",ge,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.data,e=>(n.openBlock(),n.createElementBlock("div",{class:"st-kline-tips-row-item",style:n.normalizeStyle({color:e.color})},n.toDisplayString(e.label)+" "+n.toDisplayString(e.value),5))),256))])]))}});const X=P._export_sfc(Te,[["__scopeId","data-v-78aed210"]]),De=n.defineComponent({__name:"index",emits:["closeContextMenuCallBack"],setup(M,{emit:t}){const i=t,e=n.ref(),o=n.ref(),a=n.ref({display:"none",top:"0px",left:"0px"}),j=()=>{a.value.display="none",i("closeContextMenuCallBack"),document.removeEventListener("click",j)},s=r=>{if(r.preventDefault(),r.stopPropagation(),a.value.display==="block"){const{offsetX:c,offsetY:d}=r,{offsetWidth:I,offsetHeight:u}=o.value;if(c<=I&&d<=u)return}e.value.click(),a.value={display:"block",top:`${r.offsetY}px`,left:`${r.offsetX}px`},n.nextTick(()=>{const{bottom:c,height:d,right:I,width:u}=o.value.getBoundingClientRect();c>window.innerHeight?a.value={display:"block",top:`${r.offsetY-d}px`,left:`${r.offsetX}px`}:I>window.innerWidth&&(a.value={display:"block",top:`${r.offsetY}px`,left:`${r.offsetX-u}px`})}),document.addEventListener("click",j)};return(r,c)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"contextmenuRef",ref:e,class:"contextmenu",onContextmenu:s,onMouseleave:j},[n.renderSlot(r.$slots,"default",{},void 0,!0),a.value.display!=="none"?(n.openBlock(),n.createElementBlock("div",{key:0,ref_key:"contextmenuContentRef",ref:o,class:"contextmenu-popover",style:n.normalizeStyle(a.value)},[n.renderSlot(r.$slots,"popover",{},void 0,!0)],4)):n.createCommentVNode("",!0)],544))}});const Ie=P._export_sfc(De,[["__scopeId","data-v-249fd104"]]);let le=!1,re=!0,ce=[];const se=M=>{const t=[],i=[],e=[],o=[],a=[],j=[];return M.forEach((s,r)=>{t.push(s[0]),i.push(s[1]),e.push(s[4]),o.push(s[2]),a.push(s[3]),j.push([s[1],s[4],s[3],s[2],Number(s[6]),r===0?s[4]:M[r-1][4]])}),{time:t,open:i,close:e,high:o,low:a,kLineData:j}},Le=async()=>{if(!le)le=!0,await ue.init("./talib.wasm"),re=!1,ce.forEach(M=>{M()});else if(re)return new Promise(M=>{ce.push(M)})},$=(M,t)=>M.length>t?M.slice(M.length-t):M,pe=(M,t,i)=>M.calculationFn?M.calculationFn(ue.talib,t,i):new Array(t.time.length).fill(null),fe=async(M,t,i)=>{const e=se(M);let o=[];return o=se(o),await Le(),{originData:$(M,i),kLine:$(e.kLineData,i),time:$(e.time,i),indicator:t.config.reduce((a,j)=>(a.push({key:j.key,color:j.color,data:$(pe(j,e,o),i)}),a),[])}},K="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjM4NzI1IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI2MjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNGRjAwMDAiIHAtaWQ9IjI2MjYiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjcwOTMzMyAxNjcuNzIyNjY3YzAuMTI4LTIxLjc2IDkuOTg0LTQyLjY2NjY2NyAyNy4zOTItNTcuOTQxMzM0YTkzLjMxMiA5My4zMTIgMCAwIDEgNjQuNDY5MzM0LTIzLjg5MzMzM0w3NjEuNiA4NS4zMzMzMzNjMjUuNiAwLjU1NDY2NyA0Ny4zNiA4Ljc4OTMzMyA2NC45Mzg2NjcgMjQuNDA1MzM0IDE3LjkyIDE2IDI2Ljg4IDM1LjIgMjYuODggNTcuNDcybC0wLjU1NDY2NyA0MTkuODRjMC4yOTg2NjcgMjIuNjk4NjY3LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuOTIyNjY2LTEyLjYyOTMzMyAyNy4zMDY2NjctMjcuOTQ2NjY3IDQ4Ljg5Ni00NS44MjQgNjQuODk2bC0yMTEuMjQyNjY3IDE4OC4yMDI2NjdjLTE3LjU3ODY2NyAxNS43MDEzMzMtMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45Mzg2NjcgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0Ljk4MTMzMy0yMy41OTQ2NjdsLTIxMS4xNTczMzMtMTg4LjE2Yy0xNy45Mi0xNi4wNDI2NjctMzMuMjgtMzcuNzE3MzMzLTQ1LjkwOTMzNC02NC45ODEzMzMtMTIuNjcyLTI3LjMwNjY2Ny0xOS4wMjkzMzMtNTIuMzk0NjY3LTE5LjAyOTMzMy03NS4zMDY2NjdMMTcwLjY2NjY2NyAxNjcuNzIyNjY3eiBtNDIuNjY2NjY3IDAuMjU2bDAuNTU0NjY3IDQxOC42ODhjMCAxNi4yMTMzMzMgNC44MjEzMzMgMzUuMzI4IDE1LjAxODY2NiA1Ny4zNDQgMTAuMzY4IDIyLjI3MiAyMi4zNTczMzMgMzkuMjEwNjY3IDM1LjYyNjY2NyA1MS4wNzJsMjExLjQxMzMzMyAxODguNDE2YzguOTYgOC4xMDY2NjcgMjEuODg4IDEyLjggMzYuMjI0IDEyLjU0NCAxNS41MzA2NjctMC4wNDI2NjcgMjcuMDkzMzMzLTQuMjY2NjY3IDM2LjY5MzMzNC0xMi44bDIxMS4xNTczMzMtMTg4LjExNzMzNGMxMy4zMTItMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNTg0LTUxLjA3MiAxMC4xMTItMjEuODQ1MzMzIDE0Ljc2MjY2Ny00MC41NzYgMTQuNTA2NjY3LTU3LjA0NTMzM2wwLjU1NDY2Ni00MTkuNzU0NjY3YzAtOS44OTg2NjctMy41ODQtMTcuNjIxMzMzLTEyLjQ1ODY2Ni0yNS42YTU0LjY5ODY2NyA1NC42OTg2NjcgMCAwIDAtMzYuNjA4LTEzLjYxMDY2NmwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NyAxMy4zMTIgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzMgMjEuNDYxMzMzbC0wLjQyNjY2NyA0LjY5MzMzNHoiIGZpbGw9IiNBRTAwMDAiIHAtaWQ9IjI2MjciPjwvcGF0aD48cGF0aCBkPSJNMzg0IDY1NC4xMjI2NjdoMTUzLjUxNDY2N2M5Ni43NjggMCAxNDIuNzYyNjY3LTQ4Ljk4MTMzMyAxNDIuNzYyNjY2LTExNy4wNzczMzQgMC01OS43MzMzMzMtMzMuNDUwNjY3LTg4LjQwNTMzMy04NC44MjEzMzMtOTcuOTYyNjY2di0xLjc5MmM0OC45ODEzMzMtMTUuNTMwNjY3IDY2LjkwMTMzMy00Ni41OTIgNjYuOTAxMzMzLTg5LjYgMC02NS4xMDkzMzMtNDAuNjE4NjY3LTEwMy4zMzg2NjctMTM0Ljk5NzMzMy0xMDMuMzM4NjY3SDM4NHY0MDkuNzcwNjY3eiBtNzIuODc0NjY3LTU0Ljk1NDY2N3YtMTMxLjQxMzMzM2g2Ni4zMDRjNTEuOTY4IDAgODAuMDQyNjY3IDE3LjkyIDgwLjA0MjY2NiA2NS4xMDkzMzMgMCA0NC44LTI2LjI4MjY2NyA2Ni4zMDQtNzUuODYxMzMzIDY2LjMwNGgtNzAuNDg1MzMzeiBtMC0xODAuMzk0NjY3VjI5OC43MDkzMzNoNjAuMzMwNjY2YzQ3LjE4OTMzMyAwIDcyLjI3NzMzMyAxNC45MzMzMzMgNzIuMjc3MzM0IDU5LjEzNiAwIDQ2LjU5Mi0zMi4yNTYgNjAuOTI4LTc1LjI2NCA2MC45MjhoLTU3LjM0NHoiIGZpbGw9IiNGRkZGRkYiIHAtaWQ9IjI2MjgiPjwvcGF0aD48L3N2Zz4=",ee="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjQxNjY0IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjI3NzciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiM1NEFCMzAiIHAtaWQ9IjI3NzgiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiMzODhEMTQiIHAtaWQ9IjI3NzkiPjwvcGF0aD48cGF0aCBkPSJNNTA2LjQ1MzMzMyA2NzQuNzMwNjY3Yzk5LjE1NzMzMyAwIDE0Ni4zNDY2NjctNDguMzg0IDE0Ni4zNDY2NjctMTI2LjAzNzMzNCAwLTcyLjg3NDY2Ny0zOC44MjY2NjctOTkuNzU0NjY3LTEwMy4zMzg2NjctMTE4LjI3MmwtMzguMjI5MzMzLTExLjk0NjY2NmMtNDAuNjE4NjY3LTExLjM0OTMzMy01Mi41NjUzMzMtMjUuMDg4LTUyLjU2NTMzMy01Ny4zNDQgMC0zMi44NTMzMzMgMjMuODkzMzMzLTUwLjc3MzMzMyA2Ni45MDEzMzMtNTAuNzczMzM0IDQ1LjM5NzMzMyAwIDc4Ljg0OCA5LjU1NzMzMyAxMDQuNTMzMzMzIDIwLjMwOTMzNFYyNzMuMzIyNjY3Yy0yMi42OTg2NjctMTEuOTQ2NjY3LTUxLjk2OC0yMi4xMDEzMzMtMTA1LjcyOC0yMi4xMDEzMzQtOTIuNTg2NjY3IDAtMTM3LjM4NjY2NyA0Ny4xODkzMzMtMTM3LjM4NjY2NiAxMTYuNDggMCA2OS4yOTA2NjcgMzUuMjQyNjY3IDEwMC4zNTIgOTMuMTg0IDExNi40OGwzOC44MjY2NjYgMTAuNzUyYzQ0LjggMTMuNzM4NjY3IDU5LjczMzMzMyAyNi44OCA1OS43MzMzMzQgNjAuOTI4IDAgMzcuMDM0NjY3LTIzLjI5NiA1OS43MzMzMzMtNzguMjUwNjY3IDU5LjczMzMzNC00NC44IDAtODMuNjI2NjY3LTEwLjc1Mi0xMTYuNDgtMjUuMDg4djU3Ljk0MTMzM2MyOC4wNzQ2NjcgMTQuOTMzMzMzIDY4LjY5MzMzMyAyNi4yODI2NjcgMTIyLjQ1MzMzMyAyNi4yODI2Njd6IiBmaWxsPSIjRkZGRkZGIiBwLWlkPSIyNzgwIj48L3BhdGg+PC9zdmc+",te="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",W=(M,t)=>{const{type:i="log",color:e="black"}=t??{};localStorage.getItem("st-kline-console-show")==="true"&&console[i](`%c${M}`,`color:${e}`)},C=M=>M||M===0?Math.round(M*1e3)/1e3:null,xe=M=>M>=1e12?`${(M/1e12).toFixed(2)}万亿`:M>=1e8?`${(M/1e8).toFixed(2)}亿`:M>=1e4?`${(M/1e4).toFixed(2)}万`:M.toFixed(2),Ye=M=>{const{y:t,text:i,info:e,gridLeft:o,gridRight:a,echartsWidth:j,echartsInstance:s}=M,{config:r,event:c}=e;let d=0;return{type:"group",draggable:r.draggable?"vertical":!1,children:[{type:"line",info:e,shape:{x1:o,y1:t,x2:j-a,y2:t},style:{stroke:r.lineColor,lineWidth:1,lineDash:[8,4]},z:10},{type:"group",x:j,y:t-5,children:[{type:"text",left:-1*a,info:e,style:{fill:r.textColor,text:i,stroke:"#000",lineWidth:1,opacity:1},z:10}]}],onmouseover:I=>{c.onmouseover instanceof Function&&c.onmouseover(I,e)},onmouseout:I=>{c.onmouseout instanceof Function&&c.onmouseout(I,e)},ondragstart:I=>{c.ondragstart instanceof Function&&r.draggable&&(d=I.offsetY,c.ondragstart(I,e))},ondragend:I=>{if(c.ondragend instanceof Function&&r.draggable){const N=I.offsetY-d;if(N===0)return;const L=s.convertFromPixel({yAxisIndex:0},t+N);c.ondragend(I,e,L)}}}},Ae=M=>{const{y:t,text:i,info:e,gridLeft:o,gridRight:a,echartsWidth:j,echartsInstance:s}=M,{config:r,event:c}=e;let d=0;const I=N=>{let L=null;N.target.type==="line"?L=N.target.parent:N.target.type==="tspan"&&(L=N.target.parent.parent.parent),L.children()[1].children()[0].animate("style",!1).when(200,{opacity:1}).start()},u=N=>{let L=null;N.target.type==="line"?L=N.target.parent:N.target.type==="tspan"&&(L=N.target.parent.parent.parent),L.children()[1].children()[0].animate("style",!1).when(200,{opacity:0}).start()};return{type:"group",draggable:r.draggable?"vertical":!1,children:[{type:"line",info:e,shape:{x1:o,y1:t,x2:j-a,y2:t},style:{stroke:r.lineColor,lineWidth:1},z:10},{type:"group",x:j/2,y:t-5,children:[{type:"text",left:"center",info:e,style:{fill:r.textColor,text:i,stroke:"#000",lineWidth:1,opacity:0},z:10}]}],onmouseover:N=>{c.onmouseover instanceof Function?c.onmouseover(N,e):I(N)},onmouseout:N=>{c.onmouseout instanceof Function?c.onmouseout(N,e):u(N)},ondragstart:N=>{c.ondragstart instanceof Function&&r.draggable&&(d=N.offsetY,c.ondragstart(N,e))},ondragend:N=>{if(c.ondragend instanceof Function&&r.draggable){const l=N.offsetY-d;if(l===0)return;const f=s.convertFromPixel({yAxisIndex:0},t+l);c.ondragend(N,e,f)}}}},me=M=>{const{y:t,text:i,profitY:e,profitText:o,lossY:a,lossText:j,info:s,gridLeft:r,gridRight:c,echartsWidth:d,echartsInstance:I}=M,{config:u,event:N}=s;let L=0,l=null,f=null;const w=(z,g)=>{var D,Y,m,k;(D=z.children()[2])==null||D.animate("style",!1).when(200,{opacity:~~g}).start(),(Y=z.children()[3].children()[0])==null||Y.animate("style",!1).when(200,{opacity:~~g}).start(),(m=z.children()[4])==null||m.animate("style",!1).when(200,{opacity:~~g}).start(),(k=z.children()[5].children()[0])==null||k.animate("style",!1).when(200,{opacity:~~g}).start()},h=z=>{let g=null;z.target.type==="line"?g=z.target.parent:z.target.type==="tspan"&&(g=z.target.parent.parent.parent),l=D=>{D.preventDefault(),(D.code==="AltLeft"||D.code==="AltRight")&&w(g,!0)},f=D=>{(D.code==="AltLeft"||D.code==="AltRight")&&w(g,!1)},window.addEventListener("keydown",l),window.addEventListener("keyup",f)},v=z=>{let g=null;z.target.type==="line"?g=z.target.parent:z.target.type==="tspan"&&(g=z.target.parent.parent.parent),w(g,!1),window.removeEventListener("keydown",l),window.removeEventListener("keyup",f)};return{type:"group",draggable:u.draggable?"vertical":!1,children:[{type:"line",info:s,shape:{x1:r,y1:t,x2:d-c,y2:t},style:{stroke:u.lineColor,lineWidth:1},z:10},{type:"group",x:d/2,y:t-5,children:[{type:"text",left:"center",info:s,style:{fill:u.textColor,text:i,stroke:"#000",lineWidth:1,opacity:1},z:10}]},{type:"line",info:s,shape:{x1:r,y1:e,x2:d-c,y2:e},style:{stroke:u.profitLineColor,lineWidth:1,lineDash:[8,4],opacity:0},z:10},{type:"group",x:d/2,y:e-5,children:[{type:"text",left:"center",info:s,style:{fill:u.profitTextColor,text:o,stroke:"#000",lineWidth:1,opacity:0},z:10}]},{type:"line",info:s,shape:{x1:r,y1:a,x2:d-c,y2:a},style:{stroke:u.lossLineColor,lineWidth:1,lineDash:[8,4],opacity:0},z:10},{type:"group",x:d/2,y:a-5,children:[{type:"text",left:"center",info:s,style:{fill:u.lossTextColor,text:j,stroke:"#000",lineWidth:1,opacity:0},z:10}]}],onmouseover:z=>{N.onmouseover instanceof Function?N.onmouseover(z,s):h(z)},onmouseout:z=>{N.onmouseout instanceof Function?N.onmouseout(z,s):v(z)},ondragstart:z=>{N.ondragstart instanceof Function&&u.draggable&&(L=z.offsetY,N.ondragstart(z,s))},ondragend:z=>{if(N.ondragend instanceof Function&&u.draggable){const D=z.offsetY-L;if(D===0)return;const Y=I.convertFromPixel({yAxisIndex:0},t+D);N.ondragend(z,s,Y)}}}},q=(M,t)=>{const{direction:i="",tradeAction:e="",tradeType:o=""}=M;if(t==="sellBuy"){const a=o??i+e;return new Map([["开多","买"],["平多","卖"],["开空","卖"],["平空","买"]]).get(a)}else if(t==="openClose")return o??i+e},we=(M,t)=>M.reduce((i,e)=>{var d;const o=q(e,"sellBuy"),a=M.filter(I=>I.time===e.time);let j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;a.length>1?[...new Set(a.map(u=>q(u,"sellBuy")))].length>1?j="image://"+new URL("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgzNzAzMjI4MjAyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjMwNzgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PHBhdGggZD0iTTE5OC4wMTYgMTA5LjczODY2N0E3Ny44NjY2NjcgNzcuODY2NjY3IDAgMCAwIDE3MC42NjY2NjcgMTY3LjY4bDAuNTEyIDQxOC45NDRjMCAyMi44NjkzMzMgNi40IDQ4IDE5LjAyOTMzMyA3NS4zMDY2NjcgMTIuNjcyIDI3LjIyMTMzMyAyNy45ODkzMzMgNDguOTM4NjY3IDQ1Ljk1MiA2NC45Mzg2NjZsMjExLjE1NzMzMyAxODguMjAyNjY3YzE3LjA2NjY2NyAxNS40ODggNDAuNTc2IDIzLjk3ODY2NyA2NC45Mzg2NjcgMjMuNTk0NjY3IDI1LjY4NTMzMy0wLjA4NTMzMyA0Ny4zNi03LjkzNiA2NC45ODEzMzMtMjMuNTk0NjY3bDIxMS4yLTE4OC4yMDI2NjdjMTcuOTItMTYgMzMuMTk0NjY3LTM3LjYzMiA0NS44NjY2NjctNjQuOTM4NjY2IDEyLjY3Mi0yNy4zMDY2NjcgMTguNzczMzMzLTUyLjIyNCAxOC41MTczMzMtNzQuOTIyNjY3TDg1My4zMzMzMzMgMTY3LjI1MzMzM2MwLTIyLjI3Mi04Ljk2LTQxLjQ3Mi0yNi44MzczMzMtNTcuNDcyLTE3LjU3ODY2Ny0xNS42MTYtMzkuMzM4NjY3LTIzLjg5MzMzMy02NC45Mzg2NjctMjQuNDA1MzMzbC00OTkuMDI5MzMzIDAuNDY5MzMzYTkzLjMxMiA5My4zMTIgMCAwIDAtNjQuNTEyIDIzLjg5MzMzNHoiIGZpbGw9IiNDODgwRkYiIHAtaWQ9IjMwNzkiPjwvcGF0aD48cGF0aCBkPSJNMTcwLjY2NjY2NyAxNjcuNjhjMC4xMjgtMjEuNzYgOS45NDEzMzMtNDIuNjY2NjY3IDI3LjM0OTMzMy01Ny45NDEzMzNhOTMuMzEyIDkzLjMxMiAwIDAgMSA2NC41MTItMjMuODkzMzM0TDc2MS41NTczMzMgODUuMzMzMzMzYzI1LjYgMC41NTQ2NjcgNDcuMzYgOC43ODkzMzMgNjQuOTM4NjY3IDI0LjQwNTMzNCAxNy45MiAxNiAyNi44MzczMzMgMzUuMiAyNi44MzczMzMgNTcuNDcybC0wLjUxMiA0MTkuODRjMC4yOTg2NjcgMjIuNjU2LTUuODQ1MzMzIDQ3LjYxNi0xOC41MTczMzMgNzQuODgtMTIuNjcyIDI3LjMwNjY2Ny0yNy45NDY2NjcgNDguOTM4NjY3LTQ1Ljg2NjY2NyA2NC45Mzg2NjZsLTIxMS4yIDE4OC4yMDI2NjdjLTE3LjYyMTMzMyAxNS42NTg2NjctMzkuMjUzMzMzIDIzLjUwOTMzMy02NC45ODEzMzMgMjMuNTk0NjY3YTk0LjcyIDk0LjcyIDAgMCAxLTY0LjkzODY2Ny0yMy41OTQ2NjdsLTIxMS4yLTE4OC4yMDI2NjdjLTE3LjkyLTE2LTMzLjIzNzMzMy0zNy43MTczMzMtNDUuOTA5MzMzLTY0LjkzODY2Ni0xMi42MjkzMzMtMjcuMzA2NjY3LTE5LjAyOTMzMy01Mi40MzczMzMtMTkuMDI5MzMzLTc1LjMwNjY2N0wxNzAuNjY2NjY3IDE2Ny42OHogbTQyLjYyNCAwLjI1NmwwLjU1NDY2NiA0MTguNjg4YzAgMTYuMTcwNjY3IDQuODY0IDM1LjMyOCAxNS4wNjEzMzQgNTcuMzQ0IDEwLjM2OCAyMi4yNzIgMjIuMzE0NjY3IDM5LjE2OCAzNS42MjY2NjYgNTEuMDI5MzMzbDIxMS40MTMzMzQgMTg4LjQxNmM4Ljk2IDguMTA2NjY3IDIxLjg4OCAxMi44IDM2LjIyNCAxMi41ODY2NjcgMTUuNTMwNjY3LTAuMDQyNjY3IDI3LjA5MzMzMy00LjI2NjY2NyAzNi42OTMzMzMtMTIuOGwyMTEuMTE0NjY3LTE4OC4xNmMxMy4zNTQ2NjctMTEuOTQ2NjY3IDI1LjMwMTMzMy0yOC44NDI2NjcgMzUuNjI2NjY2LTUxLjA3MiAxMC4xMTItMjEuNzYgMTQuNzYyNjY3LTQwLjUzMzMzMyAxNC41MDY2NjctNTcuMDAyNjY3TDgxMC42NjY2NjcgMTY3LjIxMDY2N2MwLTkuODk4NjY3LTMuNTg0LTE3LjYyMTMzMy0xMi41MDEzMzQtMjUuNkE1NC42OTg2NjcgNTQuNjk4NjY3IDAgMCAwIDc2MS42IDEyOGwtNDk5LjYyNjY2NyAwLjQ2OTMzM2E1MS4zMjggNTEuMzI4IDAgMCAwLTM1Ljc1NDY2NiAxMy4yNjkzMzQgMzYuNTY1MzMzIDM2LjU2NTMzMyAwIDAgMC0xMi41MDEzMzQgMjEuNTA0bC0wLjQyNjY2NiA0LjY5MzMzM3oiIGZpbGw9IiNBRTQ0RkYiIHAtaWQ9IjMwODAiPjwvcGF0aD48cGF0aCBkPSJNNDc1LjMwNjY2NyA2NTguMjE4NjY3aDczLjQ3MlYzMDYuMzg5MzMzaDExNi40OFYyNDguNDQ4aC0zMDcuNjI2NjY3djU3Ljk0MTMzM2gxMTcuNjc0NjY3eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMzA4MSI+PC9wYXRoPjwvc3ZnPg==",self.location).href:j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href:j="image://"+new URL(Object.assign({"./images/buy.svg":K,"./images/sell.svg":ee,"./images/t.svg":te})[`./images/${o==="买"?"buy":"sell"}.svg`],self.location).href;const r=(t.find(I=>I[0]===e.time)??[])[2],c=((d=e==null?void 0:e.markLineTarget)==null?void 0:d.map(I=>{const u=e.time,N=r+"",L=I.time,l=t.find(w=>w[0]===I.time),f=l?l[3]:null;return[{coord:[u,N],lineStyle:I.lineStyle},{coord:[L,f]}]}))??null;return i.push({symbol:j,symbolSize:25,animation:!1,coord:[e.time+"",r],symbolRotate:0,symbolOffset:[0,"-7"],markLineTarget:c}),i},[]),he=(M,t)=>M.reduce((i,e,o)=>{var I;const a=q(e,"openClose"),j=a==="开多"||a==="开空"?"top":"bottom",s=t.find(u=>u[0]===e.time)??[],r=j==="top"?s[2]:s[3];let c=7;c+=M.slice(0,o).filter(u=>{const N=q(u,"openClose");return(N==="开多"||N==="开空"?"top":"bottom")===j&&u.time===e.time}).length*7;const d=((I=e==null?void 0:e.markLineTarget)==null?void 0:I.map(u=>{const N=e.time,L=r+"",l=u.time,f=t.find(w=>w[0]===u.time)[3];return[{coord:[N,L],lineStyle:u.lineStyle},{coord:[l,f]}]}))??null;return i.push({symbol:"triangle",symbolSize:[10,12],animation:!1,coord:[e.time+"",r],symbolRotate:j==="top"?180:0,symbolOffset:[0,`${j==="top"?c*-1:c}`],itemStyle:{color:j==="top"?"#FF0000":"#389e0d"},label:{show:!0,position:j,color:"#fff",formatter:`${a} ${j==="top"?"+":"-"} ${e.amount}手 ${e.part?`(${e.part}份)`:""}`},markLineTarget:d}),i},[]),Ce=(M,t)=>M.reduce((i,e)=>{const{key:o,data:a}=e;if(a===null||a.length===0)return i;const s=new Map([["sellBuy",()=>we(a,t)],["openClose",()=>he(a,t)],["signal",()=>{}]]).get(o);return s instanceof Function&&i.push(...s()),i},[]),ne=async(M,t,i,e,o,a)=>{const{totalBarCount:j,defaultShowBarCount:s,maxValueSpan:r,gridLeft:c,gridTop:d,gridRight:I,gridBottom:u,zoomLock:N}=e,{time:L,kLine:l,originData:f,indicator:w}=await fe(M,i,j),h=w.map(g=>{const{key:D,data:Y,color:m}=g;return{name:D,type:"line",silent:!0,symbol:"none",data:Y,lineStyle:{width:1},itemStyle:{color:m}}}),v=Ce(t,f);let z=[];return v.forEach(g=>{g.markLineTarget&&(z=[...z,...g.markLineTarget])}),{animation:!1,dataset:{id:"data",source:{klineData:l,indicatorData:w}},grid:{left:`${c}px`,top:`${d}px`,right:`${I}px`,bottom:`${u}px`},tooltip:{trigger:"axis",axisPointer:{type:"cross",label:{formatter:g=>{const{axisDimension:D,value:Y}=g;return D==="x"?Y:String(C(Y))}}},formatter:g=>{let D=null,Y="";return g.forEach(m=>{m.seriesName==="资产持仓净值"&&m.data!==null&&(Y+=`<div>资产持仓净值: ${m.data}</div>`),m.componentSubType==="candlestick"&&t.forEach(k=>{const{key:E,data:F}=k;if(E==="sellBuy"){const b=F.filter(x=>x.time===m.axisValue);let B=0,T=0;b.forEach(x=>{x.tradeType==="开多"||x.tradeType==="平空"?B+=x.amount:T+=x.amount}),B&&(Y+=`<div>买: ${B}</div>`),T&&(Y+=`<div>卖: ${T}</div>`)}E==="openClose"&&F.forEach(b=>{b.time===m.axisValue&&(Y+=b.tooltip)})}),Y&&(D=`<div><span style="font-weight: bold;">${m.axisValue}</span>${Y}</div>`)}),D}},xAxis:{type:"category",data:L,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},axisLabel:{show:!0,formatter:g=>g}},yAxis:[{index:0,splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:g=>{const{min:D,max:Y}=g,m=Math.abs((Y-D)/10);return D-m},max:g=>{const{min:D,max:Y}=g,m=Math.abs((Y-D)/10);return Y+m},axisLine:{show:!0},axisLabel:{formatter:g=>C(g),showMaxLabel:!1}},{show:!1,min:"dataMin"}],dataZoom:[{type:"inside",xAxisIndex:[0,0],zoomLock:N,maxValueSpan:r,start:l.length>=s?(l.length-s)/l.length*100:0,end:99.99}],series:[{name:"k线",type:"candlestick",data:l,markPoint:{data:v},markLine:{position:"middle",textStyle:{color:"blue",fontSize:15},animation:!1,data:z,lineStyle:{width:3,type:"solid"},symbol:["none","none"]},itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1},z:1},...h,{name:"资产持仓净值",type:"line",data:o??[],symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#666"}},{name:"二腿相关度",type:"line",data:a??[],symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:"#FFF"},lineStyle:{width:2},label:{show:!0,position:"top",formatter:g=>`相关度: ${g.data[1]}`,textStyle:{color:"#FFF",fontSize:14}}}],toolbox:{show:!1},brush:{xAxisIndex:"all",brushLink:"all",transformable:!1,outOfBrush:{colorAlpha:1},brushStyle:{color:"rgba(120,140,180,0)",borderColor:"rgba(255,255,255,0.4)"}}}},Oe=(M,t,i)=>{var I;const{gridLeft:e,gridRight:o,gridBottom:a,warningConfig:j,positionConfig:s,conditionConfig:r,isOpenDS:c}=t;let d=[];if((I=i==null?void 0:i.getModel())!=null&&I.getComponent){const[u,N]=i.getModel().getComponent("yAxis").axis.scale._extent;let L=[],l={},f=[],w={},h=[],v={};if(M.forEach(({key:z,data:g,...D})=>{z==="warning"?(L=g,l=D):z==="position"?(f=g,w=D):z==="condition"&&(h=g,v=D)}),L.length>0&&(d=L.reduce((z,g)=>{const{value:D,text:Y,info:m,config:k}=g;if(D>N||D<u)return z;const E={y:i.convertToPixel({yAxisIndex:0},D),text:Y,info:{info:m,config:{...j,...k},event:{...l}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,Ye(E)]},d)),f.length>0&&(d=f.reduce((z,g)=>{const{value:D,text:Y,info:m,config:k}=g;if(D>N||D<u)return z;const E={y:i.convertToPixel({yAxisIndex:0},D),text:Y,info:{info:m,config:{...s,...k},event:{...w}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,Ae(E)]},d)),h.length>0&&(d=h.reduce((z,g)=>{const{value:D,text:Y,profitValue:m,profitText:k,lossValue:E,lossText:F,info:b,config:B}=g;if(D>N||D<u)return z;const T={y:i.convertToPixel({yAxisIndex:0},D),text:Y,profitY:i.convertToPixel({yAxisIndex:0},m),profitText:k,lossY:i.convertToPixel({yAxisIndex:0},E),lossText:F,info:{info:b,config:{...r,...B},event:{...v}},gridLeft:e,gridRight:o,echartsWidth:i.getWidth(),echartsInstance:i};return[...z,me(T)]},d)),c){const z=i.getOption(),g=z.dataset[0].source.klineData.slice(z.dataZoom[0].startValue,z.dataZoom[0].endValue+1),D={};g.forEach(T=>{D[T[1]]?D[T[1]]+=1:D[T[1]]=1});const Y=g[g.length-1][1],m=g.reduce((T,x)=>T+x[1],0)/g.length,k=Y-m,E=ve(g,1,50),F=Ee(g),b=F?k/F:0,B=ke(g,1,Y);d=[...d,{type:"group",draggable:!1,children:Object.keys(D).map(T=>({type:"line",shape:{x1:i.getWidth()-o-100*D[T],y1:i.convertToPixel({yAxisIndex:0},T),x2:i.getWidth()-o,y2:i.convertToPixel({yAxisIndex:0},T)},style:{stroke:"rgb(124,124,124)",lineWidth:1},z:10}))},{type:"text",x:e+6,y:i.getHeight()-a-20,style:{fill:"#FFF",text:`均值: ${C(m)}    距均值: ${C(k)}    中值: ${C(E)}    标准差: ${C(F)}    距均值/标准差: ${C(b)}    百分位: ${C(B)}%`,lineWidth:1,opacity:1},z:10}]}}return{elements:d}},ke=(M,t,i)=>{const{round:e,add:o,subtract:a,multiply:j,divide:s}=J.x,r=M.map(d=>d[t]).sort((d,I)=>d-I);let c=0;for(let d=0;d<r.length;d++)if(r[d]===i){c=d;break}else if(r[d]>=i){c=o(d,s(a(r[d+1],r[d]),r[d]));break}return e(s(j(c,100),M.length+1))},ve=(M,t,i)=>{const{round:e,add:o,subtract:a,multiply:j,divide:s}=J.x,r=M.map(u=>u[t]).sort((u,N)=>u-N),c=j(M.length+1,s(i,100)),d=Math.floor(c),I=a(c,d);return e(I===0?r[c]:o(r[d],j(a(r[d>=M.length-1?d:d+1],r[d]),I)))};function Ee(M){const t=M.map(j=>j[1]),i=t.length;let e=0,o=0;for(const j of t)e+=j;const a=e/i;for(const j of t)o+=Math.pow(j-a,2);return Math.sqrt(o/i)}const be={class:"st-kline"},Se={class:"st-kline-header"},_e=300,Fe=n.defineComponent({__name:"index",props:{indicator:{type:Object,default:()=>({})},klineData:{type:Array,default:()=>[]},markData:{type:Array,default:()=>[]},lineData:{type:Array,default:()=>[]},netPositionData:{type:Array,default:()=>[]},relevanceData:{type:Array,default:()=>[]},priceTrendData:{type:Array,default:()=>[]},priceTrendPercentData:{type:Array,default:()=>[]},brushRange:{type:Array,default:()=>[]},defaultMenuData:{type:Array,default:()=>[]},isSelect:{type:Boolean,default:()=>!1},config:{type:Object,default:()=>({})}},setup(M){const t=M,i={totalBarCount:2e3,defaultShowBarCount:200,preBarCount:800,maxValueSpan:1e4,gridLeft:60,gridTop:0,gridRight:60,gridBottom:30,warningConfig:{draggable:!1,lineColor:"#fff",textColor:"#fff"},positionConfig:{draggable:!1,lineColor:"#e45d07",textColor:"#fff"},conditionConfig:{draggable:!1,lineColor:"#fff",textColor:"#fff",profitLineColor:"#b71e44",profitTextColor:"#fff",lossLineColor:"#749b66",lossTextColor:"#fff"},tipsConfig:{open:!0,heigh:!0,low:!0,close:!0,business:!0,riseAndFall:!0},dynamicLoadConfig:{historyVisible:!1,historyLoadCallBack:()=>{},futureVisible:!1,futureLoadCallBack:()=>{}},zoomLock:!1,isOpenDS:!1},e=n.computed(()=>({...i,...t.config})),o=n.ref(null),a=n.ref(-1),j=n.computed(()=>{var T,x;if(o.value&&((x=(T=o.value.dataset[0])==null?void 0:T.source)!=null&&x.klineData[a.value])){const p=o.value.dataset[0].source.klineData[a.value],y=[],{open:A,heigh:O,low:S,close:Q,business:V,riseAndFall:R}=e.value.tipsConfig;if(A&&y.push({label:"开",value:C(p[0]),color:"rgb(153, 153, 153)"}),O&&y.push({label:"高",value:C(p[3]),color:"rgb(153, 153, 153)"}),S&&y.push({label:"低",value:C(p[2]),color:"rgb(153, 153, 153)"}),Q&&y.push({label:"收",value:C(p[1]),color:"rgb(153, 153, 153)"}),V&&y.push({label:"额",value:xe(p[4]),color:"rgb(153, 153, 153)"}),R){let U=((p[1]-p[5])/p[1]*100).toFixed(2),_=+U==0?"white":+U>0?"red":"#00ff00";y.push({label:"涨跌",value:`${U}%`,color:_})}return y}return[]}),s=n.computed(()=>{var T,x;return o.value&&((x=(T=o.value.dataset[0])==null?void 0:T.source)!=null&&x.indicatorData)?o.value.dataset[0].source.indicatorData.reduce((p,y)=>(y.data[a.value]&&p.push({label:y.key,value:C(y.data[a.value]),color:y.color}),p),[]):[]}),r=n.computed(()=>{const T=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"];if(t.priceTrendData.length>0){const x=[];return t.priceTrendData.forEach((p,y)=>{var O;(p.data[a.value]?C(p.data[a.value][1]):null)!==null&&x.push({label:p.name,value:C((O=p.data[a.value])==null?void 0:O[1]),color:T[y]})}),x}if(t.priceTrendPercentData.length>0){const x=[];return l.getOption().series.filter(y=>y.name.includes("二腿价格走势百分比图")).forEach((y,A)=>{var S;(y.data[a.value]?C(y.data[a.value][1]):null)!==null&&x.push({label:y.name.split("-")[1],value:`${C((S=y.data[a.value])==null?void 0:S[1])}%`,color:T[A]})}),x}return[]});n.watch(()=>[t.klineData,t.indicator,t.markData,t.netPositionData,t.relevanceData],()=>{c()},{deep:!0}),n.watch(()=>t.lineData,async()=>{W("st-kline组件消息:props.lineData监控,额外画线数据发生改变,重绘->line",{color:"red"}),c("line")},{deep:!0}),n.watch(()=>t.brushRange,async()=>{W("st-kline组件消息:props.brushRange监控,区域刷选数据发生改变,重绘->brush",{color:"red"}),c("brush")},{deep:!0}),n.watch(()=>t.priceTrendData,async()=>{c("priceTrend")},{deep:!0}),n.watch(()=>t.priceTrendPercentData,async()=>{c("priceTrendPercent")},{deep:!0});const c=async T=>{const p=new Map([["kline",async()=>{const y=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData),{graphic:A}=l.getOption()??{graphic:[]};o.value={...y,graphic:A},l.setOption(o.value,!0),W("st-kline组件消息:K线绘制完毕-draw",{color:"green"})}],["line",()=>{const y=l.getOption(),A=Oe(t.lineData,e.value,l);o.value={...y,graphic:A},l.setOption(o.value,{replaceMerge:["graphic"]}),W("st-kline组件消息:额外画线绘制完毕-draw",{color:"green"})}],["brush",()=>{const{brushRange:y}=t;y instanceof Array&&y.length>0&&(l.dispatchAction({type:"brush",areas:[{brushType:"lineX",coordRange:[y[0]+"",y[1]+""],xAxisIndex:0}]}),W("st-kline组件消息:区域刷选绘制完毕-draw",{color:"green"}))}],[void 0,async()=>{await c("kline"),await c("line"),await c("priceTrend"),await c("priceTrendPercent"),await c("brush")}],["history",async()=>{const y=l.getOption(),A=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData),O=A.dataset.source.klineData.length-y.dataset[0].source.klineData.length;l.setOption({...A,dataZoom:[{type:"inside",xAxisIndex:[0,0],zoomLock:e.value.zoomLock,maxValueSpan:e.value.maxValueSpan,startValue:y.dataZoom[0].startValue+O,endValue:y.dataZoom[0].endValue+O}]},!0),await c("priceTrend")}],["future",async()=>{const y=l.getOption(),A=await ne(t.klineData,t.markData,t.indicator,e.value,t.netPositionData,t.relevanceData);A.dataZoom[0].start=(t.klineData.length-y.dataZoom[0].endValue+y.dataZoom[0].startValue)/t.klineData.length*100,l.setOption(A,!0),await c("priceTrend")}],["priceTrend",()=>{if(t.priceTrendData.length===0)return;const y=l.getOption(),A=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"],O=t.priceTrendData.reduce((S,Q,V)=>{const{name:R,data:U}=Q,_={name:`二腿价格走势图-${R}`,type:"line",data:U,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:A[V]},lineStyle:{type:"dashed",width:1}};return S.push(_),S},[]);o.value={...y,series:[...y.series,...O]},l.setOption(o.value,{replaceMerge:["series"]})}],["priceTrendPercent",async()=>{if(t.priceTrendPercentData.length===0)return;const y=l.getOption(),A=["#FFFFFF","#FFDD00","#FF00FF","#00FF00","#FF6000","#1677FF","#7C3CC9","#FF0000","#FB9A0E","#00B7FF"],O=y.dataZoom[0].startValue,S=t.priceTrendPercentData.reduce((Q,V,R)=>{const{name:U,data:_}=V,Z=_.length>e.value.totalBarCount?_.slice(_.length-e.value.totalBarCount):_,G=Z[O][1],Ne=Z.map(ie=>[ie[0],(ie[1]-G)/G*100]),ze={name:`二腿价格走势百分比图-${U}`,type:"line",data:Ne,symbol:"none",yAxisIndex:1,connectNulls:!0,itemStyle:{color:A[R]},lineStyle:{type:"dashed",width:1}};return Q.push(ze),Q},[]);y.series=[...y.series.filter(Q=>!Q.name.includes("二腿价格走势百分比图")),...S],l.setOption(y,!0)}]]).get(T);p instanceof Function&&await p()},d=n.ref(!1),I=n.ref([]),u=T=>{const{callBack:x}=T;x instanceof Function&&x(l,d)},N=()=>{I.value=t.defaultMenuData},L=n.ref();let l,f;const w=(T,x)=>{var p,y;if(T)a.value=typeof((p=T==null?void 0:T.batch[0])==null?void 0:p.dataIndex)=="number"?(y=T==null?void 0:T.batch[0])==null?void 0:y.dataIndex:-1;else{const A=x.getOption();A.dataZoom instanceof Array&&(a.value=A.dataZoom[0].endValue)}};let h=null,v=!1,z=n.ref(!1),g=!1,D=n.ref(!1);const Y=async T=>{const x=T.batch?T.batch[0].start*e.value.totalBarCount:T.startValue;e.value.dynamicLoadConfig.historyVisible&&x<=100&&!v&&!z.value&&(v=!0,await e.value.dynamicLoadConfig.historyLoadCallBack(z),await c("history"),v=!1);const p=T.batch?T.batch[0].end===100:T.endValue>=t.klineData.length-e.value.preBarCount-1,y=T.actionIsWheel;e.value.dynamicLoadConfig.futureVisible&&p&&!g&&!D.value&&!y&&(g=!0,await e.value.dynamicLoadConfig.futureLoadCallBack(D),await c("future"),g=!1),clearTimeout(h),h=setTimeout(()=>{c("line"),c("priceTrendPercent"),clearTimeout(h),h=null},_e)};let m=null;const k=T=>{m=setTimeout(()=>{var x;if(T.componentType==="graphic"){const{oncontextmenu:p}=((x=T.info)==null?void 0:x.event)??{};p instanceof Function&&p(T,T.info,I)}clearTimeout(m),m=null})},E=()=>{l.on("highlight",T=>{w(T,l)}),l.on("globalout",()=>{w(null,l)}),l.on("contextmenu",T=>{k(T)}),l.on("datazoom",T=>{Y(T)})},F=()=>{l.off("highlight"),l.off("globalout"),l.off("contextmenu"),l.off("datazoom")},b=T=>{if(!l||!(T.ctrlKey||t.isSelect))return;const x=l.getOption();let{startValue:p,endValue:y,start:A,end:O}=x.dataZoom[0];const S=()=>{p!==0&&(p=p-1,y=y-1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan}))},Q=()=>{if(e.value.dynamicLoadConfig.futureVisible&&!g&&!D.value)p=p+1,y=y+1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan});else{if(y===x.xAxis[0].data.length-1)return;p=p+1,y=y+1,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,maxValueSpan:e.value.maxValueSpan})}},V=()=>{if(y-p<5)return;const Z=Math.floor((a.value-p)/2)+1,G=Math.floor((y-a.value)/2)+1;p=p+Z,y=y-G,l.dispatchAction({type:"dataZoom",startValue:p,endValue:y,actionIsWheel:!0,maxValueSpan:e.value.maxValueSpan})},R=()=>{A=A-(O-A)/4,l.dispatchAction({type:"dataZoom",start:A,end:O,actionIsWheel:!0,maxValueSpan:e.value.maxValueSpan})},_=new Map([["ArrowLeft",S],["ArrowRight",Q],["ArrowUp",V],["ArrowDown",R]]).get(T.code);_ instanceof Function&&_()},B=async()=>{let T=!0;l=H.init(L.value),await c(),I.value=t.defaultMenuData,a.value=l.getOption().dataZoom[0].endValue??-1,E(),f=new ResizeObserver(()=>{if(T){T=null;return}l.resize(),c("line")}),f.observe(L.value),window.addEventListener("keydown",b)};return n.onMounted(()=>{B()}),n.onUnmounted(()=>{F(),window.removeEventListener("keydown",b),l.dispose(),f.disconnect(),f=null}),(T,x)=>{const p=ae.ElMenuItem,y=ae.ElMenu;return n.openBlock(),n.createElementBlock("div",be,[n.createElementVNode("div",Se,[n.createVNode(X,{data:j.value},null,8,["data"]),n.createVNode(X,{data:s.value},null,8,["data"]),n.createVNode(X,{data:r.value},null,8,["data"])]),n.createVNode(Ie,{class:"st-kline-body",onCloseContextMenuCallBack:N},{popover:n.withCtx(()=>[n.createVNode(y,{class:"menu"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(I.value,A=>(n.openBlock(),n.createBlock(p,{key:A.label,index:A.label,class:"menuItem",onClick:O=>u(A)},{default:n.withCtx(()=>[n.createTextVNode(n.toDisplayString(A.label),1)]),_:2},1032,["index","onClick"]))),128))]),_:1})]),default:n.withCtx(()=>[n.createElementVNode("div",{ref_key:"echartsRef",ref:L,class:n.normalizeClass(d.value?"st-kline-chart cursorPen":"st-kline-chart")},null,2)]),_:1})])}}});const Qe=P._export_sfc(Fe,[["__scopeId","data-v-7f014d0e"]]),Be={class:"kline-tips"},Ue=n.defineComponent({__name:"index",props:{data:{type:Array,require:!0}},setup(M){return(t,i)=>(n.openBlock(),n.createElementBlock("div",Be,[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.data,(e,o)=>(n.openBlock(),n.createElementBlock("div",{key:o,class:"kline-tips-item",style:n.normalizeStyle({color:e.color})},n.toDisplayString(e.label)+" "+n.toDisplayString(e.value),5))),128))]))}});const oe=P._export_sfc(Ue,[["__scopeId","data-v-dc7d381b"]]);const Ve={class:"klineSub"},Re={class:"klineSub-tips"},Pe={key:0,class:"klineSub-tips-select"},We={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0},modelValue:{type:String,required:!0},subIndicatorList:{type:Array,required:!0}},emits:["update:modelValue"],setup(M,{expose:t,emit:i}){const{round:e}=J.x;let o,a;const j=i,s=M,r=n.ref(),c=n.computed({get(){return s.modelValue},set(u){j("update:modelValue",u)}}),d=n.computed(()=>{var L;const{data:u,activeIndex:N}=s;return((L=u==null?void 0:u.subIndicator)==null?void 0:L.map(l=>({label:l.key,color:l.color,value:l.data[N]||"-"})))||[]});n.onMounted(()=>{o=H.init(r.value);let u=!0;a=new ResizeObserver(()=>{if(u){u=null;return}o.resize()}),a.observe(r.value)}),n.onUnmounted(()=>{o.dispose(),a.disconnect(),a=null});const I=(u,N)=>{const L=u[N],l=N===0?u[N]:u[N-1];return L[0]===L[1]?L[0]>=l[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:L[1]>L[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}};return t({connect:u=>{H.connect([u,o])},draw:(u,N)=>{n.nextTick(()=>{const{startValue:L,endValue:l,maxValueSpan:f}=u,{leftYAxisRange:w,rightYAxisRange:h}=s.data.subIndicator[0],v=s.data.subIndicator.map(z=>{if(z.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:z.data.map((g,D)=>z.seriesColor==="kline"?{value:g,itemStyle:I(s.data.data,D)}:z.seriesColor==="value"?{value:g,itemStyle:{color:g>=0?"#FF0000":"#00FFFF"}}:{value:g,itemStyle:{color:z.seriesColor}})};if(z.series==="line")return{xAxisIndex:0,yAxisIndex:z.yAxis==="right"?2:1,name:z.key,type:"line",silent:!0,symbol:"none",data:z.data,lineStyle:{width:1},itemStyle:{color:z.color}}});o.setOption({animation:!1,grid:{left:`${N.gridLeft}px`,top:"10px",right:`${N.gridRight}px`,bottom:"20px"},dataZoom:[{type:"inside",startValue:L,endValue:l,maxValueSpan:f}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:z=>{const{axisDimension:g,value:D}=z;if(g==="x")return D;if(z.axisIndex===1)return String(e(D))}}},formatter:()=>""},xAxis:{type:"category",data:s.data.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{show:!0,formatter:z=>z}},yAxis:[{position:"right"},{position:"left",min:w==="cover"?z=>z.min:null,max:w==="cover"?z=>z.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:h==="cover"?z=>z.min:null,max:h==="cover"?z=>z.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:v},!0)})}}),(u,N)=>{const L=Me.ElOption,l=Me.ElSelect;return n.openBlock(),n.createElementBlock("div",Ve,[n.createElementVNode("div",Re,[d.value.length?(n.openBlock(),n.createElementBlock("div",Pe,[n.createVNode(l,{modelValue:c.value,"onUpdate:modelValue":N[0]||(N[0]=f=>c.value=f),size:"small","popper-class":"element-dark",class:"element-dark subIndicator"},{default:n.withCtx(()=>[(n.openBlock(!0),n.createElementBlock(n.Fragment,null,n.renderList(M.subIndicatorList,f=>(n.openBlock(),n.createBlock(L,{key:f.value,label:f.label,value:f.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):n.createCommentVNode("",!0),n.createVNode(oe,{data:d.value},null,8,["data"])]),n.createElementVNode("div",{class:"klineSub-chart",ref_key:"subChartRef",ref:r},null,512)])}}},Ze=P._export_sfc(We,[["__scopeId","data-v-aba58678"]]);const Ge={class:"kline-tips"},$e={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0}},setup(M){const{round:t,formatValue:i}=J.x,e=M,o=n.computed(()=>{const{data:j,activeIndex:s}=e;if(j.data&&j.data[s]){const r=j.data[s],c=[{label:"开",value:t(r[0])},{label:"高",value:t(r[3])},{label:"低",value:t(r[2])},{label:"收",value:t(r[1])}];r[4]!==null&&c.push({label:"额",value:i(r[4])});let d;return r[6]>0?d="red":r[6]<0&&(d="green"),c.push({label:"涨跌",value:`${t(r[6])}%`,color:d}),c}return[]}),a=n.computed(()=>{var r;const{data:j,activeIndex:s}=e;return((r=j==null?void 0:j.mainIndicator)==null?void 0:r.map(c=>({label:c.key,value:t(c.data[s]),color:c.color})))||[]});return(j,s)=>(n.openBlock(),n.createElementBlock("div",Ge,[n.createVNode(oe,{data:o.value},null,8,["data"]),n.createVNode(oe,{data:a.value},null,8,["data"])]))}},He=P._export_sfc($e,[["__scopeId","data-v-a12855fe"]]),qe={__name:"index",setup(M,{expose:t}){return t({handleKeyDown:(i,e)=>{let{startValue:o,endValue:a,maxIndex:j}=e;if(i.code==="ArrowLeft"){if(o===0)return;o=o-1,a=a-1}else if(i.code==="ArrowRight"){if(a===j)return;o=o+1,a=a+1}else if(i.code==="ArrowUp"){if(a-o<5)return;const s=Math.floor((a-o)/2)+1;o=o+s,a-o<5&&(o=a-4)}else if(i.code==="ArrowDown"){const s=Math.min(500,a-o);o=o-s-1}return{startValue:o,endValue:a}},mergeData:(i,e)=>({time:[...i.time,...e.time.slice(1)],data:[...i.data,...e.data.slice(1)],mainIndicator:i.mainIndicator.map((o,a)=>({...o,data:[...o.data,...e.mainIndicator[a].data.slice(1)]})),subIndicator:i.subIndicator.map((o,a)=>({...o,data:[...o.data,...e.subIndicator[a].data.slice(1)]}))}),getDataZoomInfoByTime:i=>{const{showStartTime:e,showEndTime:o,maxShowDays:a}=i;let j=-1,s=-1,r={};return i.time.forEach((c,d)=>{const I=c.split(" ")[0];r[I]=r[I]||0,r[I]+=1,j===-1&&new Date(c)>=new Date(e)&&(j=d),s===-1&&new Date(c)>=new Date(o)&&(s=d)}),s=s===-1?i.time.length-1:s,{startValue:j,endValue:s,maxValueSpan:Math.max(...Object.values(r))*a}}}),(i,e)=>null}};const Je={__name:"index",props:{data:{type:Array,default:()=>[]}},emits:["change"],setup(M,{expose:t,emit:i}){let e,o,a=null;const j=i,s=M,r=n.ref();n.watch(()=>s.data,()=>{I()},{deep:!0}),n.onMounted(()=>{e=H.init(r.value),c(),I();let u=!0;o=new ResizeObserver(()=>{if(u){u=null;return}e.resize()}),o.observe(r.value)}),n.onUnmounted(()=>{e.off("datazoom"),e.dispose(),o.disconnect(),o=null});const c=()=>{e.on("datazoom",u=>{u.dataZoomId&&(clearTimeout(a),a=setTimeout(()=>{const{data:N}=s,{start:L,end:l}=u,f=Math.floor(L*N.length/100),w=l===100?N.length-1:Math.floor(l*N.length/100);d(f,w),clearTimeout(a)},100))})},d=(u,N)=>{const L=s.data;if(L.length===0)return;const l=L[u][0].split(" ")[0],f=L[N][0].split(" ")[0];j("change",{startTime:`${l} 00:00:00`,endTime:`${f} 24:00:00`})},I=()=>{const{data:u}=s;if(u.length===0)return;const N=u.map(l=>l[0].split(" ")[0]),L=u.map(l=>l[1]);e.setOption({grid:{height:0,left:"80px",right:"80px"},xAxis:{type:"category",data:N,show:!1},yAxis:{type:"value"},series:[{data:L,type:"line"}]},!0)};return t({resetSlide:(u,N,L)=>{let l=-1,f=-1;s.data.forEach((w,h)=>{l===-1&&w[0]===u?l=h:l===-1&&new Date(w[0])>new Date(u)&&(l=h-1),(f===-1&&w[0]===N||f===-1&&new Date(w[0])>new Date(N))&&(f=h)}),f=f===-1?s.data.length-1:f,e.setOption({dataZoom:[{show:!0,startValue:l,endValue:f,maxValueSpan:L,textStyle:{color:"#ccc"}},{type:"inside",startValue:l,endValue:f,maxValueSpan:L}]})},resize:()=>{e==null||e.resize()}}),(u,N)=>(n.openBlock(),n.createElementBlock("div",{class:"klineSlide",ref_key:"slideChartRef",ref:r},null,512))}},Xe=P._export_sfc(Je,[["__scopeId","data-v-7a2f3dd0"]]),Ke={install(M){M.component("st-kline",Qe),M.component("st-kline-sub-new",Ze),M.component("st-kline-tips-new",He),M.component("st-kline-slide-new",Xe),M.component("st-kline-utils-new",qe)}};module.exports=Ke;
package/es/Kline.js CHANGED
@@ -1,27 +1,27 @@
1
- import "./base-b56cf478.js";
2
- import { E as he, a as Ce } from "./el-menu-item-dbbcd01a.js";
1
+ import "./base-4bcd2756.js";
2
+ import { E as he, a as Ce } from "./el-menu-item-d62e0a3f.js";
3
3
  import "./el-tooltip-4ed993c7.js";
4
- import "./el-popper-b5315f5b.js";
4
+ import "./el-popper-85365d5b.js";
5
5
  import { defineComponent as Me, openBlock as C, createElementBlock as v, createElementVNode as K, Fragment as ae, renderList as le, normalizeStyle as ye, toDisplayString as q, ref as S, renderSlot as De, createCommentVNode as xe, nextTick as Ye, computed as W, watch as H, onMounted as de, onUnmounted as ge, createVNode as V, withCtx as X, createBlock as Ae, createTextVNode as Oe, normalizeClass as ke } from "vue";
6
6
  import * as oe from "echarts";
7
7
  import { _ as $ } from "./_plugin-vue_export-helper-dad06003.js";
8
8
  import { x as re } from "./index-7ed0999e.js";
9
9
  import { i as ve, t as be } from "./index.esm-8d9a2abe.js";
10
- import "./el-tag-a79385c6.js";
11
- import { E as Ee, a as Se } from "./el-select-a4ad7c8b.js";
12
- import "./el-scrollbar-4dc1493a.js";
13
- import "./index-e5fe37a4.js";
14
- import "./index-733cd68a.js";
10
+ import "./el-tag-6036f51c.js";
11
+ import { E as Ee, a as Se } from "./el-select-d3bce4d1.js";
12
+ import "./el-scrollbar-bcf29780.js";
13
+ import "./index-3425f2f0.js";
14
+ import "./index-21fb27eb.js";
15
15
  import "./index-657047bb.js";
16
- import "./use-form-common-props-04fb0752.js";
17
- import "./index-57a7323a.js";
16
+ import "./use-form-common-props-54c31983.js";
17
+ import "./index-ef7c4392.js";
18
18
  import "./typescript-7ae59c4c.js";
19
- import "./vnode-0fd3003d.js";
20
- import "./index-e6a36e09.js";
21
- import "./castArray-2440268f.js";
22
- import "./index-e3353eeb.js";
23
- import "./scroll-4fe7a76f.js";
24
- import "./debounce-82e23c4b.js";
19
+ import "./vnode-dfc92f20.js";
20
+ import "./index-d3c37134.js";
21
+ import "./castArray-681d750b.js";
22
+ import "./index-fbe85773.js";
23
+ import "./scroll-0277d145.js";
24
+ import "./debounce-51046b06.js";
25
25
  const Fe = { class: "st-kline-tips" }, Qe = { class: "st-kline-tips-row" }, _e = /* @__PURE__ */ Me({
26
26
  __name: "index",
27
27
  props: {
package/es/KlineBasic.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";require("./base-0ca7c43a.cjs");const be=require("./el-overlay-41994f67.cjs");require("./el-input-cb340042.cjs");const xe=require("./el-input-number-0f194f3f.cjs"),_e=require("./el-button-62966947.cjs"),Ye=require("./el-empty-2ece1134.cjs"),pe=require("./el-menu-item-4c9eb7ad.cjs");require("./el-tooltip-0ea8fbf8.cjs");require("./el-popper-7adbf1c6.cjs");const e=require("vue"),Me=require("echarts"),ye=require("./_commonjsHelpers-87b0abe8.cjs"),J=require("./index-8901a38c.cjs"),ue=require("./el-message-d5ed7a4f.cjs"),se=require("./_plugin-vue_export-helper-f246444f.cjs");require("./el-tag-9732314f.cjs");const me=require("./el-select-31f8ac8a.cjs");require("./el-scrollbar-ac525239.cjs");require("./vnode-b15eb11b.cjs");require("./index-65b4113e.cjs");require("./index-afc88a4b.cjs");require("./use-form-common-props-74a96df2.cjs");require("./index-375e8de4.cjs");require("./scroll-339681d4.cjs");require("./index-2f958e56.cjs");require("./typescript-b63f8e83.cjs");require("./index-1d85ba4b.cjs");require("./index-eea0bcb3.cjs");require("./config-provider-cfbb9cd8.cjs");require("./index-9e6e8d03.cjs");require("./castArray-a78ae889.cjs");require("./debounce-cf26af24.cjs");function we(s){const F=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const A in s)if(A!=="default"){const T=Object.getOwnPropertyDescriptor(s,A);Object.defineProperty(F,A,T.get?T:{enumerable:!0,get:()=>s[A]})}}return F.default=s,Object.freeze(F)}const de=we(Me);var ge={exports:{}};(function(s,F){(function(A,T){s.exports=T()})(ye.commonjsGlobal,function(){var A=1e3,T=6e4,B=36e5,t="millisecond",L="second",k="minute",h="hour",D="day",O="week",l="month",d="quarter",S="year",x="date",I="Invalid Date",q=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,U=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,R={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(f){var a=["th","st","nd","rd"],r=f%100;return"["+f+(a[(r-20)%10]||a[r]||a[0])+"]"}},C=function(f,a,r){var u=String(f);return!u||u.length>=a?f:""+Array(a+1-u.length).join(r)+f},_={s:C,z:function(f){var a=-f.utcOffset(),r=Math.abs(a),u=Math.floor(r/60),o=r%60;return(a<=0?"+":"-")+C(u,2,"0")+":"+C(o,2,"0")},m:function f(a,r){if(a.date()<r.date())return-f(r,a);var u=12*(r.year()-a.year())+(r.month()-a.month()),o=a.clone().add(u,l),y=r-o<0,g=a.clone().add(u+(y?-1:1),l);return+(-(u+(r-o)/(y?o-g:g-o))||0)},a:function(f){return f<0?Math.ceil(f)||0:Math.floor(f)},p:function(f){return{M:l,y:S,w:O,d:D,D:x,h,m:k,s:L,ms:t,Q:d}[f]||String(f||"").toLowerCase().replace(/s$/,"")},u:function(f){return f===void 0}},j="en",P={};P[j]=R;var ee="$isDayjsObject",te=function(f){return f instanceof oe||!(!f||!f[ee])},Z=function f(a,r,u){var o;if(!a)return j;if(typeof a=="string"){var y=a.toLowerCase();P[y]&&(o=y),r&&(P[y]=r,o=y);var g=a.split("-");if(!o&&g.length>1)return f(g[0])}else{var N=a.name;P[N]=a,o=N}return!u&&o&&(j=o),o||!u&&j},W=function(f,a){if(te(f))return f.clone();var r=typeof a=="object"?a:{};return r.date=f,r.args=arguments,new oe(r)},$=_;$.l=Z,$.i=te,$.w=function(f,a){return W(f,{locale:a.$L,utc:a.$u,x:a.$x,$offset:a.$offset})};var oe=function(){function f(r){this.$L=Z(r.locale,null,!0),this.parse(r),this.$x=this.$x||r.x||{},this[ee]=!0}var a=f.prototype;return a.parse=function(r){this.$d=function(u){var o=u.date,y=u.utc;if(o===null)return new Date(NaN);if($.u(o))return new Date;if(o instanceof Date)return new Date(o);if(typeof o=="string"&&!/Z$/i.test(o)){var g=o.match(q);if(g){var N=g[2]-1||0,i=(g[7]||"0").substring(0,3);return y?new Date(Date.UTC(g[1],N,g[3]||1,g[4]||0,g[5]||0,g[6]||0,i)):new Date(g[1],N,g[3]||1,g[4]||0,g[5]||0,g[6]||0,i)}}return new Date(o)}(r),this.init()},a.init=function(){var r=this.$d;this.$y=r.getFullYear(),this.$M=r.getMonth(),this.$D=r.getDate(),this.$W=r.getDay(),this.$H=r.getHours(),this.$m=r.getMinutes(),this.$s=r.getSeconds(),this.$ms=r.getMilliseconds()},a.$utils=function(){return $},a.isValid=function(){return this.$d.toString()!==I},a.isSame=function(r,u){var o=W(r);return this.startOf(u)<=o&&o<=this.endOf(u)},a.isAfter=function(r,u){return W(r)<this.startOf(u)},a.isBefore=function(r,u){return this.endOf(u)<W(r)},a.$g=function(r,u,o){return $.u(r)?this[u]:this.set(o,r)},a.unix=function(){return Math.floor(this.valueOf()/1e3)},a.valueOf=function(){return this.$d.getTime()},a.startOf=function(r,u){var o=this,y=!!$.u(u)||u,g=$.p(r),N=function(V,M){var Y=$.w(o.$u?Date.UTC(o.$y,M,V):new Date(o.$y,M,V),o);return y?Y:Y.endOf(D)},i=function(V,M){return $.w(o.toDate()[V].apply(o.toDate("s"),(y?[0,0,0,0]:[23,59,59,999]).slice(M)),o)},n=this.$W,p=this.$M,m=this.$D,b="set"+(this.$u?"UTC":"");switch(g){case S:return y?N(1,0):N(31,11);case l:return y?N(1,p):N(0,p+1);case O:var c=this.$locale().weekStart||0,v=(n<c?n+7:n)-c;return N(y?m-v:m+(6-v),p);case D:case x:return i(b+"Hours",0);case h:return i(b+"Minutes",1);case k:return i(b+"Seconds",2);case L:return i(b+"Milliseconds",3);default:return this.clone()}},a.endOf=function(r){return this.startOf(r,!1)},a.$set=function(r,u){var o,y=$.p(r),g="set"+(this.$u?"UTC":""),N=(o={},o[D]=g+"Date",o[x]=g+"Date",o[l]=g+"Month",o[S]=g+"FullYear",o[h]=g+"Hours",o[k]=g+"Minutes",o[L]=g+"Seconds",o[t]=g+"Milliseconds",o)[y],i=y===D?this.$D+(u-this.$W):u;if(y===l||y===S){var n=this.clone().set(x,1);n.$d[N](i),n.init(),this.$d=n.set(x,Math.min(this.$D,n.daysInMonth())).$d}else N&&this.$d[N](i);return this.init(),this},a.set=function(r,u){return this.clone().$set(r,u)},a.get=function(r){return this[$.p(r)]()},a.add=function(r,u){var o,y=this;r=Number(r);var g=$.p(u),N=function(p){var m=W(y);return $.w(m.date(m.date()+Math.round(p*r)),y)};if(g===l)return this.set(l,this.$M+r);if(g===S)return this.set(S,this.$y+r);if(g===D)return N(1);if(g===O)return N(7);var i=(o={},o[k]=T,o[h]=B,o[L]=A,o)[g]||1,n=this.$d.getTime()+r*i;return $.w(n,this)},a.subtract=function(r,u){return this.add(-1*r,u)},a.format=function(r){var u=this,o=this.$locale();if(!this.isValid())return o.invalidDate||I;var y=r||"YYYY-MM-DDTHH:mm:ssZ",g=$.z(this),N=this.$H,i=this.$m,n=this.$M,p=o.weekdays,m=o.months,b=o.meridiem,c=function(M,Y,z,Q){return M&&(M[Y]||M(u,y))||z[Y].slice(0,Q)},v=function(M){return $.s(N%12||12,M,"0")},V=b||function(M,Y,z){var Q=M<12?"AM":"PM";return z?Q.toLowerCase():Q};return y.replace(U,function(M,Y){return Y||function(z){switch(z){case"YY":return String(u.$y).slice(-2);case"YYYY":return $.s(u.$y,4,"0");case"M":return n+1;case"MM":return $.s(n+1,2,"0");case"MMM":return c(o.monthsShort,n,m,3);case"MMMM":return c(m,n);case"D":return u.$D;case"DD":return $.s(u.$D,2,"0");case"d":return String(u.$W);case"dd":return c(o.weekdaysMin,u.$W,p,2);case"ddd":return c(o.weekdaysShort,u.$W,p,3);case"dddd":return p[u.$W];case"H":return String(N);case"HH":return $.s(N,2,"0");case"h":return v(1);case"hh":return v(2);case"a":return V(N,i,!0);case"A":return V(N,i,!1);case"m":return String(i);case"mm":return $.s(i,2,"0");case"s":return String(u.$s);case"ss":return $.s(u.$s,2,"0");case"SSS":return $.s(u.$ms,3,"0");case"Z":return g}return null}(M)||g.replace(":","")})},a.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},a.diff=function(r,u,o){var y,g=this,N=$.p(u),i=W(r),n=(i.utcOffset()-this.utcOffset())*T,p=this-i,m=function(){return $.m(g,i)};switch(N){case S:y=m()/12;break;case l:y=m();break;case d:y=m()/3;break;case O:y=(p-n)/6048e5;break;case D:y=(p-n)/864e5;break;case h:y=p/B;break;case k:y=p/T;break;case L:y=p/A;break;default:y=p}return o?y:$.a(y)},a.daysInMonth=function(){return this.endOf(l).$D},a.$locale=function(){return P[this.$L]},a.locale=function(r,u){if(!r)return this.$L;var o=this.clone(),y=Z(r,u,!0);return y&&(o.$L=y),o},a.clone=function(){return $.w(this.$d,this)},a.toDate=function(){return new Date(this.valueOf())},a.toJSON=function(){return this.isValid()?this.toISOString():null},a.toISOString=function(){return this.$d.toISOString()},a.toString=function(){return this.$d.toUTCString()},f}(),ae=oe.prototype;return W.prototype=ae,[["$ms",t],["$s",L],["$m",k],["$H",h],["$W",D],["$M",l],["$y",S],["$D",x]].forEach(function(f){ae[f[1]]=function(a){return this.$g(a,f[0],f[1])}}),W.extend=function(f,a){return f.$i||(f(a,oe,W),f.$i=!0),W},W.locale=Z,W.isDayjs=te,W.unix=function(f){return W(1e3*f)},W.en=P[j],W.Ls=P,W.p={},W})})(ge);var De=ge.exports;const w=ye.getDefaultExportFromCjs(De);let re=null;const ke=s=>{const F=J.y(s,{handleReq:A=>{J.v()&&(A.headers.token=J.U())},handleRes:A=>{const{data:T}=A;if(T.code===401)return location.origin.includes("localhost")?location.href=`${location.origin}/#/404`:J.K(),!0}});F.get,re=F.post},Se=s=>re("/middleLayer/kline/getKlineBasic",{...s,userId:J.V("id")}),$e=s=>re("/middleLayer/kline/getKline",s),Te=async s=>re("/alarm/deliversign/addAlarmPrice",{...s,userId:J.V("id")}),Ve=async s=>re("/alarm/deliversign/findAlarmPriceByUserId",{...s,userId:J.V("id")}),he=async s=>re("/alarm/deliversign/updateAlarmPrice",{...s,userId:J.V("id")}),Le=async s=>re("/alarm/deliversign/deleteAlarmPrice",{...s,userId:J.V("id")}),{round:ie}=J.x,Be=(s,F,A,T,B)=>{const{data:t,time:L}=s,{gridTop:k,gridRight:h,gridLeft:D,maxShowCounts:O,showSubChart:l}=F;return{animation:!1,grid:{top:`${k}px`,right:`${h}px`,bottom:l?"6px":"24px",left:`${D}px`},dataZoom:[{type:"inside",startValue:A,endValue:T,maxValueSpan:O}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:d=>{const{axisDimension:S,value:x}=d;return S==="x"?l?"":["6","7","8"].includes(B)?w(x).format("YYYY-MM-DD"):x:String(ie(x))}}},formatter:()=>""},xAxis:{show:!l,type:"category",data:L,splitLine:{show:!1},axisLabel:{formatter:d=>["6","7","8"].includes(B)?w(d).format("YYYY-MM-DD"):d}},yAxis:{type:"value",axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:d=>ie(d.min),max:d=>ie(d.max)},series:[{type:"candlestick",data:t,itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1}},...s.mainIndicator.map(d=>({name:d.key,type:"line",silent:!0,symbol:"none",data:d.data,lineStyle:{width:d.width||1},itemStyle:{color:d.color}}))],toolbox:{show:!1},brush:{xAxisIndex:"all",brushLink:"all",transformable:!1,outOfBrush:{colorAlpha:2},brushStyle:{color:"rgba(255,255,255,0.1)",borderColor:"rgba(255,255,255,0.4)"}}}},Oe=(s,F,A,T,B)=>{const{variety:t,featureId:L,featureType:k}=A,{gridTop:h,gridLeft:D,gridRight:O}=T;return F.reduce((l,d)=>{const{warnPrice:S}=d,x=s==null?void 0:s.convertToPixel({yAxisIndex:0},S);if(x<=h||x>=(s==null?void 0:s.getHeight()))return l;let I=0;return[...l,{type:"group",name:"warningLine",info:d,draggable:"vertical",children:[{type:"line",info:d,shape:{x1:D,y1:x,x2:(s==null?void 0:s.getWidth())-O,y2:x},style:{stroke:"#FFF",lineWidth:1,lineDash:[8,4]},z:10},{type:"text",info:d,x:(s==null?void 0:s.getWidth())-O,y:x-5,style:{fill:"#FFF",text:S,stroke:"#000",lineWidth:1,opacity:1},z:10}],ondragstart:q=>{I=q.offsetY},ondrag:q=>{var U;if(q.target&&q.target.childAt(1)){const R=s.convertFromPixel({yAxisIndex:0},x+(q.offsetY-I));(U=q.target.childAt(1))==null||U.animate("style",!1).when(1,{text:ie(R,3)}).start()}},ondragend:async q=>{const R=q.offsetY-I;if(R!==0){const C=s==null?void 0:s.convertFromPixel({yAxisIndex:0},R+x),_={id:d.id,warnPrice:ie(C,3),featureId:L,featureCode:t,featureType:k};await he(_),ue.ElMessage.success("画线预警修改成功"),B&&B()}}}]},[])},Ne={class:"kline-tips"},Ee=e.defineComponent({__name:"index",props:{data:{type:Array,require:!0}},setup(s){return(F,A)=>(e.openBlock(),e.createElementBlock("div",Ne,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.data,(T,B)=>(e.openBlock(),e.createElementBlock("div",{key:B,class:"kline-tips-item",style:e.normalizeStyle({color:T.color})},e.toDisplayString(T.label)+" "+e.toDisplayString(T.value),5))),128))]))}});const fe=se._export_sfc(Ee,[["__scopeId","data-v-f83b6b36"]]);const Fe={class:"kline-tips"},Ae={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0}},setup(s){const{round:F,formatValue:A}=J.x,T=s,B=e.computed(()=>{const{data:L,activeIndex:k}=T;if(L.data&&L.data[k]){const h=L.data[k],D=[{label:"开",value:F(h[0])},{label:"高",value:F(h[3])},{label:"低",value:F(h[2])},{label:"收",value:F(h[1])}];h[4]!==null&&D.push({label:"额",value:A(h[4])});let O;return h[6]>0?O="red":h[6]<0&&(O="green"),D.push({label:"涨跌",value:`${F(h[6])}%`,color:O}),D}return[]}),t=e.computed(()=>{var h;const{data:L,activeIndex:k}=T;return((h=L==null?void 0:L.mainIndicator)==null?void 0:h.map(D=>({label:D.key,value:F(D.data[k]),color:D.color})))||[]});return(L,k)=>(e.openBlock(),e.createElementBlock("div",Fe,[e.createVNode(fe,{data:B.value},null,8,["data"]),e.createVNode(fe,{data:t.value},null,8,["data"])]))}},qe=se._export_sfc(Ae,[["__scopeId","data-v-64b5c2a3"]]);const Re={class:"klineSub"},Ie={class:"klineSub-tips"},Ce={key:0,class:"klineSub-tips-select"},We={__name:"index",props:{cycle:{type:[String,Number],default:()=>null},data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0},modelValue:{type:String,required:!0},subIndicatorList:{type:Array,required:!0}},emits:["update:modelValue"],setup(s,{expose:F,emit:A}){const{round:T}=J.x;let B,t;const L=A,k=s,h=e.ref(),D=e.computed({get(){return k.modelValue},set(d){L("update:modelValue",d)}}),O=e.computed(()=>{var x;const{data:d,activeIndex:S}=k;return((x=d==null?void 0:d.subIndicator)==null?void 0:x.map(I=>({label:I.key,color:I.color,value:I.data[S]||"-"})))||[]});e.onMounted(()=>{B=de.init(h.value);let d=!0;t=new ResizeObserver(()=>{if(d){d=null;return}B.resize()}),t.observe(h.value)}),e.onUnmounted(()=>{B.dispose(),t.disconnect(),t=null});const l=(d,S)=>{const x=d[S],I=S===0?d[S]:d[S-1];return x[0]===x[1]?x[0]>=I[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:x[1]>x[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}};return F({connect:d=>{de.connect([d,B])},draw:(d,S)=>{e.nextTick(()=>{const{startValue:x,endValue:I,maxValueSpan:q}=d,{leftYAxisRange:U,rightYAxisRange:R}=k.data.subIndicator[0],C=k.data.subIndicator.map(_=>{if(_.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:_.data.map((j,P)=>_.seriesColor==="kline"?{value:j,itemStyle:l(k.data.data,P)}:_.seriesColor==="value"?{value:j,itemStyle:{color:j>=0?"#FF0000":"#00FFFF"}}:{value:j,itemStyle:{color:_.seriesColor}})};if(_.series==="line")return{xAxisIndex:0,yAxisIndex:_.yAxis==="right"?2:1,name:_.key,type:"line",silent:!0,symbol:"none",data:_.data,lineStyle:{width:1},itemStyle:{color:_.color}}});B.setOption({animation:!1,grid:{left:`${S.gridLeft}px`,top:"10px",right:`${S.gridRight}px`,bottom:"20px"},dataZoom:[{type:"inside",startValue:x,endValue:I,maxValueSpan:q}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:_=>{const{axisDimension:j,value:P}=_;if(j==="x")return["6","7","8"].includes(k.cycle)?w(P).format("YYYY-MM-DD"):P;if(_.axisIndex===1)return String(T(P))}}},formatter:()=>""},xAxis:{type:"category",data:k.data.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{formatter:_=>["6","7","8"].includes(k.cycle)?w(_).format("YYYY-MM-DD"):_}},yAxis:[{position:"right"},{position:"left",min:U==="cover"?_=>_.min:null,max:U==="cover"?_=>_.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:R==="cover"?_=>_.min:null,max:R==="cover"?_=>_.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:C},!0)})}}),(d,S)=>{const x=me.ElOption,I=me.ElSelect;return e.openBlock(),e.createElementBlock("div",Re,[e.createElementVNode("div",Ie,[O.value.length?(e.openBlock(),e.createElementBlock("div",Ce,[e.createVNode(I,{modelValue:D.value,"onUpdate:modelValue":S[0]||(S[0]=q=>D.value=q),size:"small","popper-class":"element-dark",class:"element-dark subIndicator"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.subIndicatorList,q=>(e.openBlock(),e.createBlock(x,{key:q.value,label:q.label,value:q.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):e.createCommentVNode("",!0),e.createVNode(fe,{data:O.value},null,8,["data"])]),e.createElementVNode("div",{class:"klineSub-chart",ref_key:"subChartRef",ref:h},null,512)])}}},Pe=se._export_sfc(We,[["__scopeId","data-v-ab519de5"]]),He=e.defineComponent({__name:"index",emits:["closeContextMenuCallBack"],setup(s,{emit:F}){const A=F,T=e.ref(),B=e.ref(),t=e.ref({display:"none",top:"0px",left:"0px"}),L=()=>{t.value.display="none",A("closeContextMenuCallBack"),document.removeEventListener("click",L)},k=h=>{if(h.preventDefault(),t.value.display==="block"){const{offsetX:D,offsetY:O}=h,{offsetWidth:l,offsetHeight:d}=B.value;if(D<=l&&O<=d)return}T.value.click(),t.value={display:"block",top:`${h.offsetY}px`,left:`${h.offsetX}px`},e.nextTick(()=>{const D=T.value.getBoundingClientRect(),O=B.value.getBoundingClientRect();O.left+O.width>=D.right&&(t.value.left=`${h.offsetX-O.width}px`),O.top+O.height>=D.bottom&&(console.log("高度超出"),t.value.top=`${h.offsetY-O.height}px`)}),document.addEventListener("click",L)};return(h,D)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"contextmenuRef",ref:T,class:"contextmenu",onContextmenu:k,onMouseleave:L},[e.renderSlot(h.$slots,"default",{},void 0,!0),t.value.display!=="none"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"contextmenuContentRef",ref:B,class:"contextmenu-popover",style:e.normalizeStyle(t.value)},[e.renderSlot(h.$slots,"popover",{},void 0,!0)],4)):e.createCommentVNode("",!0)],544))}});const je=se._export_sfc(He,[["__scopeId","data-v-811db6b4"]]);const ve=s=>(e.pushScopeId("data-v-79254471"),s=s(),e.popScopeId(),s),ze={class:"klineBasic-tips"},Ue={key:0,class:"klineBasic-sub"},Ze={key:1,class:"klineBasic-empty"},Ke={key:2,class:"klineBasic-error"},Xe=ve(()=>e.createElementVNode("div",{class:"klineBasic-error-content"},"加载失败,请刷新重试",-1)),Je={style:{"text-align":"center"}},Ge=ve(()=>e.createElementVNode("span",{style:{"margin-right":"10px"}},"预警价格:",-1)),Qe={class:"dialog-footer"},et={__name:"index",props:{variety:{type:[String,Number],default:()=>null},varietyName:{type:[String,Number],default:()=>null},featureId:{type:[String,Number],default:()=>null},featureType:{type:[String,Number],default:()=>null},cycle:{type:[String,Number],default:()=>null},mainIndicator:{type:String,default:()=>""},indicatorStore:{type:Object,default:()=>null},startTime:{type:String,default:()=>null},endTime:{type:String,default:()=>null},right:{type:[String,Number],default:1},config:{type:Object,default:()=>({})},env:{type:Object,default:()=>({})},brushRange:{type:[Array,null],default:()=>null}},emits:["change","getFactorData"],setup(s,{expose:F,emit:A}){const T=[{label:"画线预警",key:"drawWarningLine"}];let B=null,t=null,L,k,h=!1,D=!1;const O=A,l=s,d=e.ref(!1),S=e.ref(!1),x=e.ref(!1),I=e.ref(null),q=e.ref(null),U=e.ref("VOL"),R=e.ref(0),C=e.ref({}),_=e.ref([]),j=e.ref({}),P=e.ref(!1),ee=e.ref(""),te=e.ref([...T]),Z=e.computed(()=>({defaultShowCounts:500,addCounts:2e3,maxShowCounts:5e3,loadCheckCounts:500,showSubChart:!0,gridTop:48,gridLeft:80,gridRight:50,showWarningLine:!0,getFactorData:!0,...l.config}));e.watch(()=>{var i,n;return[l.variety,l.cycle,l.mainIndicator,U.value,(i=l.indicatorStore)==null?void 0:i.filterIndicator,(n=l.indicatorStore)==null?void 0:n.customIndicator]},()=>{ae()},{deep:!0}),e.onMounted(()=>{ke(l.env),ae(),window.addEventListener("keydown",$)}),e.onUnmounted(()=>{t==null||t.off("datazoom"),t==null||t.off("highlight"),t==null||t.off("globalout"),t==null||t.dispose(),B==null||B.dispose(),window.removeEventListener("keydown",$)});const W=()=>{t||(t=de.init(I.value),oe(),Z.value.showSubChart&&q.value.connect(t),B=J.D(I.value),B.listen(()=>{requestAnimationFrame(()=>{t.resize()})}))},$=({code:i,ctrlKey:n})=>{if(!(n||d.value))return;const{xAxis:p,dataZoom:m}=t.getOption(),{data:b}=(p==null?void 0:p[0])??{data:[]};let{startValue:c,endValue:v}=(m==null?void 0:m[0])??{};if(b!=null&&b.length){switch(i){case"ArrowUp":{if(v-c<5)return;const V=Math.floor((v-c)/2)+1;c=c+V,v-c<5&&(c=v-4);break}case"ArrowDown":{const V=Math.min(500,v-c);c=c-V-1;break}case"ArrowLeft":{c>0&&(c-=1,v-=1),R.value>0&&(R.value-=1);break}case"ArrowRight":{v<b.length-1&&(c+=1,v+=1),d.value&&R.value<b.length-1&&(R.value+=1);break}}t.dispatchAction({type:"dataZoom",startValue:c,endValue:v}),t.dispatchAction({type:"updateAxisPointer",seriesIndex:0,dataIndex:d.value?R.value:null}),t.dispatchAction({type:"highlight",dataIndex:d.value?R.value:v})}},oe=()=>{t==null||t.on("datazoom",n=>{clearTimeout(k),k=setTimeout(()=>{var m,b,c,v;const{loadCheckCounts:p}=Z.value;if((b=(m=t==null?void 0:t.getOption())==null?void 0:m.dataZoom)!=null&&b[0]){const{startValue:V}=(v=(c=t==null?void 0:t.getOption())==null?void 0:c.dataZoom)==null?void 0:v[0];V<p&&h===!1&&D===!1&&(h=!0,f("history")),r()}clearTimeout(k)},100)}),t==null||t.on("highlight",n=>{var m,b;let p=n.dataIndex||-1;n.batch&&(p=typeof((m=n==null?void 0:n.batch[0])==null?void 0:m.dataIndex)=="number"?(b=n==null?void 0:n.batch[0])==null?void 0:b.dataIndex:-1),clearTimeout(L),L=setTimeout(()=>{R.value=p,clearTimeout(L)},20)}),t==null||t.on("globalout",()=>{var p,m,b;const n=(b=(m=(p=t==null?void 0:t.getOption())==null?void 0:p.dataZoom)==null?void 0:m[0])==null?void 0:b.endValue;R.value=n});let i=null;t==null||t.on("contextmenu",n=>{i=setTimeout(()=>{n.componentType==="graphic"&&(j.value=n.info,te.value=[{label:"删除画线",key:"deleteWarningLine"},{label:"修改画线",key:"changeWarningLine"}]),clearTimeout(i),i=null})})},ae=async()=>{var i,n,p,m,b,c;try{if(!l.variety||!l.cycle)return;const{variety:v,featureId:V,cycle:M,indicatorStore:Y,mainIndicator:z,right:Q,startTime:ne,endTime:H}=l,{defaultShowCounts:K,addCounts:E,showWarningLine:ce,getFactorData:le}=Z.value,X={variety:v,featureId:V,cycle:M,mainIndicatorList:Y.getIndicatorParams(z),subIndicator:U.value,right:Q,showWarningLine:ce,getFactorData:le};ne&&H?(X.startTime=ne,X.endTime=H):ne?(X.startTime=ne,X.limit=K+E):H?(X.endTime=H,X.limit=K+E):(X.endTime=w().add(1,"hour").format("YYYY-MM-DD HH:mm:ss"),X.limit=K+E);const G=await Se(X);if((p=(n=(i=G==null?void 0:G.body)==null?void 0:i.kline)==null?void 0:n.time)!=null&&p.length)S.value=!1,x.value=!1;else{S.value=!0,x.value=!1;return}C.value=(m=G==null?void 0:G.body)==null?void 0:m.kline,_.value=((b=G==null?void 0:G.body)==null?void 0:b.warningLine)||[],a(),r(),le&&O("getFactorData",(c=G==null?void 0:G.body)==null?void 0:c.factor)}catch(v){throw x.value=!0,S.value=!1,new Error(v)}},f=async i=>{const{variety:n,cycle:p,indicatorStore:m,mainIndicator:b,right:c}=l,{addCounts:v}=Z.value,{time:V}=C.value;if(i==="history"){const M=await $e({variety:n,cycle:p,endTime:V[0],limit:v,mainIndicatorList:m.getIndicatorParams(b),subIndicator:U.value,right:c});C.value={time:[...M.body.time,...C.value.time.slice(1)],data:[...M.body.data,...C.value.data.slice(1)],mainIndicator:C.value.mainIndicator.map((Y,z)=>({...Y,data:[...M.body.mainIndicator[z].data,...Y.data.slice(1)]})),subIndicator:C.value.subIndicator.map((Y,z)=>({...Y,data:[...M.body.subIndicator[z].data,...Y.data.slice(1)]}))},a(!0),M.body.data.length<v&&(D=!0),h=!1}},a=(i=!1)=>{var z,Q,ne;W();const{time:n}=C.value,{gridRight:p,gridLeft:m,defaultShowCounts:b,maxShowCounts:c,showSubChart:v}=Z.value;let V=n.length-1-b,M=n.length-1;if(i){const H=t.getOption(),K=(Q=(z=H==null?void 0:H.xAxis)==null?void 0:z[0])==null?void 0:Q.data,E=(ne=H==null?void 0:H.dataZoom)==null?void 0:ne[0],ce=K[E==null?void 0:E.startValue],le=K[E==null?void 0:E.endValue];V=n.findIndex(X=>X===ce),M=n.findIndex(X=>X===le)}const Y=Be(C.value,Z.value,V,M,l.cycle);if(t.setOption(Y,!0),R.value=M,l.brushRange){let H=null,K=null;switch(l.cycle){case"6":{H=n.find(E=>new Date(E).getTime()>=new Date(l.brushRange[0]).getTime()||w(E).format("YYYY-MM-DD")===w(l.brushRange[0]).format("YYYY-MM-DD")),K=n.findLast(E=>new Date(E).getTime()<=new Date(l.brushRange[1]).getTime()||w(E).format("YYYY-MM-DD")===w(l.brushRange[1]).format("YYYY-MM-DD"));break}case"7":{H=n.find(E=>w(E).day(5).format("YYYY-MM-DD")===w(l.brushRange[0]).day(5).format("YYYY-MM-DD")),K=n.findLast(E=>w(E).day(5).format("YYYY-MM-DD")===w(l.brushRange[1]).day(5).format("YYYY-MM-DD"));break}case"8":{H=n.find(E=>w(E).endOf("month").format("YYYY-MM-DD")===w(l.brushRange[0]).endOf("month").format("YYYY-MM-DD")),K=n.findLast(E=>w(E).endOf("month").format("YYYY-MM-DD")===w(l.brushRange[1]).endOf("month").format("YYYY-MM-DD"));break}default:H=n.find(E=>new Date(E).getTime()>=new Date(l.brushRange[0]).getTime()),K=n.findLast(E=>new Date(E).getTime()<=new Date(l.brushRange[1]).getTime())}console.log(H,K),t.dispatchAction({type:"brush",areas:[{brushType:"lineX",coordRange:[H,K],xAxisIndex:0}]})}v&&q.value.draw({startValue:V,endValue:M,maxValueSpan:c},{gridLeft:m,gridRight:p}),u()},r=()=>{if(!t)return;const i=t==null?void 0:t.getOption();i&&(t==null||t.setOption({...i,graphic:[...Oe(t,_.value,l,Z.value,()=>{o()})]},!0),u())},u=()=>{const{time:i}=C.value;if(l.brushRange&&(i!=null&&i.length)){let n=w(l.brushRange[0]).format("YYYY-MM-DD 00:00:00"),p=w(l.brushRange[1]).format("YYYY-MM-DD 23:59:59"),m=null,b=null;switch(l.cycle){case"6":{m=i.find(c=>w(c).format("YYYY-MM-DD")===w(n).format("YYYY-MM-DD")),b=m;break}case"7":{m=i.find(c=>w(c).day(5).format("YYYY-MM-DD")===w(n).day(5).format("YYYY-MM-DD")),b=i.findLast(c=>w(c).day(5).format("YYYY-MM-DD")===w(p).day(5).format("YYYY-MM-DD"));break}case"8":{m=i.find(c=>w(c).endOf("month").format("YYYY-MM-DD")===w(n).endOf("month").format("YYYY-MM-DD")),b=i.findLast(c=>w(c).endOf("month").format("YYYY-MM-DD")===w(p).endOf("month").format("YYYY-MM-DD"));break}default:m=i.find(c=>{const v=w(c).format("YYYY-MM-DD")===w(n).format("YYYY-MM-DD"),V=new Date(c).getTime()>=new Date(n).getTime();return v&&V}),b=i.findLast(c=>{const v=w(c).format("YYYY-MM-DD")===w(p).format("YYYY-MM-DD"),V=new Date(c).getTime()<=new Date(p).getTime();return v&&V})}t.dispatchAction({type:"brush",areas:[{brushType:"lineX",coordRange:[m,b],xAxisIndex:0}]})}},o=async()=>{const i=await Ve({featureId:l.featureId});_.value=(i==null?void 0:i.body)||[],r(),O("change","warningLine",_.value)},y=async i=>{const{variety:n,varietyName:p,featureId:m,featureType:b}=l;if(i.key==="drawWarningLine"){const c=t==null?void 0:t.getOption(),v=c.tooltip[0];t==null||t.setOption({...c,tooltip:{...v,axisPointer:{...v.axisPointer,lineStyle:{width:0},crossStyle:{width:2},label:{...v.axisPointer.label,backgroundColor:"transparent",formatter:M=>""}}}});const V=async M=>{t==null||t.getZr().off("mousedown",V);const Y=t==null?void 0:t.convertFromPixel({yAxisIndex:0},M.offsetY),z=Math.round(Y*1e3)/1e3;t==null||t.setOption({...c,tooltip:{...v,axisPointer:{...v.axisPointer,lineStyle:{width:1},crossStyle:{width:1},label:{...v.axisPointer.label,backgroundColor:null}}}}),await Te({featureCode:n,featureName:p,featureId:m,featureType:b,warnPrice:z}),ue.ElMessage.success("画线预警成功!"),o()};t==null||t.getZr().on("mousedown",V)}else i.key==="deleteWarningLine"?(await Le({id:j.value.id}),ue.ElMessage.success("画线预警删除成功"),o()):i.key==="changeWarningLine"&&(P.value=!0,ee.value=j.value.warnPrice)},g=async()=>{const{variety:i,varietyName:n,featureId:p,featureType:m}=l;await he({id:j.value.id,featureCode:i,featureName:n,featureId:p,featureType:m,warnPrice:ee.value}),ue.ElMessage.success("画线预警修改成功"),o()},N=()=>{te.value=[...T]};return F({draw:(i,n)=>{i==="warningLine"&&(_.value=n,r())}}),(i,n)=>{var M;const p=pe.ElMenuItem,m=pe.ElMenu,b=Ye.ElEmpty,c=_e.ElButton,v=xe.ElInputNumber,V=be.ElDialog;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:"klineBasic",onMousemove:n[1]||(n[1]=Y=>d.value=!0),onMouseout:n[2]||(n[2]=Y=>d.value=!1)},[e.createElementVNode("div",ze,[e.createVNode(qe,{data:C.value,activeIndex:R.value},null,8,["data","activeIndex"])]),e.createElementVNode("div",{class:"klineBasic-main",style:e.normalizeStyle({height:Z.value.showSubChart?"70%":"100%"})},[e.createVNode(je,{onCloseContextMenuCallBack:N},{popover:e.withCtx(()=>[e.createVNode(m,{style:{borderRadius:"4px",overflow:"hidden",background:"#fff",borderRight:0}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(te.value,Y=>(e.openBlock(),e.createBlock(p,{style:{height:"36px"},key:Y.key,index:Y.key,onClick:z=>y(Y)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(Y.label),1)]),_:2},1032,["index","onClick"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"klineBasicMainRef",ref:I,style:{height:"100%"}},null,512)]),_:1})],4),Z.value.showSubChart?(e.openBlock(),e.createElementBlock("div",Ue,[e.createVNode(Pe,{ref_key:"klineSubRef",ref:q,modelValue:U.value,"onUpdate:modelValue":n[0]||(n[0]=Y=>U.value=Y),data:C.value,cycle:s.cycle,activeIndex:R.value,subIndicatorList:(M=s.indicatorStore)==null?void 0:M.subIndicatorList},null,8,["modelValue","data","cycle","activeIndex","subIndicatorList"])])):e.createCommentVNode("",!0),S.value?(e.openBlock(),e.createElementBlock("div",Ze,[e.createVNode(b,{class:"klineBasic-empty-content",description:"暂无数据"})])):e.createCommentVNode("",!0),x.value?(e.openBlock(),e.createElementBlock("div",Ke,[Xe,e.createElementVNode("div",Je,[e.createVNode(c,{onClick:ae},{default:e.withCtx(()=>[e.createTextVNode("刷新")]),_:1})])])):e.createCommentVNode("",!0)],32),e.createVNode(V,{modelValue:P.value,"onUpdate:modelValue":n[5]||(n[5]=Y=>P.value=Y),title:"画线预警-修改价格",width:"30%","align-center":""},{footer:e.withCtx(()=>[e.createElementVNode("span",Qe,[e.createVNode(c,{onClick:n[4]||(n[4]=Y=>P.value=!1)},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1}),e.createVNode(c,{type:"primary",onClick:g},{default:e.withCtx(()=>[e.createTextVNode("确定")]),_:1})])]),default:e.withCtx(()=>[Ge,e.createVNode(v,{modelValue:ee.value,"onUpdate:modelValue":n[3]||(n[3]=Y=>ee.value=Y),placeholder:"输入预警价格"},null,8,["modelValue"])]),_:1},8,["modelValue"])],64)}}},tt=se._export_sfc(et,[["__scopeId","data-v-79254471"]]),nt={install(s){s.component("st-klineBasic",tt)}};module.exports=nt;
1
+ "use strict";require("./base-bdc10baa.cjs");const ve=require("./el-dialog-cd484c1f.cjs");require("./el-overlay-e5d318c3.cjs");require("./el-input-5163bda3.cjs");const xe=require("./el-input-number-eb54cde4.cjs"),be=require("./el-button-960edd49.cjs"),he=require("./el-empty-627ec09e.cjs"),ie=require("./el-menu-item-ac89e804.cjs");require("./el-tooltip-0ea8fbf8.cjs");require("./el-popper-14a9d493.cjs");const e=require("vue"),_e=require("echarts"),c=require("./dayjs.min-19fb125f.cjs"),j=require("./index-8901a38c.cjs"),J=require("./el-message-ad87b9dd.cjs"),K=require("./_plugin-vue_export-helper-f246444f.cjs");require("./el-tag-8d49d4d2.cjs");const se=require("./el-select-1d2309a1.cjs");require("./el-scrollbar-8bf765f2.cjs");require("./index-d94bae37.cjs");require("./index-19fa1fcf.cjs");require("./use-form-common-props-592797e2.cjs");require("./index-02ca0096.cjs");require("./index-8d3c5e96.cjs");require("./vnode-1b827c99.cjs");require("./scroll-4769a65d.cjs");require("./use-global-config-584b62f1.cjs");require("./typescript-b63f8e83.cjs");require("./index-5b81f4da.cjs");require("./index-eea0bcb3.cjs");require("./_commonjsHelpers-87b0abe8.cjs");require("./config-provider-ec6b09df.cjs");require("./index-a99a5307.cjs");require("./castArray-37eb9980.cjs");require("./debounce-9e323221.cjs");function Ye(o){const b=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const S in o)if(S!=="default"){const h=Object.getOwnPropertyDescriptor(o,S);Object.defineProperty(b,S,h.get?h:{enumerable:!0,get:()=>o[S]})}}return b.default=o,Object.freeze(b)}const ne=Ye(_e);let W=null;const ke=o=>{const b=j.y(o,{handleReq:S=>{j.v()&&(S.headers.token=j.U())},handleRes:S=>{const{data:h}=S;if(h.code===401)return location.origin.includes("localhost")?location.href=`${location.origin}/#/404`:j.K(),!0}});b.get,W=b.post},we=o=>W("/middleLayer/kline/getKlineBasic",{...o,userId:j.V("id")}),De=o=>W("/middleLayer/kline/getKline",o),Me=async o=>W("/alarm/deliversign/addAlarmPrice",{...o,userId:j.V("id")}),Se=async o=>W("/alarm/deliversign/findAlarmPriceByUserId",{...o,userId:j.V("id")}),ue=async o=>W("/alarm/deliversign/updateAlarmPrice",{...o,userId:j.V("id")}),Ve=async o=>W("/alarm/deliversign/deleteAlarmPrice",{...o,userId:j.V("id")}),{round:z}=j.x,Le=(o,b,S,h,v)=>{const{data:t,time:w}=o,{gridTop:_,gridRight:u,gridLeft:Y,maxShowCounts:k,showSubChart:l}=b;return{animation:!1,grid:{top:`${_}px`,right:`${u}px`,bottom:l?"6px":"24px",left:`${Y}px`},dataZoom:[{type:"inside",startValue:S,endValue:h,maxValueSpan:k}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:r=>{const{axisDimension:D,value:y}=r;return D==="x"?l?"":["6","7","8"].includes(v)?c.dayjs(y).format("YYYY-MM-DD"):y:String(z(y))}}},formatter:()=>""},xAxis:{show:!l,type:"category",data:w,splitLine:{show:!1},axisLabel:{formatter:r=>["6","7","8"].includes(v)?c.dayjs(r).format("YYYY-MM-DD"):r}},yAxis:{type:"value",axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}},min:r=>z(r.min),max:r=>z(r.max)},series:[{type:"candlestick",data:t,itemStyle:{color:"transparent",color0:"#00FFFF",borderColor:"#FF0000",borderColor0:"#00FFFF",borderWidth:1}},...o.mainIndicator.map(r=>({name:r.key,type:"line",silent:!0,symbol:"none",data:r.data,lineStyle:{width:r.width||1},itemStyle:{color:r.color}}))],toolbox:{show:!1},brush:{xAxisIndex:"all",brushLink:"all",transformable:!1,outOfBrush:{colorAlpha:2},brushStyle:{color:"rgba(255,255,255,0.1)",borderColor:"rgba(255,255,255,0.4)"}}}},Te=(o,b,S,h,v)=>{const{variety:t,featureId:w,featureType:_}=S,{gridTop:u,gridLeft:Y,gridRight:k}=h;return b.reduce((l,r)=>{const{warnPrice:D}=r,y=o==null?void 0:o.convertToPixel({yAxisIndex:0},D);if(y<=u||y>=(o==null?void 0:o.getHeight()))return l;let E=0;return[...l,{type:"group",name:"warningLine",info:r,draggable:"vertical",children:[{type:"line",info:r,shape:{x1:Y,y1:y,x2:(o==null?void 0:o.getWidth())-k,y2:y},style:{stroke:"#FFF",lineWidth:1,lineDash:[8,4]},z:10},{type:"text",info:r,x:(o==null?void 0:o.getWidth())-k,y:y-5,style:{fill:"#FFF",text:D,stroke:"#000",lineWidth:1,opacity:1},z:10}],ondragstart:V=>{E=V.offsetY},ondrag:V=>{var R;if(V.target&&V.target.childAt(1)){const L=o.convertFromPixel({yAxisIndex:0},y+(V.offsetY-E));(R=V.target.childAt(1))==null||R.animate("style",!1).when(1,{text:z(L,3)}).start()}},ondragend:async V=>{const L=V.offsetY-E;if(L!==0){const N=o==null?void 0:o.convertFromPixel({yAxisIndex:0},L+y),d={id:r.id,warnPrice:z(N,3),featureId:w,featureCode:t,featureType:_};await ue(d),J.ElMessage.success("画线预警修改成功"),v&&v()}}}]},[])},Be={class:"kline-tips"},Ee=e.defineComponent({__name:"index",props:{data:{type:Array,require:!0}},setup(o){return(b,S)=>(e.openBlock(),e.createElementBlock("div",Be,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.data,(h,v)=>(e.openBlock(),e.createElementBlock("div",{key:v,class:"kline-tips-item",style:e.normalizeStyle({color:h.color})},e.toDisplayString(h.label)+" "+e.toDisplayString(h.value),5))),128))]))}});const oe=K._export_sfc(Ee,[["__scopeId","data-v-f83b6b36"]]);const Ne={class:"kline-tips"},Fe={__name:"index",props:{data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0}},setup(o){const{round:b,formatValue:S}=j.x,h=o,v=e.computed(()=>{const{data:w,activeIndex:_}=h;if(w.data&&w.data[_]){const u=w.data[_],Y=[{label:"开",value:b(u[0])},{label:"高",value:b(u[3])},{label:"低",value:b(u[2])},{label:"收",value:b(u[1])}];u[4]!==null&&Y.push({label:"额",value:S(u[4])});let k;return u[6]>0?k="red":u[6]<0&&(k="green"),Y.push({label:"涨跌",value:`${b(u[6])}%`,color:k}),Y}return[]}),t=e.computed(()=>{var u;const{data:w,activeIndex:_}=h;return((u=w==null?void 0:w.mainIndicator)==null?void 0:u.map(Y=>({label:Y.key,value:b(Y.data[_]),color:Y.color})))||[]});return(w,_)=>(e.openBlock(),e.createElementBlock("div",Ne,[e.createVNode(oe,{data:v.value},null,8,["data"]),e.createVNode(oe,{data:t.value},null,8,["data"])]))}},qe=K._export_sfc(Fe,[["__scopeId","data-v-64b5c2a3"]]);const je={class:"klineSub"},Re={class:"klineSub-tips"},Ae={key:0,class:"klineSub-tips-select"},Oe={__name:"index",props:{cycle:{type:[String,Number],default:()=>null},data:{type:Object,require:!0},activeIndex:{type:[Number,String],require:!0},modelValue:{type:String,required:!0},subIndicatorList:{type:Array,required:!0}},emits:["update:modelValue"],setup(o,{expose:b,emit:S}){const{round:h}=j.x;let v,t;const w=S,_=o,u=e.ref(),Y=e.computed({get(){return _.modelValue},set(r){w("update:modelValue",r)}}),k=e.computed(()=>{var y;const{data:r,activeIndex:D}=_;return((y=r==null?void 0:r.subIndicator)==null?void 0:y.map(E=>({label:E.key,color:E.color,value:E.data[D]||"-"})))||[]});e.onMounted(()=>{v=ne.init(u.value);let r=!0;t=new ResizeObserver(()=>{if(r){r=null;return}v.resize()}),t.observe(u.value)}),e.onUnmounted(()=>{v.dispose(),t.disconnect(),t=null});const l=(r,D)=>{const y=r[D],E=D===0?r[D]:r[D-1];return y[0]===y[1]?y[0]>=E[1]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}:y[1]>y[0]?{color:"transparent",borderColor:"#FF0000"}:{color:"#00FFFF"}};return b({connect:r=>{ne.connect([r,v])},draw:(r,D)=>{e.nextTick(()=>{const{startValue:y,endValue:E,maxValueSpan:V}=r,{leftYAxisRange:R,rightYAxisRange:L}=_.data.subIndicator[0],N=_.data.subIndicator.map(d=>{if(d.series==="bar")return{name:"subMain",xAxisIndex:0,yAxisIndex:1,type:"bar",silent:!0,symbol:"none",data:d.data.map((O,P)=>d.seriesColor==="kline"?{value:O,itemStyle:l(_.data.data,P)}:d.seriesColor==="value"?{value:O,itemStyle:{color:O>=0?"#FF0000":"#00FFFF"}}:{value:O,itemStyle:{color:d.seriesColor}})};if(d.series==="line")return{xAxisIndex:0,yAxisIndex:d.yAxis==="right"?2:1,name:d.key,type:"line",silent:!0,symbol:"none",data:d.data,lineStyle:{width:1},itemStyle:{color:d.color}}});v.setOption({animation:!1,grid:{left:`${D.gridLeft}px`,top:"10px",right:`${D.gridRight}px`,bottom:"20px"},dataZoom:[{type:"inside",startValue:y,endValue:E,maxValueSpan:V}],tooltip:{trigger:"axis",appendToBody:!0,confine:!0,axisPointer:{type:"cross",label:{rich:{},formatter:d=>{const{axisDimension:O,value:P}=d;if(O==="x")return["6","7","8"].includes(_.cycle)?c.dayjs(P).format("YYYY-MM-DD"):P;if(d.axisIndex===1)return String(h(P))}}},formatter:()=>""},xAxis:{type:"category",data:_.data.time,axisLine:{show:!0},splitLine:{show:!1},axisLabel:{formatter:d=>["6","7","8"].includes(_.cycle)?c.dayjs(d).format("YYYY-MM-DD"):d}},yAxis:[{position:"right"},{position:"left",min:R==="cover"?d=>d.min:null,max:R==="cover"?d=>d.max:null,splitNumber:1,axisLine:{show:!0},splitLine:{show:!0,lineStyle:{type:"dotted",color:"#333"}}},{position:"right",min:L==="cover"?d=>d.min:null,max:L==="cover"?d=>d.max:null,splitNumber:1,axisLine:{show:!1},splitLine:{show:!1},axisLabel:{show:!1}}],series:N},!0)})}}),(r,D)=>{const y=se.ElOption,E=se.ElSelect;return e.openBlock(),e.createElementBlock("div",je,[e.createElementVNode("div",Re,[k.value.length?(e.openBlock(),e.createElementBlock("div",Ae,[e.createVNode(E,{modelValue:Y.value,"onUpdate:modelValue":D[0]||(D[0]=V=>Y.value=V),size:"small","popper-class":"element-dark",class:"element-dark subIndicator"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.subIndicatorList,V=>(e.openBlock(),e.createBlock(y,{key:V.value,label:V.label,value:V.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])])):e.createCommentVNode("",!0),e.createVNode(oe,{data:k.value},null,8,["data"])]),e.createElementVNode("div",{class:"klineSub-chart",ref_key:"subChartRef",ref:u},null,512)])}}},Ie=K._export_sfc(Oe,[["__scopeId","data-v-ab519de5"]]),Pe=e.defineComponent({__name:"index",emits:["closeContextMenuCallBack"],setup(o,{emit:b}){const S=b,h=e.ref(),v=e.ref(),t=e.ref({display:"none",top:"0px",left:"0px"}),w=()=>{t.value.display="none",S("closeContextMenuCallBack"),document.removeEventListener("click",w)},_=u=>{if(u.preventDefault(),t.value.display==="block"){const{offsetX:Y,offsetY:k}=u,{offsetWidth:l,offsetHeight:r}=v.value;if(Y<=l&&k<=r)return}h.value.click(),t.value={display:"block",top:`${u.offsetY}px`,left:`${u.offsetX}px`},e.nextTick(()=>{const Y=h.value.getBoundingClientRect(),k=v.value.getBoundingClientRect();k.left+k.width>=Y.right&&(t.value.left=`${u.offsetX-k.width}px`),k.top+k.height>=Y.bottom&&(console.log("高度超出"),t.value.top=`${u.offsetY-k.height}px`)}),document.addEventListener("click",w)};return(u,Y)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"contextmenuRef",ref:h,class:"contextmenu",onContextmenu:_,onMouseleave:w},[e.renderSlot(u.$slots,"default",{},void 0,!0),t.value.display!=="none"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"contextmenuContentRef",ref:v,class:"contextmenu-popover",style:e.normalizeStyle(t.value)},[e.renderSlot(u.$slots,"popover",{},void 0,!0)],4)):e.createCommentVNode("",!0)],544))}});const $e=K._export_sfc(Pe,[["__scopeId","data-v-811db6b4"]]);const ce=o=>(e.pushScopeId("data-v-79254471"),o=o(),e.popScopeId(),o),Ce={class:"klineBasic-tips"},We={key:0,class:"klineBasic-sub"},ze={key:1,class:"klineBasic-empty"},Ke={key:2,class:"klineBasic-error"},Ue=ce(()=>e.createElementVNode("div",{class:"klineBasic-error-content"},"加载失败,请刷新重试",-1)),He={style:{"text-align":"center"}},Ze=ce(()=>e.createElementVNode("span",{style:{"margin-right":"10px"}},"预警价格:",-1)),Xe={class:"dialog-footer"},Ge={__name:"index",props:{variety:{type:[String,Number],default:()=>null},varietyName:{type:[String,Number],default:()=>null},featureId:{type:[String,Number],default:()=>null},featureType:{type:[String,Number],default:()=>null},cycle:{type:[String,Number],default:()=>null},mainIndicator:{type:String,default:()=>""},indicatorStore:{type:Object,default:()=>null},startTime:{type:String,default:()=>null},endTime:{type:String,default:()=>null},right:{type:[String,Number],default:1},config:{type:Object,default:()=>({})},env:{type:Object,default:()=>({})},brushRange:{type:[Array,null],default:()=>null}},emits:["change","getFactorData"],setup(o,{expose:b,emit:S}){const h=[{label:"画线预警",key:"drawWarningLine"}];let v=null,t=null,w,_,u=!1,Y=!1;const k=S,l=o,r=e.ref(!1),D=e.ref(!1),y=e.ref(!1),E=e.ref(null),V=e.ref(null),R=e.ref("VOL"),L=e.ref(0),N=e.ref({}),d=e.ref([]),O=e.ref({}),P=e.ref(!1),U=e.ref(""),Q=e.ref([...h]),$=e.computed(()=>({defaultShowCounts:500,addCounts:2e3,maxShowCounts:5e3,loadCheckCounts:500,showSubChart:!0,gridTop:48,gridLeft:80,gridRight:50,showWarningLine:!0,getFactorData:!0,...l.config}));e.watch(()=>{var i,n;return[l.variety,l.cycle,l.mainIndicator,R.value,(i=l.indicatorStore)==null?void 0:i.filterIndicator,(n=l.indicatorStore)==null?void 0:n.customIndicator]},()=>{ee()},{deep:!0}),e.onMounted(()=>{ke(l.env),ee(),window.addEventListener("keydown",ae)}),e.onUnmounted(()=>{t==null||t.off("datazoom"),t==null||t.off("highlight"),t==null||t.off("globalout"),t==null||t.dispose(),v==null||v.dispose(),window.removeEventListener("keydown",ae)});const de=()=>{t||(t=ne.init(E.value),fe(),$.value.showSubChart&&V.value.connect(t),v=j.D(E.value),v.listen(()=>{requestAnimationFrame(()=>{t.resize()})}))},ae=({code:i,ctrlKey:n})=>{if(!(n||r.value))return;const{xAxis:m,dataZoom:f}=t.getOption(),{data:p}=(m==null?void 0:m[0])??{data:[]};let{startValue:a,endValue:s}=(f==null?void 0:f[0])??{};if(p!=null&&p.length){switch(i){case"ArrowUp":{if(s-a<5)return;const M=Math.floor((s-a)/2)+1;a=a+M,s-a<5&&(a=s-4);break}case"ArrowDown":{const M=Math.min(500,s-a);a=a-M-1;break}case"ArrowLeft":{a>0&&(a-=1,s-=1),L.value>0&&(L.value-=1);break}case"ArrowRight":{s<p.length-1&&(a+=1,s+=1),r.value&&L.value<p.length-1&&(L.value+=1);break}}t.dispatchAction({type:"dataZoom",startValue:a,endValue:s}),t.dispatchAction({type:"updateAxisPointer",seriesIndex:0,dataIndex:r.value?L.value:null}),t.dispatchAction({type:"highlight",dataIndex:r.value?L.value:s})}},fe=()=>{t==null||t.on("datazoom",n=>{clearTimeout(_),_=setTimeout(()=>{var f,p,a,s;const{loadCheckCounts:m}=$.value;if((p=(f=t==null?void 0:t.getOption())==null?void 0:f.dataZoom)!=null&&p[0]){const{startValue:M}=(s=(a=t==null?void 0:t.getOption())==null?void 0:a.dataZoom)==null?void 0:s[0];M<m&&u===!1&&Y===!1&&(u=!0,pe("history")),H()}clearTimeout(_)},100)}),t==null||t.on("highlight",n=>{var f,p;let m=n.dataIndex||-1;n.batch&&(m=typeof((f=n==null?void 0:n.batch[0])==null?void 0:f.dataIndex)=="number"?(p=n==null?void 0:n.batch[0])==null?void 0:p.dataIndex:-1),clearTimeout(w),w=setTimeout(()=>{L.value=m,clearTimeout(w)},20)}),t==null||t.on("globalout",()=>{var m,f,p;const n=(p=(f=(m=t==null?void 0:t.getOption())==null?void 0:m.dataZoom)==null?void 0:f[0])==null?void 0:p.endValue;L.value=n});let i=null;t==null||t.on("contextmenu",n=>{i=setTimeout(()=>{n.componentType==="graphic"&&(O.value=n.info,Q.value=[{label:"删除画线",key:"deleteWarningLine"},{label:"修改画线",key:"changeWarningLine"}]),clearTimeout(i),i=null})})},ee=async()=>{var i,n,m,f,p,a;try{if(!l.variety||!l.cycle)return;const{variety:s,featureId:M,cycle:T,indicatorStore:x,mainIndicator:I,right:X,startTime:C,endTime:B}=l,{defaultShowCounts:F,addCounts:g,showWarningLine:te,getFactorData:G}=$.value,q={variety:s,featureId:M,cycle:T,mainIndicatorList:x.getIndicatorParams(I),subIndicator:R.value,right:X,showWarningLine:te,getFactorData:G};C&&B?(q.startTime=C,q.endTime=B):C?(q.startTime=C,q.limit=F+g):B?(q.endTime=B,q.limit=F+g):(q.endTime=c.dayjs().add(1,"hour").format("YYYY-MM-DD HH:mm:ss"),q.limit=F+g);const A=await we(q);if((m=(n=(i=A==null?void 0:A.body)==null?void 0:i.kline)==null?void 0:n.time)!=null&&m.length)D.value=!1,y.value=!1;else{D.value=!0,y.value=!1;return}N.value=(f=A==null?void 0:A.body)==null?void 0:f.kline,d.value=((p=A==null?void 0:A.body)==null?void 0:p.warningLine)||[],re(),H(),G&&k("getFactorData",(a=A==null?void 0:A.body)==null?void 0:a.factor)}catch(s){throw y.value=!0,D.value=!1,new Error(s)}},pe=async i=>{const{variety:n,cycle:m,indicatorStore:f,mainIndicator:p,right:a}=l,{addCounts:s}=$.value,{time:M}=N.value;if(i==="history"){const T=await De({variety:n,cycle:m,endTime:M[0],limit:s,mainIndicatorList:f.getIndicatorParams(p),subIndicator:R.value,right:a});N.value={time:[...T.body.time,...N.value.time.slice(1)],data:[...T.body.data,...N.value.data.slice(1)],mainIndicator:N.value.mainIndicator.map((x,I)=>({...x,data:[...T.body.mainIndicator[I].data,...x.data.slice(1)]})),subIndicator:N.value.subIndicator.map((x,I)=>({...x,data:[...T.body.subIndicator[I].data,...x.data.slice(1)]}))},re(!0),T.body.data.length<s&&(Y=!0),u=!1}},re=(i=!1)=>{var I,X,C;de();const{time:n}=N.value,{gridRight:m,gridLeft:f,defaultShowCounts:p,maxShowCounts:a,showSubChart:s}=$.value;let M=n.length-1-p,T=n.length-1;if(i){const B=t.getOption(),F=(X=(I=B==null?void 0:B.xAxis)==null?void 0:I[0])==null?void 0:X.data,g=(C=B==null?void 0:B.dataZoom)==null?void 0:C[0],te=F[g==null?void 0:g.startValue],G=F[g==null?void 0:g.endValue];M=n.findIndex(q=>q===te),T=n.findIndex(q=>q===G)}const x=Le(N.value,$.value,M,T,l.cycle);if(t.setOption(x,!0),L.value=T,l.brushRange){let B=null,F=null;switch(l.cycle){case"6":{B=n.find(g=>new Date(g).getTime()>=new Date(l.brushRange[0]).getTime()||c.dayjs(g).format("YYYY-MM-DD")===c.dayjs(l.brushRange[0]).format("YYYY-MM-DD")),F=n.findLast(g=>new Date(g).getTime()<=new Date(l.brushRange[1]).getTime()||c.dayjs(g).format("YYYY-MM-DD")===c.dayjs(l.brushRange[1]).format("YYYY-MM-DD"));break}case"7":{B=n.find(g=>c.dayjs(g).day(5).format("YYYY-MM-DD")===c.dayjs(l.brushRange[0]).day(5).format("YYYY-MM-DD")),F=n.findLast(g=>c.dayjs(g).day(5).format("YYYY-MM-DD")===c.dayjs(l.brushRange[1]).day(5).format("YYYY-MM-DD"));break}case"8":{B=n.find(g=>c.dayjs(g).endOf("month").format("YYYY-MM-DD")===c.dayjs(l.brushRange[0]).endOf("month").format("YYYY-MM-DD")),F=n.findLast(g=>c.dayjs(g).endOf("month").format("YYYY-MM-DD")===c.dayjs(l.brushRange[1]).endOf("month").format("YYYY-MM-DD"));break}default:B=n.find(g=>new Date(g).getTime()>=new Date(l.brushRange[0]).getTime()),F=n.findLast(g=>new Date(g).getTime()<=new Date(l.brushRange[1]).getTime())}console.log(B,F),t.dispatchAction({type:"brush",areas:[{brushType:"lineX",coordRange:[B,F],xAxisIndex:0}]})}s&&V.value.draw({startValue:M,endValue:T,maxValueSpan:a},{gridLeft:f,gridRight:m}),le()},H=()=>{if(!t)return;const i=t==null?void 0:t.getOption();i&&(t==null||t.setOption({...i,graphic:[...Te(t,d.value,l,$.value,()=>{Z()})]},!0),le())},le=()=>{const{time:i}=N.value;if(l.brushRange&&(i!=null&&i.length)){let n=c.dayjs(l.brushRange[0]).format("YYYY-MM-DD 00:00:00"),m=c.dayjs(l.brushRange[1]).format("YYYY-MM-DD 23:59:59"),f=null,p=null;switch(l.cycle){case"6":{f=i.find(a=>c.dayjs(a).format("YYYY-MM-DD")===c.dayjs(n).format("YYYY-MM-DD")),p=f;break}case"7":{f=i.find(a=>c.dayjs(a).day(5).format("YYYY-MM-DD")===c.dayjs(n).day(5).format("YYYY-MM-DD")),p=i.findLast(a=>c.dayjs(a).day(5).format("YYYY-MM-DD")===c.dayjs(m).day(5).format("YYYY-MM-DD"));break}case"8":{f=i.find(a=>c.dayjs(a).endOf("month").format("YYYY-MM-DD")===c.dayjs(n).endOf("month").format("YYYY-MM-DD")),p=i.findLast(a=>c.dayjs(a).endOf("month").format("YYYY-MM-DD")===c.dayjs(m).endOf("month").format("YYYY-MM-DD"));break}default:f=i.find(a=>{const s=c.dayjs(a).format("YYYY-MM-DD")===c.dayjs(n).format("YYYY-MM-DD"),M=new Date(a).getTime()>=new Date(n).getTime();return s&&M}),p=i.findLast(a=>{const s=c.dayjs(a).format("YYYY-MM-DD")===c.dayjs(m).format("YYYY-MM-DD"),M=new Date(a).getTime()<=new Date(m).getTime();return s&&M})}t.dispatchAction({type:"brush",areas:[{brushType:"lineX",coordRange:[f,p],xAxisIndex:0}]})}},Z=async()=>{const i=await Se({featureId:l.featureId});d.value=(i==null?void 0:i.body)||[],H(),k("change","warningLine",d.value)},ye=async i=>{const{variety:n,varietyName:m,featureId:f,featureType:p}=l;if(i.key==="drawWarningLine"){const a=t==null?void 0:t.getOption(),s=a.tooltip[0];t==null||t.setOption({...a,tooltip:{...s,axisPointer:{...s.axisPointer,lineStyle:{width:0},crossStyle:{width:2},label:{...s.axisPointer.label,backgroundColor:"transparent",formatter:T=>""}}}});const M=async T=>{t==null||t.getZr().off("mousedown",M);const x=t==null?void 0:t.convertFromPixel({yAxisIndex:0},T.offsetY),I=Math.round(x*1e3)/1e3;t==null||t.setOption({...a,tooltip:{...s,axisPointer:{...s.axisPointer,lineStyle:{width:1},crossStyle:{width:1},label:{...s.axisPointer.label,backgroundColor:null}}}}),await Me({featureCode:n,featureName:m,featureId:f,featureType:p,warnPrice:I}),J.ElMessage.success("画线预警成功!"),Z()};t==null||t.getZr().on("mousedown",M)}else i.key==="deleteWarningLine"?(await Ve({id:O.value.id}),J.ElMessage.success("画线预警删除成功"),Z()):i.key==="changeWarningLine"&&(P.value=!0,U.value=O.value.warnPrice)},me=async()=>{const{variety:i,varietyName:n,featureId:m,featureType:f}=l;await ue({id:O.value.id,featureCode:i,featureName:n,featureId:m,featureType:f,warnPrice:U.value}),J.ElMessage.success("画线预警修改成功"),Z()},ge=()=>{Q.value=[...h]};return b({draw:(i,n)=>{i==="warningLine"&&(d.value=n,H())}}),(i,n)=>{var T;const m=ie.ElMenuItem,f=ie.ElMenu,p=he.ElEmpty,a=be.ElButton,s=xe.ElInputNumber,M=ve.ElDialog;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:"klineBasic",onMousemove:n[1]||(n[1]=x=>r.value=!0),onMouseout:n[2]||(n[2]=x=>r.value=!1)},[e.createElementVNode("div",Ce,[e.createVNode(qe,{data:N.value,activeIndex:L.value},null,8,["data","activeIndex"])]),e.createElementVNode("div",{class:"klineBasic-main",style:e.normalizeStyle({height:$.value.showSubChart?"70%":"100%"})},[e.createVNode($e,{onCloseContextMenuCallBack:ge},{popover:e.withCtx(()=>[e.createVNode(f,{style:{borderRadius:"4px",overflow:"hidden",background:"#fff",borderRight:0}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Q.value,x=>(e.openBlock(),e.createBlock(m,{style:{height:"36px"},key:x.key,index:x.key,onClick:I=>ye(x)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(x.label),1)]),_:2},1032,["index","onClick"]))),128))]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"klineBasicMainRef",ref:E,style:{height:"100%"}},null,512)]),_:1})],4),$.value.showSubChart?(e.openBlock(),e.createElementBlock("div",We,[e.createVNode(Ie,{ref_key:"klineSubRef",ref:V,modelValue:R.value,"onUpdate:modelValue":n[0]||(n[0]=x=>R.value=x),data:N.value,cycle:o.cycle,activeIndex:L.value,subIndicatorList:(T=o.indicatorStore)==null?void 0:T.subIndicatorList},null,8,["modelValue","data","cycle","activeIndex","subIndicatorList"])])):e.createCommentVNode("",!0),D.value?(e.openBlock(),e.createElementBlock("div",ze,[e.createVNode(p,{class:"klineBasic-empty-content",description:"暂无数据"})])):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("div",Ke,[Ue,e.createElementVNode("div",He,[e.createVNode(a,{onClick:ee},{default:e.withCtx(()=>[e.createTextVNode("刷新")]),_:1})])])):e.createCommentVNode("",!0)],32),e.createVNode(M,{modelValue:P.value,"onUpdate:modelValue":n[5]||(n[5]=x=>P.value=x),title:"画线预警-修改价格",width:"30%","align-center":""},{footer:e.withCtx(()=>[e.createElementVNode("span",Xe,[e.createVNode(a,{onClick:n[4]||(n[4]=x=>P.value=!1)},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1}),e.createVNode(a,{type:"primary",onClick:me},{default:e.withCtx(()=>[e.createTextVNode("确定")]),_:1})])]),default:e.withCtx(()=>[Ze,e.createVNode(s,{modelValue:U.value,"onUpdate:modelValue":n[3]||(n[3]=x=>U.value=x),placeholder:"输入预警价格"},null,8,["modelValue"])]),_:1},8,["modelValue"])],64)}}},Je=K._export_sfc(Ge,[["__scopeId","data-v-79254471"]]),Qe={install(o){o.component("st-klineBasic",Je)}};module.exports=Qe;