1import{u as et,r as a,j as o}from"./react-vendor.f2f310e0.js";import"./index.9ddc305e.js";import{d as g}from"./data-utils.b5e24845.js";import{r as rt,u as ot,c as ut,S as at,v as st,b as it,m as L}from"./index.d7d8ceab.js";import{S as nt}from"./StockOverlayModal.a586e5b7.js";import{i as lt}from"./tradingDayUtils.9902a028.js";import{u as ct}from"./useStockOverlay.97c389fa.js";import{S as W}from"./index.e9834255.js";import{D as q}from"./index.1defc0d6.js";import{T as G}from"./index.2786a5e0.js";import{S as H}from"./index.6fd62ca2.js";import{B as M}from"./button.4bb8486e.js";import{E as dt}from"./index.d823342e.js";import{i as pt}from"./install.8dbfa928.js";import{I as P,R as U}from"./ui-icons.4d004dfa.js";import"./Painter.af06a802.js";import"./StockChartOverlay.ddbb83f0.js";import"./StockChart.61eae4da.js";import"./stockChartService.875446bc.js";import"./overlayAnomaly.6d65a936.js";import"./SevereAnomalyBadge.3c2bcde4.js";import"./MiniKline.6a2e98ab.js";import"./favorites.0573d64e.js";import"./apiConfig.832533a5.js";import"./index.04ef7a34.js";import"./motion.05975460.js";import"./index.c55de2d2.js";import"./useId.711e5c99.js";import"./index.fd89d894.js";import"./zoom.90773b6c.js";import"./ContextIsolator.9d02bd5d.js";import"./context.1af4819d.js";import"./useSize.203f14e7.js";import"./Compact.ab7eb15d.js";import"./Skeleton.3b52bf30.js";import"./context.5a610e4b.js";import"./useLocale.a929e682.js";import"./useClosable.1ce97721.js";import"./PurePanel.064d41ce.js";import"./index.2f05c9b9.js";import"./colors.f8607747.js";import"./color.5435a489.js";import"./index.7f37d4cf.js";import"./index.67168971.js";import"./dropdown.b8e6e682.js";import"./index.4f1abccf.js";import"./index.8c91240c.js";import"./index.6eb83f38.js";import"./Overflow.e27050eb.js";import"./mediaQueryUtil.6f67e7db.js";import"./collapse.97de76d4.js";import"./move.c54d38f2.js";import"./roundedArrow.242a0fe2.js";import"./compact-item.3d9b0d0a.js";import"./statusUtils.5b584c84.js";import"./useVariants.f172e4c7.js";import"./index.dc8e6b44.js";import"./useIcons.497ba890.js";const xe=()=>{const{activeTheme:k}=rt(),d=k.tokens,{currentUser:C}=ot(),w=et(),{setHeaderContent:$}=ut(),[x,K]=a.useState(null),{selectedStock:N,showOverlay:X,overlayKey:_,openStockOverlay:J,closeStockOverlay:Q}=ct(),[Y,V]=a.useState({}),[y,z]=a.useState(!1),[r,Z]=a.useState(window.innerWidth<=768),[f,v]=a.useState("all"),[ft,tt]=a.useState(!0),R=a.useRef(!0),B=a.useRef(null),n=a.useRef(null),c=C&&(C.role==="pro"||C.role==="admin"||C.proExpiryDate&&g(C.proExpiryDate).isAfter(g())),[m,E]=a.useState(null);a.useEffect(()=>{(async()=>{try{if(c){const l=await st();E(g(l))}else E(g().subtract(4,"day"))}catch(l){console.error("\u83B7\u53D6\u9ED8\u8BA4\u4EA4\u6613\u65E5\u5931\u8D25:",l),E(c?g():g().subtract(4,"day"))}})()},[c]);const j=a.useCallback(s=>{if(!s)return!1;if(lt(s))return!0;const l=g();if(c){const F=l.subtract(20,"day");return s.isAfter(l,"day")||s.isBefore(F,"day")}const i=l.subtract(3,"day"),h=l.subtract(7,"day");return s.isAfter(i,"day")||s.isBefore(h,"day")},[c]);a.useEffect(()=>{const s=()=>{Z(window.innerWidth<=768),n.current&&n.current.resize()};return window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[]),a.useEffect(()=>(B.current&&!n.current&&(n.current=pt(B.current)),()=>{n.current&&(n.current.dispose(),n.current=null)}),[]);const D=async()=>{if(m){z(!0);try{const s=m.format("YYYYMMDD"),i=(await it.get(`/sealing-strength-bubble?date=${s}`)).data;if(i.success){K(i.data);const h=new Set;i.data.forEach(e=>
1{e.concepts&&Array.isArray(e.concepts)&&e.concepts.forEach(u=>{u&&u.trim()&&h.add(u.trim())})});const F=["#1890ff","#52c41a","#fa8c16","#f5222d","#722ed1","#13c2c2","#eb2f96","#faad14","#a0d911","#2f54eb"],t={};Array.from(h).sort().forEach((e,u)=>{t[e]=F[u%F.length]}),V(t),O(i.data)}else L.error(i.message||"\u83B7\u53D6\u6570\u636E\u5931\u8D25")}catch{L.error("\u7F51\u7EDC\u8BF7\u6C42\u5931\u8D25")}finally{z(!1)}}},O=s=>{if(!n.current||!s)return;const l=s.filter(t=>f!=="all"?f==="3"?t.boardCount>=3:t.boardCount===parseInt(f):!0);console.log(`\u7B5B\u9009\u6761\u4EF6: ${f}, \u539F\u59CB\u6570\u636E: ${s.length}, \u7B5B\u9009\u540E: ${l.length}`),console.log("\u7B5B\u9009\u540E\u7684\u8FDE\u677F\u6570\u5206\u5E03:",l.map(t=>t.boardCount));const i={};l.forEach(t=>{const e=t.concepts&&t.concepts.length>0?t.concepts[0]:"\u65E0\u6982\u5FF5";i[e]||(i[e]=[]),i[e].push([t.firstSealMinutes,t.marketCap/1e8,t.sealAmount/1e4,t])});const h=Object.keys(i).sort((t,e)=>i[e].length-i[t].length),F={backgroundColor:d.surface,toolbox:{show:!r,feature:{saveAsImage:{name:`\u6DA8\u505C\u5F3A\u5EA6\u6C14\u6CE1\u56FE_${m.format("YYYY-MM-DD")}`,pixelRatio:2}},right:15,top:15},title:{text:r?"\u5F3A\u5EA6\u6C14\u6CE1\u56FE":"\u6DA8\u505C\u5F3A\u5EA6\u6C14\u6CE1\u56FE",subtext:`${m.format(r?"MM-DD":"YYYY-MM-DD")} \u6DA8\u505C\u80A1\u5F3A\u5EA6\u5206\u6790`,left:"center",textStyle:{color:d.textStrong,fontSize:r?14:16},subtextStyle:{color:d.textMuted,fontSize:r?10:12}},grid:{left:r?"15%":"10%",right:r?"10%":"15%",top:r?"20%":"15%",bottom:r?"15%":"10%"},xAxis:{type:"value",name:"\u9996\u5C01\u65F6\u95F4",nameLocation:"middle",nameGap:35,min:565,max:810,axisLabel:{formatter:t=>{let e=t;t>690&&(e=t+90);const u=Math.floor(e/60),b=e%60;return`${u.toString().padStart(2,"0")}:${b.toString().padStart(2,"0")}`}},splitLine:{show:!0,lineStyle:{color:d.chartGrid,type:"dashed"}}},yAxis:{type:"log",name:"\u6D41\u901A\u5E02\u503C(\u4EBF)",nameLocation:"middle",nameGap:40,min:10,max:1e3,axisLabel:{formatter:"{value}\u4EBF"},splitLine:{show:!0,lineStyle:{color:d.chartGrid,type:"dashed"}}},tooltip:{trigger:"item",backgroundColor:d.surfaceRaised,borderColor:d.border,textStyle:{color:d.text},formatter:t=>{var I;const e=t.data[3],u=e.firstSealMinutes;let b=u;u>690&&(b=u+90);const p=Math.floor(b/60),S=b%60,A=`${p.toString().padStart(2,"0")}:${S.toString().padStart(2,"0")}`;return` 2 <div style="padding: 8px;"> 3 <strong>${e.code} ${e.name}</strong><br/> 4 \u9996\u5C01\u65F6\u95F4: ${A}<br/> 5 \u6D41\u901A\u5E02\u503C: ${(e.marketCap/1e8).toFixed(1)}\u4EBF\u5143<br/> 6 \u5C01\u5355\u91D1\u989D: ${(e.sealAmount/1e8).toFixed(2)}\u4EBF\u5143<br/> 7 ${e.boardType?`\u677F\u578B: ${e.boardType}<br/>`:""} 8 \u8FDE\u677F\u6570: ${e.boardCount}\u677F<br/> 9 \u6982\u5FF5: ${((I=e.concepts)==null?void 0:I.slice(0,3).join(", "))||"\u65E0"} 10 </div> 11 `}},legend:{type:"scroll",orient:"horizontal",bottom:r?10:20,left:60,data:h,textStyle:{fontSize:r?10:12,color:d.chartAxis},formatter:t=>{var u;const e=((u=i[t])==null?void 0:u.length)||0;return r?`${t.length>4?t.substring(0,4)+"...":t}(${e})`:`${t} (${e})`}},series:h.map(t=>({name:t,type:"scatter",data:i[t],symbolSize:e=>{const u=e[2];return Math.max(10,Math.min(80,Math.log10(u+1)*15))},itemStyle:{color:Y[t]||"#bfbfbf",opacity:.7},emphasis:{focus:"series",itemStyle:{opacity:1,borderColor:"#333",borderWidth:2},scale:1.2}})),graphic:[{type:"text",left:10,bottom:r?12:22,style:{text:"\u5168\u9009",fontSize:12,fill:"#fff",backgroundColor:"#1890ff",borderWidth:1,borderColor:"#1890ff",borderRadius:3,padding:[4,8],cursor:"pointer"}},{type:"text",left:"15%",top:"25%",style:{text:`\u6743\u91CD\u80A1 12(\u65E9\u5C01\u677F+\u5927\u5E02\u503C)`,textAlign:"center",fill:"#1890ff",fontSize:r?10:12,fontWeight:"bold"}},{type:"text",right:"20%",top:"25%",style:{text:`\u8DDF\u98CE\u80A1 13(\u665A\u5C01\u677F+\u5927\u5E02\u503C)`,textAlign:"center",fill:"var(--qt-text-subtle)",fontSize:r?10:12,fontWeight:"bold"}},{type:"text",left:"15%",bottom:"20%",style:{text:`\u5F3A\u52BF\u80A1 14(\u65E9\u5C01\u677F+\u5C0F\u5E02\u503C)`,textAlign:"center",fill:"#e2420cff",fontSize:r?10:12,fontWeight:"bold"}},{type:"text",right:"20%",bottom:"20%",style:{text:`\u9898\u6750\u80A1 15(\u665A\u5C01\u677F+\u5C0F\u5E02\u503C)`,textAlign:"center",fill:"#fa8c16",fontSize:r?10:12,fontWeight:"bold"}}]};n.current.setOption(F,!0),n.current.off("click"),n.current.on("click",t=>{var e,u,b;if(t.componentType==="graphic"&&t.componentIndex===0){const p=!R.current;R.current=p,tt(p),n.current.setOption({graphic:[{style:{fill:p?"#fff":"#1890ff",backgroundColor:p?"#1890ff":"#fff"}}]});const S=((b=(u=(e=n.current.getOption())==null?void 0:e.legend)==null?void 0:u[0])==null?void 0:b.data)||[];
15p?S.forEach(A=>{n.current.dispatchAction({type:"legendSelect",name:A})}):S.forEach(A=>{n.current.dispatchAction({type:"legendUnSelect",name:A})});return}if(t.data&&t.data[3]){const p=t.data[3];J(p)}})};a.useEffect(()=>{D()},[m]),a.useEffect(()=>{x&&O(x)},[f,Y,r,k.id]);const T=a.useMemo(()=>r?null:o.jsxs(W,{wrap:!0,children:[o.jsx(q,{value:m,onChange:E,format:"YYYY-MM-DD",allowClear:!1,disabledDate:j,placeholder:c?"20\u5929\u5185":"4-7\u5929\u524D"}),!c&&o.jsx(G,{title:"\u5347\u7EA7Pro\u4F1A\u5458\u53EF\u67E5\u770B\u6700\u65B0\u65E5\u671F",children:o.jsx(P,{style:{color:"#faad14"}})}),o.jsx(H,{value:f,onChange:v,style:{width:100},options:[{value:"all",label:"\u5168\u90E8\u8FDE\u677F"},{value:"1",label:"1\u677F"},{value:"2",label:"2\u677F"},{value:"3",label:"3\u677F\u53CA\u4EE5\u4E0A"}]}),o.jsx(M,{icon:o.jsx(U,{}),onClick:D,loading:y,children:"\u5237\u65B0"}),!c&&o.jsx(M,{type:"primary",size:"small",onClick:()=>w("/membership"),ghost:!0,children:"\u5347\u7EA7\u4F1A\u5458"}),o.jsx(G,{title:"X\u8F74\uFF1A\u9996\u5C01\u65F6\u95F4\u8D8A\u65E9\u8D8A\u5F3A\u52BF\uFF1BY\u8F74\uFF1A\u5E02\u503C\u8D8A\u5C0F\u62C9\u5347\u8D8A\u5BB9\u6613\uFF1B\u6C14\u6CE1\u5927\u5C0F\uFF1A\u5C01\u5355\u91D1\u989D\u8D8A\u5927\u9501\u4ED3\u610F\u613F\u8D8A\u5F3A",children:o.jsx(P,{style:{color:"#1890ff",cursor:"pointer"}})})]}),[m,f,c,r,j,v,E,w,y,D]);return a.useEffect(()=>{$(T)},[$,T]),o.jsxs("div",{style:{padding:r?"8px":"0",paddingBottom:r?"16px":"20px",minHeight:"600px"},children:[r&&o.jsx("div",{style:{marginBottom:12,background:"var(--qt-surface)",padding:"12px",borderRadius:"8px"},children:o.jsxs(W,{direction:"vertical",style:{width:"100%"},size:12,children:[o.jsxs("div",{style:{display:"flex",gap:8},children:[o.jsx(q,{value:m,onChange:E,format:"YYYY-MM-DD",allowClear:!1,disabledDate:j,placeholder:c?"20\u5929\u5185":"4-7\u5929\u524D",style:{flex:1}}),o.jsx(M,{icon:o.jsx(U,{}),onClick:D,loading:y})]}),o.jsx(H,{value:f,onChange:v,style:{width:"100%"},options:[{value:"all",label:"\u7B5B\u9009: \u5168\u90E8\u8FDE\u677F"},{value:"1",label:"\u7B5B\u9009: 1\u677F"},{value:"2",label:"\u7B5B\u9009: 2\u677F"},{value:"3",label:"\u7B5B\u9009: 3\u677F\u53CA\u4EE5\u4E0A"}]})]})}),o.jsxs("div",{style:{position:"relative",minHeight:r?"400px":"600px"},children:[o.jsx("div",{ref:B,style:{width:"100%",height:r?"400px":"600px",background:"var(--qt-surface)",border:"1px solid var(--qt-border)",borderRadius:"6px",visibility:x&&x.length>0&&!y?"visible":"hidden"}}),y&&o.jsxs("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",background:"color-mix(in srgb, var(--qt-surface-raised) 94%, transparent)",zIndex:10,borderRadius:"6px"},children:[o.jsx(at,{size:"large"}),o.jsx("div",{style:{marginTop:16},children:"\u52A0\u8F7D\u6DA8\u505C\u5F3A\u5EA6\u6570\u636E\u4E2D..."})]}),!y&&(!x||x.length===0)&&o.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--qt-surface)",border:"1px solid var(--qt-border)",borderRadius:"6px"},children:o.jsx(dt,{description:"\u6682\u65E0\u6DA8\u505C\u5F3A\u5EA6\u6570\u636E"})})]}),o.jsx(nt,{stock:N,visible:X,onClose:Q,overlayKey:_,isMobile:r})]})};export{xe as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.