1import{r as k,j as e}from"./index-BbKKAkbW.js";import{B as D}from"./box-Cos0XbAl.js";import{L as C}from"./layers-BTjAPOq3.js";import{j as A,T as P}from"./RechartsWrapper-Ch82iPfP.js";import{A as R}from"./AreaChart-DSDP1mRa.js";import{C as T}from"./CartesianGrid-14liGoi4.js";import{X as L,Y as E}from"./CartesianChart-DeV2SKVV.js";import{L as O}from"./Legend-DwPLjZdQ.js";import{A as m}from"./Area-ixHBjPz-.js";import"./string-D9ao_8lM.js";import"./CategoricalChart-D4n8XXp2.js";import"./Symbols-CDutAd5M.js";import"./getRadiusAndStrokeWidthFromDot-CIzHd-jP.js";import"./graphicalItemSelectors-Ck_uSCHf.js";const f=c=>Array.isArray(c)?c.map(i=>({size:parseFloat(i==null?void 0:i.size),fraction:parseFloat((i==null?void 0:i.massFraction)??(i==null?void 0:i.fraction)??(i==null?void 0:i.value)??0)})).filter(i=>Number.isFinite(i.size)&&i.size>0&&Number.isFinite(i.fraction)&&i.fraction>=0):c&&typeof c=="object"?Object.entries(c).map(([i,d])=>({size:parseFloat(i),fraction:parseFloat(d)})).filter(i=>Number.isFinite(i.size)&&i.size>0&&Number.isFinite(i.fraction)&&i.fraction>=0):[],$=({steps:c=[],simulationResults:i={}})=>{const d=k.useMemo(()=>c.filter(l=>{const o=i[l.id];return!o||!o.outputs?!1:o.outputs.some(s=>s.particleSizeDistribution||s.properties&&(s.properties.psdData||s.properties.psd))}),[c,i]);if(d.length===0)return e.jsxs("div",{className:"analysis-card improved-tea",style:{minHeight:"300px",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",color:"#64748b"},children:[e.jsx(D,{size:48,style:{opacity:.2,marginBottom:"15px"}}),e.jsx("p",{style:{fontWeight:500},children:"No Solid Distribution Data Found"}),e.jsx("p",{style:{fontSize:"0.8rem"},children:"Run a simulation with screens, cyclones, or centrifuges to see PSD analysis."})]});const F=l=>{var y,h,g,j,b,z,S;const o=i[l.id];if(!o||!o.outputs)return[];const s=(y=o.inputs)==null?void 0:y[0],a=o.outputs.find(t=>{const r=((t==null?void 0:t.name)||"").toLowerCase();return r.includes("underflow")||r.includes("solids")||r.includes("cake")||r.includes("undersize")||r.includes("fines")}),n=o.outputs.find(t=>{const r=((t==null?void 0:t.name)||"").toLowerCase();return r.includes("overflow")||r.includes("gas")||r.includes("centrate")||r.includes("oversize")||r.includes("coarse")}),p=f((s==null?void 0:s.particleSizeDistribution)||((h=s==null?void 0:s.properties)==null?void 0:h.psdData)||((g=s==null?void 0:s.properties)==null?void 0:g.psd)),x=f((a==null?void 0:a.particleSizeDistribution)||((j=a==null?void 0:a.properties)==null?void 0:j.psdData)||((b=a==null?void 0:a.properties)==null?void 0:b.psd)),u=f((n==null?void 0:n.particleSizeDistribution)||((z=n==null?void 0:n.properties)==null?void 0:z.psdData)||((S=n==null?void 0:n.properties)==null?void 0:S.psd));return Array.from(new Set([...p.map(t=>t.size),...x.map(t=>t.size),...u.map(t=>t.size)])).sort((t,r)=>t-r).map(t=>{const r=N=>{var v;return((v=N.find(B=>B.size===t))==null?void 0:v.fraction)||0};return{size:t,feed:r(p)*100,fines:r(x)*100,coarse:r(u)*100}})};return e.jsxs("div",{className:"analysis-card solid-analysis",children:[e.jsx("div",{className:"analysis-header",children:e.jsxs("div",{className:"analysis-title-group",children:[e.jsx("div",{className:"icon-box psd",style:{background:"#F59E0B20"},children:e.jsx(C,{size:20,color:"#D97706"})}),e.jsxs("div",{className:"header-text",children:[e.jsx("h3",{children:"Solid Analysis"}),e.jsx("span",{children:"Particle Size Distribution (PSD) Tracking"})]})]})}),e.jsx("div",{className:"analysis-content custom-scrollbar",style:{padding:"20px"},children:d.map(l=>{const o=F(l),s=i[l.id],a=(s==null?void 0:s.calculatedParams)||{};return e.jsxs("div",{className:"solid-step-section",style:{marginBottom:"30px",borderBottom:"1px solid #f1f5f9",paddingBottom:"20px"},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"15px"},children:[e.jsxs("h4",{style:{margin:0,color:"#1e293b",display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx(D,{size:16})," ",l.name||l.type]}),e.jsxs("div",{style:{display:"flex",gap:"8px"},children:[a.d50_cutpoint&&e.jsxs("div",{style:{background:"#eff6ff",color:"#1d4ed8",padding:"2px 8px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600},children:["d50: ",a.d50_cutpoint]}),a.efficiency&&e.jsxs("div",{style:{background:"#f0fdf4",color:"#15803d",padding:"2px 8px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600},children:["Eff: ",a.efficiency]}),a.solidRecovery&&e.jsxs("div",{style:{background:"#f0fdf4",color:"#15803d",padding:"2px 8px",borderRadius:"4px",fontSize:"0.75rem",fontWeight:600},children:["Rec: ",a.solidRecovery]})]})]}),e.jsx("div",{className:"dashboard-grid",style:{gridTemplateColumns:"1fr",gap:"20px"},children:e.jsxs("div",{className:"chart-box",style:{height:"250px"},children:[e.jsx("div",{className:"chart-header",children:e.jsx("span",{className:"chart-title",children:"Differential PSD (% per bin)"})}),e.jsx(A,{width:"100%",height:"100%",children:e.jsxs(R,{data:o,margin:{top:10,right:30,left:0,bottom:0},children:[e.jsx(T,{strokeDasharray:"3 3",vertical:!1,stroke:"#f1f5f9"}),e.jsx(L,{dataKey:"size",label:{value:"Particle Size (µm)",position:"insideBottomRight",offset:-5,fontSize:10},tick:{fontSize:10}}),e.jsx(E,{label:{value:"Mass %",angle:-90,position:"insideLeft",fontSize:10},tick:{fontSize:10}}),e.jsx(P,{contentStyle:{borderRadius:"8px",border:"none",boxShadow:"0 4px 6px -1px rgba(0,0,0,0.1)"}}),e.jsx(O,{iconType:"circle",wrapperStyle:{fontSize:"10px"}}),e.jsx(m,{type:"monotone",dataKey:"feed",stroke:"#94a3b8",fill:"#94a3b8",fillOpacity:.1,name:"Feed"}),e.jsx(m,{type:"monotone",dataKey:"coarse",stroke:"#F59E0B",fill:"#F59E0B",fillOpacity:.3,name:"Coarse / Oversize"}),e.jsx(m,{type:"monotone",dataKey:"fines",stroke:"#3B82F6",fill:"#3B82F6",fillOpacity:.2,name:"Fine / Undersize"})]})})]})}
1),e.jsx("div",{style:{marginTop:"15px",display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(150px, 1fr))",gap:"10px"},children:Object.entries(a).map(([n,p])=>["mode","opMode","d50_cutpoint","efficiency","solidRecovery","warnings","warning"].includes(n)?null:e.jsxs("div",{style:{padding:"8px",background:"#f8fafc",borderRadius:"6px"},children:[e.jsx("div",{style:{fontSize:"0.65rem",color:"#64748b",textTransform:"uppercase",fontWeight:600},children:n.replace(/_/g," ")}),e.jsx("div",{style:{fontSize:"0.85rem",color:"#1e293b",fontWeight:500},children:p})]},n))})]},l.id)})})]})};export{$ 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.