diff --git a/frontend/src/styles/map-layout.css b/frontend/src/styles/map-layout.css index 000159af..f695d537 100644 --- a/frontend/src/styles/map-layout.css +++ b/frontend/src/styles/map-layout.css @@ -23,7 +23,10 @@ flex-direction: column; overflow-y: auto; padding: 12px 14px; + scrollbar-width: none; + -ms-overflow-style: none; } +.ml-sidebar::-webkit-scrollbar { display: none; } .ml-sidebar-header { display: flex; diff --git a/static/v2/assets/CharacterWindow-HFix6rx0.js b/static/assets/CharacterWindow-DHhMuitc.js similarity index 99% rename from static/v2/assets/CharacterWindow-HFix6rx0.js rename to static/assets/CharacterWindow-DHhMuitc.js index b48dd049..4790add6 100644 --- a/static/v2/assets/CharacterWindow-HFix6rx0.js +++ b/static/assets/CharacterWindow-DHhMuitc.js @@ -1 +1 @@ -import{r as f,a as Y,j as e,D as X}from"./index-CLqPZs7-.js";import"./react-DlyoauG8.js";const B={218:"Reinforcement of the Lugians",219:"Bleeargh's Fortitude",220:"Oswald's Enhancement",221:"Siraluun's Blessing",222:"Enduring Calm",223:"Steadfast Will",224:"Ciandra's Essence",225:"Yoshi's Essence",226:"Jibril's Essence",227:"Celdiseth's Essence",228:"Koga's Essence",229:"Shadow of the Seventh Mule",230:"Might of the Seventh Mule",231:"Clutch of the Miser",232:"Enduring Enchantment",233:"Critical Protection",234:"Quick Learner",235:"Ciandra's Fortune",236:"Charmed Smith",237:"Innate Renewal",238:"Archmage's Endurance",239:"Enhancement of the Blade Turner",240:"Enhancement of the Arrow Turner",241:"Enhancement of the Mace Turner",242:"Caustic Enhancement",243:"Fierce Impaler",244:"Iron Skin of the Invincible",245:"Eye of the Remorseless",246:"Hand of the Remorseless",294:"Master of the Steel Circle",295:"Master of the Focused Eye",296:"Master of the Five Fold Path",297:"Frenzy of the Slayer",298:"Iron Skin of the Invincible",299:"Jack of All Trades",300:"Infused Void Magic",301:"Infused War Magic",302:"Infused Life Magic",309:"Infused Item Magic",310:"Infused Creature Magic",326:"Clutch of the Miser",328:"Enduring Enchantment"},F={333:"Valor / Destruction",334:"Protection",335:"Glory / Retribution",336:"Temperance / Hardening",338:"Aetheric Vision",339:"Mana Flow",340:"Mana Infusion",342:"Purity",343:"Craftsman",344:"Specialization",365:"World"},$={370:"Damage",371:"Damage Resistance",372:"Critical",373:"Critical Resistance",374:"Critical Damage",375:"Critical Damage Resistance",376:"Healing Boost",379:"Vitality"},W={287:"Celestial Hand",288:"Eldrytch Web",289:"Radiant Blood"},U={354:"Melee",355:"Ranged",362:"Summoning"},J={1:"Unarmed",2:"Swords",3:"Axes",4:"Maces",5:"Spears",6:"Daggers",7:"Staves",8:"Bows",9:"Crossbows",10:"Thrown",11:"Two-Handed",12:"Void",13:"War",14:"Life"},D={181:"Chess Rank",192:"Fishing Skill",199:"Total Augmentations",322:"Aetheria Slots",390:"Enlightenment"};function K(c){return c>=1001?"Master":c>=301?"Lord":c>=151?"Knight":c>=31?"Adept":"Initiate"}const d="#af7a30",u="#000022",Z=({id:c,charName:g,zIndex:L,vitals:s})=>{var _,N;const[n,O]=f.useState(null),[j,H]=f.useState(0),[m,P]=f.useState(0);f.useEffect(()=>{Y(`/character-stats/${encodeURIComponent(g)}`).then(O).catch(()=>{})},[g]);const a=t=>t!=null?Number(t).toLocaleString():"—",o=(n==null?void 0:n.stats_data)||n||{},C=o.attributes||{},A=o.skills||{},V=o.vitals||{},E=o.titles||[],h=o.properties||{},T=Object.entries(A).filter(([,t])=>(t==null?void 0:t.training)==="Specialized").sort(([t],[l])=>t.localeCompare(l)),I=Object.entries(A).filter(([,t])=>(t==null?void 0:t.training)==="Trained").sort(([t],[l])=>t.localeCompare(l)),S=Object.entries(h).filter(([t,l])=>B[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:B[parseInt(t)],uses:Number(l)})),w=Object.entries(h).filter(([t,l])=>F[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:F[parseInt(t)],uses:Number(l)})),z=Object.entries(h).filter(([t,l])=>$[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:$[parseInt(t)],value:Number(l)})),x=[];n!=null&&n.birth&&x.push({name:"Birth",value:n.birth}),(n==null?void 0:n.deaths)!=null&&x.push({name:"Deaths",value:a(n.deaths)}),Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);D[i]&&x.push({name:D[i],value:l})});const y=[];Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);U[i]&&y.push({name:U[i],value:J[Number(l)]||`Unknown (${l})`})});const b=[];Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);W[i]&&Number(l)>0&&b.push({name:W[i],rank:K(Number(l)),value:Number(l)})});const R=t=>({padding:"5px 8px",fontSize:12,fontWeight:"bold",color:"#fff",cursor:"pointer",userSelect:"none",borderTop:`2px solid ${t?d:u}`,borderLeft:`2px solid ${t?d:u}`,borderRight:`2px solid ${t?d:u}`,background:t?"rgba(0,100,0,0.4)":"transparent"}),M={background:"#000",border:`2px solid ${d}`,maxHeight:400,overflowY:"auto",overflowX:"hidden"},r={background:"#222",fontWeight:"bold",fontSize:12,padding:"2px 6px"},k={padding:"2px 6px",background:"rgba(0,100,0,0.4)",whiteSpace:"nowrap"},p={padding:"2px 6px",background:"rgba(0,0,100,0.4)",textAlign:"right",whiteSpace:"nowrap"},G={padding:"2px 6px",color:"#ccc"};return e.jsx(X,{id:c,title:`Character: ${g}`,zIndex:L,width:740,height:600,children:e.jsxs("div",{style:{background:u,color:"#fff",font:'14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif',overflowY:"auto",padding:"10px 15px 15px",flex:1},children:[e.jsxs("div",{style:{marginBottom:10},children:[e.jsxs("h1",{style:{margin:"0 0 2px",fontSize:28,fontWeight:"bold"},children:[g,e.jsx("span",{style:{fontSize:"200%",color:"#fff27f",float:"right"},children:(n==null?void 0:n.level)||""})]}),e.jsx("div",{style:{fontSize:"85%",color:"gold"},children:[n==null?void 0:n.gender,n==null?void 0:n.race].filter(Boolean).join(" ")||"Awaiting character data..."})]}),e.jsxs("div",{style:{fontSize:"85%",margin:"6px 0 10px",display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0 20px"},children:[e.jsxs("div",{children:["Total XP: ",a(n==null?void 0:n.total_xp)]}),e.jsxs("div",{style:{textAlign:"right"},children:["Unassigned XP: ",a(n==null?void 0:n.unassigned_xp)]}),e.jsxs("div",{children:["Luminance: ",(n==null?void 0:n.luminance_earned)!=null?`${a(n.luminance_earned)} / ${a(n.luminance_total)}`:"—"]}),e.jsxs("div",{style:{textAlign:"right"},children:["Deaths: ",a(n==null?void 0:n.deaths)]})]}),e.jsxs("div",{style:{display:"flex",gap:13,flexWrap:"wrap"},children:[e.jsxs("div",{style:{width:320},children:[e.jsx("div",{style:{height:30,display:"flex"},children:["Attributes","Skills","Titles"].map((t,l)=>e.jsx("div",{style:R(j===l),onClick:()=>H(l),children:t},t))}),e.jsxs("div",{style:M,children:[j===0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"6px 8px",display:"flex",flexDirection:"column",gap:8,borderBottom:`2px solid ${d}`},children:[{label:"Health",pct:(s==null?void 0:s.health_percentage)??0,cur:s==null?void 0:s.health_current,max:s==null?void 0:s.health_max,bg:"#cc3333"},{label:"Stamina",pct:(s==null?void 0:s.stamina_percentage)??0,cur:s==null?void 0:s.stamina_current,max:s==null?void 0:s.stamina_max,bg:"#ccaa33"},{label:"Mana",pct:(s==null?void 0:s.mana_percentage)??0,cur:s==null?void 0:s.mana_current,max:s==null?void 0:s.mana_max,bg:"#3366cc"}].map(t=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e.jsx("span",{style:{width:55,fontSize:12,color:"#ccc"},children:t.label}),e.jsx("div",{style:{flex:1,height:14,overflow:"hidden",position:"relative",border:`1px solid ${d}`},children:e.jsx("div",{style:{height:"100%",width:`${t.pct}%`,background:t.bg,transition:"width 0.5s ease"}})}),e.jsxs("span",{style:{width:80,textAlign:"right",fontSize:12,color:"#ccc"},children:[t.cur??"—"," / ",t.max??"—"]})]},t.label))}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Attribute"}),e.jsx("td",{style:r,children:"Creation"}),e.jsx("td",{style:r,children:"Base"})]})}),e.jsx("tbody",{children:["strength","endurance","coordination","quickness","focus","self"].map(t=>{var l,i;return e.jsxs("tr",{children:[e.jsx("td",{style:k,children:t.charAt(0).toUpperCase()+t.slice(1)}),e.jsx("td",{style:G,children:((l=C[t])==null?void 0:l.creation)??"—"}),e.jsx("td",{style:p,children:((i=C[t])==null?void 0:i.base)??"—"})]},t)})})]}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Vital"}),e.jsx("td",{style:r,children:"Base"})]})}),e.jsx("tbody",{children:["health","stamina","mana"].map(t=>{var l;return e.jsxs("tr",{children:[e.jsx("td",{style:k,children:t.charAt(0).toUpperCase()+t.slice(1)}),e.jsx("td",{style:p,children:((l=V[t])==null?void 0:l.base)??"—"})]},t)})})]}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:e.jsxs("tr",{children:[e.jsx("td",{style:k,children:"Skill Credits"}),e.jsx("td",{style:p,children:a(o.skill_credits)})]})})})]}),j===1&&e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Skill"}),e.jsx("td",{style:r,children:"Level"})]})}),e.jsxs("tbody",{children:[T.map(([t,l])=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",background:"linear-gradient(to right, #392067, #392067, black)"},children:t.replace(/_/g," ").replace(/\b\w/g,i=>i.toUpperCase())}),e.jsx("td",{style:{...p,background:"linear-gradient(to right, #392067, #392067, black)"},children:l.base})]},t)),I.map(([t,l])=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",background:"linear-gradient(to right, #0f3c3e, #0f3c3e, black)"},children:t.replace(/_/g," ").replace(/\b\w/g,i=>i.toUpperCase())}),e.jsx("td",{style:{...p,background:"linear-gradient(to right, #0f3c3e, #0f3c3e, black)"},children:l.base})]},t)),T.length===0&&I.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:2,style:{padding:10,color:"#666",fontStyle:"italic",textAlign:"center"},children:"No skill data"})})]})]}),j===2&&e.jsx("div",{style:{padding:"6px 10px",fontSize:13},children:E.length>0?E.map((t,l)=>e.jsx("div",{style:{padding:"1px 0"},children:t},l)):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No titles"})})]})]}),e.jsxs("div",{style:{width:320},children:[e.jsx("div",{style:{height:30,display:"flex"},children:["Augmentations","Ratings","Other"].map((t,l)=>e.jsx("div",{style:R(m===l),onClick:()=>P(l),children:t},t))}),e.jsxs("div",{style:M,children:[m===0&&(S.length||w.length?e.jsxs(e.Fragment,{children:[S.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Augmentations"}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Name"}),e.jsx("td",{style:r,children:"Uses"})]})}),e.jsx("tbody",{children:S.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.uses})]},t.name))})]})]}),w.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Auras"}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Name"}),e.jsx("td",{style:r,children:"Uses"})]})}),e.jsx("tbody",{children:w.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.uses})]},t.name))})]})]})]}):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No augmentation data"})),m===1&&(z.length>0?e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Rating"}),e.jsx("td",{style:r,children:"Value"})]})}),e.jsx("tbody",{children:z.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})]}):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No rating data"})),m===2&&e.jsxs("div",{children:[x.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"General"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:x.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})})]}),y.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Masteries"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:y.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})})]}),b.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Society"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:b.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsxs("td",{style:{padding:"2px 6px",textAlign:"right"},children:[t.rank," (",t.value,")"]})]},t.name))})})]}),x.length===0&&y.length===0&&b.length===0&&e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No additional data"})]})]})]})]}),(n==null?void 0:n.allegiance)&&e.jsxs("div",{style:{marginTop:5,border:`2px solid ${d}`,background:"#000"},children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Allegiance"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsxs("tbody",{children:[n.allegiance.name&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc",width:100},children:"Name"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.name})]}),((_=n.allegiance.monarch)==null?void 0:_.name)&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Monarch"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.monarch.name})]}),((N=n.allegiance.patron)==null?void 0:N.name)&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Patron"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.patron.name})]}),n.allegiance.rank!=null&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Rank"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.rank})]}),n.allegiance.followers!=null&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Followers"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.followers})]})]})})]})]})})};export{Z as CharacterWindow}; +import{r as f,a as Y,j as e,D as X}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const B={218:"Reinforcement of the Lugians",219:"Bleeargh's Fortitude",220:"Oswald's Enhancement",221:"Siraluun's Blessing",222:"Enduring Calm",223:"Steadfast Will",224:"Ciandra's Essence",225:"Yoshi's Essence",226:"Jibril's Essence",227:"Celdiseth's Essence",228:"Koga's Essence",229:"Shadow of the Seventh Mule",230:"Might of the Seventh Mule",231:"Clutch of the Miser",232:"Enduring Enchantment",233:"Critical Protection",234:"Quick Learner",235:"Ciandra's Fortune",236:"Charmed Smith",237:"Innate Renewal",238:"Archmage's Endurance",239:"Enhancement of the Blade Turner",240:"Enhancement of the Arrow Turner",241:"Enhancement of the Mace Turner",242:"Caustic Enhancement",243:"Fierce Impaler",244:"Iron Skin of the Invincible",245:"Eye of the Remorseless",246:"Hand of the Remorseless",294:"Master of the Steel Circle",295:"Master of the Focused Eye",296:"Master of the Five Fold Path",297:"Frenzy of the Slayer",298:"Iron Skin of the Invincible",299:"Jack of All Trades",300:"Infused Void Magic",301:"Infused War Magic",302:"Infused Life Magic",309:"Infused Item Magic",310:"Infused Creature Magic",326:"Clutch of the Miser",328:"Enduring Enchantment"},F={333:"Valor / Destruction",334:"Protection",335:"Glory / Retribution",336:"Temperance / Hardening",338:"Aetheric Vision",339:"Mana Flow",340:"Mana Infusion",342:"Purity",343:"Craftsman",344:"Specialization",365:"World"},$={370:"Damage",371:"Damage Resistance",372:"Critical",373:"Critical Resistance",374:"Critical Damage",375:"Critical Damage Resistance",376:"Healing Boost",379:"Vitality"},W={287:"Celestial Hand",288:"Eldrytch Web",289:"Radiant Blood"},U={354:"Melee",355:"Ranged",362:"Summoning"},J={1:"Unarmed",2:"Swords",3:"Axes",4:"Maces",5:"Spears",6:"Daggers",7:"Staves",8:"Bows",9:"Crossbows",10:"Thrown",11:"Two-Handed",12:"Void",13:"War",14:"Life"},D={181:"Chess Rank",192:"Fishing Skill",199:"Total Augmentations",322:"Aetheria Slots",390:"Enlightenment"};function K(c){return c>=1001?"Master":c>=301?"Lord":c>=151?"Knight":c>=31?"Adept":"Initiate"}const d="#af7a30",u="#000022",Z=({id:c,charName:g,zIndex:L,vitals:s})=>{var _,N;const[n,O]=f.useState(null),[j,H]=f.useState(0),[m,P]=f.useState(0);f.useEffect(()=>{Y(`/character-stats/${encodeURIComponent(g)}`).then(O).catch(()=>{})},[g]);const a=t=>t!=null?Number(t).toLocaleString():"—",o=(n==null?void 0:n.stats_data)||n||{},C=o.attributes||{},A=o.skills||{},V=o.vitals||{},E=o.titles||[],h=o.properties||{},T=Object.entries(A).filter(([,t])=>(t==null?void 0:t.training)==="Specialized").sort(([t],[l])=>t.localeCompare(l)),I=Object.entries(A).filter(([,t])=>(t==null?void 0:t.training)==="Trained").sort(([t],[l])=>t.localeCompare(l)),S=Object.entries(h).filter(([t,l])=>B[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:B[parseInt(t)],uses:Number(l)})),w=Object.entries(h).filter(([t,l])=>F[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:F[parseInt(t)],uses:Number(l)})),z=Object.entries(h).filter(([t,l])=>$[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:$[parseInt(t)],value:Number(l)})),x=[];n!=null&&n.birth&&x.push({name:"Birth",value:n.birth}),(n==null?void 0:n.deaths)!=null&&x.push({name:"Deaths",value:a(n.deaths)}),Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);D[i]&&x.push({name:D[i],value:l})});const y=[];Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);U[i]&&y.push({name:U[i],value:J[Number(l)]||`Unknown (${l})`})});const b=[];Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);W[i]&&Number(l)>0&&b.push({name:W[i],rank:K(Number(l)),value:Number(l)})});const R=t=>({padding:"5px 8px",fontSize:12,fontWeight:"bold",color:"#fff",cursor:"pointer",userSelect:"none",borderTop:`2px solid ${t?d:u}`,borderLeft:`2px solid ${t?d:u}`,borderRight:`2px solid ${t?d:u}`,background:t?"rgba(0,100,0,0.4)":"transparent"}),M={background:"#000",border:`2px solid ${d}`,maxHeight:400,overflowY:"auto",overflowX:"hidden"},r={background:"#222",fontWeight:"bold",fontSize:12,padding:"2px 6px"},k={padding:"2px 6px",background:"rgba(0,100,0,0.4)",whiteSpace:"nowrap"},p={padding:"2px 6px",background:"rgba(0,0,100,0.4)",textAlign:"right",whiteSpace:"nowrap"},G={padding:"2px 6px",color:"#ccc"};return e.jsx(X,{id:c,title:`Character: ${g}`,zIndex:L,width:740,height:600,children:e.jsxs("div",{style:{background:u,color:"#fff",font:'14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif',overflowY:"auto",padding:"10px 15px 15px",flex:1},children:[e.jsxs("div",{style:{marginBottom:10},children:[e.jsxs("h1",{style:{margin:"0 0 2px",fontSize:28,fontWeight:"bold"},children:[g,e.jsx("span",{style:{fontSize:"200%",color:"#fff27f",float:"right"},children:(n==null?void 0:n.level)||""})]}),e.jsx("div",{style:{fontSize:"85%",color:"gold"},children:[n==null?void 0:n.gender,n==null?void 0:n.race].filter(Boolean).join(" ")||"Awaiting character data..."})]}),e.jsxs("div",{style:{fontSize:"85%",margin:"6px 0 10px",display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0 20px"},children:[e.jsxs("div",{children:["Total XP: ",a(n==null?void 0:n.total_xp)]}),e.jsxs("div",{style:{textAlign:"right"},children:["Unassigned XP: ",a(n==null?void 0:n.unassigned_xp)]}),e.jsxs("div",{children:["Luminance: ",(n==null?void 0:n.luminance_earned)!=null?`${a(n.luminance_earned)} / ${a(n.luminance_total)}`:"—"]}),e.jsxs("div",{style:{textAlign:"right"},children:["Deaths: ",a(n==null?void 0:n.deaths)]})]}),e.jsxs("div",{style:{display:"flex",gap:13,flexWrap:"wrap"},children:[e.jsxs("div",{style:{width:320},children:[e.jsx("div",{style:{height:30,display:"flex"},children:["Attributes","Skills","Titles"].map((t,l)=>e.jsx("div",{style:R(j===l),onClick:()=>H(l),children:t},t))}),e.jsxs("div",{style:M,children:[j===0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"6px 8px",display:"flex",flexDirection:"column",gap:8,borderBottom:`2px solid ${d}`},children:[{label:"Health",pct:(s==null?void 0:s.health_percentage)??0,cur:s==null?void 0:s.health_current,max:s==null?void 0:s.health_max,bg:"#cc3333"},{label:"Stamina",pct:(s==null?void 0:s.stamina_percentage)??0,cur:s==null?void 0:s.stamina_current,max:s==null?void 0:s.stamina_max,bg:"#ccaa33"},{label:"Mana",pct:(s==null?void 0:s.mana_percentage)??0,cur:s==null?void 0:s.mana_current,max:s==null?void 0:s.mana_max,bg:"#3366cc"}].map(t=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e.jsx("span",{style:{width:55,fontSize:12,color:"#ccc"},children:t.label}),e.jsx("div",{style:{flex:1,height:14,overflow:"hidden",position:"relative",border:`1px solid ${d}`},children:e.jsx("div",{style:{height:"100%",width:`${t.pct}%`,background:t.bg,transition:"width 0.5s ease"}})}),e.jsxs("span",{style:{width:80,textAlign:"right",fontSize:12,color:"#ccc"},children:[t.cur??"—"," / ",t.max??"—"]})]},t.label))}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Attribute"}),e.jsx("td",{style:r,children:"Creation"}),e.jsx("td",{style:r,children:"Base"})]})}),e.jsx("tbody",{children:["strength","endurance","coordination","quickness","focus","self"].map(t=>{var l,i;return e.jsxs("tr",{children:[e.jsx("td",{style:k,children:t.charAt(0).toUpperCase()+t.slice(1)}),e.jsx("td",{style:G,children:((l=C[t])==null?void 0:l.creation)??"—"}),e.jsx("td",{style:p,children:((i=C[t])==null?void 0:i.base)??"—"})]},t)})})]}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Vital"}),e.jsx("td",{style:r,children:"Base"})]})}),e.jsx("tbody",{children:["health","stamina","mana"].map(t=>{var l;return e.jsxs("tr",{children:[e.jsx("td",{style:k,children:t.charAt(0).toUpperCase()+t.slice(1)}),e.jsx("td",{style:p,children:((l=V[t])==null?void 0:l.base)??"—"})]},t)})})]}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:e.jsxs("tr",{children:[e.jsx("td",{style:k,children:"Skill Credits"}),e.jsx("td",{style:p,children:a(o.skill_credits)})]})})})]}),j===1&&e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Skill"}),e.jsx("td",{style:r,children:"Level"})]})}),e.jsxs("tbody",{children:[T.map(([t,l])=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",background:"linear-gradient(to right, #392067, #392067, black)"},children:t.replace(/_/g," ").replace(/\b\w/g,i=>i.toUpperCase())}),e.jsx("td",{style:{...p,background:"linear-gradient(to right, #392067, #392067, black)"},children:l.base})]},t)),I.map(([t,l])=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",background:"linear-gradient(to right, #0f3c3e, #0f3c3e, black)"},children:t.replace(/_/g," ").replace(/\b\w/g,i=>i.toUpperCase())}),e.jsx("td",{style:{...p,background:"linear-gradient(to right, #0f3c3e, #0f3c3e, black)"},children:l.base})]},t)),T.length===0&&I.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:2,style:{padding:10,color:"#666",fontStyle:"italic",textAlign:"center"},children:"No skill data"})})]})]}),j===2&&e.jsx("div",{style:{padding:"6px 10px",fontSize:13},children:E.length>0?E.map((t,l)=>e.jsx("div",{style:{padding:"1px 0"},children:t},l)):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No titles"})})]})]}),e.jsxs("div",{style:{width:320},children:[e.jsx("div",{style:{height:30,display:"flex"},children:["Augmentations","Ratings","Other"].map((t,l)=>e.jsx("div",{style:R(m===l),onClick:()=>P(l),children:t},t))}),e.jsxs("div",{style:M,children:[m===0&&(S.length||w.length?e.jsxs(e.Fragment,{children:[S.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Augmentations"}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Name"}),e.jsx("td",{style:r,children:"Uses"})]})}),e.jsx("tbody",{children:S.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.uses})]},t.name))})]})]}),w.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Auras"}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Name"}),e.jsx("td",{style:r,children:"Uses"})]})}),e.jsx("tbody",{children:w.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.uses})]},t.name))})]})]})]}):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No augmentation data"})),m===1&&(z.length>0?e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Rating"}),e.jsx("td",{style:r,children:"Value"})]})}),e.jsx("tbody",{children:z.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})]}):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No rating data"})),m===2&&e.jsxs("div",{children:[x.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"General"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:x.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})})]}),y.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Masteries"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:y.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})})]}),b.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Society"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:b.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsxs("td",{style:{padding:"2px 6px",textAlign:"right"},children:[t.rank," (",t.value,")"]})]},t.name))})})]}),x.length===0&&y.length===0&&b.length===0&&e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No additional data"})]})]})]})]}),(n==null?void 0:n.allegiance)&&e.jsxs("div",{style:{marginTop:5,border:`2px solid ${d}`,background:"#000"},children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Allegiance"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsxs("tbody",{children:[n.allegiance.name&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc",width:100},children:"Name"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.name})]}),((_=n.allegiance.monarch)==null?void 0:_.name)&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Monarch"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.monarch.name})]}),((N=n.allegiance.patron)==null?void 0:N.name)&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Patron"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.patron.name})]}),n.allegiance.rank!=null&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Rank"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.rank})]}),n.allegiance.followers!=null&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Followers"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.followers})]})]})})]})]})})};export{Z as CharacterWindow}; diff --git a/static/v2/assets/CombatPickerWindow-2QrIZhzN.js b/static/assets/CombatPickerWindow-CWXujjNT.js similarity index 92% rename from static/v2/assets/CombatPickerWindow-2QrIZhzN.js rename to static/assets/CombatPickerWindow-CWXujjNT.js index c8199dc5..e5d33139 100644 --- a/static/v2/assets/CombatPickerWindow-2QrIZhzN.js +++ b/static/assets/CombatPickerWindow-CWXujjNT.js @@ -1 +1 @@ -import{u as c,j as r,D as d}from"./index-CLqPZs7-.js";import"./react-DlyoauG8.js";const p=({id:n,zIndex:i,characters:a})=>{const{openWindow:s}=c(),e=Array.from(a.keys()).sort();return r.jsx(d,{id:n,title:"Combat Stats — Select Character",zIndex:i,width:300,height:400,children:r.jsx("div",{style:{flex:1,overflowY:"auto",padding:6},children:e.length===0?r.jsx("div",{style:{padding:12,color:"#666",textAlign:"center",fontSize:"0.8rem"},children:"No characters online"}):e.map(o=>r.jsx("div",{style:{padding:"5px 8px",cursor:"pointer",borderBottom:"1px solid #222",color:"#ccc",fontSize:"0.82rem"},onMouseEnter:t=>t.currentTarget.style.background="#2a2a2a",onMouseLeave:t=>t.currentTarget.style.background="",onClick:()=>s(`combat-${o}`,`Combat: ${o}`,o),children:o},o))})})};export{p as CombatPickerWindow}; +import{u as c,j as r,D as d}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const p=({id:n,zIndex:i,characters:a})=>{const{openWindow:s}=c(),e=Array.from(a.keys()).sort();return r.jsx(d,{id:n,title:"Combat Stats — Select Character",zIndex:i,width:300,height:400,children:r.jsx("div",{style:{flex:1,overflowY:"auto",padding:6},children:e.length===0?r.jsx("div",{style:{padding:12,color:"#666",textAlign:"center",fontSize:"0.8rem"},children:"No characters online"}):e.map(o=>r.jsx("div",{style:{padding:"5px 8px",cursor:"pointer",borderBottom:"1px solid #222",color:"#ccc",fontSize:"0.82rem"},onMouseEnter:t=>t.currentTarget.style.background="#2a2a2a",onMouseLeave:t=>t.currentTarget.style.background="",onClick:()=>s(`combat-${o}`,`Combat: ${o}`,o),children:o},o))})})};export{p as CombatPickerWindow}; diff --git a/static/v2/assets/CombatStatsWindow-CJo0cOU-.js b/static/assets/CombatStatsWindow-Js_v2JL3.js similarity index 99% rename from static/v2/assets/CombatStatsWindow-CJo0cOU-.js rename to static/assets/CombatStatsWindow-Js_v2JL3.js index c8fc1dae..03bc5630 100644 --- a/static/v2/assets/CombatStatsWindow-CJo0cOU-.js +++ b/static/assets/CombatStatsWindow-Js_v2JL3.js @@ -1 +1 @@ -import{r as A,a as B,j as t,D as L}from"./index-CLqPZs7-.js";import"./react-DlyoauG8.js";const w=["Typeless","Slash","Pierce","Bludgeon","Fire","Cold","Acid","Electric"];function _(c,a,x){var o,m,f,k;return(((m=(o=c==null?void 0:c[a])==null?void 0:o[x])==null?void 0:m.total_normal_damage)??0)+(((k=(f=c==null?void 0:c[a])==null?void 0:f[x])==null?void 0:k.total_crit_damage)??0)}function G(c){let a={attacks:0,failed:0,crits:0,normalDmg:0,maxNormal:0,critDmg:0,maxCrit:0};if(!c)return a;for(const x of Object.values(c))for(const o of Object.values(x))a.attacks+=o.total_attacks??0,a.failed+=o.failed_attacks??0,a.crits+=o.crits??0,a.normalDmg+=o.total_normal_damage??0,a.maxNormal=Math.max(a.maxNormal,o.max_normal_damage??0),a.critDmg+=o.total_crit_damage??0,a.maxCrit=Math.max(a.maxCrit,o.max_crit_damage??0);return a}function F(c,a){let x={attacks:0,failed:0};const o=c==null?void 0:c[a];if(!o)return x;for(const m of Object.values(o))x.attacks+=m.total_attacks??0,x.failed+=m.failed_attacks??0;return x}const Y=({id:c,charName:a,zIndex:x})=>{const[o,m]=A.useState(null),[f,k]=A.useState("session"),[h,R]=A.useState(null);A.useEffect(()=>{B(`/combat-stats/${encodeURIComponent(a)}`).then(m).catch(()=>{});const e=setInterval(()=>{B(`/combat-stats/${encodeURIComponent(a)}`).then(m).catch(()=>{})},1e4);return()=>clearInterval(e)},[a]);const p=o==null?void 0:o[f],j=(p==null?void 0:p.monsters)??{},S=Object.keys(j).filter(e=>e!=="__cloak_surges__").sort(),n=A.useMemo(()=>{let e={},l={},v=0,$=0;const T=h?[j[h]].filter(Boolean):S.map(u=>j[u]);for(const u of T)if(u){for(const[g,D]of Object.entries(u.offense??{})){e[g]||(e[g]={});for(const[y,E]of Object.entries(D)){e[g][y]||(e[g][y]={total_attacks:0,failed_attacks:0,crits:0,total_normal_damage:0,max_normal_damage:0,total_crit_damage:0,max_crit_damage:0});const i=e[g][y],d=E;i.total_attacks+=d.total_attacks??0,i.failed_attacks+=d.failed_attacks??0,i.crits+=d.crits??0,i.total_normal_damage+=d.total_normal_damage??0,i.max_normal_damage=Math.max(i.max_normal_damage,d.max_normal_damage??0),i.total_crit_damage+=d.total_crit_damage??0,i.max_crit_damage=Math.max(i.max_crit_damage,d.max_crit_damage??0)}}for(const[g,D]of Object.entries(u.defense??{})){l[g]||(l[g]={});for(const[y,E]of Object.entries(D)){l[g][y]||(l[g][y]={total_attacks:0,failed_attacks:0,crits:0,total_normal_damage:0,max_normal_damage:0,total_crit_damage:0,max_crit_damage:0});const i=l[g][y],d=E;i.total_attacks+=d.total_attacks??0,i.failed_attacks+=d.failed_attacks??0,i.total_normal_damage+=d.total_normal_damage??0,i.max_normal_damage=Math.max(i.max_normal_damage,d.max_normal_damage??0),i.total_crit_damage+=d.total_crit_damage??0,i.max_crit_damage=Math.max(i.max_crit_damage,d.max_crit_damage??0)}}v+=u.aetheria_surges??0,$+=u.cloak_surges??0}return j.__cloak_surges__&&!h&&($+=j.__cloak_surges__.cloak_surges??0),{offense:e,defense:l,aeth:v,cloak:$}},[j,S,h]),r=G(n.offense),b=F(n.defense,"MeleeMissile"),M=F(n.defense,"Magic");r.attacks>0&&((r.attacks-r.failed)/r.attacks*100).toFixed(0);const N=b.attacks>0?(b.failed/b.attacks*100).toFixed(0):"0",W=M.attacks>0?(M.failed/M.attacks*100).toFixed(0):"0",C=r.attacks-r.failed,O=C-r.crits,z=O>0?Math.round(r.normalDmg/O):0;r.crits>0&&Math.round(r.critDmg/r.crits);const I=C>0?(r.crits/C*100).toFixed(1):"0",s=e=>e===0?"":e.toLocaleString();return t.jsxs(L,{id:c,title:`Combat: ${a}`,zIndex:x,width:640,height:520,children:[t.jsxs("div",{style:{display:"flex",gap:4,padding:"4px 8px",borderBottom:"1px solid #333",alignItems:"center"},children:[t.jsx("button",{className:`ml-stats-range-btn ${f==="session"?"active":""}`,onClick:()=>k("session"),children:"Session"}),t.jsx("button",{className:`ml-stats-range-btn ${f==="lifetime"?"active":""}`,onClick:()=>k("lifetime"),children:"Lifetime"}),t.jsx("div",{style:{flex:1}}),f==="session"&&t.jsx("button",{style:{fontSize:"0.6rem",padding:"2px 8px",background:"rgba(204,68,68,0.15)",color:"#c66",border:"1px solid rgba(204,68,68,0.3)",borderRadius:3,cursor:"pointer"},onClick:()=>{confirm("Clear current session stats?")&&m(e=>e&&{...e,session:{total_damage_given:0,total_damage_received:0,total_kills:0,total_aetheria_surges:0,total_cloak_surges:0,monsters:{}}})},children:"Clear Session"})]}),t.jsxs("div",{style:{display:"flex",flex:1,overflow:"hidden"},children:[t.jsxs("div",{style:{width:240,borderRight:"1px solid #333",overflowY:"auto",fontSize:"0.72rem"},children:[t.jsxs("div",{style:{display:"flex",padding:"3px 6px",borderBottom:"1px solid #333",color:"#777",fontSize:"0.65rem",fontWeight:600},children:[t.jsx("span",{style:{width:14}}),t.jsx("span",{style:{flex:1},children:"Monster"}),t.jsx("span",{style:{width:40,textAlign:"right"},children:"Kills"}),t.jsx("span",{style:{width:55,textAlign:"right"},children:"Dmg"})]}),t.jsxs("div",{style:{display:"flex",padding:"3px 6px",cursor:"pointer",background:h===null?"#2a3a4a":"",borderBottom:"1px solid #222",color:"#ddd"},onClick:()=>R(null),children:[t.jsx("span",{style:{width:14,color:"#888"},children:h===null?"*":""}),t.jsx("span",{style:{flex:1},children:"All"}),t.jsx("span",{style:{width:40,textAlign:"right"},children:s((p==null?void 0:p.total_kills)??0)}),t.jsx("span",{style:{width:55,textAlign:"right"},children:s((p==null?void 0:p.total_damage_given)??0)})]}),S.map(e=>{const l=j[e];return t.jsxs("div",{style:{display:"flex",padding:"2px 6px",cursor:"pointer",background:h===e?"#2a3a4a":"",borderBottom:"1px solid #1a1a1a",color:"#ccc"},onClick:()=>R(e),children:[t.jsx("span",{style:{width:14,color:"#888"},children:h===e?"*":""}),t.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),t.jsx("span",{style:{width:40,textAlign:"right"},children:s(l.kill_count)}),t.jsx("span",{style:{width:55,textAlign:"right"},children:s(l.damage_given)})]},e)})]}),t.jsx("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.72rem"},children:t.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[t.jsx("thead",{children:t.jsxs("tr",{style:{color:"#777",fontSize:"0.65rem"},children:[t.jsx("th",{style:{textAlign:"left",padding:"1px 4px"}}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Given M/M"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Given Mag"}),t.jsx("th",{style:{width:4}}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Recv M/M"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Recv Mag"}),t.jsx("th",{style:{width:4}}),t.jsx("th",{style:{textAlign:"left",padding:"1px 3px"},children:"Stats"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"}})]})}),t.jsxs("tbody",{children:[w.map((e,l)=>{const v=[["Evades",b.attacks>0?`${s(b.attacks)} (${N}%)`:""],["Resists",M.attacks>0?`${s(M.attacks)} (${W}%)`:""],["A.Surges",n.aeth>0?`${s(n.aeth)}`:""],["C.Surges",n.cloak>0?`${s(n.cloak)}`:""],["",""],["",""],["Av/Mx",z>0?`${s(z)} / ${s(r.maxNormal)}`:""],["Crits",r.crits>0?`${s(r.crits)} (${I}%)`:""]][l]??["",""];return t.jsxs("tr",{children:[t.jsx("td",{style:{padding:"1px 4px",color:"#888"},children:e}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.offense,"MeleeMissile",e))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.offense,"Magic",e))}),t.jsx("td",{}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.defense,"MeleeMissile",e))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.defense,"Magic",e))}),t.jsx("td",{}),t.jsx("td",{style:{padding:"1px 3px",color:"#777",fontWeight:600,fontSize:"0.65rem"},children:v[0]}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:v[1]})]},e)}),t.jsx("tr",{children:t.jsx("td",{colSpan:9,style:{height:4}})}),t.jsxs("tr",{children:[t.jsx("td",{style:{padding:"1px 4px",color:"#888",fontWeight:600},children:"Total"}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.offense,"MeleeMissile",l),0))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.offense,"Magic",l),0))}),t.jsx("td",{}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.defense,"MeleeMissile",l),0))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.defense,"Magic",l),0))}),t.jsx("td",{}),t.jsx("td",{style:{padding:"1px 3px",color:"#777",fontWeight:600,fontSize:"0.65rem"},children:"Total"}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(r.normalDmg+r.critDmg)})]})]})]})})]})]})};export{Y as CombatStatsWindow}; +import{r as A,a as B,j as t,D as L}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const w=["Typeless","Slash","Pierce","Bludgeon","Fire","Cold","Acid","Electric"];function _(c,a,x){var o,m,f,k;return(((m=(o=c==null?void 0:c[a])==null?void 0:o[x])==null?void 0:m.total_normal_damage)??0)+(((k=(f=c==null?void 0:c[a])==null?void 0:f[x])==null?void 0:k.total_crit_damage)??0)}function G(c){let a={attacks:0,failed:0,crits:0,normalDmg:0,maxNormal:0,critDmg:0,maxCrit:0};if(!c)return a;for(const x of Object.values(c))for(const o of Object.values(x))a.attacks+=o.total_attacks??0,a.failed+=o.failed_attacks??0,a.crits+=o.crits??0,a.normalDmg+=o.total_normal_damage??0,a.maxNormal=Math.max(a.maxNormal,o.max_normal_damage??0),a.critDmg+=o.total_crit_damage??0,a.maxCrit=Math.max(a.maxCrit,o.max_crit_damage??0);return a}function F(c,a){let x={attacks:0,failed:0};const o=c==null?void 0:c[a];if(!o)return x;for(const m of Object.values(o))x.attacks+=m.total_attacks??0,x.failed+=m.failed_attacks??0;return x}const Y=({id:c,charName:a,zIndex:x})=>{const[o,m]=A.useState(null),[f,k]=A.useState("session"),[h,R]=A.useState(null);A.useEffect(()=>{B(`/combat-stats/${encodeURIComponent(a)}`).then(m).catch(()=>{});const e=setInterval(()=>{B(`/combat-stats/${encodeURIComponent(a)}`).then(m).catch(()=>{})},1e4);return()=>clearInterval(e)},[a]);const p=o==null?void 0:o[f],j=(p==null?void 0:p.monsters)??{},S=Object.keys(j).filter(e=>e!=="__cloak_surges__").sort(),n=A.useMemo(()=>{let e={},l={},v=0,$=0;const T=h?[j[h]].filter(Boolean):S.map(u=>j[u]);for(const u of T)if(u){for(const[g,D]of Object.entries(u.offense??{})){e[g]||(e[g]={});for(const[y,E]of Object.entries(D)){e[g][y]||(e[g][y]={total_attacks:0,failed_attacks:0,crits:0,total_normal_damage:0,max_normal_damage:0,total_crit_damage:0,max_crit_damage:0});const i=e[g][y],d=E;i.total_attacks+=d.total_attacks??0,i.failed_attacks+=d.failed_attacks??0,i.crits+=d.crits??0,i.total_normal_damage+=d.total_normal_damage??0,i.max_normal_damage=Math.max(i.max_normal_damage,d.max_normal_damage??0),i.total_crit_damage+=d.total_crit_damage??0,i.max_crit_damage=Math.max(i.max_crit_damage,d.max_crit_damage??0)}}for(const[g,D]of Object.entries(u.defense??{})){l[g]||(l[g]={});for(const[y,E]of Object.entries(D)){l[g][y]||(l[g][y]={total_attacks:0,failed_attacks:0,crits:0,total_normal_damage:0,max_normal_damage:0,total_crit_damage:0,max_crit_damage:0});const i=l[g][y],d=E;i.total_attacks+=d.total_attacks??0,i.failed_attacks+=d.failed_attacks??0,i.total_normal_damage+=d.total_normal_damage??0,i.max_normal_damage=Math.max(i.max_normal_damage,d.max_normal_damage??0),i.total_crit_damage+=d.total_crit_damage??0,i.max_crit_damage=Math.max(i.max_crit_damage,d.max_crit_damage??0)}}v+=u.aetheria_surges??0,$+=u.cloak_surges??0}return j.__cloak_surges__&&!h&&($+=j.__cloak_surges__.cloak_surges??0),{offense:e,defense:l,aeth:v,cloak:$}},[j,S,h]),r=G(n.offense),b=F(n.defense,"MeleeMissile"),M=F(n.defense,"Magic");r.attacks>0&&((r.attacks-r.failed)/r.attacks*100).toFixed(0);const N=b.attacks>0?(b.failed/b.attacks*100).toFixed(0):"0",W=M.attacks>0?(M.failed/M.attacks*100).toFixed(0):"0",C=r.attacks-r.failed,O=C-r.crits,z=O>0?Math.round(r.normalDmg/O):0;r.crits>0&&Math.round(r.critDmg/r.crits);const I=C>0?(r.crits/C*100).toFixed(1):"0",s=e=>e===0?"":e.toLocaleString();return t.jsxs(L,{id:c,title:`Combat: ${a}`,zIndex:x,width:640,height:520,children:[t.jsxs("div",{style:{display:"flex",gap:4,padding:"4px 8px",borderBottom:"1px solid #333",alignItems:"center"},children:[t.jsx("button",{className:`ml-stats-range-btn ${f==="session"?"active":""}`,onClick:()=>k("session"),children:"Session"}),t.jsx("button",{className:`ml-stats-range-btn ${f==="lifetime"?"active":""}`,onClick:()=>k("lifetime"),children:"Lifetime"}),t.jsx("div",{style:{flex:1}}),f==="session"&&t.jsx("button",{style:{fontSize:"0.6rem",padding:"2px 8px",background:"rgba(204,68,68,0.15)",color:"#c66",border:"1px solid rgba(204,68,68,0.3)",borderRadius:3,cursor:"pointer"},onClick:()=>{confirm("Clear current session stats?")&&m(e=>e&&{...e,session:{total_damage_given:0,total_damage_received:0,total_kills:0,total_aetheria_surges:0,total_cloak_surges:0,monsters:{}}})},children:"Clear Session"})]}),t.jsxs("div",{style:{display:"flex",flex:1,overflow:"hidden"},children:[t.jsxs("div",{style:{width:240,borderRight:"1px solid #333",overflowY:"auto",fontSize:"0.72rem"},children:[t.jsxs("div",{style:{display:"flex",padding:"3px 6px",borderBottom:"1px solid #333",color:"#777",fontSize:"0.65rem",fontWeight:600},children:[t.jsx("span",{style:{width:14}}),t.jsx("span",{style:{flex:1},children:"Monster"}),t.jsx("span",{style:{width:40,textAlign:"right"},children:"Kills"}),t.jsx("span",{style:{width:55,textAlign:"right"},children:"Dmg"})]}),t.jsxs("div",{style:{display:"flex",padding:"3px 6px",cursor:"pointer",background:h===null?"#2a3a4a":"",borderBottom:"1px solid #222",color:"#ddd"},onClick:()=>R(null),children:[t.jsx("span",{style:{width:14,color:"#888"},children:h===null?"*":""}),t.jsx("span",{style:{flex:1},children:"All"}),t.jsx("span",{style:{width:40,textAlign:"right"},children:s((p==null?void 0:p.total_kills)??0)}),t.jsx("span",{style:{width:55,textAlign:"right"},children:s((p==null?void 0:p.total_damage_given)??0)})]}),S.map(e=>{const l=j[e];return t.jsxs("div",{style:{display:"flex",padding:"2px 6px",cursor:"pointer",background:h===e?"#2a3a4a":"",borderBottom:"1px solid #1a1a1a",color:"#ccc"},onClick:()=>R(e),children:[t.jsx("span",{style:{width:14,color:"#888"},children:h===e?"*":""}),t.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),t.jsx("span",{style:{width:40,textAlign:"right"},children:s(l.kill_count)}),t.jsx("span",{style:{width:55,textAlign:"right"},children:s(l.damage_given)})]},e)})]}),t.jsx("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.72rem"},children:t.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[t.jsx("thead",{children:t.jsxs("tr",{style:{color:"#777",fontSize:"0.65rem"},children:[t.jsx("th",{style:{textAlign:"left",padding:"1px 4px"}}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Given M/M"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Given Mag"}),t.jsx("th",{style:{width:4}}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Recv M/M"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Recv Mag"}),t.jsx("th",{style:{width:4}}),t.jsx("th",{style:{textAlign:"left",padding:"1px 3px"},children:"Stats"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"}})]})}),t.jsxs("tbody",{children:[w.map((e,l)=>{const v=[["Evades",b.attacks>0?`${s(b.attacks)} (${N}%)`:""],["Resists",M.attacks>0?`${s(M.attacks)} (${W}%)`:""],["A.Surges",n.aeth>0?`${s(n.aeth)}`:""],["C.Surges",n.cloak>0?`${s(n.cloak)}`:""],["",""],["",""],["Av/Mx",z>0?`${s(z)} / ${s(r.maxNormal)}`:""],["Crits",r.crits>0?`${s(r.crits)} (${I}%)`:""]][l]??["",""];return t.jsxs("tr",{children:[t.jsx("td",{style:{padding:"1px 4px",color:"#888"},children:e}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.offense,"MeleeMissile",e))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.offense,"Magic",e))}),t.jsx("td",{}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.defense,"MeleeMissile",e))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.defense,"Magic",e))}),t.jsx("td",{}),t.jsx("td",{style:{padding:"1px 3px",color:"#777",fontWeight:600,fontSize:"0.65rem"},children:v[0]}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:v[1]})]},e)}),t.jsx("tr",{children:t.jsx("td",{colSpan:9,style:{height:4}})}),t.jsxs("tr",{children:[t.jsx("td",{style:{padding:"1px 4px",color:"#888",fontWeight:600},children:"Total"}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.offense,"MeleeMissile",l),0))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.offense,"Magic",l),0))}),t.jsx("td",{}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.defense,"MeleeMissile",l),0))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.defense,"Magic",l),0))}),t.jsx("td",{}),t.jsx("td",{style:{padding:"1px 3px",color:"#777",fontWeight:600,fontSize:"0.65rem"},children:"Total"}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(r.normalDmg+r.critDmg)})]})]})]})})]})]})};export{Y as CombatStatsWindow}; diff --git a/static/v2/assets/DashboardView-BWfpkQBB.js b/static/assets/DashboardView-B8znzNXc.js similarity index 99% rename from static/v2/assets/DashboardView-BWfpkQBB.js rename to static/assets/DashboardView-B8znzNXc.js index 12dc7a15..39f2a536 100644 --- a/static/v2/assets/DashboardView-BWfpkQBB.js +++ b/static/assets/DashboardView-B8znzNXc.js @@ -1,4 +1,4 @@ -import{j as E,R as A,r as N,a as eO}from"./index-CLqPZs7-.js";import{c as hi,g as ue}from"./react-DlyoauG8.js";const tO=({children:e})=>E.jsxs("div",{className:"dashboard",children:[E.jsx("header",{className:"dashboard-header",children:E.jsx("h1",{className:"dashboard-title",children:"Mosswart Overlord"})}),E.jsx("main",{className:"dashboard-main",children:e})]}),rO=({activeChars:e,totalKills:t,totalRares:r,serverHealth:n})=>{var o;const i=((o=n==null?void 0:n.status)==null?void 0:o.toLowerCase())??"unknown",a=i==="online"||i==="up";return E.jsxs("div",{className:"global-stats",children:[E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:e}),E.jsx("span",{className:"global-label",children:"Active Characters"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:t.toLocaleString()}),E.jsx("span",{className:"global-label",children:"Total Kills"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:r}),E.jsx("span",{className:"global-label",children:"Total Rares"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:`server-dot ${a?"online":"offline"}`}),E.jsxs("span",{className:"global-value",children:[(n==null?void 0:n.latency_ms)??"--","ms"]}),E.jsx("span",{className:"global-label",children:"Coldeve"})]})]})},Pi=A.memo(({label:e,current:t,max:r,color:n,bgColor:i})=>{const a=r>0?Math.min(100,Math.max(0,t/r*100)):0;return E.jsxs("div",{className:"vital-bar",children:[E.jsx("span",{className:"vital-label",children:e}),E.jsx("div",{className:"vital-track",style:{backgroundColor:i},children:E.jsx("div",{className:"vital-fill",style:{width:`${a}%`,background:n}})}),E.jsxs("span",{className:"vital-text",children:[t,"/",r]})]})});Pi.displayName="VitalBar";const nO=e=>{const t=(e||"idle").toLowerCase();return t==="combat"||t==="hunt"?{label:t==="combat"?"Combat":"Hunt",cls:"badge-combat"}:t==="nav"||t==="navigation"?{label:"Nav",cls:"badge-other"}:t==="default"||t==="idle"||t===""?{label:"Idle",cls:"badge-idle"}:{label:e,cls:"badge-other"}},Nb=A.memo(({character:e})=>{var u,s,c,f,l,h;const[t,r]=N.useState(!1),{telemetry:n,vitals:i,combat:a}=e,o=nO((n==null?void 0:n.vt_state)??"");return E.jsxs("div",{className:"char-card",onClick:()=>r(!t),children:[E.jsxs("div",{className:"char-header",children:[E.jsx("span",{className:"char-name",children:e.name}),E.jsx("span",{className:`char-badge ${o.cls}`,children:o.label})]}),i?E.jsxs("div",{className:"char-vitals",children:[E.jsx(Pi,{label:"HP",current:i.health_current,max:i.health_max,color:"linear-gradient(90deg, #ff4444, #ff6666)",bgColor:"#330000"}),E.jsx(Pi,{label:"ST",current:i.stamina_current,max:i.stamina_max,color:"linear-gradient(90deg, #ffaa00, #ffcc44)",bgColor:"#331a00"}),E.jsx(Pi,{label:"MN",current:i.mana_current,max:i.mana_max,color:"linear-gradient(90deg, #4488ff, #66aaff)",bgColor:"#001433"})]}):E.jsx("div",{className:"char-vitals-placeholder",children:"Awaiting vitals..."}),E.jsxs("div",{className:"char-stats-row",children:[E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:(n==null?void 0:n.kills_per_hour)??"--"}),E.jsx("span",{className:"stat-label",children:"kills/hr"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:((u=n==null?void 0:n.kills)==null?void 0:u.toLocaleString())??"--"}),E.jsx("span",{className:"stat-label",children:"kills"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:(n==null?void 0:n.deaths)??"0"}),E.jsx("span",{className:"stat-label",children:"deaths"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:((s=n==null?void 0:n.onlinetime)==null?void 0:s.replace(/^00\./,""))??"--"}),E.jsx("span",{className:"stat-label",children:"uptime"})]})]}),n&&E.jsxs("div",{className:"char-location",children:[(c=n.ns)==null?void 0:c.toFixed(1),"N, ",(f=n.ew)==null?void 0:f.toFixed(1),"E"]}),t&&E.jsxs("div",{className:"char-expanded",children:[i!=null&&i.vitae?E.jsxs("div",{className:"vitae-warn",children:["Vitae: ",i.vitae,"%"]}):null,E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["Prismatics: ",(n==null?void 0:n.prismatic_taper_count)??"--"]}),E.jsxs("span",{children:["Total Deaths: ",(n==null?void 0:n.total_deaths)??"--"]})]}),(a==null?void 0:a.session)&&E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["Session Dmg: ",(l=a.session.total_damage_given)==null?void 0:l.toLocaleString()]}),E.jsxs("span",{children:["Session Kills: ",a.session.total_kills]})]}),E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["RAM: ",n!=null&&n.mem_mb?(n.mem_mb/1048576).toFixed(0)+" MB":"--"]}),E.jsxs("span",{children:["CPU: ",((h=n==null?void 0:n.cpu_pct)==null?void 0:h.toFixed(1))??"--","%"]})]})]})]})});Nb.displayName="CharacterCard";const iO=({characters:e})=>{const t=N.useMemo(()=>Array.from(e.values()).sort((r,n)=>r.name.localeCompare(n.name)),[e]);return t.length===0?E.jsx("div",{className:"grid-empty",children:"No active characters"}):E.jsx("div",{className:"char-grid",children:t.map(r=>E.jsx(Nb,{character:r},r.name))})},aO=({tabs:e})=>{var n,i;const[t,r]=N.useState(((n=e[0])==null?void 0:n.id)??"");return E.jsxs("div",{className:"tab-container",children:[E.jsx("div",{className:"tab-bar",children:e.map(a=>E.jsx("button",{className:`tab-btn ${t===a.id?"active":""}`,onClick:()=>r(a.id),children:a.label},a.id))}),E.jsx("div",{className:"tab-content",children:(i=e.find(a=>a.id===t))==null?void 0:i.content})]})};function Rb(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t-1}return Wo=t,Wo}var Ho,wd;function OO(){if(wd)return Ho;wd=1;var e=Ea();function t(r,n){var i=this.__data__,a=e(i,r);return a<0?(++this.size,i.push([r,n])):i[a][1]=n,this}return Ho=t,Ho}var Ko,Od;function Ma(){if(Od)return Ko;Od=1;var e=gO(),t=bO(),r=xO(),n=wO(),i=OO();function a(o){var u=-1,s=o==null?0:o.length;for(this.clear();++uE.jsxs("div",{className:"dashboard",children:[E.jsx("header",{className:"dashboard-header",children:E.jsx("h1",{className:"dashboard-title",children:"Mosswart Overlord"})}),E.jsx("main",{className:"dashboard-main",children:e})]}),rO=({activeChars:e,totalKills:t,totalRares:r,serverHealth:n})=>{var o;const i=((o=n==null?void 0:n.status)==null?void 0:o.toLowerCase())??"unknown",a=i==="online"||i==="up";return E.jsxs("div",{className:"global-stats",children:[E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:e}),E.jsx("span",{className:"global-label",children:"Active Characters"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:t.toLocaleString()}),E.jsx("span",{className:"global-label",children:"Total Kills"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:r}),E.jsx("span",{className:"global-label",children:"Total Rares"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:`server-dot ${a?"online":"offline"}`}),E.jsxs("span",{className:"global-value",children:[(n==null?void 0:n.latency_ms)??"--","ms"]}),E.jsx("span",{className:"global-label",children:"Coldeve"})]})]})},Pi=A.memo(({label:e,current:t,max:r,color:n,bgColor:i})=>{const a=r>0?Math.min(100,Math.max(0,t/r*100)):0;return E.jsxs("div",{className:"vital-bar",children:[E.jsx("span",{className:"vital-label",children:e}),E.jsx("div",{className:"vital-track",style:{backgroundColor:i},children:E.jsx("div",{className:"vital-fill",style:{width:`${a}%`,background:n}})}),E.jsxs("span",{className:"vital-text",children:[t,"/",r]})]})});Pi.displayName="VitalBar";const nO=e=>{const t=(e||"idle").toLowerCase();return t==="combat"||t==="hunt"?{label:t==="combat"?"Combat":"Hunt",cls:"badge-combat"}:t==="nav"||t==="navigation"?{label:"Nav",cls:"badge-other"}:t==="default"||t==="idle"||t===""?{label:"Idle",cls:"badge-idle"}:{label:e,cls:"badge-other"}},Nb=A.memo(({character:e})=>{var u,s,c,f,l,h;const[t,r]=N.useState(!1),{telemetry:n,vitals:i,combat:a}=e,o=nO((n==null?void 0:n.vt_state)??"");return E.jsxs("div",{className:"char-card",onClick:()=>r(!t),children:[E.jsxs("div",{className:"char-header",children:[E.jsx("span",{className:"char-name",children:e.name}),E.jsx("span",{className:`char-badge ${o.cls}`,children:o.label})]}),i?E.jsxs("div",{className:"char-vitals",children:[E.jsx(Pi,{label:"HP",current:i.health_current,max:i.health_max,color:"linear-gradient(90deg, #ff4444, #ff6666)",bgColor:"#330000"}),E.jsx(Pi,{label:"ST",current:i.stamina_current,max:i.stamina_max,color:"linear-gradient(90deg, #ffaa00, #ffcc44)",bgColor:"#331a00"}),E.jsx(Pi,{label:"MN",current:i.mana_current,max:i.mana_max,color:"linear-gradient(90deg, #4488ff, #66aaff)",bgColor:"#001433"})]}):E.jsx("div",{className:"char-vitals-placeholder",children:"Awaiting vitals..."}),E.jsxs("div",{className:"char-stats-row",children:[E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:(n==null?void 0:n.kills_per_hour)??"--"}),E.jsx("span",{className:"stat-label",children:"kills/hr"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:((u=n==null?void 0:n.kills)==null?void 0:u.toLocaleString())??"--"}),E.jsx("span",{className:"stat-label",children:"kills"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:(n==null?void 0:n.deaths)??"0"}),E.jsx("span",{className:"stat-label",children:"deaths"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:((s=n==null?void 0:n.onlinetime)==null?void 0:s.replace(/^00\./,""))??"--"}),E.jsx("span",{className:"stat-label",children:"uptime"})]})]}),n&&E.jsxs("div",{className:"char-location",children:[(c=n.ns)==null?void 0:c.toFixed(1),"N, ",(f=n.ew)==null?void 0:f.toFixed(1),"E"]}),t&&E.jsxs("div",{className:"char-expanded",children:[i!=null&&i.vitae?E.jsxs("div",{className:"vitae-warn",children:["Vitae: ",i.vitae,"%"]}):null,E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["Prismatics: ",(n==null?void 0:n.prismatic_taper_count)??"--"]}),E.jsxs("span",{children:["Total Deaths: ",(n==null?void 0:n.total_deaths)??"--"]})]}),(a==null?void 0:a.session)&&E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["Session Dmg: ",(l=a.session.total_damage_given)==null?void 0:l.toLocaleString()]}),E.jsxs("span",{children:["Session Kills: ",a.session.total_kills]})]}),E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["RAM: ",n!=null&&n.mem_mb?(n.mem_mb/1048576).toFixed(0)+" MB":"--"]}),E.jsxs("span",{children:["CPU: ",((h=n==null?void 0:n.cpu_pct)==null?void 0:h.toFixed(1))??"--","%"]})]})]})]})});Nb.displayName="CharacterCard";const iO=({characters:e})=>{const t=N.useMemo(()=>Array.from(e.values()).sort((r,n)=>r.name.localeCompare(n.name)),[e]);return t.length===0?E.jsx("div",{className:"grid-empty",children:"No active characters"}):E.jsx("div",{className:"char-grid",children:t.map(r=>E.jsx(Nb,{character:r},r.name))})},aO=({tabs:e})=>{var n,i;const[t,r]=N.useState(((n=e[0])==null?void 0:n.id)??"");return E.jsxs("div",{className:"tab-container",children:[E.jsx("div",{className:"tab-bar",children:e.map(a=>E.jsx("button",{className:`tab-btn ${t===a.id?"active":""}`,onClick:()=>r(a.id),children:a.label},a.id))}),E.jsx("div",{className:"tab-content",children:(i=e.find(a=>a.id===t))==null?void 0:i.content})]})};function Rb(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t-1}return Wo=t,Wo}var Ho,wd;function OO(){if(wd)return Ho;wd=1;var e=Ea();function t(r,n){var i=this.__data__,a=e(i,r);return a<0?(++this.size,i.push([r,n])):i[a][1]=n,this}return Ho=t,Ho}var Ko,Od;function Ma(){if(Od)return Ko;Od=1;var e=gO(),t=bO(),r=xO(),n=wO(),i=OO();function a(o){var u=-1,s=o==null?0:o.length;for(this.clear();++uc!=null&&c!==-1&&c!==-1?c:void 0,r=e.IntValues||{};return{item_id:e.item_id??e.Id??0,name:e.name??e.Name??((s=e.StringValues)==null?void 0:s["1"])??"Unknown",icon:e.icon??e.Icon??0,object_class:e.object_class??e.ObjectClass??0,current_wielded_location:e.current_wielded_location??o(e.CurrentWieldedLocation)??o(Number(r[10]))??0,container_id:e.container_id??e.ContainerId??0,items_capacity:e.items_capacity??o(e.ItemsCapacity)??o(Number(r[6]))??((d=e.enhanced_properties)==null?void 0:d.ItemSlots_Decal)??void 0,value:e.value??o(e.Value)??o(Number(r[19]))??0,burden:e.burden??o(e.Burden)??o(Number(r[5]))??0,armor_level:e.armor_level??o(e.ArmorLevel),max_damage:e.max_damage??o(e.MaxDamage),material:e.material??e.material_name??e.Material??void 0,item_set:e.item_set??e.ItemSet??void 0,imbue:e.imbue??e.Imbue??void 0,tinks:e.tinks??o(e.Tinks),workmanship:e.workmanship??o(e.Workmanship),equip_skill:e.equip_skill??e.equip_skill_name??e.EquipSkill??void 0,wield_level:e.wield_level??o(e.WieldLevel),skill_level:e.skill_level??o(e.SkillLevel),lore_requirement:e.lore_requirement??o(e.LoreRequirement),attack_bonus:e.attack_bonus??o(e.AttackBonus),melee_defense_bonus:e.melee_defense_bonus??o(e.MeleeDefenseBonus),magic_defense_bonus:e.magic_defense_bonus??o(e.MagicDBonus),damage_bonus:e.damage_bonus??o(e.DamageBonus),damage_rating:e.damage_rating??o(e.DamRating),crit_rating:e.crit_rating??o(e.CritRating),heal_boost_rating:e.heal_boost_rating??o(e.HealBoostRating),current_mana:e.current_mana??o(Number(r[218103815]))??void 0,max_mana:e.max_mana??o(Number(r[218103814]))??void 0,spellcraft:e.spellcraft??void 0,damage_range:e.damage_range??void 0,damage_type:e.damage_type??void 0,speed_text:e.speed_text??void 0,mana_display:e.mana_display??void 0,spells:e.spells??void 0,icon_overlay_id:e.icon_overlay_id??o(Number(r[218103849]))??void 0,icon_underlay_id:e.icon_underlay_id??o(Number(r[218103850]))??void 0,_raw:e}}function C(e){return!e||e<=0?"06000133":(e+100663296).toString(16).toUpperCase().padStart(8,"0")}const M={32768:{name:"Neck",row:1,col:1},1:{name:"Head",row:1,col:3},268435456:{name:"Sigil",row:1,col:5},536870912:{name:"Sigil",row:1,col:6},1073741824:{name:"Sigil",row:1,col:7},67108864:{name:"Trinket",row:2,col:1},2048:{name:"U.Arm",row:2,col:2},512:{name:"Chest",row:2,col:3},134217728:{name:"Cloak",row:2,col:7},65536:{name:"Brace L",row:3,col:1},4096:{name:"L.Arm",row:3,col:2},1024:{name:"Abdomen",row:3,col:3},8192:{name:"U.Leg",row:3,col:4},131072:{name:"Brace R",row:3,col:5},2:{name:"Shirt",row:3,col:7},262144:{name:"Ring L",row:4,col:1},32:{name:"Hands",row:4,col:2},16384:{name:"L.Leg",row:4,col:4},524288:{name:"Ring R",row:4,col:5},4:{name:"Pants",row:4,col:7},256:{name:"Feet",row:5,col:4},2097152:{name:"Shield",row:6,col:1},1048576:{name:"Melee",row:6,col:3},4194304:{name:"Missile",row:6,col:3},16777216:{name:"Held",row:6,col:3},33554432:{name:"2H",row:6,col:3},8388608:{name:"Ammo",row:6,col:7}},I={},ne=[32768,67108864,65536,131072,262144,524288],oe=[1,512,2048,1024,4096,8192,16384,32,256],te=[2,4,134217728,268435456,536870912,1073741824],ie=[2097152,1048576,4194304,16777216,33554432,8388608];(()=>{const e=new Set;Object.entries(M).forEach(([o,r])=>{const s=`${r.row}-${r.col}`,d=parseInt(o);e.has(s)||(e.add(s),ne.includes(d)?I[s]="#3a2555":oe.includes(d)?I[s]="#1e2e55":te.includes(d)?I[s]="#1e3e3e":ie.includes(d)?I[s]="#142040":I[s]="#2a2a2a")})})();const $="#af7a30";function W({item:e,size:o=36}){const r={position:"absolute",top:0,left:0,width:o,height:o,border:"none",background:"transparent",imageRendering:"pixelated"},s=e.icon_underlay_id&&e.icon_underlay_id>100?`/icons/${C(e.icon_underlay_id)}.png`:null,d=e.icon_overlay_id&&e.icon_overlay_id>100?`/icons/${C(e.icon_overlay_id)}.png`:null;return n.jsxs("div",{style:{width:o,height:o,position:"relative"},children:[s&&n.jsx("img",{src:s,alt:"",style:{...r,zIndex:1},onError:c=>{c.target.style.display="none"}}),n.jsx("img",{src:`/icons/${C(e.icon)}.png`,alt:e.name,style:{...r,zIndex:2},onError:c=>{c.target.src="/icons/06000133.png"}}),d&&n.jsx("img",{src:d,alt:"",style:{...r,zIndex:3},onError:c=>{c.target.style.display="none"}})]})}function le({item:e,x:o,y:r}){var j,L;const s=g=>g!=null&&g!==-1&&g!==-1,d=g=>g.toLocaleString(),c=g=>`${((g-1)*100).toFixed(1)}%`;return n.jsxs("div",{style:{position:"fixed",left:o+14,top:r+14,background:"rgba(0,0,0,0.96)",border:"1px solid #555",borderRadius:4,padding:"8px 12px",zIndex:99999,minWidth:200,maxWidth:340,fontSize:13,color:"#ddd",pointerEvents:"none",lineHeight:1.6,fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif'},children:[n.jsx("div",{style:{color:"#ffcc00",fontWeight:"bold",fontSize:14,marginBottom:4},children:e.name}),n.jsxs("div",{style:{color:"#aaa"},children:["Value: ",d(e.value)," · Burden: ",e.burden]}),e.workmanship&&n.jsxs("div",{style:{color:"#aaa"},children:["Workmanship: ",e.workmanship]}),e.material&&n.jsxs("div",{style:{color:"#88ff88"},children:["Material: ",e.material]}),s(e.armor_level)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Armor Level: ",e.armor_level]}),s(e.max_damage)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Max Damage: ",e.max_damage]}),e.damage_range&&n.jsxs("div",{style:{color:"#88ff88"},children:["Damage: ",e.damage_range,e.damage_type?`, ${e.damage_type}`:""]}),s(e.attack_bonus)&&e.attack_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Attack: +",c(e.attack_bonus)]}),s(e.melee_defense_bonus)&&e.melee_defense_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Melee Def: +",c(e.melee_defense_bonus)]}),s(e.magic_defense_bonus)&&e.magic_defense_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Magic Def: +",c(e.magic_defense_bonus)]}),e.equip_skill&&n.jsxs("div",{style:{color:"#ddd"},children:["Skill: ",e.equip_skill]}),s(e.wield_level)&&n.jsxs("div",{style:{color:"#ffaa00"},children:["Wield Level: ",e.wield_level]}),s(e.lore_requirement)&&n.jsxs("div",{style:{color:"#ffaa00"},children:["Lore: ",e.lore_requirement]}),e.imbue&&n.jsxs("div",{style:{color:"#88ff88"},children:["Imbue: ",e.imbue]}),e.item_set&&n.jsxs("div",{style:{color:"#88ff88"},children:["Set: ",e.item_set]}),s(e.tinks)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Tinks: ",e.tinks]}),s(e.damage_rating)&&n.jsxs("div",{children:["Damage Rating: ",e.damage_rating]}),s(e.crit_rating)&&n.jsxs("div",{children:["Crit Rating: ",e.crit_rating]}),s(e.heal_boost_rating)&&n.jsxs("div",{children:["Heal Boost: ",e.heal_boost_rating]}),e.spellcraft&&n.jsxs("div",{style:{color:"#dda0dd"},children:["Spellcraft: ",e.spellcraft]}),s(e.current_mana)&&s(e.max_mana)&&n.jsxs("div",{style:{color:"#98d7ff"},children:["Mana: ",e.current_mana," / ",e.max_mana]}),((L=(j=e.spells)==null?void 0:j.spells)==null?void 0:L.length)>0&&n.jsxs("div",{style:{color:"#4a90e2",marginTop:4,fontSize:12},children:["Spells: ",e.spells.spells.map(g=>g.name).join(", ")]})]})}function G({iconSrc:e,isActive:o,fillPct:r,label:s,onClick:d}){const c=r>90?"#b7432c":r>70?"#d8a431":"#00ff00";return n.jsxs("div",{onClick:d,title:s,style:{display:"flex",alignItems:"flex-start",gap:2,cursor:"pointer",flexShrink:0,marginTop:3,position:"relative"},children:[o&&n.jsx("span",{style:{position:"absolute",left:-11,top:8,color:$,fontSize:10},children:"▶"}),n.jsx("div",{style:{width:30,height:30,border:o?"1px solid #00ff00":"1px solid #333",boxShadow:o?"0 0 4px #00ff00":"none",background:"#000",display:"flex",alignItems:"center",justifyContent:"center"},children:n.jsx("img",{src:e,alt:"",style:{width:26,height:26,objectFit:"contain",imageRendering:"pixelated"},onError:j=>{j.target.src="/icons/06001080.png"}})}),n.jsx("div",{style:{width:7,height:30,background:"#222",border:"1px solid #666",position:"relative",overflow:"hidden",borderRadius:2},title:`${Math.round(r)}% full`,children:n.jsx("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:`${r}%`,background:c,minHeight:r>0?2:0}})})]})}const ce=({id:e,charName:o,zIndex:r,inventoryVersion:s,equipmentCantrips:d})=>{var V,q,Y;const[c,j]=_.useState([]),[L,g]=_.useState(!0),[k,H]=_.useState(null),[B,U]=_.useState(null),[f,J]=_.useState(null),D=_.useRef(0),O=_.useRef(!1);_.useEffect(()=>{g(!0),Promise.all([T(`/inventory/${encodeURIComponent(o)}?limit=1000`).catch(()=>({items:[]})),T(`/character-stats/${encodeURIComponent(o)}`).catch(()=>null)]).then(([t,i])=>{j((t.items??[]).map(X)),J(i),O.current=!0}).finally(()=>g(!1))},[o]),_.useEffect(()=>{if(!(!O.current||!s))return clearTimeout(D.current),D.current=window.setTimeout(()=>{T(`/inventory/${encodeURIComponent(o)}?limit=1000`).then(t=>j((t.items??[]).map(X))).catch(()=>{})},2e3),()=>clearTimeout(D.current)},[o,s]);const y=_.useCallback((t,i)=>{U(t&&i?{item:t,x:i.clientX,y:i.clientY}:null)},[]),Z=_.useMemo(()=>{const t=new Set,i=[];return Object.entries(M).forEach(([u,m])=>{const a=`${m.row}-${m.col}`;t.has(a)||(t.add(a),i.push({key:a,...m,mask:parseInt(u)}))}),i},[]),{equippedMap:A,containers:z,packItems:w}=_.useMemo(()=>{const t=new Map,i=[],u=new Set,m=new Map;c.forEach(l=>{l.object_class===10&&(i.push(l),u.add(l.item_id))}),i.sort((l,h)=>(l.item_id>>>0)-(h.item_id>>>0));let a=null;return c.forEach(l=>{l.current_wielded_location>0&&l.container_id&&!u.has(l.container_id)&&(a=l.container_id)}),c.forEach(l=>{if(u.has(l.item_id))return;const h=l.current_wielded_location;if(h>0)if(l.object_class===2)Object.entries(M).forEach(([b,x])=>{if((h&parseInt(b))===parseInt(b)){const v=`${x.row}-${x.col}`;t.has(v)||t.set(v,l)}});else{let b=!1;if(M[h]){const x=M[h],v=`${x.row}-${x.col}`;t.has(v)||(t.set(v,l),b=!0)}if(!b){for(const[x,v]of Object.entries(M))if((h&parseInt(x))===parseInt(x)){const K=`${v.row}-${v.col}`;if(!t.has(K)){t.set(K,l),b=!0;break}}}}else{let p=l.container_id||0;a&&p===a&&(p=0),m.has(p)||m.set(p,[]),m.get(p).push(l)}}),{equippedMap:t,containers:i,packItems:m}},[c]);let S=w.get(0)??[],F=0;if(S.length===0){let t=0;for(const[i,u]of w.entries())!z.some(m=>m.item_id===i)&&u.length>t&&(t=u.length,F=i);S=w.get(F)??[]}const P=k!==null?w.get(k)??[]:S,N=(f==null?void 0:f.burden_units)??((V=f==null?void 0:f.stats_data)==null?void 0:V.burden_units)??0,R=(f==null?void 0:f.encumbrance_capacity)??((q=f==null?void 0:f.stats_data)==null?void 0:q.encumbrance_capacity)??0,E=R>0?Math.min(200,N/R*100):0,ee=E>150?"#b7432c":E>100?"#d8a431":"#2e8b57";return L?n.jsx(Q,{id:e,title:`Inventory: ${o}`,zIndex:r,width:572,height:720,children:n.jsx("div",{style:{padding:20,color:"#666",fontStyle:"italic"},children:"Loading inventory..."})}):n.jsxs(Q,{id:e,title:`Inventory: ${o}`,zIndex:r,width:572,height:720,children:[n.jsxs("div",{style:{display:"flex",flex:1,overflow:"hidden",background:"rgba(14,14,14,0.96)",fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif',fontSize:13},children:[n.jsxs("div",{style:{width:316,display:"flex",flexDirection:"column",overflow:"hidden"},children:[n.jsx("div",{style:{position:"relative",height:270,minHeight:270,background:"#0a0a0a",borderBottom:`1px solid ${$}`},children:Z.map(t=>{const i=A.get(t.key),u=I[t.key]??"#2a2a2a";return n.jsx("div",{style:{position:"absolute",left:(t.col-1)*44+4,top:(t.row-1)*44+4,width:36,height:36,background:i?"#5a5a62":u,border:i?"2px solid #00ffff":"2px outset #6a6a72",boxShadow:i?"0 0 5px #00ffff, inset 0 0 5px rgba(0,255,255,0.2)":"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:i?"pointer":"default"},onMouseEnter:m=>i&&y(i,m),onMouseMove:m=>i&&y(i,m),onMouseLeave:()=>y(null),children:i?n.jsx(W,{item:i,size:32}):n.jsx("img",{src:"/icons/06000133.png",alt:"",style:{width:28,height:28,opacity:.15,filter:"grayscale(100%)",imageRendering:"pixelated"}})},t.key)})}),n.jsxs("div",{style:{padding:"3px 6px",fontSize:11,color:"#ccc",background:"#111",borderBottom:`1px solid ${$}`},children:["Contents of ",k!==null?((Y=z.find(t=>t.item_id===k))==null?void 0:Y.name)??"Pack":"Backpack"]}),n.jsxs("div",{style:{flex:1,overflowY:"auto",display:"grid",gridTemplateColumns:"repeat(6, 36px)",gridAutoRows:36,gap:2,padding:4,alignContent:"start"},children:[P.map((t,i)=>n.jsx("div",{style:{width:36,height:36,background:"linear-gradient(135deg, #3d007a 0%, #1a0033 100%)",border:"1px solid #4a148c",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},onMouseEnter:u=>y(t,u),onMouseMove:u=>y(t,u),onMouseLeave:()=>y(null),children:n.jsx(W,{item:t,size:32})},t.item_id??i)),Array.from({length:Math.max(0,24-P.length)}).map((t,i)=>n.jsx("div",{style:{width:36,height:36,background:"#0a0a0a",border:"1px solid #1a1a1a"}},`e${i}`))]})]}),n.jsxs("div",{style:{width:42,display:"flex",flexDirection:"column",alignItems:"center",padding:"4px 2px",borderLeft:`1px solid ${$}`,borderRight:`1px solid ${$}`},children:[n.jsx("div",{style:{textAlign:"center",fontSize:8,color:"#ccc",marginBottom:2},children:R>0?`${Math.floor(E)}%`:"Burden"}),n.jsx("div",{style:{width:14,height:40,background:"#111",border:"1px solid #555",position:"relative",overflow:"hidden",marginBottom:6,flexShrink:0},title:R>0?`${N.toLocaleString()} / ${R.toLocaleString()}`:`Burden: ${c.reduce((t,i)=>t+(i.burden??0),0).toLocaleString()}`,children:n.jsx("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:`${E/2}%`,background:ee,transition:"height 0.3s"}})}),n.jsx(G,{iconSrc:"/icons/0600127E.png",isActive:k===null,fillPct:S.length>0?Math.min(100,S.length/102*100):0,label:`Backpack (${S.length}/102)`,onClick:()=>H(null)}),z.map(t=>{const i=t.item_id,u=c.filter(l=>l.container_id===i&&l.item_id!==i).length,m=t.items_capacity||24,a=m>0?Math.min(100,u/m*100):0;return n.jsx(G,{iconSrc:`/icons/${C(t.icon)}.png`,isActive:k===i,fillPct:a,label:`${t.name} (${u}/${m})`,onClick:()=>H(i)},i)})]}),n.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:160},children:[n.jsx("div",{style:{padding:"4px 8px",fontSize:"0.72rem",fontWeight:600,color:"#aaa",background:"#111",borderBottom:`1px solid ${$}`},children:"Mana"}),n.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"2px 0"},children:[(()=>{const t=(d==null?void 0:d.items)??[],i=new Map(t.map(a=>[a.item_id,a])),u=d!=null&&d.timestamp?new Date(d.timestamp).getTime():0,m=u>0?Math.max(0,(Date.now()-u)/1e3):0;return Array.from(A.values()).map(a=>{const l=i.get(a.item_id),h=(l==null?void 0:l.current_mana)??a.current_mana??0,p=(l==null?void 0:l.max_mana)??a.max_mana??0,b=(l==null?void 0:l.mana_time_remaining_seconds)??null,x=b!=null?Math.max(0,b-m):null,v=(l==null?void 0:l.state)??(h>0?"active":"not_active");return{...a,current_mana:h,max_mana:p,liveRemaining:x,manaState:v}}).filter(a=>a.current_mana>0||a.max_mana>0).sort((a,l)=>(a.liveRemaining??999999)-(l.liveRemaining??999999)).map((a,l)=>{const h=a.manaState==="active"?"#4c4":a.manaState==="not_active"?"#c44":"#da8";return n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 4px",borderBottom:"1px solid #1a1a1a",cursor:"pointer"},onMouseEnter:p=>y(a,p),onMouseMove:p=>y(a,p),onMouseLeave:()=>y(null),children:[n.jsx("div",{style:{width:20,height:20,flexShrink:0},children:n.jsx(W,{item:a,size:20})}),n.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:h,flexShrink:0}}),n.jsx("div",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"0.68rem",color:"#ccc"},children:a.name}),n.jsxs("div",{style:{fontSize:"0.65rem",color:"#88bbff",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},children:[a.current_mana,"/",a.max_mana]}),n.jsx("div",{style:{fontSize:"0.63rem",color:"#9c9",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums",minWidth:42,textAlign:"right"},children:a.liveRemaining!=null?se(a.liveRemaining):""})]},l)})})(),Array.from(A.values()).filter(t=>t.current_mana>0||t.max_mana>0).length===0&&n.jsx("div",{style:{padding:12,color:"#555",textAlign:"center",fontSize:"0.7rem"},children:"No mana items equipped"})]})]})]}),B&&n.jsx(le,{item:B.item,x:B.x,y:B.y})]})};function se(e){if(e<=0)return"0h00m";const o=Math.floor(e),r=Math.floor(o/3600),s=Math.floor(o%3600/60);return`${r}h${String(s).padStart(2,"0")}m`}export{ce as InventoryWindow}; +import{r as _,a as T,j as n,D as Q}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";function X(e){var s,d;if(!e)return e;const o=c=>c!=null&&c!==-1&&c!==-1?c:void 0,r=e.IntValues||{};return{item_id:e.item_id??e.Id??0,name:e.name??e.Name??((s=e.StringValues)==null?void 0:s["1"])??"Unknown",icon:e.icon??e.Icon??0,object_class:e.object_class??e.ObjectClass??0,current_wielded_location:e.current_wielded_location??o(e.CurrentWieldedLocation)??o(Number(r[10]))??0,container_id:e.container_id??e.ContainerId??0,items_capacity:e.items_capacity??o(e.ItemsCapacity)??o(Number(r[6]))??((d=e.enhanced_properties)==null?void 0:d.ItemSlots_Decal)??void 0,value:e.value??o(e.Value)??o(Number(r[19]))??0,burden:e.burden??o(e.Burden)??o(Number(r[5]))??0,armor_level:e.armor_level??o(e.ArmorLevel),max_damage:e.max_damage??o(e.MaxDamage),material:e.material??e.material_name??e.Material??void 0,item_set:e.item_set??e.ItemSet??void 0,imbue:e.imbue??e.Imbue??void 0,tinks:e.tinks??o(e.Tinks),workmanship:e.workmanship??o(e.Workmanship),equip_skill:e.equip_skill??e.equip_skill_name??e.EquipSkill??void 0,wield_level:e.wield_level??o(e.WieldLevel),skill_level:e.skill_level??o(e.SkillLevel),lore_requirement:e.lore_requirement??o(e.LoreRequirement),attack_bonus:e.attack_bonus??o(e.AttackBonus),melee_defense_bonus:e.melee_defense_bonus??o(e.MeleeDefenseBonus),magic_defense_bonus:e.magic_defense_bonus??o(e.MagicDBonus),damage_bonus:e.damage_bonus??o(e.DamageBonus),damage_rating:e.damage_rating??o(e.DamRating),crit_rating:e.crit_rating??o(e.CritRating),heal_boost_rating:e.heal_boost_rating??o(e.HealBoostRating),current_mana:e.current_mana??o(Number(r[218103815]))??void 0,max_mana:e.max_mana??o(Number(r[218103814]))??void 0,spellcraft:e.spellcraft??void 0,damage_range:e.damage_range??void 0,damage_type:e.damage_type??void 0,speed_text:e.speed_text??void 0,mana_display:e.mana_display??void 0,spells:e.spells??void 0,icon_overlay_id:e.icon_overlay_id??o(Number(r[218103849]))??void 0,icon_underlay_id:e.icon_underlay_id??o(Number(r[218103850]))??void 0,_raw:e}}function C(e){return!e||e<=0?"06000133":(e+100663296).toString(16).toUpperCase().padStart(8,"0")}const M={32768:{name:"Neck",row:1,col:1},1:{name:"Head",row:1,col:3},268435456:{name:"Sigil",row:1,col:5},536870912:{name:"Sigil",row:1,col:6},1073741824:{name:"Sigil",row:1,col:7},67108864:{name:"Trinket",row:2,col:1},2048:{name:"U.Arm",row:2,col:2},512:{name:"Chest",row:2,col:3},134217728:{name:"Cloak",row:2,col:7},65536:{name:"Brace L",row:3,col:1},4096:{name:"L.Arm",row:3,col:2},1024:{name:"Abdomen",row:3,col:3},8192:{name:"U.Leg",row:3,col:4},131072:{name:"Brace R",row:3,col:5},2:{name:"Shirt",row:3,col:7},262144:{name:"Ring L",row:4,col:1},32:{name:"Hands",row:4,col:2},16384:{name:"L.Leg",row:4,col:4},524288:{name:"Ring R",row:4,col:5},4:{name:"Pants",row:4,col:7},256:{name:"Feet",row:5,col:4},2097152:{name:"Shield",row:6,col:1},1048576:{name:"Melee",row:6,col:3},4194304:{name:"Missile",row:6,col:3},16777216:{name:"Held",row:6,col:3},33554432:{name:"2H",row:6,col:3},8388608:{name:"Ammo",row:6,col:7}},I={},ne=[32768,67108864,65536,131072,262144,524288],oe=[1,512,2048,1024,4096,8192,16384,32,256],te=[2,4,134217728,268435456,536870912,1073741824],ie=[2097152,1048576,4194304,16777216,33554432,8388608];(()=>{const e=new Set;Object.entries(M).forEach(([o,r])=>{const s=`${r.row}-${r.col}`,d=parseInt(o);e.has(s)||(e.add(s),ne.includes(d)?I[s]="#3a2555":oe.includes(d)?I[s]="#1e2e55":te.includes(d)?I[s]="#1e3e3e":ie.includes(d)?I[s]="#142040":I[s]="#2a2a2a")})})();const $="#af7a30";function W({item:e,size:o=36}){const r={position:"absolute",top:0,left:0,width:o,height:o,border:"none",background:"transparent",imageRendering:"pixelated"},s=e.icon_underlay_id&&e.icon_underlay_id>100?`/icons/${C(e.icon_underlay_id)}.png`:null,d=e.icon_overlay_id&&e.icon_overlay_id>100?`/icons/${C(e.icon_overlay_id)}.png`:null;return n.jsxs("div",{style:{width:o,height:o,position:"relative"},children:[s&&n.jsx("img",{src:s,alt:"",style:{...r,zIndex:1},onError:c=>{c.target.style.display="none"}}),n.jsx("img",{src:`/icons/${C(e.icon)}.png`,alt:e.name,style:{...r,zIndex:2},onError:c=>{c.target.src="/icons/06000133.png"}}),d&&n.jsx("img",{src:d,alt:"",style:{...r,zIndex:3},onError:c=>{c.target.style.display="none"}})]})}function le({item:e,x:o,y:r}){var j,L;const s=g=>g!=null&&g!==-1&&g!==-1,d=g=>g.toLocaleString(),c=g=>`${((g-1)*100).toFixed(1)}%`;return n.jsxs("div",{style:{position:"fixed",left:o+14,top:r+14,background:"rgba(0,0,0,0.96)",border:"1px solid #555",borderRadius:4,padding:"8px 12px",zIndex:99999,minWidth:200,maxWidth:340,fontSize:13,color:"#ddd",pointerEvents:"none",lineHeight:1.6,fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif'},children:[n.jsx("div",{style:{color:"#ffcc00",fontWeight:"bold",fontSize:14,marginBottom:4},children:e.name}),n.jsxs("div",{style:{color:"#aaa"},children:["Value: ",d(e.value)," · Burden: ",e.burden]}),e.workmanship&&n.jsxs("div",{style:{color:"#aaa"},children:["Workmanship: ",e.workmanship]}),e.material&&n.jsxs("div",{style:{color:"#88ff88"},children:["Material: ",e.material]}),s(e.armor_level)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Armor Level: ",e.armor_level]}),s(e.max_damage)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Max Damage: ",e.max_damage]}),e.damage_range&&n.jsxs("div",{style:{color:"#88ff88"},children:["Damage: ",e.damage_range,e.damage_type?`, ${e.damage_type}`:""]}),s(e.attack_bonus)&&e.attack_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Attack: +",c(e.attack_bonus)]}),s(e.melee_defense_bonus)&&e.melee_defense_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Melee Def: +",c(e.melee_defense_bonus)]}),s(e.magic_defense_bonus)&&e.magic_defense_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Magic Def: +",c(e.magic_defense_bonus)]}),e.equip_skill&&n.jsxs("div",{style:{color:"#ddd"},children:["Skill: ",e.equip_skill]}),s(e.wield_level)&&n.jsxs("div",{style:{color:"#ffaa00"},children:["Wield Level: ",e.wield_level]}),s(e.lore_requirement)&&n.jsxs("div",{style:{color:"#ffaa00"},children:["Lore: ",e.lore_requirement]}),e.imbue&&n.jsxs("div",{style:{color:"#88ff88"},children:["Imbue: ",e.imbue]}),e.item_set&&n.jsxs("div",{style:{color:"#88ff88"},children:["Set: ",e.item_set]}),s(e.tinks)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Tinks: ",e.tinks]}),s(e.damage_rating)&&n.jsxs("div",{children:["Damage Rating: ",e.damage_rating]}),s(e.crit_rating)&&n.jsxs("div",{children:["Crit Rating: ",e.crit_rating]}),s(e.heal_boost_rating)&&n.jsxs("div",{children:["Heal Boost: ",e.heal_boost_rating]}),e.spellcraft&&n.jsxs("div",{style:{color:"#dda0dd"},children:["Spellcraft: ",e.spellcraft]}),s(e.current_mana)&&s(e.max_mana)&&n.jsxs("div",{style:{color:"#98d7ff"},children:["Mana: ",e.current_mana," / ",e.max_mana]}),((L=(j=e.spells)==null?void 0:j.spells)==null?void 0:L.length)>0&&n.jsxs("div",{style:{color:"#4a90e2",marginTop:4,fontSize:12},children:["Spells: ",e.spells.spells.map(g=>g.name).join(", ")]})]})}function G({iconSrc:e,isActive:o,fillPct:r,label:s,onClick:d}){const c=r>90?"#b7432c":r>70?"#d8a431":"#00ff00";return n.jsxs("div",{onClick:d,title:s,style:{display:"flex",alignItems:"flex-start",gap:2,cursor:"pointer",flexShrink:0,marginTop:3,position:"relative"},children:[o&&n.jsx("span",{style:{position:"absolute",left:-11,top:8,color:$,fontSize:10},children:"▶"}),n.jsx("div",{style:{width:30,height:30,border:o?"1px solid #00ff00":"1px solid #333",boxShadow:o?"0 0 4px #00ff00":"none",background:"#000",display:"flex",alignItems:"center",justifyContent:"center"},children:n.jsx("img",{src:e,alt:"",style:{width:26,height:26,objectFit:"contain",imageRendering:"pixelated"},onError:j=>{j.target.src="/icons/06001080.png"}})}),n.jsx("div",{style:{width:7,height:30,background:"#222",border:"1px solid #666",position:"relative",overflow:"hidden",borderRadius:2},title:`${Math.round(r)}% full`,children:n.jsx("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:`${r}%`,background:c,minHeight:r>0?2:0}})})]})}const ce=({id:e,charName:o,zIndex:r,inventoryVersion:s,equipmentCantrips:d})=>{var V,q,Y;const[c,j]=_.useState([]),[L,g]=_.useState(!0),[k,H]=_.useState(null),[B,U]=_.useState(null),[f,J]=_.useState(null),D=_.useRef(0),O=_.useRef(!1);_.useEffect(()=>{g(!0),Promise.all([T(`/inventory/${encodeURIComponent(o)}?limit=1000`).catch(()=>({items:[]})),T(`/character-stats/${encodeURIComponent(o)}`).catch(()=>null)]).then(([t,i])=>{j((t.items??[]).map(X)),J(i),O.current=!0}).finally(()=>g(!1))},[o]),_.useEffect(()=>{if(!(!O.current||!s))return clearTimeout(D.current),D.current=window.setTimeout(()=>{T(`/inventory/${encodeURIComponent(o)}?limit=1000`).then(t=>j((t.items??[]).map(X))).catch(()=>{})},2e3),()=>clearTimeout(D.current)},[o,s]);const y=_.useCallback((t,i)=>{U(t&&i?{item:t,x:i.clientX,y:i.clientY}:null)},[]),Z=_.useMemo(()=>{const t=new Set,i=[];return Object.entries(M).forEach(([u,m])=>{const a=`${m.row}-${m.col}`;t.has(a)||(t.add(a),i.push({key:a,...m,mask:parseInt(u)}))}),i},[]),{equippedMap:A,containers:z,packItems:w}=_.useMemo(()=>{const t=new Map,i=[],u=new Set,m=new Map;c.forEach(l=>{l.object_class===10&&(i.push(l),u.add(l.item_id))}),i.sort((l,h)=>(l.item_id>>>0)-(h.item_id>>>0));let a=null;return c.forEach(l=>{l.current_wielded_location>0&&l.container_id&&!u.has(l.container_id)&&(a=l.container_id)}),c.forEach(l=>{if(u.has(l.item_id))return;const h=l.current_wielded_location;if(h>0)if(l.object_class===2)Object.entries(M).forEach(([b,x])=>{if((h&parseInt(b))===parseInt(b)){const v=`${x.row}-${x.col}`;t.has(v)||t.set(v,l)}});else{let b=!1;if(M[h]){const x=M[h],v=`${x.row}-${x.col}`;t.has(v)||(t.set(v,l),b=!0)}if(!b){for(const[x,v]of Object.entries(M))if((h&parseInt(x))===parseInt(x)){const K=`${v.row}-${v.col}`;if(!t.has(K)){t.set(K,l),b=!0;break}}}}else{let p=l.container_id||0;a&&p===a&&(p=0),m.has(p)||m.set(p,[]),m.get(p).push(l)}}),{equippedMap:t,containers:i,packItems:m}},[c]);let S=w.get(0)??[],F=0;if(S.length===0){let t=0;for(const[i,u]of w.entries())!z.some(m=>m.item_id===i)&&u.length>t&&(t=u.length,F=i);S=w.get(F)??[]}const P=k!==null?w.get(k)??[]:S,N=(f==null?void 0:f.burden_units)??((V=f==null?void 0:f.stats_data)==null?void 0:V.burden_units)??0,R=(f==null?void 0:f.encumbrance_capacity)??((q=f==null?void 0:f.stats_data)==null?void 0:q.encumbrance_capacity)??0,E=R>0?Math.min(200,N/R*100):0,ee=E>150?"#b7432c":E>100?"#d8a431":"#2e8b57";return L?n.jsx(Q,{id:e,title:`Inventory: ${o}`,zIndex:r,width:572,height:720,children:n.jsx("div",{style:{padding:20,color:"#666",fontStyle:"italic"},children:"Loading inventory..."})}):n.jsxs(Q,{id:e,title:`Inventory: ${o}`,zIndex:r,width:572,height:720,children:[n.jsxs("div",{style:{display:"flex",flex:1,overflow:"hidden",background:"rgba(14,14,14,0.96)",fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif',fontSize:13},children:[n.jsxs("div",{style:{width:316,display:"flex",flexDirection:"column",overflow:"hidden"},children:[n.jsx("div",{style:{position:"relative",height:270,minHeight:270,background:"#0a0a0a",borderBottom:`1px solid ${$}`},children:Z.map(t=>{const i=A.get(t.key),u=I[t.key]??"#2a2a2a";return n.jsx("div",{style:{position:"absolute",left:(t.col-1)*44+4,top:(t.row-1)*44+4,width:36,height:36,background:i?"#5a5a62":u,border:i?"2px solid #00ffff":"2px outset #6a6a72",boxShadow:i?"0 0 5px #00ffff, inset 0 0 5px rgba(0,255,255,0.2)":"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:i?"pointer":"default"},onMouseEnter:m=>i&&y(i,m),onMouseMove:m=>i&&y(i,m),onMouseLeave:()=>y(null),children:i?n.jsx(W,{item:i,size:32}):n.jsx("img",{src:"/icons/06000133.png",alt:"",style:{width:28,height:28,opacity:.15,filter:"grayscale(100%)",imageRendering:"pixelated"}})},t.key)})}),n.jsxs("div",{style:{padding:"3px 6px",fontSize:11,color:"#ccc",background:"#111",borderBottom:`1px solid ${$}`},children:["Contents of ",k!==null?((Y=z.find(t=>t.item_id===k))==null?void 0:Y.name)??"Pack":"Backpack"]}),n.jsxs("div",{style:{flex:1,overflowY:"auto",display:"grid",gridTemplateColumns:"repeat(6, 36px)",gridAutoRows:36,gap:2,padding:4,alignContent:"start"},children:[P.map((t,i)=>n.jsx("div",{style:{width:36,height:36,background:"linear-gradient(135deg, #3d007a 0%, #1a0033 100%)",border:"1px solid #4a148c",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},onMouseEnter:u=>y(t,u),onMouseMove:u=>y(t,u),onMouseLeave:()=>y(null),children:n.jsx(W,{item:t,size:32})},t.item_id??i)),Array.from({length:Math.max(0,24-P.length)}).map((t,i)=>n.jsx("div",{style:{width:36,height:36,background:"#0a0a0a",border:"1px solid #1a1a1a"}},`e${i}`))]})]}),n.jsxs("div",{style:{width:42,display:"flex",flexDirection:"column",alignItems:"center",padding:"4px 2px",borderLeft:`1px solid ${$}`,borderRight:`1px solid ${$}`},children:[n.jsx("div",{style:{textAlign:"center",fontSize:8,color:"#ccc",marginBottom:2},children:R>0?`${Math.floor(E)}%`:"Burden"}),n.jsx("div",{style:{width:14,height:40,background:"#111",border:"1px solid #555",position:"relative",overflow:"hidden",marginBottom:6,flexShrink:0},title:R>0?`${N.toLocaleString()} / ${R.toLocaleString()}`:`Burden: ${c.reduce((t,i)=>t+(i.burden??0),0).toLocaleString()}`,children:n.jsx("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:`${E/2}%`,background:ee,transition:"height 0.3s"}})}),n.jsx(G,{iconSrc:"/icons/0600127E.png",isActive:k===null,fillPct:S.length>0?Math.min(100,S.length/102*100):0,label:`Backpack (${S.length}/102)`,onClick:()=>H(null)}),z.map(t=>{const i=t.item_id,u=c.filter(l=>l.container_id===i&&l.item_id!==i).length,m=t.items_capacity||24,a=m>0?Math.min(100,u/m*100):0;return n.jsx(G,{iconSrc:`/icons/${C(t.icon)}.png`,isActive:k===i,fillPct:a,label:`${t.name} (${u}/${m})`,onClick:()=>H(i)},i)})]}),n.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:160},children:[n.jsx("div",{style:{padding:"4px 8px",fontSize:"0.72rem",fontWeight:600,color:"#aaa",background:"#111",borderBottom:`1px solid ${$}`},children:"Mana"}),n.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"2px 0"},children:[(()=>{const t=(d==null?void 0:d.items)??[],i=new Map(t.map(a=>[a.item_id,a])),u=d!=null&&d.timestamp?new Date(d.timestamp).getTime():0,m=u>0?Math.max(0,(Date.now()-u)/1e3):0;return Array.from(A.values()).map(a=>{const l=i.get(a.item_id),h=(l==null?void 0:l.current_mana)??a.current_mana??0,p=(l==null?void 0:l.max_mana)??a.max_mana??0,b=(l==null?void 0:l.mana_time_remaining_seconds)??null,x=b!=null?Math.max(0,b-m):null,v=(l==null?void 0:l.state)??(h>0?"active":"not_active");return{...a,current_mana:h,max_mana:p,liveRemaining:x,manaState:v}}).filter(a=>a.current_mana>0||a.max_mana>0).sort((a,l)=>(a.liveRemaining??999999)-(l.liveRemaining??999999)).map((a,l)=>{const h=a.manaState==="active"?"#4c4":a.manaState==="not_active"?"#c44":"#da8";return n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 4px",borderBottom:"1px solid #1a1a1a",cursor:"pointer"},onMouseEnter:p=>y(a,p),onMouseMove:p=>y(a,p),onMouseLeave:()=>y(null),children:[n.jsx("div",{style:{width:20,height:20,flexShrink:0},children:n.jsx(W,{item:a,size:20})}),n.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:h,flexShrink:0}}),n.jsx("div",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"0.68rem",color:"#ccc"},children:a.name}),n.jsxs("div",{style:{fontSize:"0.65rem",color:"#88bbff",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},children:[a.current_mana,"/",a.max_mana]}),n.jsx("div",{style:{fontSize:"0.63rem",color:"#9c9",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums",minWidth:42,textAlign:"right"},children:a.liveRemaining!=null?se(a.liveRemaining):""})]},l)})})(),Array.from(A.values()).filter(t=>t.current_mana>0||t.max_mana>0).length===0&&n.jsx("div",{style:{padding:12,color:"#555",textAlign:"center",fontSize:"0.7rem"},children:"No mana items equipped"})]})]})]}),B&&n.jsx(le,{item:B.item,x:B.x,y:B.y})]})};function se(e){if(e<=0)return"0h00m";const o=Math.floor(e),r=Math.floor(o/3600),s=Math.floor(o%3600/60);return`${r}h${String(s).padStart(2,"0")}m`}export{ce as InventoryWindow}; diff --git a/static/v2/assets/IssuesWindow-CBadrEJS.js b/static/assets/IssuesWindow-BeCdzqJV.js similarity index 99% rename from static/v2/assets/IssuesWindow-CBadrEJS.js rename to static/assets/IssuesWindow-BeCdzqJV.js index 4e7477b9..f331fe5a 100644 --- a/static/v2/assets/IssuesWindow-CBadrEJS.js +++ b/static/assets/IssuesWindow-BeCdzqJV.js @@ -1 +1 @@ -import{r as n,a as W,j as e,D as L}from"./index-CLqPZs7-.js";import"./react-DlyoauG8.js";const O={plugin:{label:"Plugin",color:"#8844cc"},overlord:{label:"Overlord",color:"#4488cc"},nav:{label:"Nav",color:"#44aa44"},macro:{label:"Macro",color:"#cc8844"},other:{label:"Other",color:"#888888"}},i={padding:"3px 6px",fontSize:"0.8rem",border:"1px solid #555",background:"#2a2a2a",color:"#ddd",borderRadius:0},N={...i,fontSize:"0.75rem"},g={padding:"4px 12px",background:"#4a80c0",color:"#fff",border:"1px solid #336699",cursor:"pointer",fontSize:"0.75rem"},a={padding:"3px 8px",background:"#444",color:"#ccc",border:"1px solid #555",cursor:"pointer",fontSize:"0.7rem"},F=({id:P,zIndex:A})=>{const[h,R]=n.useState([]),[c,m]=n.useState(""),[y,u]=n.useState(""),[f,$]=n.useState("plugin"),[v,d]=n.useState(null),[p,j]=n.useState(""),[b,S]=n.useState(""),[C,z]=n.useState(""),[T,k]=n.useState({}),x=n.useCallback(async()=>{try{const t=await W("/issues");R((t.issues??[]).sort((r,s)=>(r.resolved?1:0)-(s.resolved?1:0)))}catch{}},[]);n.useEffect(()=>{x()},[x]);const l=async(t,r)=>{await fetch(`/api${t}`,{...r,credentials:"include",headers:{"Content-Type":"application/json",...r.headers}}),x()},E=async()=>{c.trim()&&(await l("/issues",{method:"POST",body:JSON.stringify({title:c.trim(),description:y.trim(),category:f})}),m(""),u(""))},B=t=>{if(v===t.id){d(null);return}d(t.id),j(t.title),S(t.description||""),z(t.category||"other")},I=async t=>{p.trim()&&(await l(`/issues/${t}`,{method:"PATCH",body:JSON.stringify({title:p.trim(),description:b.trim(),category:C})}),d(null))},w=async t=>{const r=(T[t]||"").trim();r&&(await l(`/issues/${t}/comments`,{method:"POST",body:JSON.stringify({text:r})}),k(s=>({...s,[t]:""})))};return e.jsxs(L,{id:P,title:"Issues Board",zIndex:A,width:540,height:520,children:[e.jsxs("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.8rem"},children:[h.length===0&&e.jsx("div",{style:{padding:10,color:"#888",textAlign:"center"},children:"No open issues"}),h.map(t=>{const r=O[t.category]||O.other,s=t.created?new Date(t.created).toLocaleDateString("sv-SE"):"",D=t.comments||[];return e.jsxs("div",{style:{padding:"6px 8px",marginBottom:4,background:"#1f1f1f",borderRadius:3,border:"1px solid #333",opacity:t.resolved?.55:1},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[e.jsx("span",{style:{fontSize:"0.65rem",padding:"1px 6px",borderRadius:3,background:r.color,color:"#fff",fontWeight:600},children:r.label}),e.jsx("strong",{style:{fontSize:"0.8rem",flex:1},children:t.title}),e.jsxs("span",{style:{fontSize:"0.65rem",color:"#888"},children:["by ",t.author||"User"]}),e.jsx("span",{style:{color:"#666",fontSize:"0.65rem"},children:s})]}),t.description&&e.jsx("div",{style:{color:"#999",marginTop:3,fontSize:"0.75rem"},children:t.description}),e.jsxs("div",{style:{display:"flex",gap:4,marginTop:4},children:[t.resolved?e.jsxs(e.Fragment,{children:[e.jsx("button",{style:{...a,fontSize:"0.65rem"},onClick:()=>l(`/issues/${t.id}`,{method:"PATCH",body:JSON.stringify({resolved:!1})}),children:"↻ Reopen"}),e.jsx("button",{style:{...a,fontSize:"0.65rem",color:"#c66"},onClick:()=>{confirm(`Delete issue "${t.title}"?`)&&l(`/issues/${t.id}`,{method:"DELETE"})},children:"🗑 Delete"})]}):e.jsx("button",{style:{...a,fontSize:"0.65rem",background:"rgba(68,204,68,0.15)",color:"#4c4",border:"1px solid rgba(68,204,68,0.3)"},onClick:()=>l(`/issues/${t.id}`,{method:"PATCH",body:JSON.stringify({resolved:!0})}),children:"✓ Resolve"}),e.jsx("button",{style:{...a,fontSize:"0.65rem"},onClick:()=>B(t),children:"✎ Edit"})]}),v===t.id&&e.jsxs("div",{style:{marginTop:4,padding:4,background:"#222",borderRadius:3},children:[e.jsxs("div",{style:{display:"flex",gap:4,marginBottom:4},children:[e.jsx("input",{value:p,onChange:o=>j(o.target.value),style:{...i,flex:1}}),e.jsxs("select",{value:C,onChange:o=>z(o.target.value),style:N,children:[e.jsx("option",{value:"plugin",children:"Plugin"}),e.jsx("option",{value:"overlord",children:"Overlord"}),e.jsx("option",{value:"nav",children:"Nav"}),e.jsx("option",{value:"macro",children:"Macro"}),e.jsx("option",{value:"other",children:"Other"})]})]}),e.jsxs("div",{style:{display:"flex",gap:4},children:[e.jsx("textarea",{value:b,onChange:o=>S(o.target.value),rows:2,style:{...i,flex:1,fontSize:"0.75rem",resize:"vertical"}}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx("button",{style:{...g,fontSize:"0.7rem",padding:"3px 8px"},onClick:()=>I(t.id),children:"Save"}),e.jsx("button",{style:{...a},onClick:()=>d(null),children:"Cancel"})]})]})]}),e.jsxs("div",{style:{marginTop:4,paddingTop:4,borderTop:"1px solid #2a2a2a"},children:[D.length===0?e.jsx("div",{style:{color:"#555",fontSize:"0.7rem",padding:"2px 0"},children:"No comments yet"}):D.map(o=>e.jsxs("div",{style:{marginBottom:3,fontSize:"0.72rem"},children:[e.jsx("span",{style:{color:"#8ac",fontWeight:500},children:o.author||"Anonymous"}),e.jsx("span",{style:{color:"#555",marginLeft:6,fontSize:"0.6rem"},children:o.created?new Date(o.created).toLocaleDateString("sv-SE"):""}),e.jsx("div",{style:{color:"#bbb",marginTop:1},children:o.text})]},o.id)),e.jsxs("div",{style:{display:"flex",gap:4,marginTop:3},children:[e.jsx("input",{value:T[t.id]||"",onChange:o=>k(J=>({...J,[t.id]:o.target.value})),placeholder:"Add a comment...",style:{...i,flex:1,fontSize:"0.75rem"},onKeyDown:o=>{o.key==="Enter"&&w(t.id)}}),e.jsx("button",{style:{...g,fontSize:"0.7rem",padding:"3px 8px"},onClick:()=>w(t.id),children:"Post"})]})]})]},t.id)})]}),e.jsxs("div",{style:{padding:6,borderTop:"1px solid #333"},children:[e.jsxs("div",{style:{display:"flex",gap:4,marginBottom:4},children:[e.jsx("input",{value:c,onChange:t=>m(t.target.value),placeholder:"Issue title...",style:{...i,flex:1},onKeyDown:t=>{t.key==="Enter"&&E()}}),e.jsxs("select",{value:f,onChange:t=>$(t.target.value),style:N,children:[e.jsx("option",{value:"plugin",children:"Plugin"}),e.jsx("option",{value:"overlord",children:"Overlord"}),e.jsx("option",{value:"nav",children:"Nav"}),e.jsx("option",{value:"macro",children:"Macro"}),e.jsx("option",{value:"other",children:"Other"})]})]}),e.jsxs("div",{style:{display:"flex",gap:4},children:[e.jsx("textarea",{value:y,onChange:t=>u(t.target.value),placeholder:"Description (optional)...",rows:2,style:{...i,flex:1,fontSize:"0.75rem",resize:"vertical"}}),e.jsx("button",{style:{...g,alignSelf:"flex-end"},onClick:E,children:"Add"})]})]})]})};export{F as IssuesWindow}; +import{r as n,a as W,j as e,D as L}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const O={plugin:{label:"Plugin",color:"#8844cc"},overlord:{label:"Overlord",color:"#4488cc"},nav:{label:"Nav",color:"#44aa44"},macro:{label:"Macro",color:"#cc8844"},other:{label:"Other",color:"#888888"}},i={padding:"3px 6px",fontSize:"0.8rem",border:"1px solid #555",background:"#2a2a2a",color:"#ddd",borderRadius:0},N={...i,fontSize:"0.75rem"},g={padding:"4px 12px",background:"#4a80c0",color:"#fff",border:"1px solid #336699",cursor:"pointer",fontSize:"0.75rem"},a={padding:"3px 8px",background:"#444",color:"#ccc",border:"1px solid #555",cursor:"pointer",fontSize:"0.7rem"},F=({id:P,zIndex:A})=>{const[h,R]=n.useState([]),[c,m]=n.useState(""),[y,u]=n.useState(""),[f,$]=n.useState("plugin"),[v,d]=n.useState(null),[p,j]=n.useState(""),[b,S]=n.useState(""),[C,z]=n.useState(""),[T,k]=n.useState({}),x=n.useCallback(async()=>{try{const t=await W("/issues");R((t.issues??[]).sort((r,s)=>(r.resolved?1:0)-(s.resolved?1:0)))}catch{}},[]);n.useEffect(()=>{x()},[x]);const l=async(t,r)=>{await fetch(`/api${t}`,{...r,credentials:"include",headers:{"Content-Type":"application/json",...r.headers}}),x()},E=async()=>{c.trim()&&(await l("/issues",{method:"POST",body:JSON.stringify({title:c.trim(),description:y.trim(),category:f})}),m(""),u(""))},B=t=>{if(v===t.id){d(null);return}d(t.id),j(t.title),S(t.description||""),z(t.category||"other")},I=async t=>{p.trim()&&(await l(`/issues/${t}`,{method:"PATCH",body:JSON.stringify({title:p.trim(),description:b.trim(),category:C})}),d(null))},w=async t=>{const r=(T[t]||"").trim();r&&(await l(`/issues/${t}/comments`,{method:"POST",body:JSON.stringify({text:r})}),k(s=>({...s,[t]:""})))};return e.jsxs(L,{id:P,title:"Issues Board",zIndex:A,width:540,height:520,children:[e.jsxs("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.8rem"},children:[h.length===0&&e.jsx("div",{style:{padding:10,color:"#888",textAlign:"center"},children:"No open issues"}),h.map(t=>{const r=O[t.category]||O.other,s=t.created?new Date(t.created).toLocaleDateString("sv-SE"):"",D=t.comments||[];return e.jsxs("div",{style:{padding:"6px 8px",marginBottom:4,background:"#1f1f1f",borderRadius:3,border:"1px solid #333",opacity:t.resolved?.55:1},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[e.jsx("span",{style:{fontSize:"0.65rem",padding:"1px 6px",borderRadius:3,background:r.color,color:"#fff",fontWeight:600},children:r.label}),e.jsx("strong",{style:{fontSize:"0.8rem",flex:1},children:t.title}),e.jsxs("span",{style:{fontSize:"0.65rem",color:"#888"},children:["by ",t.author||"User"]}),e.jsx("span",{style:{color:"#666",fontSize:"0.65rem"},children:s})]}),t.description&&e.jsx("div",{style:{color:"#999",marginTop:3,fontSize:"0.75rem"},children:t.description}),e.jsxs("div",{style:{display:"flex",gap:4,marginTop:4},children:[t.resolved?e.jsxs(e.Fragment,{children:[e.jsx("button",{style:{...a,fontSize:"0.65rem"},onClick:()=>l(`/issues/${t.id}`,{method:"PATCH",body:JSON.stringify({resolved:!1})}),children:"↻ Reopen"}),e.jsx("button",{style:{...a,fontSize:"0.65rem",color:"#c66"},onClick:()=>{confirm(`Delete issue "${t.title}"?`)&&l(`/issues/${t.id}`,{method:"DELETE"})},children:"🗑 Delete"})]}):e.jsx("button",{style:{...a,fontSize:"0.65rem",background:"rgba(68,204,68,0.15)",color:"#4c4",border:"1px solid rgba(68,204,68,0.3)"},onClick:()=>l(`/issues/${t.id}`,{method:"PATCH",body:JSON.stringify({resolved:!0})}),children:"✓ Resolve"}),e.jsx("button",{style:{...a,fontSize:"0.65rem"},onClick:()=>B(t),children:"✎ Edit"})]}),v===t.id&&e.jsxs("div",{style:{marginTop:4,padding:4,background:"#222",borderRadius:3},children:[e.jsxs("div",{style:{display:"flex",gap:4,marginBottom:4},children:[e.jsx("input",{value:p,onChange:o=>j(o.target.value),style:{...i,flex:1}}),e.jsxs("select",{value:C,onChange:o=>z(o.target.value),style:N,children:[e.jsx("option",{value:"plugin",children:"Plugin"}),e.jsx("option",{value:"overlord",children:"Overlord"}),e.jsx("option",{value:"nav",children:"Nav"}),e.jsx("option",{value:"macro",children:"Macro"}),e.jsx("option",{value:"other",children:"Other"})]})]}),e.jsxs("div",{style:{display:"flex",gap:4},children:[e.jsx("textarea",{value:b,onChange:o=>S(o.target.value),rows:2,style:{...i,flex:1,fontSize:"0.75rem",resize:"vertical"}}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx("button",{style:{...g,fontSize:"0.7rem",padding:"3px 8px"},onClick:()=>I(t.id),children:"Save"}),e.jsx("button",{style:{...a},onClick:()=>d(null),children:"Cancel"})]})]})]}),e.jsxs("div",{style:{marginTop:4,paddingTop:4,borderTop:"1px solid #2a2a2a"},children:[D.length===0?e.jsx("div",{style:{color:"#555",fontSize:"0.7rem",padding:"2px 0"},children:"No comments yet"}):D.map(o=>e.jsxs("div",{style:{marginBottom:3,fontSize:"0.72rem"},children:[e.jsx("span",{style:{color:"#8ac",fontWeight:500},children:o.author||"Anonymous"}),e.jsx("span",{style:{color:"#555",marginLeft:6,fontSize:"0.6rem"},children:o.created?new Date(o.created).toLocaleDateString("sv-SE"):""}),e.jsx("div",{style:{color:"#bbb",marginTop:1},children:o.text})]},o.id)),e.jsxs("div",{style:{display:"flex",gap:4,marginTop:3},children:[e.jsx("input",{value:T[t.id]||"",onChange:o=>k(J=>({...J,[t.id]:o.target.value})),placeholder:"Add a comment...",style:{...i,flex:1,fontSize:"0.75rem"},onKeyDown:o=>{o.key==="Enter"&&w(t.id)}}),e.jsx("button",{style:{...g,fontSize:"0.7rem",padding:"3px 8px"},onClick:()=>w(t.id),children:"Post"})]})]})]},t.id)})]}),e.jsxs("div",{style:{padding:6,borderTop:"1px solid #333"},children:[e.jsxs("div",{style:{display:"flex",gap:4,marginBottom:4},children:[e.jsx("input",{value:c,onChange:t=>m(t.target.value),placeholder:"Issue title...",style:{...i,flex:1},onKeyDown:t=>{t.key==="Enter"&&E()}}),e.jsxs("select",{value:f,onChange:t=>$(t.target.value),style:N,children:[e.jsx("option",{value:"plugin",children:"Plugin"}),e.jsx("option",{value:"overlord",children:"Overlord"}),e.jsx("option",{value:"nav",children:"Nav"}),e.jsx("option",{value:"macro",children:"Macro"}),e.jsx("option",{value:"other",children:"Other"})]})]}),e.jsxs("div",{style:{display:"flex",gap:4},children:[e.jsx("textarea",{value:y,onChange:t=>u(t.target.value),placeholder:"Description (optional)...",rows:2,style:{...i,flex:1,fontSize:"0.75rem",resize:"vertical"}}),e.jsx("button",{style:{...g,alignSelf:"flex-end"},onClick:E,children:"Add"})]})]})]})};export{F as IssuesWindow}; diff --git a/static/v2/assets/RadarWindow-D2-ECy2X.js b/static/assets/RadarWindow-D_o-FWZR.js similarity index 99% rename from static/v2/assets/RadarWindow-D2-ECy2X.js rename to static/assets/RadarWindow-D_o-FWZR.js index 75e46554..d5ef40b7 100644 --- a/static/v2/assets/RadarWindow-D2-ECy2X.js +++ b/static/assets/RadarWindow-D_o-FWZR.js @@ -1 +1 @@ -import{r as x,j as c,D as ne}from"./index-CLqPZs7-.js";import"./react-DlyoauG8.js";const q=300,H=.5,se={walls:{r:0,g:0,b:255},innerWalls:{r:127,g:127,b:255},rampedWalls:{r:77,g:255,b:255},floors:{r:0,g:127,b:255},stairs:{r:0,g:63,b:255}},le={walls:{r:140,g:140,b:180},innerWalls:{r:100,g:100,b:140},rampedWalls:{r:120,g:160,b:120},floors:{r:60,g:80,b:60},stairs:{r:180,g:160,b:80}};function oe(d){const g=document.createElement("canvas");g.width=10,g.height=10;const w=g.getContext("2d");w.drawImage(d,0,0,10,10);const a=w.getImageData(0,0,10,10),t=a.data;for(let p=0;p240&&R>240&&k>240){t[p+3]=0;continue}let E=!1;for(const[L,I]of Object.entries(se))if(Math.abs(_-I.r)<15&&Math.abs(R-I.g)<15&&Math.abs(k-I.b)<15){const W=le[L];t[p]=W.r,t[p+1]=W.g,t[p+2]=W.b,E=!0;break}!E&&_<15&&R<15&&k<15&&(t[p+3]=100)}return w.putImageData(a,0,0),g}function ie(d){return d===1?Math.PI:d<-.7&&d>-.8?Math.PI/2:d>.7&&d<.8?-Math.PI/2:0}let A=null;function ce(){A||(A={},fetch("/dungeon_tiles.json").then(d=>d.json()).then(d=>{Object.entries(d).forEach(([g,w])=>{const a=new Image;a.onload=()=>{A[g]=oe(a)},a.src=w})}).catch(()=>{}))}const K={Monster:"#ff4444",Player:"#4488ff",NPC:"#44cc44",Vendor:"#44cc44",Portal:"#aa44ff",Corpse:"#ff8800",Container:"#cccc44",Door:"#888888"};function re(d){const g=(d%360+360)%360;return["N","NE","E","SE","S","SW","W","NW"][Math.round(g/45)%8]}const fe=({id:d,charName:g,zIndex:w,socket:a,radarData:t})=>{const p=x.useRef(null),_=x.useRef(H),[R,k]=x.useState(H),[E,L]=x.useState(null),I=x.useRef(null),W=x.useRef([]);x.useEffect(()=>{const n=new Image;n.src="/dereth.png",n.onload=()=>{I.current=n},ce()},[]),x.useEffect(()=>((a==null?void 0:a.readyState)===WebSocket.OPEN&&a.send(JSON.stringify({player_name:g,command:"start_radar"})),()=>{(a==null?void 0:a.readyState)===WebSocket.OPEN&&a.send(JSON.stringify({player_name:g,command:"stop_radar"}))}),[g,a]);const Q=x.useCallback(n=>{n.preventDefault();const e=n.deltaY>0?1.25:.8;_.current=Math.max(.02,Math.min(5,_.current*e)),k(_.current)},[]),D=x.useCallback(n=>{const e=p.current;if(!e)return;const o=e.getBoundingClientRect(),s=(n.clientX-o.left)*(e.width/o.width),r=(n.clientY-o.top)*(e.height/o.height);let M=null,u=20;W.current.forEach(f=>{if(f._px===void 0)return;const S=Math.sqrt((s-f._px)**2+(r-f._py)**2);S{var G;const n=p.current;if(!n||!t)return;const e=n.getContext("2d");if(!e)return;const o=q,s=o/2,r=o/2,M=t.objects??[],u=t.player_ew??0,f=t.player_ns??0,S=t.player_heading??0,b=t.is_dungeon??!1,V=t.player_x??0,Z=t.player_y??0,Y=_.current,z=b?o/2/(Y*240):o/2/Y,j=S*Math.PI/180;e.clearRect(0,0,o,o),e.fillStyle="#111",e.beginPath(),e.arc(s,r,s,0,Math.PI*2),e.fill(),e.save(),e.beginPath(),e.arc(s,r,s-1,0,Math.PI*2),e.clip();const B=t.landblock??null,te=t.player_raw_z??0;if(b&&B&&((G=window.__dungeonMapCache)!=null&&G[B])){const l=window.__dungeonMapCache[B],h=Math.floor((te+3)/6)*6;e.translate(s,r),e.rotate(-(S-180)*Math.PI/180);const i=10*z,O=A&&Object.keys(A).length>0;(l.z_levels||[]).slice().sort((y,m)=>(y.z===h?1:0)-(m.z===h?1:0)).forEach(y=>{const m=y.z===h;e.globalAlpha=m?.85:.12,(y.cells||[]).forEach(T=>{const P=-(T.x-V)*z,N=(T.y-Z)*z,C=O?A[String(T.env_id)]:null;C?(e.save(),e.translate(P,N),e.rotate(ie(T.rotation)),e.drawImage(C,-i/2,-i/2,i,i),e.restore()):(e.fillStyle=m?"#3a5a3a":"#1a2a1a",e.fillRect(P-i/2,N-i/2,i,i))})}),e.globalAlpha=1,e.setTransform(1,0,0,1,0,0)}else if(!b&&I.current){const l=I.current,h=l.naturalWidth/204.2,i=(u+102.1)*h,O=(102.1-f)*h;e.globalAlpha=.4,e.save(),e.translate(s,r),e.rotate(-j);const v=Y*h*2;e.drawImage(l,i-v/2,O-v/2,v,v,-s,-r,o,o),e.restore(),e.globalAlpha=1}e.restore(),e.strokeStyle="#333",e.lineWidth=1;for(let l=1;l<=4;l++)e.beginPath(),e.arc(s,r,s/4*l,0,Math.PI*2),e.stroke();e.beginPath(),e.moveTo(s,0),e.lineTo(s,o),e.moveTo(0,r),e.lineTo(o,r),e.stroke(),e.font="bold 12px monospace",e.textAlign="center",e.textBaseline="middle",[{l:"N",a:0},{l:"E",a:Math.PI/2},{l:"S",a:Math.PI},{l:"W",a:-Math.PI/2}].forEach(({l,a:h})=>{const i=h-j;e.fillStyle=l==="N"?"#cc4444":"#888",e.fillText(l,s+Math.sin(i)*(s-12),r-Math.cos(i)*(s-12))}),e.strokeStyle="#666",e.lineWidth=1,e.beginPath(),e.moveTo(s,r),e.lineTo(s,r-s*.85),e.stroke();const $=b?Math.PI-j:j,X=Math.cos($),F=Math.sin($);M.forEach(l=>{let h,i;b&&l.raw_x!==void 0?(h=-(l.raw_x-V),i=l.raw_y-Z):(h=(l.ew??0)-u,i=(l.ns??0)-f);const O=h*X-i*F,v=b?h*F+i*X:-(h*F+i*X),y=s+O*z,m=r+v*z;if(Math.sqrt((y-s)**2+(m-r)**2)>s-4)return;l._px=y,l._py=m;const P=l.object_class??l.type??"",N=K[P]??"#888",C=l.id===E,J=C?6:P==="Monster"||P==="Player"?4:3;C&&(e.strokeStyle="#fff",e.lineWidth=2,e.beginPath(),e.arc(y,m,J+3,0,Math.PI*2),e.stroke()),e.fillStyle=N,e.beginPath(),e.arc(y,m,J,0,Math.PI*2),e.fill(),(P==="Player"||P==="Portal"||C)&&(e.fillStyle=C?"#fff":N,e.font="9px monospace",e.textAlign="left",e.fillText(l.name,y+6,m+3))}),W.current=M,e.fillStyle="#ffcc00",e.beginPath(),e.arc(s,r,5,0,Math.PI*2),e.fill(),e.strokeStyle="#fff",e.lineWidth=1,e.stroke()},[t,R,E]);const U=((t==null?void 0:t.objects)??[]).map(n=>{const e=(t==null?void 0:t.player_ew)??0,o=(t==null?void 0:t.player_ns)??0,s=(t==null?void 0:t.is_dungeon)??!1,r=(t==null?void 0:t.player_x)??0,M=(t==null?void 0:t.player_y)??0;let u,f,S;s&&n.raw_x!==void 0?(u=-(n.raw_x-r),f=n.raw_y-M,S=Math.sqrt(u*u+f*f)):(u=(n.ew??0)-e,f=(n.ns??0)-o,S=Math.sqrt(u*u+f*f)*240);const b=Math.atan2(u,f)*180/Math.PI;return{...n,dist:S,dir:re(b)}}).sort((n,e)=>n.dist-e.dist),ee=Math.round(R*240);return c.jsxs(ne,{id:d,title:`Radar: ${g}`,zIndex:w,width:360,height:560,children:[c.jsxs("div",{style:{padding:"4px 8px",display:"flex",justifyContent:"space-between",fontSize:"0.75rem",color:"#888",borderBottom:"1px solid #333",background:"#1a1a1a"},children:[c.jsxs("span",{children:["Range: ~",ee,"m"]}),c.jsx("span",{style:{fontSize:"0.65rem",color:"#555"},children:"Scroll to zoom"})]}),c.jsx("canvas",{ref:p,width:q,height:q,style:{display:"block",margin:"0 auto",borderBottom:"1px solid #333",cursor:"crosshair",flexShrink:0},onWheel:Q,onClick:D}),c.jsxs("div",{style:{flex:1,overflowY:"auto",fontSize:"0.72rem",minHeight:0},children:[c.jsxs("div",{style:{display:"flex",padding:"3px 6px",borderBottom:"1px solid #333",color:"#666",fontSize:"0.65rem",fontWeight:600},children:[c.jsx("span",{style:{width:8}}),c.jsx("span",{style:{flex:1,marginLeft:6},children:"Name"}),c.jsx("span",{style:{width:55,textAlign:"left"},children:"Type"}),c.jsx("span",{style:{width:40,textAlign:"right"},children:"Dist"}),c.jsx("span",{style:{width:24,textAlign:"center"},children:"Dir"})]}),U.length===0&&c.jsx("div",{style:{padding:12,color:"#555",textAlign:"center",fontSize:"0.7rem"},children:"Waiting for radar data..."}),U.map(n=>{const e=n.object_class??n.type??"",o=K[e]??"#888",s=n.id===E;return c.jsxs("div",{onClick:()=>L(s?null:n.id),style:{display:"flex",alignItems:"center",padding:"2px 6px",borderBottom:"1px solid #1a1a1a",cursor:"pointer",color:"#ccc",background:s?"#1a2a3a":"",borderLeft:s?"2px solid #4488ff":"2px solid transparent"},children:[c.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:o,flexShrink:0}}),c.jsx("span",{style:{flex:1,marginLeft:6,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.name}),c.jsx("span",{style:{width:55,color:"#888",fontSize:"0.65rem"},children:e}),c.jsx("span",{style:{width:40,textAlign:"right",fontVariantNumeric:"tabular-nums"},children:n.dist<1e3?`${Math.round(n.dist)}m`:`${(n.dist/1e3).toFixed(1)}km`}),c.jsx("span",{style:{width:24,textAlign:"center",color:"#666"},children:n.dir})]},n.id)})]})]})};export{fe as RadarWindow}; +import{r as x,j as c,D as ne}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const q=300,H=.5,se={walls:{r:0,g:0,b:255},innerWalls:{r:127,g:127,b:255},rampedWalls:{r:77,g:255,b:255},floors:{r:0,g:127,b:255},stairs:{r:0,g:63,b:255}},le={walls:{r:140,g:140,b:180},innerWalls:{r:100,g:100,b:140},rampedWalls:{r:120,g:160,b:120},floors:{r:60,g:80,b:60},stairs:{r:180,g:160,b:80}};function oe(d){const g=document.createElement("canvas");g.width=10,g.height=10;const w=g.getContext("2d");w.drawImage(d,0,0,10,10);const a=w.getImageData(0,0,10,10),t=a.data;for(let p=0;p240&&R>240&&k>240){t[p+3]=0;continue}let E=!1;for(const[L,I]of Object.entries(se))if(Math.abs(_-I.r)<15&&Math.abs(R-I.g)<15&&Math.abs(k-I.b)<15){const W=le[L];t[p]=W.r,t[p+1]=W.g,t[p+2]=W.b,E=!0;break}!E&&_<15&&R<15&&k<15&&(t[p+3]=100)}return w.putImageData(a,0,0),g}function ie(d){return d===1?Math.PI:d<-.7&&d>-.8?Math.PI/2:d>.7&&d<.8?-Math.PI/2:0}let A=null;function ce(){A||(A={},fetch("/dungeon_tiles.json").then(d=>d.json()).then(d=>{Object.entries(d).forEach(([g,w])=>{const a=new Image;a.onload=()=>{A[g]=oe(a)},a.src=w})}).catch(()=>{}))}const K={Monster:"#ff4444",Player:"#4488ff",NPC:"#44cc44",Vendor:"#44cc44",Portal:"#aa44ff",Corpse:"#ff8800",Container:"#cccc44",Door:"#888888"};function re(d){const g=(d%360+360)%360;return["N","NE","E","SE","S","SW","W","NW"][Math.round(g/45)%8]}const fe=({id:d,charName:g,zIndex:w,socket:a,radarData:t})=>{const p=x.useRef(null),_=x.useRef(H),[R,k]=x.useState(H),[E,L]=x.useState(null),I=x.useRef(null),W=x.useRef([]);x.useEffect(()=>{const n=new Image;n.src="/dereth.png",n.onload=()=>{I.current=n},ce()},[]),x.useEffect(()=>((a==null?void 0:a.readyState)===WebSocket.OPEN&&a.send(JSON.stringify({player_name:g,command:"start_radar"})),()=>{(a==null?void 0:a.readyState)===WebSocket.OPEN&&a.send(JSON.stringify({player_name:g,command:"stop_radar"}))}),[g,a]);const Q=x.useCallback(n=>{n.preventDefault();const e=n.deltaY>0?1.25:.8;_.current=Math.max(.02,Math.min(5,_.current*e)),k(_.current)},[]),D=x.useCallback(n=>{const e=p.current;if(!e)return;const o=e.getBoundingClientRect(),s=(n.clientX-o.left)*(e.width/o.width),r=(n.clientY-o.top)*(e.height/o.height);let M=null,u=20;W.current.forEach(f=>{if(f._px===void 0)return;const S=Math.sqrt((s-f._px)**2+(r-f._py)**2);S{var G;const n=p.current;if(!n||!t)return;const e=n.getContext("2d");if(!e)return;const o=q,s=o/2,r=o/2,M=t.objects??[],u=t.player_ew??0,f=t.player_ns??0,S=t.player_heading??0,b=t.is_dungeon??!1,V=t.player_x??0,Z=t.player_y??0,Y=_.current,z=b?o/2/(Y*240):o/2/Y,j=S*Math.PI/180;e.clearRect(0,0,o,o),e.fillStyle="#111",e.beginPath(),e.arc(s,r,s,0,Math.PI*2),e.fill(),e.save(),e.beginPath(),e.arc(s,r,s-1,0,Math.PI*2),e.clip();const B=t.landblock??null,te=t.player_raw_z??0;if(b&&B&&((G=window.__dungeonMapCache)!=null&&G[B])){const l=window.__dungeonMapCache[B],h=Math.floor((te+3)/6)*6;e.translate(s,r),e.rotate(-(S-180)*Math.PI/180);const i=10*z,O=A&&Object.keys(A).length>0;(l.z_levels||[]).slice().sort((y,m)=>(y.z===h?1:0)-(m.z===h?1:0)).forEach(y=>{const m=y.z===h;e.globalAlpha=m?.85:.12,(y.cells||[]).forEach(T=>{const P=-(T.x-V)*z,N=(T.y-Z)*z,C=O?A[String(T.env_id)]:null;C?(e.save(),e.translate(P,N),e.rotate(ie(T.rotation)),e.drawImage(C,-i/2,-i/2,i,i),e.restore()):(e.fillStyle=m?"#3a5a3a":"#1a2a1a",e.fillRect(P-i/2,N-i/2,i,i))})}),e.globalAlpha=1,e.setTransform(1,0,0,1,0,0)}else if(!b&&I.current){const l=I.current,h=l.naturalWidth/204.2,i=(u+102.1)*h,O=(102.1-f)*h;e.globalAlpha=.4,e.save(),e.translate(s,r),e.rotate(-j);const v=Y*h*2;e.drawImage(l,i-v/2,O-v/2,v,v,-s,-r,o,o),e.restore(),e.globalAlpha=1}e.restore(),e.strokeStyle="#333",e.lineWidth=1;for(let l=1;l<=4;l++)e.beginPath(),e.arc(s,r,s/4*l,0,Math.PI*2),e.stroke();e.beginPath(),e.moveTo(s,0),e.lineTo(s,o),e.moveTo(0,r),e.lineTo(o,r),e.stroke(),e.font="bold 12px monospace",e.textAlign="center",e.textBaseline="middle",[{l:"N",a:0},{l:"E",a:Math.PI/2},{l:"S",a:Math.PI},{l:"W",a:-Math.PI/2}].forEach(({l,a:h})=>{const i=h-j;e.fillStyle=l==="N"?"#cc4444":"#888",e.fillText(l,s+Math.sin(i)*(s-12),r-Math.cos(i)*(s-12))}),e.strokeStyle="#666",e.lineWidth=1,e.beginPath(),e.moveTo(s,r),e.lineTo(s,r-s*.85),e.stroke();const $=b?Math.PI-j:j,X=Math.cos($),F=Math.sin($);M.forEach(l=>{let h,i;b&&l.raw_x!==void 0?(h=-(l.raw_x-V),i=l.raw_y-Z):(h=(l.ew??0)-u,i=(l.ns??0)-f);const O=h*X-i*F,v=b?h*F+i*X:-(h*F+i*X),y=s+O*z,m=r+v*z;if(Math.sqrt((y-s)**2+(m-r)**2)>s-4)return;l._px=y,l._py=m;const P=l.object_class??l.type??"",N=K[P]??"#888",C=l.id===E,J=C?6:P==="Monster"||P==="Player"?4:3;C&&(e.strokeStyle="#fff",e.lineWidth=2,e.beginPath(),e.arc(y,m,J+3,0,Math.PI*2),e.stroke()),e.fillStyle=N,e.beginPath(),e.arc(y,m,J,0,Math.PI*2),e.fill(),(P==="Player"||P==="Portal"||C)&&(e.fillStyle=C?"#fff":N,e.font="9px monospace",e.textAlign="left",e.fillText(l.name,y+6,m+3))}),W.current=M,e.fillStyle="#ffcc00",e.beginPath(),e.arc(s,r,5,0,Math.PI*2),e.fill(),e.strokeStyle="#fff",e.lineWidth=1,e.stroke()},[t,R,E]);const U=((t==null?void 0:t.objects)??[]).map(n=>{const e=(t==null?void 0:t.player_ew)??0,o=(t==null?void 0:t.player_ns)??0,s=(t==null?void 0:t.is_dungeon)??!1,r=(t==null?void 0:t.player_x)??0,M=(t==null?void 0:t.player_y)??0;let u,f,S;s&&n.raw_x!==void 0?(u=-(n.raw_x-r),f=n.raw_y-M,S=Math.sqrt(u*u+f*f)):(u=(n.ew??0)-e,f=(n.ns??0)-o,S=Math.sqrt(u*u+f*f)*240);const b=Math.atan2(u,f)*180/Math.PI;return{...n,dist:S,dir:re(b)}}).sort((n,e)=>n.dist-e.dist),ee=Math.round(R*240);return c.jsxs(ne,{id:d,title:`Radar: ${g}`,zIndex:w,width:360,height:560,children:[c.jsxs("div",{style:{padding:"4px 8px",display:"flex",justifyContent:"space-between",fontSize:"0.75rem",color:"#888",borderBottom:"1px solid #333",background:"#1a1a1a"},children:[c.jsxs("span",{children:["Range: ~",ee,"m"]}),c.jsx("span",{style:{fontSize:"0.65rem",color:"#555"},children:"Scroll to zoom"})]}),c.jsx("canvas",{ref:p,width:q,height:q,style:{display:"block",margin:"0 auto",borderBottom:"1px solid #333",cursor:"crosshair",flexShrink:0},onWheel:Q,onClick:D}),c.jsxs("div",{style:{flex:1,overflowY:"auto",fontSize:"0.72rem",minHeight:0},children:[c.jsxs("div",{style:{display:"flex",padding:"3px 6px",borderBottom:"1px solid #333",color:"#666",fontSize:"0.65rem",fontWeight:600},children:[c.jsx("span",{style:{width:8}}),c.jsx("span",{style:{flex:1,marginLeft:6},children:"Name"}),c.jsx("span",{style:{width:55,textAlign:"left"},children:"Type"}),c.jsx("span",{style:{width:40,textAlign:"right"},children:"Dist"}),c.jsx("span",{style:{width:24,textAlign:"center"},children:"Dir"})]}),U.length===0&&c.jsx("div",{style:{padding:12,color:"#555",textAlign:"center",fontSize:"0.7rem"},children:"Waiting for radar data..."}),U.map(n=>{const e=n.object_class??n.type??"",o=K[e]??"#888",s=n.id===E;return c.jsxs("div",{onClick:()=>L(s?null:n.id),style:{display:"flex",alignItems:"center",padding:"2px 6px",borderBottom:"1px solid #1a1a1a",cursor:"pointer",color:"#ccc",background:s?"#1a2a3a":"",borderLeft:s?"2px solid #4488ff":"2px solid transparent"},children:[c.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:o,flexShrink:0}}),c.jsx("span",{style:{flex:1,marginLeft:6,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.name}),c.jsx("span",{style:{width:55,color:"#888",fontSize:"0.65rem"},children:e}),c.jsx("span",{style:{width:40,textAlign:"right",fontVariantNumeric:"tabular-nums"},children:n.dist<1e3?`${Math.round(n.dist)}m`:`${(n.dist/1e3).toFixed(1)}km`}),c.jsx("span",{style:{width:24,textAlign:"center",color:"#666"},children:n.dir})]},n.id)})]})]})};export{fe as RadarWindow}; diff --git a/static/v2/assets/StatsWindow-DonAC4kK.js b/static/assets/StatsWindow-BvEd94FW.js similarity index 93% rename from static/v2/assets/StatsWindow-DonAC4kK.js rename to static/assets/StatsWindow-BvEd94FW.js index 74cb4a9a..715ecca9 100644 --- a/static/v2/assets/StatsWindow-DonAC4kK.js +++ b/static/assets/StatsWindow-BvEd94FW.js @@ -1 +1 @@ -import{r as o,j as t,D as d}from"./index-CLqPZs7-.js";import"./react-DlyoauG8.js";const c=[{title:"Kills per Hour",id:1},{title:"Memory (MB)",id:2},{title:"CPU (%)",id:3},{title:"Mem Handles",id:4}],m=[{label:"1H",value:"now-1h"},{label:"6H",value:"now-6h"},{label:"24H",value:"now-24h"},{label:"7D",value:"now-7d"}],v=({id:s,charName:a,zIndex:i})=>{const[l,r]=o.useState("now-24h"),n=e=>`/grafana/d-solo/dereth-tracker/dereth-tracker-dashboard?panelId=${e}&var-character=${encodeURIComponent(a)}&from=${l}&to=now&theme=light`;return t.jsxs(d,{id:s,title:`Stats: ${a}`,zIndex:i,width:750,height:480,children:[t.jsx("div",{className:"ml-stats-controls",children:m.map(e=>t.jsx("button",{className:`ml-stats-range-btn ${l===e.value?"active":""}`,onClick:()=>r(e.value),children:e.label},e.value))}),t.jsx("div",{className:"ml-stats-grid",children:c.map(e=>t.jsx("div",{className:"ml-stats-panel",children:t.jsx("iframe",{src:n(e.id),width:"100%",height:"100%",frameBorder:"0",title:e.title})},e.id))})]})};export{v as StatsWindow}; +import{r as o,j as t,D as d}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const c=[{title:"Kills per Hour",id:1},{title:"Memory (MB)",id:2},{title:"CPU (%)",id:3},{title:"Mem Handles",id:4}],m=[{label:"1H",value:"now-1h"},{label:"6H",value:"now-6h"},{label:"24H",value:"now-24h"},{label:"7D",value:"now-7d"}],v=({id:s,charName:a,zIndex:i})=>{const[l,r]=o.useState("now-24h"),n=e=>`/grafana/d-solo/dereth-tracker/dereth-tracker-dashboard?panelId=${e}&var-character=${encodeURIComponent(a)}&from=${l}&to=now&theme=light`;return t.jsxs(d,{id:s,title:`Stats: ${a}`,zIndex:i,width:750,height:480,children:[t.jsx("div",{className:"ml-stats-controls",children:m.map(e=>t.jsx("button",{className:`ml-stats-range-btn ${l===e.value?"active":""}`,onClick:()=>r(e.value),children:e.label},e.value))}),t.jsx("div",{className:"ml-stats-grid",children:c.map(e=>t.jsx("div",{className:"ml-stats-panel",children:t.jsx("iframe",{src:n(e.id),width:"100%",height:"100%",frameBorder:"0",title:e.title})},e.id))})]})};export{v as StatsWindow}; diff --git a/static/v2/assets/VitalSharingWindow-Cxliz82-.js b/static/assets/VitalSharingWindow-0C98e7ZG.js similarity index 97% rename from static/v2/assets/VitalSharingWindow-Cxliz82-.js rename to static/assets/VitalSharingWindow-0C98e7ZG.js index 2a02db95..0e555efa 100644 --- a/static/v2/assets/VitalSharingWindow-Cxliz82-.js +++ b/static/assets/VitalSharingWindow-0C98e7ZG.js @@ -1 +1 @@ -import{r as n,j as t,D as x,a as m}from"./index-CLqPZs7-.js";import"./react-DlyoauG8.js";const v=({id:o,zIndex:c})=>{const[a,d]=n.useState([]);n.useEffect(()=>{const e=async()=>{try{const s=await m("/vital-sharing/peers");d(s.peers??[])}catch{}};e();const l=setInterval(e,5e3);return()=>clearInterval(l)},[]);const h=(e,l)=>l>0?Math.min(100,e/l*100):0;return t.jsx(x,{id:o,title:"Vital Sharing Network",zIndex:c,width:520,height:450,children:t.jsx("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.75rem"},children:a.length===0?t.jsx("div",{style:{padding:16,color:"#666",textAlign:"center"},children:"No vital-sharing peers connected"}):a.map(e=>{var l,s,r;return t.jsxs("div",{style:{padding:"6px 8px",marginBottom:4,background:"#1f1f1f",borderRadius:3,border:"1px solid #333"},children:[t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:3},children:[t.jsx("span",{style:{color:e.plugin_connected?"#4c4":"#a33",fontSize:"0.8rem"},children:"●"}),t.jsx("strong",{style:{flex:1},children:e.character_name}),e.subscribed&&t.jsx("span",{style:{color:"#6bf",fontSize:"0.65rem"},children:"[subscribed]"})]}),t.jsxs("div",{style:{color:"#666",fontSize:"0.68rem",marginBottom:3},children:["tags: ",((l=e.tags)==null?void 0:l.join(", "))||"none"]}),e.vitals&&e.vitals.max_health>0&&t.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[{label:"HP",cur:e.vitals.current_health,max:e.vitals.max_health,bg:"#330000",fill:"#c44"},{label:"STA",cur:e.vitals.current_stamina,max:e.vitals.max_stamina,bg:"#331a00",fill:"#ca0"},{label:"MANA",cur:e.vitals.current_mana,max:e.vitals.max_mana,bg:"#001433",fill:"#48f"}].map(i=>t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[t.jsx("span",{style:{width:32,color:"#888",fontSize:"0.65rem"},children:i.label}),t.jsx("div",{style:{flex:1,height:6,background:i.bg,borderRadius:3,overflow:"hidden"},children:t.jsx("div",{style:{width:`${h(i.cur,i.max)}%`,height:"100%",background:i.fill,borderRadius:3}})}),t.jsxs("span",{style:{width:60,textAlign:"right",fontSize:"0.65rem",color:"#888"},children:[i.cur,"/",i.max]})]},i.label))}),e.position&&t.jsxs("div",{style:{color:"#555",fontSize:"0.65rem",marginTop:2},children:[(s=e.position.ns)==null?void 0:s.toFixed(1),"N, ",(r=e.position.ew)==null?void 0:r.toFixed(1),"E"]})]},e.character_name)})})})};export{v as VitalSharingWindow}; +import{r as n,j as t,D as x,a as m}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const v=({id:o,zIndex:c})=>{const[a,d]=n.useState([]);n.useEffect(()=>{const e=async()=>{try{const s=await m("/vital-sharing/peers");d(s.peers??[])}catch{}};e();const l=setInterval(e,5e3);return()=>clearInterval(l)},[]);const h=(e,l)=>l>0?Math.min(100,e/l*100):0;return t.jsx(x,{id:o,title:"Vital Sharing Network",zIndex:c,width:520,height:450,children:t.jsx("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.75rem"},children:a.length===0?t.jsx("div",{style:{padding:16,color:"#666",textAlign:"center"},children:"No vital-sharing peers connected"}):a.map(e=>{var l,s,r;return t.jsxs("div",{style:{padding:"6px 8px",marginBottom:4,background:"#1f1f1f",borderRadius:3,border:"1px solid #333"},children:[t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:3},children:[t.jsx("span",{style:{color:e.plugin_connected?"#4c4":"#a33",fontSize:"0.8rem"},children:"●"}),t.jsx("strong",{style:{flex:1},children:e.character_name}),e.subscribed&&t.jsx("span",{style:{color:"#6bf",fontSize:"0.65rem"},children:"[subscribed]"})]}),t.jsxs("div",{style:{color:"#666",fontSize:"0.68rem",marginBottom:3},children:["tags: ",((l=e.tags)==null?void 0:l.join(", "))||"none"]}),e.vitals&&e.vitals.max_health>0&&t.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[{label:"HP",cur:e.vitals.current_health,max:e.vitals.max_health,bg:"#330000",fill:"#c44"},{label:"STA",cur:e.vitals.current_stamina,max:e.vitals.max_stamina,bg:"#331a00",fill:"#ca0"},{label:"MANA",cur:e.vitals.current_mana,max:e.vitals.max_mana,bg:"#001433",fill:"#48f"}].map(i=>t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[t.jsx("span",{style:{width:32,color:"#888",fontSize:"0.65rem"},children:i.label}),t.jsx("div",{style:{flex:1,height:6,background:i.bg,borderRadius:3,overflow:"hidden"},children:t.jsx("div",{style:{width:`${h(i.cur,i.max)}%`,height:"100%",background:i.fill,borderRadius:3}})}),t.jsxs("span",{style:{width:60,textAlign:"right",fontSize:"0.65rem",color:"#888"},children:[i.cur,"/",i.max]})]},i.label))}),e.position&&t.jsxs("div",{style:{color:"#555",fontSize:"0.65rem",marginTop:2},children:[(s=e.position.ns)==null?void 0:s.toFixed(1),"N, ",(r=e.position.ew)==null?void 0:r.toFixed(1),"E"]})]},e.character_name)})})})};export{v as VitalSharingWindow}; diff --git a/static/assets/index-CjQam_eg.css b/static/assets/index-CjQam_eg.css new file mode 100644 index 00000000..fb793373 --- /dev/null +++ b/static/assets/index-CjQam_eg.css @@ -0,0 +1 @@ +*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-body: #0d0d0d;--bg-card: #1a1a1a;--bg-card-hover: #222;--bg-header: #111;--border: #333;--text: #ddd;--text-muted: #888;--text-dim: #555;--accent: #4488ff;--hp: linear-gradient(90deg, #ff4444, #ff6666);--hp-bg: #330000;--sta: linear-gradient(90deg, #ffaa00, #ffcc44);--sta-bg: #331a00;--mana: linear-gradient(90deg, #4488ff, #66aaff);--mana-bg: #001433;--badge-combat: #44cc44;--badge-nav: #ffaa00;--badge-idle: #666;--radius: 6px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-body);color:var(--text);line-height:1.4;min-height:100vh}.dashboard{display:flex;flex-direction:column;min-height:100vh}.dashboard-header{background:var(--bg-header);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.dashboard-title{font-size:1.2rem;font-weight:600;color:var(--accent)}.dashboard-nav{display:flex;gap:16px}.nav-link{color:var(--text-muted);text-decoration:none;font-size:.85rem;transition:color .2s}.nav-link:hover{color:var(--text)}.dashboard-main{flex:1;padding:16px 24px;max-width:1600px;margin:0 auto;width:100%;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.dashboard-main::-webkit-scrollbar{display:none}.global-stats{display:flex;gap:24px;padding:12px 0;margin-bottom:16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.global-stat{display:flex;align-items:center;gap:6px}.global-value{font-size:1.1rem;font-weight:600;color:var(--text)}.global-label{font-size:.75rem;color:var(--text-muted)}.server-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.server-dot.online{background:#4c4}.server-dot.offline{background:#c44}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.grid-empty{text-align:center;color:var(--text-muted);padding:48px;font-size:1rem}.char-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;cursor:pointer;transition:background .15s,border-color .15s}.char-card:hover{background:var(--bg-card-hover);border-color:#444}.char-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.char-name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.char-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:3px;letter-spacing:.5px}.badge-combat{background:#4c43;color:var(--badge-combat)}.badge-nav{background:#fa03;color:var(--badge-nav)}.badge-other{background:#c443;color:#c44}.badge-idle{background:#64646433;color:var(--badge-idle)}.char-vitals{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.char-vitals-placeholder{font-size:.75rem;color:var(--text-dim);margin-bottom:8px;font-style:italic}.vital-bar{display:flex;align-items:center;gap:6px}.vital-label{font-size:.65rem;color:var(--text-muted);width:20px;text-align:right}.vital-track{flex:1;height:6px;border-radius:3px;overflow:hidden}.vital-fill{height:100%;border-radius:3px;transition:width .3s ease-out}.vital-text{font-size:.65rem;color:var(--text-muted);width:65px;text-align:right;font-variant-numeric:tabular-nums}.char-stats-row{display:flex;gap:12px;margin-bottom:4px}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}.stat-label{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.char-location{font-size:.7rem;color:var(--text-dim);text-align:right}.char-expanded{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.expanded-row{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-muted);margin-bottom:2px}.vitae-warn{color:#f66;font-size:.8rem;font-weight:600;margin-bottom:4px}.tab-container{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}.tab-bar{display:flex;gap:4px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{padding:8px 20px;font-size:.85rem;background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.tab-btn:hover{background:var(--bg-card-hover);color:var(--text)}.tab-btn.active{background:var(--bg-card-hover);color:var(--accent);border-bottom-color:var(--bg-body)}.tab-content{min-height:300px}.chart-section{margin-bottom:24px}.chart-title{font-size:.9rem;font-weight:600;color:var(--text);margin-bottom:12px}.rares-summary{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.rare-stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 20px;display:flex;flex-direction:column;align-items:center;min-width:140px}.rare-stat-value{font-size:1.3rem;font-weight:700;color:#fc0}.rare-stat-label{font-size:.7rem;color:var(--text-muted);margin-top:4px}.rare-timeline{max-height:200px;overflow-y:auto}.rare-event{display:flex;gap:12px;padding:4px 0;border-bottom:1px solid #222;font-size:.8rem}.rare-time{color:var(--text-dim);width:80px}.rare-char{color:var(--text-muted);width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rare-name{color:#fc0;font-weight:600}.map-tab{display:flex;flex-direction:column;align-items:center}.map-container{position:relative;width:100%;max-width:800px;aspect-ratio:1}.map-image{width:100%;height:100%;object-fit:contain;display:block}.map-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.map-legend{display:flex;gap:16px;align-items:center;margin-top:8px;font-size:.75rem;color:var(--text-muted)}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.legend-dot.hunting{background:#4c4}.legend-dot.other{background:#fa0}.map-count{margin-left:auto}.inventory-tab{width:100%}.search-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px}.search-input{flex:1;padding:8px 12px;font-size:.9rem;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none}.search-input:focus{border-color:var(--accent)}.search-spinner{font-size:.75rem;color:var(--text-muted)}.search-count{font-size:.75rem;color:var(--text-muted);margin-bottom:8px}.search-empty{text-align:center;color:var(--text-dim);padding:24px}.results-table{width:100%;border-collapse:collapse;font-size:.8rem}.results-table th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);color:var(--text-muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.3px}.results-table td{padding:4px 8px;border-bottom:1px solid #1a1a1a;color:var(--text)}.results-table tr:hover td{background:var(--bg-card-hover)}.item-name{font-weight:500}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:8px;padding:10px 16px}.dashboard-main{padding:12px}.global-stats{gap:16px}.char-grid{grid-template-columns:1fr}.char-stats-row{gap:8px}}@media(max-width:480px){.dashboard-nav{gap:10px;font-size:.8rem}.char-card{padding:10px}}.ml-layout{display:flex;height:100vh;overflow:hidden;background:#111;color:#eee;font-family:Segoe UI,sans-serif}.ml-sidebar{width:400px;min-width:400px;background:#1a1a1a;border-right:2px solid #333;display:flex;flex-direction:column;overflow-y:auto;padding:12px 14px;scrollbar-width:none;-ms-overflow-style:none}.ml-sidebar::-webkit-scrollbar{display:none}.ml-sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.ml-sidebar-title{font-size:.85rem;font-weight:600;color:#88f}.ml-view-toggle{font-size:.7rem;padding:3px 10px;background:#333;color:#aaa;border:1px solid #555;border-radius:3px;cursor:pointer}.ml-view-toggle:hover{background:#444;color:#fff}.ml-server-status{display:flex;align-items:center;gap:6px;padding:4px 0 8px;font-size:.75rem;color:#aaa}.ml-status-dot{width:8px;height:8px;border-radius:50%}.ml-status-dot.online{background:#4c4;animation:ml-pulse 2s ease-in-out infinite}.ml-status-dot.offline{background:#c44}.ml-status-detail{color:#888;font-size:.7rem}.ml-status-latency{margin-left:auto;color:#888}.ml-tool-links{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.ml-tool-link{font-size:.68rem;color:#8ac;text-decoration:none;padding:2px 6px;background:#4488ff14;border:1px solid rgba(68,136,255,.15);border-radius:3px;transition:all .15s}.ml-tool-link:hover{background:#4488ff2e;color:#adf}@keyframes ml-pulse{0%,to{opacity:1}50%{opacity:.4}}.ml-counters{display:flex;gap:6px;margin-bottom:10px}.ml-counter{flex:1;text-align:center;padding:6px 4px;border-radius:4px;background:#222;border:1px solid #333}.ml-counter-val{display:block;font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.ml-counter-lbl{display:block;font-size:.6rem;color:#888;text-transform:uppercase;letter-spacing:.3px}.ml-counter.rares .ml-counter-val{color:#fc0}.ml-counter.kph .ml-counter-val{color:#4af}.ml-counter.kph{border-color:#234;animation:ml-kph-glow 3s ease-in-out infinite}.ml-counter.kph.ultra{background:linear-gradient(135deg,#112,#221);animation:ml-kph-glow 1.5s ease-in-out infinite}.ml-counter.kills .ml-counter-val{color:#f66}@keyframes ml-kph-glow{0%,to{box-shadow:0 0 4px #4af3}50%{box-shadow:0 0 12px #44aaff80}}.ml-sort-buttons{display:flex;gap:2px;margin:8px 0}.ml-sort-btn{flex:1;padding:4px 0;font-size:.65rem;font-weight:600;background:#2a2a2a;color:#888;border:1px solid #444;border-radius:3px;cursor:pointer;text-transform:uppercase;letter-spacing:.3px}.ml-sort-btn:hover{background:#333;color:#ccc}.ml-sort-btn.active{background:#334;color:#88f;border-color:#88f}.ml-filter{width:100%;padding:5px 8px;font-size:.78rem;background:#222;color:#eee;border:1px solid #444;border-radius:3px;outline:none;margin-bottom:8px;box-sizing:border-box}.ml-filter:focus{border-color:#88f}.ml-filter::placeholder{color:#666}.ml-player-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.ml-player-list::-webkit-scrollbar{display:none}.ml-player-row{padding:6px 8px;border-bottom:1px solid #2a2a2a;border-left:3px solid transparent;cursor:pointer;transition:background .1s}.ml-player-row:hover{background:#252525}.ml-player-row.ml-player-selected{background:#2a3344}.ml-pr-name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-pr-coords{font-size:.65rem;color:#888;margin-bottom:3px}.ml-pr-vitals{display:flex;gap:3px;margin-bottom:4px}.ml-vital-bar{flex:1;height:4px;border-radius:2px;overflow:hidden}.ml-vital-bar.hp{background:#300}.ml-vital-bar.sta{background:#331a00}.ml-vital-bar.mana{background:#001433}.ml-vital-bar.hp .ml-vital-fill{background:linear-gradient(90deg,#f44,#f66)}.ml-vital-bar.sta .ml-vital-fill{background:linear-gradient(90deg,#fa0,#fc4)}.ml-vital-bar.mana .ml-vital-fill{background:linear-gradient(90deg,#48f,#6af)}.ml-vital-fill{height:100%;border-radius:2px;transition:width .3s ease-out}.ml-pr-header{display:flex;justify-content:space-between;align-items:baseline;cursor:pointer}.ml-pr-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px 8px;font-size:.68rem;color:#aaa;margin-bottom:4px}.ml-gs{font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ml-suffix{font-size:.58rem;color:#666;text-transform:uppercase;letter-spacing:.3px}.ml-taper-icon{width:14px;height:14px;margin-right:2px;vertical-align:text-bottom}.ml-meta-pill{font-size:.6rem;padding:0 6px;border-radius:3px;background:#333;color:#888;text-align:center;justify-self:end}.ml-pr-buttons{display:flex;gap:3px;margin-top:4px}.ml-btn{padding:2px 8px;font-size:.63rem;font-weight:500;border:1px solid #3a3a3a;border-radius:4px;background:#2a2a2a;color:#999;cursor:pointer;white-space:nowrap;transition:all .15s;letter-spacing:.2px}.ml-btn:hover{background:#383838;color:#ddd;border-color:#555}.ml-btn.accent{background:#4488ff1f;color:#6aadff;border-color:#4488ff4d}.ml-btn.accent:hover{background:#4488ff38;color:#8ec5ff;border-color:#4488ff80}.ml-meta-pill.active{background:#44cc4426;color:#4c4}.ml-meta-pill.other{background:#cc444426;color:#c44}.ml-map-container{flex:1;position:relative;overflow:hidden;background:#000;cursor:grab}.ml-map-container:active{cursor:grabbing}.ml-map-group{position:absolute;top:0;left:0;transform-origin:0 0}.ml-map-img{display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ml-dots-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-dot{position:absolute;width:6px;height:6px;border-radius:50%;transform:translate(-50%,-50%);border:1px solid rgba(0,0,0,.5);pointer-events:all;cursor:pointer;z-index:5}.ml-dot:hover{width:10px;height:10px;z-index:10}.ml-dot.ml-dot-selected{width:10px;height:10px;z-index:10;animation:ml-blink .6s step-end infinite}@keyframes ml-blink{50%{opacity:0}}.ml-version{font-size:.65rem;color:#aaa;margin-bottom:2px}.ml-tooltip{position:absolute;background:#001e3ceb;color:#eee;padding:6px 10px;border-radius:4px;font-size:.75rem;pointer-events:none;z-index:1000;white-space:nowrap;border:1px solid #335}.ml-coords{position:absolute;bottom:8px;left:8px;background:#003264d9;color:#eee;padding:4px 10px;border-radius:4px;font-size:.75rem;pointer-events:none;z-index:100;font-variant-numeric:tabular-nums}.ml-toggles{display:flex;gap:12px;margin-bottom:8px;font-size:.72rem}.ml-toggle-label{display:flex;align-items:center;gap:4px;color:#aaa;cursor:pointer}.ml-toggle-label input{accent-color:#4488ff}.ml-trails-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-heatmap-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.8}.ml-portals-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-portal-icon{position:absolute;width:6px;height:6px;transform:translate(-50%,-50%);pointer-events:all;cursor:help}.ml-portal-icon:before{content:"🌀";font-size:10px;position:absolute;transform:translate(-50%,-50%)}.ml-window{position:fixed;background:#1a1a1a;border:1px solid #444;border-radius:6px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #00000080}.ml-window-header{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:linear-gradient(135deg,#2a3a5a,#1a2a40);cursor:move;-webkit-user-select:none;user-select:none;border-bottom:1px solid #334}.ml-window-title{font-size:.8rem;font-weight:600;color:#acf}.ml-window-close{background:none;border:none;color:#888;font-size:1.1rem;cursor:pointer;line-height:1;padding:0 4px}.ml-window-close:hover{color:#f66}.ml-window-content{flex:1;overflow:auto;display:flex;flex-direction:column}.ml-stats-controls{display:flex;gap:4px;padding:6px 10px;border-bottom:1px solid #333}.ml-stats-range-btn{padding:3px 10px;font-size:.7rem;background:#2a2a2a;color:#888;border:1px solid #444;border-radius:3px;cursor:pointer}.ml-stats-range-btn.active{background:#4488ff26;color:#6aadff;border-color:#4488ff4d}.ml-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;flex:1}.ml-stats-panel{min-height:200px;background:#fff;border-radius:3px;overflow:hidden}.ml-stats-panel iframe{border:none}.ml-chat-messages{flex:1;overflow-y:auto;padding:6px 10px;font-size:.75rem;font-family:Consolas,Courier New,monospace;line-height:1.4}.ml-chat-line{word-break:break-word}.ml-chat-form{display:flex;border-top:1px solid #333;padding:4px}.ml-chat-input{flex:1;background:#222;color:#eee;border:1px solid #444;border-radius:3px;padding:4px 8px;font-size:.78rem;outline:none}.ml-chat-input:focus{border-color:#48f}.ml-chat-input::placeholder{color:#666}.ml-rare-notifications{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.ml-rare-notif{background:linear-gradient(135deg,#1a0a2e,#2a1040);border:2px solid #ffcc00;border-radius:8px;padding:16px 32px;text-align:center;animation:ml-notif-in .5s ease-out;box-shadow:0 0 40px #ffcc004d}.ml-rare-notif.exiting{animation:ml-notif-out .5s ease-in forwards}.ml-rare-notif-title{font-size:1.4rem;font-weight:800;color:#fc0;text-shadow:0 0 20px rgba(255,204,0,.5);margin-bottom:4px}.ml-rare-notif-name{font-size:1.1rem;font-weight:600;color:#fff;margin-bottom:4px}.ml-rare-notif-by{font-size:.75rem;color:#888}.ml-rare-notif-char{font-size:1rem;font-weight:700;color:#fc0}@keyframes ml-notif-in{0%{transform:translateY(-40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes ml-notif-out{to{transform:translateY(-60px);opacity:0}}.ml-fireworks{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:99998}.ml-firework-particle{position:absolute;width:6px;height:6px;border-radius:50%;animation:ml-particle 2s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes ml-particle{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}@media(max-width:768px){.ml-layout{flex-direction:column}.ml-sidebar{width:100%;min-width:100%;max-height:40vh;border-right:none;border-bottom:2px solid #333}.ml-map-container{min-height:60vh}} diff --git a/static/v2/assets/index-CLqPZs7-.js b/static/assets/index-ahPE6Fpe.js similarity index 99% rename from static/v2/assets/index-CLqPZs7-.js rename to static/assets/index-ahPE6Fpe.js index 7b9c6f6e..f7efebc8 100644 --- a/static/v2/assets/index-CLqPZs7-.js +++ b/static/assets/index-ahPE6Fpe.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StatsWindow-DonAC4kK.js","assets/react-DlyoauG8.js","assets/CharacterWindow-HFix6rx0.js","assets/InventoryWindow-DNVzs4Pz.js","assets/RadarWindow-D2-ECy2X.js","assets/CombatStatsWindow-CJo0cOU-.js","assets/CombatPickerWindow-2QrIZhzN.js","assets/IssuesWindow-CBadrEJS.js","assets/VitalSharingWindow-Cxliz82-.js","assets/DashboardView-BWfpkQBB.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StatsWindow-BvEd94FW.js","assets/react-DlyoauG8.js","assets/CharacterWindow-DHhMuitc.js","assets/InventoryWindow-CHG3Ftlg.js","assets/RadarWindow-D_o-FWZR.js","assets/CombatStatsWindow-Js_v2JL3.js","assets/CombatPickerWindow-CWXujjNT.js","assets/IssuesWindow-BeCdzqJV.js","assets/VitalSharingWindow-0C98e7ZG.js","assets/DashboardView-B8znzNXc.js"])))=>i.map(i=>d[i]); import{r as _m,g as er,a as ur}from"./react-DlyoauG8.js";(function(){const x=document.createElement("link").relList;if(x&&x.supports&&x.supports("modulepreload"))return;for(const U of document.querySelectorAll('link[rel="modulepreload"]'))d(U);new MutationObserver(U=>{for(const O of U)if(O.type==="childList")for(const N of O.addedNodes)N.tagName==="LINK"&&N.rel==="modulepreload"&&d(N)}).observe(document,{childList:!0,subtree:!0});function _(U){const O={};return U.integrity&&(O.integrity=U.integrity),U.referrerPolicy&&(O.referrerPolicy=U.referrerPolicy),U.crossOrigin==="use-credentials"?O.credentials="include":U.crossOrigin==="anonymous"?O.credentials="omit":O.credentials="same-origin",O}function d(U){if(U.ep)return;U.ep=!0;const O=_(U);fetch(U.href,O)}})();var sf={exports:{}},gu={};/** * @license React * react-jsx-runtime.production.js @@ -31,4 +31,4 @@ import{r as _m,g as er,a as ur}from"./react-DlyoauG8.js";(function(){const x=doc `+f[e].replace(" at new "," at ");return l.displayName&&S.includes("")&&(S=S.replace("",l.displayName)),S}while(1<=e&&0<=u);break}}}finally{Kn=!1,Error.prepareStackTrace=a}return(a=l?l.displayName||l.name:"")?pa(a):""}function Rm(l,t){switch(l.tag){case 26:case 27:case 5:return pa(l.type);case 16:return pa("Lazy");case 13:return l.child!==t&&t!==null?pa("Suspense Fallback"):pa("Suspense");case 19:return pa("SuspenseList");case 0:case 15:return Jn(l.type,!1);case 11:return Jn(l.type.render,!1);case 1:return Jn(l.type,!0);case 31:return pa("Activity");default:return""}}function vf(l){try{var t="",a=null;do t+=Rm(l,a),a=l,l=l.return;while(l);return t}catch(e){return` Error generating stack: `+e.message+` `+e.stack}}var wn=Object.prototype.hasOwnProperty,kn=o.unstable_scheduleCallback,Wn=o.unstable_cancelCallback,Hm=o.unstable_shouldYield,qm=o.unstable_requestPaint,Pl=o.unstable_now,Bm=o.unstable_getCurrentPriorityLevel,yf=o.unstable_ImmediatePriority,gf=o.unstable_UserBlockingPriority,Mu=o.unstable_NormalPriority,Ym=o.unstable_LowPriority,Sf=o.unstable_IdlePriority,Xm=o.log,Gm=o.unstable_setDisableYieldValue,Me=null,lt=null;function Wt(l){if(typeof Xm=="function"&&Gm(l),lt&&typeof lt.setStrictMode=="function")try{lt.setStrictMode(Me,l)}catch{}}var tt=Math.clz32?Math.clz32:Vm,Qm=Math.log,Zm=Math.LN2;function Vm(l){return l>>>=0,l===0?32:31-(Qm(l)/Zm|0)|0}var _u=256,xu=262144,Du=4194304;function Ta(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Ou(l,t,a){var e=l.pendingLanes;if(e===0)return 0;var u=0,n=l.suspendedLanes,c=l.pingedLanes;l=l.warmLanes;var i=e&134217727;return i!==0?(e=i&~n,e!==0?u=Ta(e):(c&=i,c!==0?u=Ta(c):a||(a=i&~l,a!==0&&(u=Ta(a))))):(i=e&~n,i!==0?u=Ta(i):c!==0?u=Ta(c):a||(a=e&~l,a!==0&&(u=Ta(a)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,a=t&-t,n>=a||n===32&&(a&4194048)!==0)?t:u}function _e(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function Lm(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function bf(){var l=Du;return Du<<=1,(Du&62914560)===0&&(Du=4194304),l}function Fn(l){for(var t=[],a=0;31>a;a++)t.push(l);return t}function xe(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Km(l,t,a,e,u,n){var c=l.pendingLanes;l.pendingLanes=a,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=a,l.entangledLanes&=a,l.errorRecoveryDisabledLanes&=a,l.shellSuspendCounter=0;var i=l.entanglements,f=l.expirationTimes,r=l.hiddenUpdates;for(a=c&~a;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var $m=/[\n"\\]/g;function dt(l){return l.replace($m,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function ac(l,t,a,e,u,n,c,i){l.name="",c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.type=c:l.removeAttribute("type"),t!=null?c==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+ot(t)):l.value!==""+ot(t)&&(l.value=""+ot(t)):c!=="submit"&&c!=="reset"||l.removeAttribute("value"),t!=null?ec(l,c,ot(t)):a!=null?ec(l,c,ot(a)):e!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.name=""+ot(i):l.removeAttribute("name")}function jf(l,t,a,e,u,n,c,i){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||a!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){tc(l);return}a=a!=null?""+ot(a):"",t=t!=null?""+ot(t):a,i||t===l.value||(l.value=t),l.defaultValue=t}e=e??u,e=typeof e!="function"&&typeof e!="symbol"&&!!e,l.checked=i?l.checked:!!e,l.defaultChecked=!!e,c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(l.name=c),tc(l)}function ec(l,t,a){t==="number"&&ju(l.ownerDocument)===l||l.defaultValue===""+a||(l.defaultValue=""+a)}function Ja(l,t,a,e){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),fc=!1;if(Ut)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){fc=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch{fc=!1}var $t=null,sc=null,Ru=null;function Xf(){if(Ru)return Ru;var l,t=sc,a=t.length,e,u="value"in $t?$t.value:$t.textContent,n=u.length;for(l=0;l=Re),Kf=" ",Jf=!1;function wf(l,t){switch(l){case"keyup":return M0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kf(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Fa=!1;function x0(l,t){switch(l){case"compositionend":return kf(t);case"keypress":return t.which!==32?null:(Jf=!0,Kf);case"textInput":return l=t.data,l===Kf&&Jf?null:l;default:return null}}function D0(l,t){if(Fa)return l==="compositionend"||!rc&&wf(l,t)?(l=Xf(),Ru=sc=$t=null,Fa=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-l};l=e}l:{for(;a;){if(a.nextSibling){a=a.nextSibling;break l}a=a.parentNode}a=void 0}a=as(a)}}function us(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?us(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function ns(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=ju(l.document);t instanceof l.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)l=t.contentWindow;else break;t=ju(l.document)}return t}function gc(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var q0=Ut&&"documentMode"in document&&11>=document.documentMode,$a=null,Sc=null,Ye=null,bc=!1;function cs(l,t,a){var e=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;bc||$a==null||$a!==ju(e)||(e=$a,"selectionStart"in e&&gc(e)?e={start:e.selectionStart,end:e.selectionEnd}:(e=(e.ownerDocument&&e.ownerDocument.defaultView||window).getSelection(),e={anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}),Ye&&Be(Ye,e)||(Ye=e,e=Dn(Sc,"onSelect"),0>=c,u-=c,Mt=1<<32-tt(t)+u|a<w?(el=Y,Y=null):el=Y.sibling;var il=v(m,Y,h[w],p);if(il===null){Y===null&&(Y=el);break}l&&Y&&il.alternate===null&&t(m,Y),s=n(il,s,w),cl===null?G=il:cl.sibling=il,cl=il,Y=el}if(w===h.length)return a(m,Y),nl&&Ct(m,w),G;if(Y===null){for(;ww?(el=Y,Y=null):el=Y.sibling;var ba=v(m,Y,il.value,p);if(ba===null){Y===null&&(Y=el);break}l&&Y&&ba.alternate===null&&t(m,Y),s=n(ba,s,w),cl===null?G=ba:cl.sibling=ba,cl=ba,Y=el}if(il.done)return a(m,Y),nl&&Ct(m,w),G;if(Y===null){for(;!il.done;w++,il=h.next())il=A(m,il.value,p),il!==null&&(s=n(il,s,w),cl===null?G=il:cl.sibling=il,cl=il);return nl&&Ct(m,w),G}for(Y=e(Y);!il.done;w++,il=h.next())il=g(Y,m,w,il.value,p),il!==null&&(l&&il.alternate!==null&&Y.delete(il.key===null?w:il.key),s=n(il,s,w),cl===null?G=il:cl.sibling=il,cl=il);return l&&Y.forEach(function(ar){return t(m,ar)}),nl&&Ct(m,w),G}function rl(m,s,h,p){if(typeof h=="object"&&h!==null&&h.type===W&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case Q:l:{for(var G=h.key;s!==null;){if(s.key===G){if(G=h.type,G===W){if(s.tag===7){a(m,s.sibling),p=u(s,h.props.children),p.return=m,m=p;break l}}else if(s.elementType===G||typeof G=="object"&&G!==null&&G.$$typeof===ul&&Ca(G)===s.type){a(m,s.sibling),p=u(s,h.props),Le(p,h),p.return=m,m=p;break l}a(m,s);break}else t(m,s);s=s.sibling}h.type===W?(p=Da(h.props.children,m.mode,p,h.key),p.return=m,m=p):(p=Lu(h.type,h.key,h.props,null,m.mode,p),Le(p,h),p.return=m,m=p)}return c(m);case X:l:{for(G=h.key;s!==null;){if(s.key===G)if(s.tag===4&&s.stateNode.containerInfo===h.containerInfo&&s.stateNode.implementation===h.implementation){a(m,s.sibling),p=u(s,h.children||[]),p.return=m,m=p;break l}else{a(m,s);break}else t(m,s);s=s.sibling}p=_c(h,m.mode,p),p.return=m,m=p}return c(m);case ul:return h=Ca(h),rl(m,s,h,p)}if(st(h))return q(m,s,h,p);if(B(h)){if(G=B(h),typeof G!="function")throw Error(d(150));return h=G.call(h),Z(m,s,h,p)}if(typeof h.then=="function")return rl(m,s,$u(h),p);if(h.$$typeof===tl)return rl(m,s,wu(m,h),p);Iu(m,h)}return typeof h=="string"&&h!==""||typeof h=="number"||typeof h=="bigint"?(h=""+h,s!==null&&s.tag===6?(a(m,s.sibling),p=u(s,h),p.return=m,m=p):(a(m,s),p=Mc(h,m.mode,p),p.return=m,m=p),c(m)):a(m,s)}return function(m,s,h,p){try{Ve=0;var G=rl(m,s,h,p);return fe=null,G}catch(Y){if(Y===ie||Y===Wu)throw Y;var cl=et(29,Y,null,m.mode);return cl.lanes=p,cl.return=m,cl}finally{}}}var Ha=Os(!0),Ns=Os(!1),aa=!1;function Yc(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Xc(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ea(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function ua(l,t,a){var e=l.updateQueue;if(e===null)return null;if(e=e.shared,(fl&2)!==0){var u=e.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),e.pending=t,t=Vu(l),hs(l,null,a),t}return Zu(l,e,t,a),Vu(l)}function Ke(l,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var e=t.lanes;e&=l.pendingLanes,a|=e,t.lanes=a,pf(l,a)}}function Gc(l,t){var a=l.updateQueue,e=l.alternate;if(e!==null&&(e=e.updateQueue,a===e)){var u=null,n=null;if(a=a.firstBaseUpdate,a!==null){do{var c={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};n===null?u=n=c:n=n.next=c,a=a.next}while(a!==null);n===null?u=n=t:n=n.next=t}else u=n=t;a={baseState:e.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:e.shared,callbacks:e.callbacks},l.updateQueue=a;return}l=a.lastBaseUpdate,l===null?a.firstBaseUpdate=t:l.next=t,a.lastBaseUpdate=t}var Qc=!1;function Je(){if(Qc){var l=ce;if(l!==null)throw l}}function we(l,t,a,e){Qc=!1;var u=l.updateQueue;aa=!1;var n=u.firstBaseUpdate,c=u.lastBaseUpdate,i=u.shared.pending;if(i!==null){u.shared.pending=null;var f=i,r=f.next;f.next=null,c===null?n=r:c.next=r,c=f;var S=l.alternate;S!==null&&(S=S.updateQueue,i=S.lastBaseUpdate,i!==c&&(i===null?S.firstBaseUpdate=r:i.next=r,S.lastBaseUpdate=f))}if(n!==null){var A=u.baseState;c=0,S=r=f=null,i=n;do{var v=i.lane&-536870913,g=v!==i.lane;if(g?(al&v)===v:(e&v)===v){v!==0&&v===ne&&(Qc=!0),S!==null&&(S=S.next={lane:0,tag:i.tag,payload:i.payload,callback:null,next:null});l:{var q=l,Z=i;v=t;var rl=a;switch(Z.tag){case 1:if(q=Z.payload,typeof q=="function"){A=q.call(rl,A,v);break l}A=q;break l;case 3:q.flags=q.flags&-65537|128;case 0:if(q=Z.payload,v=typeof q=="function"?q.call(rl,A,v):q,v==null)break l;A=z({},A,v);break l;case 2:aa=!0}}v=i.callback,v!==null&&(l.flags|=64,g&&(l.flags|=8192),g=u.callbacks,g===null?u.callbacks=[v]:g.push(v))}else g={lane:v,tag:i.tag,payload:i.payload,callback:i.callback,next:null},S===null?(r=S=g,f=A):S=S.next=g,c|=v;if(i=i.next,i===null){if(i=u.shared.pending,i===null)break;g=i,i=g.next,g.next=null,u.lastBaseUpdate=g,u.shared.pending=null}}while(!0);S===null&&(f=A),u.baseState=f,u.firstBaseUpdate=r,u.lastBaseUpdate=S,n===null&&(u.shared.lanes=0),sa|=c,l.lanes=c,l.memoizedState=A}}function Us(l,t){if(typeof l!="function")throw Error(d(191,l));l.call(t)}function js(l,t){var a=l.callbacks;if(a!==null)for(l.callbacks=null,l=0;ln?n:8;var c=b.T,i={};b.T=i,ci(l,!1,t,a);try{var f=u(),r=b.S;if(r!==null&&r(i,f),f!==null&&typeof f=="object"&&typeof f.then=="function"){var S=K0(f,e);Fe(l,t,S,ft(l))}else Fe(l,t,e,ft(l))}catch(A){Fe(l,t,{then:function(){},status:"rejected",reason:A},ft())}finally{C.p=n,c!==null&&i.types!==null&&(c.types=i.types),b.T=c}}function $0(){}function ui(l,t,a,e){if(l.tag!==5)throw Error(d(476));var u=oo(l).queue;so(l,u,t,V,a===null?$0:function(){return mo(l),a(e)})}function oo(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:V,baseState:V,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Bt,lastRenderedState:V},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Bt,lastRenderedState:a},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function mo(l){var t=oo(l);t.next===null&&(t=l.alternate.memoizedState),Fe(l,t.next.queue,{},ft())}function ni(){return Gl(hu)}function ho(){return _l().memoizedState}function ro(){return _l().memoizedState}function I0(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var a=ft();l=ea(a);var e=ua(t,l,a);e!==null&&(Il(e,t,a),Ke(e,t,a)),t={cache:Rc()},l.payload=t;return}t=t.return}}function P0(l,t,a){var e=ft();a={lane:e,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},sn(l)?yo(t,a):(a=Ec(l,t,a,e),a!==null&&(Il(a,l,e),go(a,t,e)))}function vo(l,t,a){var e=ft();Fe(l,t,a,e)}function Fe(l,t,a,e){var u={lane:e,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(sn(l))yo(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var c=t.lastRenderedState,i=n(c,a);if(u.hasEagerState=!0,u.eagerState=i,at(i,c))return Zu(l,t,u,0),vl===null&&Qu(),!1}catch{}finally{}if(a=Ec(l,t,u,e),a!==null)return Il(a,l,e),go(a,t,e),!0}return!1}function ci(l,t,a,e){if(e={lane:2,revertLane:Yi(),gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},sn(l)){if(t)throw Error(d(479))}else t=Ec(l,a,e,2),t!==null&&Il(t,l,2)}function sn(l){var t=l.alternate;return l===K||t!==null&&t===K}function yo(l,t){oe=tn=!0;var a=l.pending;a===null?t.next=t:(t.next=a.next,a.next=t),l.pending=t}function go(l,t,a){if((a&4194048)!==0){var e=t.lanes;e&=l.pendingLanes,a|=e,t.lanes=a,pf(l,a)}}var $e={readContext:Gl,use:un,useCallback:El,useContext:El,useEffect:El,useImperativeHandle:El,useLayoutEffect:El,useInsertionEffect:El,useMemo:El,useReducer:El,useRef:El,useState:El,useDebugValue:El,useDeferredValue:El,useTransition:El,useSyncExternalStore:El,useId:El,useHostTransitionStatus:El,useFormState:El,useActionState:El,useOptimistic:El,useMemoCache:El,useCacheRefresh:El};$e.useEffectEvent=El;var So={readContext:Gl,use:un,useCallback:function(l,t){return Kl().memoizedState=[l,t===void 0?null:t],l},useContext:Gl,useEffect:lo,useImperativeHandle:function(l,t,a){a=a!=null?a.concat([l]):null,cn(4194308,4,uo.bind(null,t,l),a)},useLayoutEffect:function(l,t){return cn(4194308,4,l,t)},useInsertionEffect:function(l,t){cn(4,2,l,t)},useMemo:function(l,t){var a=Kl();t=t===void 0?null:t;var e=l();if(qa){Wt(!0);try{l()}finally{Wt(!1)}}return a.memoizedState=[e,t],e},useReducer:function(l,t,a){var e=Kl();if(a!==void 0){var u=a(t);if(qa){Wt(!0);try{a(t)}finally{Wt(!1)}}}else u=t;return e.memoizedState=e.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},e.queue=l,l=l.dispatch=P0.bind(null,K,l),[e.memoizedState,l]},useRef:function(l){var t=Kl();return l={current:l},t.memoizedState=l},useState:function(l){l=Pc(l);var t=l.queue,a=vo.bind(null,K,t);return t.dispatch=a,[l.memoizedState,a]},useDebugValue:ai,useDeferredValue:function(l,t){var a=Kl();return ei(a,l,t)},useTransition:function(){var l=Pc(!1);return l=so.bind(null,K,l.queue,!0,!1),Kl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,a){var e=K,u=Kl();if(nl){if(a===void 0)throw Error(d(407));a=a()}else{if(a=t(),vl===null)throw Error(d(349));(al&127)!==0||Ys(e,t,a)}u.memoizedState=a;var n={value:a,getSnapshot:t};return u.queue=n,lo(Gs.bind(null,e,n,l),[l]),e.flags|=2048,me(9,{destroy:void 0},Xs.bind(null,e,n,a,t),null),a},useId:function(){var l=Kl(),t=vl.identifierPrefix;if(nl){var a=_t,e=Mt;a=(e&~(1<<32-tt(e)-1)).toString(32)+a,t="_"+t+"R_"+a,a=an++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof e.is=="string"?c.createElement("select",{is:e.is}):c.createElement("select"),e.multiple?n.multiple=!0:e.size&&(n.size=e.size);break;default:n=typeof e.is=="string"?c.createElement(u,{is:e.is}):c.createElement(u)}}n[Yl]=t,n[Jl]=e;l:for(c=t.child;c!==null;){if(c.tag===5||c.tag===6)n.appendChild(c.stateNode);else if(c.tag!==4&&c.tag!==27&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===t)break l;for(;c.sibling===null;){if(c.return===null||c.return===t)break l;c=c.return}c.sibling.return=c.return,c=c.sibling}t.stateNode=n;l:switch(Zl(n,u,e),u){case"button":case"input":case"select":case"textarea":e=!!e.autoFocus;break l;case"img":e=!0;break l;default:e=!1}e&&Xt(t)}}return bl(t),zi(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,a),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==e&&Xt(t);else{if(typeof e!="string"&&t.stateNode===null)throw Error(d(166));if(l=kt.current,ee(t)){if(l=t.stateNode,a=t.memoizedProps,e=null,u=Xl,u!==null)switch(u.tag){case 27:case 5:e=u.memoizedProps}l[Yl]=t,l=!!(l.nodeValue===a||e!==null&&e.suppressHydrationWarning===!0||Bd(l.nodeValue,a)),l||la(t,!0)}else l=On(l).createTextNode(e),l[Yl]=t,t.stateNode=l}return bl(t),null;case 31:if(a=t.memoizedState,l===null||l.memoizedState!==null){if(e=ee(t),a!==null){if(l===null){if(!e)throw Error(d(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(d(557));l[Yl]=t}else Oa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;bl(t),l=!1}else a=Nc(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=a),l=!0;if(!l)return t.flags&256?(nt(t),t):(nt(t),null);if((t.flags&128)!==0)throw Error(d(558))}return bl(t),null;case 13:if(e=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=ee(t),e!==null&&e.dehydrated!==null){if(l===null){if(!u)throw Error(d(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(d(317));u[Yl]=t}else Oa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;bl(t),u=!1}else u=Nc(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(nt(t),t):(nt(t),null)}return nt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=e!==null,l=l!==null&&l.memoizedState!==null,a&&(e=t.child,u=null,e.alternate!==null&&e.alternate.memoizedState!==null&&e.alternate.memoizedState.cachePool!==null&&(u=e.alternate.memoizedState.cachePool.pool),n=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),n!==u&&(e.flags|=2048)),a!==l&&a&&(t.child.flags|=8192),rn(t,t.updateQueue),bl(t),null);case 4:return Ga(),l===null&&Zi(t.stateNode.containerInfo),bl(t),null;case 10:return Ht(t.type),bl(t),null;case 19:if(Tl(Ml),e=t.memoizedState,e===null)return bl(t),null;if(u=(t.flags&128)!==0,n=e.rendering,n===null)if(u)Pe(e,!1);else{if(Al!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=ln(l),n!==null){for(t.flags|=128,Pe(e,!1),l=n.updateQueue,t.updateQueue=l,rn(t,l),t.subtreeFlags=0,l=a,a=t.child;a!==null;)rs(a,l),a=a.sibling;return sl(Ml,Ml.current&1|2),nl&&Ct(t,e.treeForkCount),t.child}l=l.sibling}e.tail!==null&&Pl()>bn&&(t.flags|=128,u=!0,Pe(e,!1),t.lanes=4194304)}else{if(!u)if(l=ln(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,rn(t,l),Pe(e,!0),e.tail===null&&e.tailMode==="hidden"&&!n.alternate&&!nl)return bl(t),null}else 2*Pl()-e.renderingStartTime>bn&&a!==536870912&&(t.flags|=128,u=!0,Pe(e,!1),t.lanes=4194304);e.isBackwards?(n.sibling=t.child,t.child=n):(l=e.last,l!==null?l.sibling=n:t.child=n,e.last=n)}return e.tail!==null?(l=e.tail,e.rendering=l,e.tail=l.sibling,e.renderingStartTime=Pl(),l.sibling=null,a=Ml.current,sl(Ml,u?a&1|2:a&1),nl&&Ct(t,e.treeForkCount),l):(bl(t),null);case 22:case 23:return nt(t),Vc(),e=t.memoizedState!==null,l!==null?l.memoizedState!==null!==e&&(t.flags|=8192):e&&(t.flags|=8192),e?(a&536870912)!==0&&(t.flags&128)===0&&(bl(t),t.subtreeFlags&6&&(t.flags|=8192)):bl(t),a=t.updateQueue,a!==null&&rn(t,a.retryQueue),a=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(a=l.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==a&&(t.flags|=2048),l!==null&&Tl(ja),null;case 24:return a=null,l!==null&&(a=l.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Ht(xl),bl(t),null;case 25:return null;case 30:return null}throw Error(d(156,t.tag))}function uh(l,t){switch(Dc(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Ht(xl),Ga(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Au(t),null;case 31:if(t.memoizedState!==null){if(nt(t),t.alternate===null)throw Error(d(340));Oa()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(nt(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(d(340));Oa()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return Tl(Ml),null;case 4:return Ga(),null;case 10:return Ht(t.type),null;case 22:case 23:return nt(t),Vc(),l!==null&&Tl(ja),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Ht(xl),null;case 25:return null;default:return null}}function Zo(l,t){switch(Dc(t),t.tag){case 3:Ht(xl),Ga();break;case 26:case 27:case 5:Au(t);break;case 4:Ga();break;case 31:t.memoizedState!==null&&nt(t);break;case 13:nt(t);break;case 19:Tl(Ml);break;case 10:Ht(t.type);break;case 22:case 23:nt(t),Vc(),l!==null&&Tl(ja);break;case 24:Ht(xl)}}function lu(l,t){try{var a=t.updateQueue,e=a!==null?a.lastEffect:null;if(e!==null){var u=e.next;a=u;do{if((a.tag&l)===l){e=void 0;var n=a.create,c=a.inst;e=n(),c.destroy=e}a=a.next}while(a!==u)}}catch(i){dl(t,t.return,i)}}function ia(l,t,a){try{var e=t.updateQueue,u=e!==null?e.lastEffect:null;if(u!==null){var n=u.next;e=n;do{if((e.tag&l)===l){var c=e.inst,i=c.destroy;if(i!==void 0){c.destroy=void 0,u=t;var f=a,r=i;try{r()}catch(S){dl(u,f,S)}}}e=e.next}while(e!==n)}}catch(S){dl(t,t.return,S)}}function Vo(l){var t=l.updateQueue;if(t!==null){var a=l.stateNode;try{js(t,a)}catch(e){dl(l,l.return,e)}}}function Lo(l,t,a){a.props=Ba(l.type,l.memoizedProps),a.state=l.memoizedState;try{a.componentWillUnmount()}catch(e){dl(l,t,e)}}function tu(l,t){try{var a=l.ref;if(a!==null){switch(l.tag){case 26:case 27:case 5:var e=l.stateNode;break;case 30:e=l.stateNode;break;default:e=l.stateNode}typeof a=="function"?l.refCleanup=a(e):a.current=e}}catch(u){dl(l,t,u)}}function xt(l,t){var a=l.ref,e=l.refCleanup;if(a!==null)if(typeof e=="function")try{e()}catch(u){dl(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(u){dl(l,t,u)}else a.current=null}function Ko(l){var t=l.type,a=l.memoizedProps,e=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&e.focus();break l;case"img":a.src?e.src=a.src:a.srcSet&&(e.srcset=a.srcSet)}}catch(u){dl(l,l.return,u)}}function pi(l,t,a){try{var e=l.stateNode;_h(e,l.type,a,t),e[Jl]=t}catch(u){dl(l,l.return,u)}}function Jo(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&ra(l.type)||l.tag===4}function Ti(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||Jo(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&ra(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Ei(l,t,a){var e=l.tag;if(e===5||e===6)l=l.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(l,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(l),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=Nt));else if(e!==4&&(e===27&&ra(l.type)&&(a=l.stateNode,t=null),l=l.child,l!==null))for(Ei(l,t,a),l=l.sibling;l!==null;)Ei(l,t,a),l=l.sibling}function vn(l,t,a){var e=l.tag;if(e===5||e===6)l=l.stateNode,t?a.insertBefore(l,t):a.appendChild(l);else if(e!==4&&(e===27&&ra(l.type)&&(a=l.stateNode),l=l.child,l!==null))for(vn(l,t,a),l=l.sibling;l!==null;)vn(l,t,a),l=l.sibling}function wo(l){var t=l.stateNode,a=l.memoizedProps;try{for(var e=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Zl(t,e,a),t[Yl]=l,t[Jl]=a}catch(n){dl(l,l.return,n)}}var Gt=!1,Nl=!1,Ai=!1,ko=typeof WeakSet=="function"?WeakSet:Set,ql=null;function nh(l,t){if(l=l.containerInfo,Ki=qn,l=ns(l),gc(l)){if("selectionStart"in l)var a={start:l.selectionStart,end:l.selectionEnd};else l:{a=(a=l.ownerDocument)&&a.defaultView||window;var e=a.getSelection&&a.getSelection();if(e&&e.rangeCount!==0){a=e.anchorNode;var u=e.anchorOffset,n=e.focusNode;e=e.focusOffset;try{a.nodeType,n.nodeType}catch{a=null;break l}var c=0,i=-1,f=-1,r=0,S=0,A=l,v=null;t:for(;;){for(var g;A!==a||u!==0&&A.nodeType!==3||(i=c+u),A!==n||e!==0&&A.nodeType!==3||(f=c+e),A.nodeType===3&&(c+=A.nodeValue.length),(g=A.firstChild)!==null;)v=A,A=g;for(;;){if(A===l)break t;if(v===a&&++r===u&&(i=c),v===n&&++S===e&&(f=c),(g=A.nextSibling)!==null)break;A=v,v=A.parentNode}A=g}a=i===-1||f===-1?null:{start:i,end:f}}else a=null}a=a||{start:0,end:0}}else a=null;for(Ji={focusedElem:l,selectionRange:a},qn=!1,ql=t;ql!==null;)if(t=ql,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,ql=l;else for(;ql!==null;){switch(t=ql,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(a=0;a title"))),Zl(n,e,a),n[Yl]=l,Hl(n),e=n;break l;case"link":var c=lm("link","href",u).get(e+(a.href||""));if(c){for(var i=0;irl&&(c=rl,rl=Z,Z=c);var m=es(i,Z),s=es(i,rl);if(m&&s&&(g.rangeCount!==1||g.anchorNode!==m.node||g.anchorOffset!==m.offset||g.focusNode!==s.node||g.focusOffset!==s.offset)){var h=A.createRange();h.setStart(m.node,m.offset),g.removeAllRanges(),Z>rl?(g.addRange(h),g.extend(s.node,s.offset)):(h.setEnd(s.node,s.offset),g.addRange(h))}}}}for(A=[],g=i;g=g.parentNode;)g.nodeType===1&&A.push({element:g,left:g.scrollLeft,top:g.scrollTop});for(typeof i.focus=="function"&&i.focus(),i=0;ia?32:a,b.T=null,a=Ui,Ui=null;var n=da,c=Kt;if(Cl=0,ge=da=null,Kt=0,(fl&6)!==0)throw Error(d(331));var i=fl;if(fl|=4,nd(n.current),ad(n,n.current,c,a),fl=i,iu(0,!1),lt&&typeof lt.onPostCommitFiberRoot=="function")try{lt.onPostCommitFiberRoot(Me,n)}catch{}return!0}finally{C.p=u,b.T=e,Ed(l,t)}}function Md(l,t,a){t=ht(a,t),t=oi(l.stateNode,t,2),l=ua(l,t,2),l!==null&&(xe(l,2),Dt(l))}function dl(l,t,a){if(l.tag===3)Md(l,l,a);else for(;t!==null;){if(t.tag===3){Md(t,l,a);break}else if(t.tag===1){var e=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof e.componentDidCatch=="function"&&(oa===null||!oa.has(e))){l=ht(a,l),a=_o(2),e=ua(t,a,2),e!==null&&(xo(a,e,t,l),xe(e,2),Dt(e));break}}t=t.return}}function Hi(l,t,a){var e=l.pingCache;if(e===null){e=l.pingCache=new fh;var u=new Set;e.set(t,u)}else u=e.get(t),u===void 0&&(u=new Set,e.set(t,u));u.has(a)||(xi=!0,u.add(a),l=hh.bind(null,l,t,a),t.then(l,l))}function hh(l,t,a){var e=l.pingCache;e!==null&&e.delete(t),l.pingedLanes|=l.suspendedLanes&a,l.warmLanes&=~a,vl===l&&(al&a)===a&&(Al===4||Al===3&&(al&62914560)===al&&300>Pl()-Sn?(fl&2)===0&&Se(l,0):Di|=a,ye===al&&(ye=0)),Dt(l)}function _d(l,t){t===0&&(t=bf()),l=xa(l,t),l!==null&&(xe(l,t),Dt(l))}function rh(l){var t=l.memoizedState,a=0;t!==null&&(a=t.retryLane),_d(l,a)}function vh(l,t){var a=0;switch(l.tag){case 31:case 13:var e=l.stateNode,u=l.memoizedState;u!==null&&(a=u.retryLane);break;case 19:e=l.stateNode;break;case 22:e=l.stateNode._retryCache;break;default:throw Error(d(314))}e!==null&&e.delete(t),_d(l,a)}function yh(l,t){return kn(l,t)}var Mn=null,ze=null,qi=!1,_n=!1,Bi=!1,ha=0;function Dt(l){l!==ze&&l.next===null&&(ze===null?Mn=ze=l:ze=ze.next=l),_n=!0,qi||(qi=!0,Sh())}function iu(l,t){if(!Bi&&_n){Bi=!0;do for(var a=!1,e=Mn;e!==null;){if(l!==0){var u=e.pendingLanes;if(u===0)var n=0;else{var c=e.suspendedLanes,i=e.pingedLanes;n=(1<<31-tt(42|l)+1)-1,n&=u&~(c&~i),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(a=!0,Nd(e,n))}else n=al,n=Ou(e,e===vl?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),(n&3)===0||_e(e,n)||(a=!0,Nd(e,n));e=e.next}while(a);Bi=!1}}function gh(){xd()}function xd(){_n=qi=!1;var l=0;ha!==0&&Dh()&&(l=ha);for(var t=Pl(),a=null,e=Mn;e!==null;){var u=e.next,n=Dd(e,t);n===0?(e.next=null,a===null?Mn=u:a.next=u,u===null&&(ze=a)):(a=e,(l!==0||(n&3)!==0)&&(_n=!0)),e=u}Cl!==0&&Cl!==5||iu(l),ha!==0&&(ha=0)}function Dd(l,t){for(var a=l.suspendedLanes,e=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0i)break;var S=f.transferSize,A=f.initiatorType;S&&Yd(A)&&(f=f.responseEnd,c+=S*(f"u"?null:document;function Fd(l,t,a){var e=pe;if(e&&typeof t=="string"&&t){var u=dt(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),Wd.has(u)||(Wd.add(u),l={rel:l,crossOrigin:a,href:t},e.querySelector(u)===null&&(t=e.createElement("link"),Zl(t,"link",l),Hl(t),e.head.appendChild(t)))}}function Bh(l){Jt.D(l),Fd("dns-prefetch",l,null)}function Yh(l,t){Jt.C(l,t),Fd("preconnect",l,t)}function Xh(l,t,a){Jt.L(l,t,a);var e=pe;if(e&&l&&t){var u='link[rel="preload"][as="'+dt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+dt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+dt(a.imageSizes)+'"]')):u+='[href="'+dt(l)+'"]';var n=u;switch(t){case"style":n=Te(l);break;case"script":n=Ee(l)}bt.has(n)||(l=z({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:l,as:t},a),bt.set(n,l),e.querySelector(u)!==null||t==="style"&&e.querySelector(du(n))||t==="script"&&e.querySelector(mu(n))||(t=e.createElement("link"),Zl(t,"link",l),Hl(t),e.head.appendChild(t)))}}function Gh(l,t){Jt.m(l,t);var a=pe;if(a&&l){var e=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+dt(e)+'"][href="'+dt(l)+'"]',n=u;switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ee(l)}if(!bt.has(n)&&(l=z({rel:"modulepreload",href:l},t),bt.set(n,l),a.querySelector(u)===null)){switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(mu(n)))return}e=a.createElement("link"),Zl(e,"link",l),Hl(e),a.head.appendChild(e)}}}function Qh(l,t,a){Jt.S(l,t,a);var e=pe;if(e&&l){var u=La(e).hoistableStyles,n=Te(l);t=t||"default";var c=u.get(n);if(!c){var i={loading:0,preload:null};if(c=e.querySelector(du(n)))i.loading=5;else{l=z({rel:"stylesheet",href:l,"data-precedence":t},a),(a=bt.get(n))&&Pi(l,a);var f=c=e.createElement("link");Hl(f),Zl(f,"link",l),f._p=new Promise(function(r,S){f.onload=r,f.onerror=S}),f.addEventListener("load",function(){i.loading|=1}),f.addEventListener("error",function(){i.loading|=2}),i.loading|=4,Un(c,t,e)}c={type:"stylesheet",instance:c,count:1,state:i},u.set(n,c)}}}function Zh(l,t){Jt.X(l,t);var a=pe;if(a&&l){var e=La(a).hoistableScripts,u=Ee(l),n=e.get(u);n||(n=a.querySelector(mu(u)),n||(l=z({src:l,async:!0},t),(t=bt.get(u))&&lf(l,t),n=a.createElement("script"),Hl(n),Zl(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function Vh(l,t){Jt.M(l,t);var a=pe;if(a&&l){var e=La(a).hoistableScripts,u=Ee(l),n=e.get(u);n||(n=a.querySelector(mu(u)),n||(l=z({src:l,async:!0,type:"module"},t),(t=bt.get(u))&&lf(l,t),n=a.createElement("script"),Hl(n),Zl(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function $d(l,t,a,e){var u=(u=kt.current)?Nn(u):null;if(!u)throw Error(d(446));switch(l){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Te(a.href),a=La(u).hoistableStyles,e=a.get(t),e||(e={type:"style",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){l=Te(a.href);var n=La(u).hoistableStyles,c=n.get(l);if(c||(u=u.ownerDocument||u,c={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,c),(n=u.querySelector(du(l)))&&!n._p&&(c.instance=n,c.state.loading=5),bt.has(l)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},bt.set(l,a),n||Lh(u,l,a,c.state))),t&&e===null)throw Error(d(528,""));return c}if(t&&e!==null)throw Error(d(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ee(a),a=La(u).hoistableScripts,e=a.get(t),e||(e={type:"script",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};default:throw Error(d(444,l))}}function Te(l){return'href="'+dt(l)+'"'}function du(l){return'link[rel="stylesheet"]['+l+"]"}function Id(l){return z({},l,{"data-precedence":l.precedence,precedence:null})}function Lh(l,t,a,e){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?e.loading=1:(t=l.createElement("link"),e.preload=t,t.addEventListener("load",function(){return e.loading|=1}),t.addEventListener("error",function(){return e.loading|=2}),Zl(t,"link",a),Hl(t),l.head.appendChild(t))}function Ee(l){return'[src="'+dt(l)+'"]'}function mu(l){return"script[async]"+l}function Pd(l,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var e=l.querySelector('style[data-href~="'+dt(a.href)+'"]');if(e)return t.instance=e,Hl(e),e;var u=z({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return e=(l.ownerDocument||l).createElement("style"),Hl(e),Zl(e,"style",u),Un(e,a.precedence,l),t.instance=e;case"stylesheet":u=Te(a.href);var n=l.querySelector(du(u));if(n)return t.state.loading|=4,t.instance=n,Hl(n),n;e=Id(a),(u=bt.get(u))&&Pi(e,u),n=(l.ownerDocument||l).createElement("link"),Hl(n);var c=n;return c._p=new Promise(function(i,f){c.onload=i,c.onerror=f}),Zl(n,"link",e),t.state.loading|=4,Un(n,a.precedence,l),t.instance=n;case"script":return n=Ee(a.src),(u=l.querySelector(mu(n)))?(t.instance=u,Hl(u),u):(e=a,(u=bt.get(n))&&(e=z({},a),lf(e,u)),l=l.ownerDocument||l,u=l.createElement("script"),Hl(u),Zl(u,"link",e),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(d(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(e=t.instance,t.state.loading|=4,Un(e,a.precedence,l));return t.instance}function Un(l,t,a){for(var e=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=e.length?e[e.length-1]:null,n=u,c=0;c title"):null)}function Kh(l,t,a){if(a===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function am(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Jh(l,t,a,e){if(a.type==="stylesheet"&&(typeof e.media!="string"||matchMedia(e.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var u=Te(e.href),n=t.querySelector(du(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Cn.bind(l),t.then(l,l)),a.state.loading|=4,a.instance=n,Hl(n);return}n=t.ownerDocument||t,e=Id(e),(u=bt.get(u))&&Pi(e,u),n=n.createElement("link"),Hl(n);var c=n;c._p=new Promise(function(i,f){c.onload=i,c.onerror=f}),Zl(n,"link",e),a.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(l.count++,a=Cn.bind(l),t.addEventListener("load",a),t.addEventListener("error",a))}}var tf=0;function wh(l,t){return l.stylesheets&&l.count===0&&Hn(l,l.stylesheets),0tf?50:800)+t);return l.unsuspend=a,function(){l.unsuspend=null,clearTimeout(e),clearTimeout(u)}}:null}function Cn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Hn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Rn=null;function Hn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Rn=new Map,t.forEach(kh,l),Rn=null,Cn.call(l))}function kh(l,t){if(!(t.state.loading&4)){var a=Rn.get(l);if(a)var e=a.get(null);else{a=new Map,Rn.set(l,a);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(x){console.error(x)}}return o(),of.exports=sr(),of.exports}var dr=or();const mr="modulepreload",hr=function(o){return"/"+o},Tm={},wt=function(x,_,d){let U=Promise.resolve();if(_&&_.length>0){let N=function(D){return Promise.all(D.map(H=>Promise.resolve(H).then(z=>({status:"fulfilled",value:z}),z=>({status:"rejected",reason:z}))))};document.getElementsByTagName("link");const T=document.querySelector("meta[property=csp-nonce]"),M=(T==null?void 0:T.nonce)||(T==null?void 0:T.getAttribute("nonce"));U=N(_.map(D=>{if(D=hr(D),D in Tm)return;Tm[D]=!0;const H=D.endsWith(".css"),z=H?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${D}"]${z}`))return;const j=document.createElement("link");if(j.rel=H?"stylesheet":mr,H||(j.as="script"),j.crossOrigin="",j.href=D,M&&j.setAttribute("nonce",M),document.head.appendChild(j),H)return new Promise((Q,X)=>{j.addEventListener("load",Q),j.addEventListener("error",()=>X(new Error(`Unable to preload CSS for ${D}`)))})}))}function O(N){const T=new Event("vite:preloadError",{cancelable:!0});if(T.payload=N,window.dispatchEvent(T),!T.defaultPrevented)throw N}return U.then(N=>{for(const T of N||[])T.status==="rejected"&&O(T.reason);return x().catch(O)})},xm=E.createContext({windows:[],openWindow:()=>{},closeWindow:()=>{},bringToFront:()=>{}}),rr=({children:o})=>{const[x,_]=E.useState([]),d=E.useRef(1e4),U=E.useCallback((T,M,D)=>{_(H=>H.find(j=>j.id===T)?H.map(j=>j.id===T?{...j,zIndex:++d.current}:j):[...H,{id:T,title:M,charName:D,zIndex:++d.current}])},[]),O=E.useCallback(T=>{_(M=>M.filter(D=>D.id!==T))},[]),N=E.useCallback(T=>{_(M=>M.map(D=>D.id===T?{...D,zIndex:++d.current}:D))},[]);return y.jsx(xm.Provider,{value:{windows:x,openWindow:U,closeWindow:O,bringToFront:N},children:o})},zu=()=>E.useContext(xm),zt={west:-102.1,east:102.1,north:102.1,south:-102.1};function pu(o,x,_,d){const U=(o-zt.west)/(zt.east-zt.west)*_,O=(zt.north-x)/(zt.north-zt.south)*d;return{x:U,y:O}}function vr(o,x,_,d,U,O,N){const T=(o-d)/_,M=(x-U)/_,D=zt.west+T/O*(zt.east-zt.west),H=zt.north-M/N*(zt.north-zt.south);return{ew:D,ns:H}}function hf(o,x){const _=o>=0?"N":"S",d=x>=0?"E":"W";return`${Math.abs(o).toFixed(1)}${_}, ${Math.abs(x).toFixed(1)}${d}`}const Dm=bu.memo(({players:o,imgW:x,imgH:_,getColor:d,onHover:U,onSelect:O,selectedPlayer:N})=>{const{openWindow:T}=zu(),[M,D]=E.useState(null);E.useEffect(()=>{const z=()=>D(null);return M&&window.addEventListener("click",z),()=>window.removeEventListener("click",z)},[M]);const H=E.useMemo(()=>o.filter(z=>z.ew!==void 0&&z.ns!==void 0).map(z=>({...z,pos:pu(z.ew,z.ns,x,_),color:d(z.character_name)})),[o,x,_,d]);return y.jsxs("div",{className:"ml-dots-layer",children:[H.map(z=>y.jsx("div",{className:`ml-dot ${N===z.character_name?"ml-dot-selected":""}`,style:{left:z.pos.x,top:z.pos.y,backgroundColor:z.color},onMouseEnter:j=>{var X;const Q=(X=j.currentTarget.closest(".ml-map-container"))==null?void 0:X.getBoundingClientRect();Q&&U(z,j.clientX-Q.left,j.clientY-Q.top)},onMouseLeave:()=>U(null,0,0),onClick:()=>O(z.character_name),onDoubleClick:()=>T(`chat-${z.character_name}`,`Chat: ${z.character_name}`,z.character_name),onContextMenu:j=>{var Bl;j.preventDefault();const Q=z.character_name,X=(Bl=j.currentTarget.closest(".ml-map-container"))==null?void 0:Bl.getBoundingClientRect(),W=X?j.clientX-X.left:j.clientX,Ul=X?j.clientY-X.top:j.clientY;D({name:Q,x:W,y:Ul})}},z.character_name)),M&&y.jsx("div",{style:{position:"fixed",left:M.x+410,top:M.y,background:"#1a1a1a",border:"1px solid #444",borderRadius:4,zIndex:9999,padding:"2px 0",fontSize:"0.75rem",boxShadow:"0 4px 12px rgba(0,0,0,0.5)",minWidth:120},children:[{label:"Chat",id:"chat"},{label:"Stats",id:"stats"},{label:"Inventory",id:"inv"},{label:"Character",id:"char"},{label:"Combat",id:"combat"},{label:"Radar",id:"radar"}].map(z=>y.jsx("div",{onClick:()=>{T(`${z.id}-${M.name}`,`${z.label}: ${M.name}`,M.name),D(null)},style:{padding:"4px 12px",cursor:"pointer",color:"#ccc"},onMouseEnter:j=>j.currentTarget.style.background="#333",onMouseLeave:j=>j.currentTarget.style.background="",children:z.label},z.id))})]})});Dm.displayName="PlayerDots";const yr="/api";async function za(o){const x=await fetch(`${yr}${o}`,{credentials:"include"});if(!x.ok)throw new Error(`API ${o}: ${x.status}`);return x.json()}function gr(){return`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}/api/ws/live`}const Om=bu.memo(({imgW:o,imgH:x,getColor:_})=>{const[d,U]=E.useState([]);E.useEffect(()=>{const N=async()=>{try{const M=await za("/trails/?seconds=600");U(M.trails??[])}catch{}};N();const T=setInterval(N,2e3);return()=>clearInterval(T)},[]);const O=E.useMemo(()=>{const N={};for(const T of d){const{x:M,y:D}=pu(T.ew,T.ns,o,x);N[T.character_name]||(N[T.character_name]=[]),N[T.character_name].push(`${M},${D}`)}return Object.entries(N).filter(([,T])=>T.length>=2).map(([T,M])=>({name:T,points:M.join(" ")}))},[d,o,x]);return y.jsx("svg",{className:"ml-trails-svg",viewBox:`0 0 ${o} ${x}`,preserveAspectRatio:"none",children:O.map(N=>y.jsx("polyline",{points:N.points,stroke:_(N.name),fill:"none",strokeWidth:2,strokeOpacity:.7,strokeLinecap:"round",strokeLinejoin:"round"},N.name))})});Om.displayName="TrailsSVG";const Sr=({imgW:o,imgH:x,enabled:_})=>{const d=E.useRef(null),[U,O]=E.useState([]);return E.useEffect(()=>{if(!_)return;(async()=>{try{const T=await za("/spawns/heatmap?hours=24&limit=50000");O(T.spawn_points??[])}catch{}})()},[_]),E.useEffect(()=>{const N=d.current;if(!N||!_||U.length===0||o===0)return;N.width=o,N.height=x;const T=N.getContext("2d");if(T){T.clearRect(0,0,o,x);for(const M of U){const{x:D,y:H}=pu(M.ew,M.ns,o,x),z=Math.max(5,Math.min(12,5+Math.sqrt(M.intensity*.5))),j=T.createRadialGradient(D,H,0,D,H,z);j.addColorStop(0,`rgba(255, 0, 0, ${Math.min(.9,M.intensity/40)})`),j.addColorStop(.6,`rgba(255, 100, 0, ${Math.min(.4,M.intensity/120)})`),j.addColorStop(1,"rgba(255, 150, 0, 0)"),T.fillStyle=j,T.fillRect(D-z,H-z,z*2,z*2)}}},[U,o,x,_]),_?y.jsx("canvas",{ref:d,className:"ml-heatmap-canvas"}):null},br=({imgW:o,imgH:x,enabled:_})=>{const[d,U]=E.useState([]);E.useEffect(()=>{if(!_)return;const N=async()=>{try{const M=await za("/portals");U(M.portals??[])}catch{}};N();const T=setInterval(N,6e4);return()=>clearInterval(T)},[_]);const O=E.useMemo(()=>d.map(N=>({...N,pos:pu(N.coordinates.ew,N.coordinates.ns,o,x)})),[d,o,x]);return!_||O.length===0?null:y.jsx("div",{className:"ml-portals-layer",children:O.map((N,T)=>y.jsx("div",{className:"ml-portal-icon",style:{left:N.pos.x,top:N.pos.y},title:`${N.portal_name} (by ${N.discovered_by})`},T))})},Em=20,Am=.3,zr=({players:o,getColor:x,onSelectPlayer:_,showHeatmap:d,showPortals:U,selectedPlayer:O})=>{var jl;const N=E.useRef(null),T=E.useRef(null),[M,D]=E.useState({w:0,h:0}),[H,z]=E.useState(null),j=E.useRef(null),Q=E.useRef({scale:1,offX:0,offY:0}),X=E.useRef({dragging:!1,sx:0,sy:0,startOffX:0,startOffY:0}),W=E.useCallback(()=>{if(T.current){const{scale:I,offX:F,offY:ul}=Q.current;T.current.style.transform=`translate(${F}px, ${ul}px) scale(${I})`}},[]),Ul=E.useCallback(I=>{const F=I.currentTarget;if(D({w:F.naturalWidth,h:F.naturalHeight}),N.current){const ul=N.current.clientWidth,k=N.current.clientHeight,R=Math.min(ul/F.naturalWidth,k/F.naturalHeight);Q.current={scale:R,offX:(ul-F.naturalWidth*R)/2,offY:(k-F.naturalHeight*R)/2},W()}},[W]),Bl=E.useCallback(I=>{var pl;I.preventDefault();const F=(pl=N.current)==null?void 0:pl.getBoundingClientRect();if(!F)return;const ul=Q.current,k=I.deltaY<0?1.1:.9,R=Math.min(Em,Math.max(Am,ul.scale*k)),J=R/ul.scale,B=I.clientX-F.left,L=I.clientY-F.top;Q.current={scale:R,offX:B-(B-ul.offX)*J,offY:L-(L-ul.offY)*J},W()},[W]),$=E.useCallback(I=>{if(I.button!==0)return;const F=Q.current;X.current={dragging:!0,sx:I.clientX,sy:I.clientY,startOffX:F.offX,startOffY:F.offY}},[]);E.useEffect(()=>{const I=ul=>{const k=X.current;if(k.dragging&&(Q.current.offX=k.startOffX+(ul.clientX-k.sx),Q.current.offY=k.startOffY+(ul.clientY-k.sy),W()),N.current&&M.w>0&&j.current){const R=N.current.getBoundingClientRect(),J=Q.current,B=vr(ul.clientX-R.left,ul.clientY-R.top,J.scale,J.offX,J.offY,M.w,M.h);j.current.textContent=hf(B.ns,B.ew)}},F=()=>{X.current.dragging=!1};return window.addEventListener("mousemove",I),window.addEventListener("mouseup",F),()=>{window.removeEventListener("mousemove",I),window.removeEventListener("mouseup",F)}},[W,M.w,M.h]);const tl=E.useRef(null);E.useEffect(()=>{if(!O||M.w===0||!N.current||tl.current===O)return;const I=o.find(J=>J.character_name===O);if(!I)return;tl.current=O;const{x:F,y:ul}=pu(I.ew,I.ns,M.w,M.h),k=N.current.getBoundingClientRect(),R=3;Q.current={scale:Math.min(Em,Math.max(Am,R)),offX:k.width/2-F*R,offY:k.height/2-ul*R},W()},[O,o,M.w,M.h,W]),E.useEffect(()=>{O||(tl.current=null)},[O]);const Vl=E.useCallback((I,F,ul)=>{z(I?{x:F,y:ul,player:I}:null)},[]);return y.jsxs("div",{className:"ml-map-container",ref:N,onWheel:Bl,onMouseDown:$,children:[y.jsxs("div",{ref:T,className:"ml-map-group",children:[y.jsx("img",{src:"/dereth.png",alt:"Dereth",className:"ml-map-img",onLoad:Ul,draggable:!1}),M.w>0&&y.jsxs(y.Fragment,{children:[y.jsx(Sr,{imgW:M.w,imgH:M.h,enabled:d}),y.jsx(Om,{imgW:M.w,imgH:M.h,getColor:x}),y.jsx(Dm,{players:o,imgW:M.w,imgH:M.h,getColor:x,onHover:Vl,onSelect:_,selectedPlayer:O}),y.jsx(br,{imgW:M.w,imgH:M.h,enabled:U})]})]}),H&&y.jsxs("div",{className:"ml-tooltip",style:{left:H.x+12,top:H.y-10},children:[y.jsx("strong",{children:H.player.character_name}),y.jsx("br",{}),hf(H.player.ns,H.player.ew),y.jsx("br",{}),H.player.kills_per_hour," kph · ",(jl=H.player.kills)==null?void 0:jl.toLocaleString()," kills"]}),y.jsx("div",{className:"ml-coords",ref:j})]})},Nm=bu.memo(({player:o,vitals:x,color:_,onSelect:d,isSelected:U})=>{var H,z;const{openWindow:O}=zu(),N=(o.vt_state||"idle").toLowerCase(),T=N==="combat"||N==="hunt",M=(o.total_rares??0)>0?Math.round((o.total_kills??0)/(o.total_rares??1)).toLocaleString():null,D=o.character_name;return y.jsxs("li",{className:`ml-player-row ${U?"ml-player-selected":""}`,style:{borderLeftColor:_},children:[y.jsxs("div",{className:"ml-pr-header",onClick:d,children:[y.jsx("span",{className:"ml-pr-name",children:D}),y.jsx("span",{className:"ml-pr-coords",children:hf(o.ns,o.ew)})]}),y.jsxs("div",{className:"ml-pr-vitals",children:[y.jsx("div",{className:"ml-vital-bar hp",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.health_percentage)??0}%`}})}),y.jsx("div",{className:"ml-vital-bar sta",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.stamina_percentage)??0}%`}})}),y.jsx("div",{className:"ml-vital-bar mana",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.mana_percentage)??0}%`}})})]}),y.jsxs("div",{className:"ml-pr-grid",children:[y.jsxs("span",{className:"ml-gs",title:"Session kills",children:["⚔️ ",((H=o.kills)==null?void 0:H.toLocaleString())??0]}),y.jsxs("span",{className:"ml-gs",title:"Total kills",children:["🏆 ",(o.total_kills??0).toLocaleString()]}),y.jsxs("span",{className:"ml-gs",title:"Kills per hour",children:[o.kills_per_hour??"0"," ",y.jsx("span",{className:"ml-suffix",children:"KPH"})]}),y.jsxs("span",{className:"ml-gs",title:"Rares (session / total)",children:["💎 ",o.session_rares??0," / ",o.total_rares??0]}),y.jsx("span",{className:"ml-gs",title:"Kills per rare",children:M?y.jsxs(y.Fragment,{children:["📊 ",M," ",y.jsx("span",{className:"ml-suffix",children:"KPR"})]}):""}),y.jsx("span",{className:`ml-meta-pill ${T?"active":N!=="idle"&&N!=="default"&&N!==""?"other":""}`,children:o.vt_state||"idle"}),y.jsxs("span",{className:"ml-gs",title:"Online time",children:["🕐 ",((z=o.onlinetime)==null?void 0:z.replace(/^00\./,""))??"--"]}),y.jsxs("span",{className:"ml-gs",title:"Deaths",children:["☠️ ",o.deaths??"0"]}),y.jsxs("span",{className:"ml-gs",title:"Prismatic tapers",children:[y.jsx("img",{src:"/prismatic-taper-icon.png",className:"ml-taper-icon",alt:""}),o.prismatic_taper_count??"0"]})]}),y.jsxs("div",{className:"ml-pr-buttons",children:[y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`chat-${D}`,`Chat: ${D}`,D),children:"Chat"}),y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`stats-${D}`,`Stats: ${D}`,D),children:"Stats"}),y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`inv-${D}`,`Inventory: ${D}`,D),children:"Inv"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`char-${D}`,`Character: ${D}`,D),children:"Char"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`combat-${D}`,`Combat: ${D}`,D),children:"Combat"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`radar-${D}`,`Radar: ${D}`,D),children:"Radar"})]})]})});Nm.displayName="PlayerRow";const pr=({players:o,vitals:x,getColor:_,onSelect:d,selectedPlayer:U})=>{const O=E.useRef(null),[N,T]=E.useState(!1),M=E.useCallback(()=>{O.current&&T(O.current.scrollTop>200)},[]);return y.jsxs("div",{style:{position:"relative",flex:1,minHeight:0},children:[y.jsx("ul",{className:"ml-player-list",ref:O,onScroll:M,children:o.map(D=>y.jsx(Nm,{player:D,vitals:x.get(D.character_name)??null,color:_(D.character_name),onSelect:()=>d(D.character_name),isSelected:U===D.character_name},D.character_name))}),N&&y.jsx("button",{onClick:()=>{var D;(D=O.current)==null||D.scrollTo({top:0,behavior:"smooth"})},style:{position:"absolute",bottom:8,right:8,width:28,height:28,borderRadius:"50%",background:"rgba(68,136,255,0.2)",border:"1px solid rgba(68,136,255,0.4)",color:"#6af",cursor:"pointer",fontSize:"0.8rem",display:"flex",alignItems:"center",justifyContent:"center"},children:"▲"})]})},Tr=[{key:"name",label:"Name"},{key:"kph",label:"KPH"},{key:"skills",label:"S.Kills"},{key:"srares",label:"S.Rares"},{key:"tkills",label:"T.Kills"},{key:"kpr",label:"KPR"}],Er=({value:o,onChange:x})=>y.jsx("div",{className:"ml-sort-buttons",children:Tr.map(_=>y.jsx("button",{className:`ml-sort-btn ${o===_.key?"active":""}`,onClick:()=>x(_.key),children:_.label},_.key))}),Ar=()=>{const{openWindow:o}=zu();return y.jsxs("div",{className:"ml-tool-links",children:[y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("issues","Issues Board"),children:"📋 Issues"}),y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("vitalsharing","Vital Sharing"),children:"🤝 Vitals"}),y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("combatpicker","Combat Stats"),children:"⚔️ Combat"})]})},Mr=({players:o,vitals:x,serverHealth:_,totalRares:d,totalKills:U,getColor:O,onSelectPlayer:N,onViewToggle:T,showHeatmap:M,showPortals:D,onToggleHeatmap:H,onTogglePortals:z,version:j,selectedPlayer:Q})=>{var F,ul;const[X,W]=E.useState("name"),[Ul,Bl]=E.useState(""),$=E.useMemo(()=>o.reduce((k,R)=>k+(parseInt(R.kills_per_hour)||0),0),[o]),tl=((F=_==null?void 0:_.status)==null?void 0:F.toLowerCase())==="online"||((ul=_==null?void 0:_.status)==null?void 0:ul.toLowerCase())==="up",Vl=E.useDeferredValue(o),jl=E.useDeferredValue(x),I=E.useMemo(()=>{let k=[...Vl];switch(Ul&&(k=k.filter(R=>R.character_name.toLowerCase().startsWith(Ul.toLowerCase()))),X){case"kph":k.sort((R,J)=>(parseInt(J.kills_per_hour)||0)-(parseInt(R.kills_per_hour)||0));break;case"skills":k.sort((R,J)=>(J.kills||0)-(R.kills||0));break;case"srares":k.sort((R,J)=>(J.session_rares??0)-(R.session_rares??0));break;case"tkills":k.sort((R,J)=>(J.total_kills??0)-(R.total_kills??0));break;case"kpr":k.sort((R,J)=>{const B=(R.total_kills??0)/Math.max(1,R.total_rares??1),L=(J.total_kills??0)/Math.max(1,J.total_rares??1);return B-L});break;default:k.sort((R,J)=>R.character_name.localeCompare(J.character_name))}return k},[Vl,X,Ul]);return y.jsxs("div",{className:"ml-sidebar",children:[j&&y.jsxs("div",{className:"ml-version",children:["v",j]}),y.jsx("div",{className:"ml-sidebar-header",children:y.jsxs("span",{className:"ml-sidebar-title",children:["Active Mosswart Enjoyers (",o.length,")"]})}),y.jsxs("div",{className:"ml-server-status",children:[y.jsx("span",{className:`ml-status-dot ${tl?"online":"offline"}`}),y.jsxs("span",{className:"ml-status-text",children:["Coldeve ",tl?"Online":"Offline"]}),(_==null?void 0:_.player_count)!=null&&y.jsxs("span",{className:"ml-status-detail",children:["👥 ",_.player_count]}),(_==null?void 0:_.latency_ms)!=null&&y.jsxs("span",{className:"ml-status-detail",children:[Math.round(_.latency_ms),"ms"]}),(_==null?void 0:_.uptime_seconds)!=null&&y.jsxs("span",{className:"ml-status-detail",children:["Up: ",Math.floor(_.uptime_seconds/3600),"h"]})]}),y.jsxs("div",{className:"ml-counters",children:[y.jsxs("div",{className:"ml-counter rares",children:[y.jsx("span",{className:"ml-counter-val",children:d}),y.jsx("span",{className:"ml-counter-lbl",children:"Rares"})]}),y.jsxs("div",{className:`ml-counter kph ${$>5e3?"ultra":""}`,children:[y.jsx("span",{className:"ml-counter-val",children:$.toLocaleString()}),y.jsx("span",{className:"ml-counter-lbl",children:"Server KPH"})]}),y.jsxs("div",{className:"ml-counter kills",children:[y.jsx("span",{className:"ml-counter-val",children:U.toLocaleString()}),y.jsx("span",{className:"ml-counter-lbl",children:"Kills"})]})]}),y.jsxs("div",{className:"ml-tool-links",children:[y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:T,children:"📊 Dashboard"}),y.jsx("a",{href:"/inventory.html",target:"_blank",className:"ml-tool-link",children:"🔍 Inv Search"}),y.jsx("a",{href:"/suitbuilder.html",target:"_blank",className:"ml-tool-link",children:"🛡️ Suitbuilder"}),y.jsx("a",{href:"/debug.html",target:"_blank",className:"ml-tool-link",children:"🐛 Debug"}),y.jsx("a",{href:"/quest-status.html",target:"_blank",className:"ml-tool-link",children:"📜 Quests"})]}),y.jsx(Ar,{}),y.jsxs("div",{className:"ml-toggles",children:[y.jsxs("label",{className:"ml-toggle-label",children:[y.jsx("input",{type:"checkbox",checked:M,onChange:k=>H(k.target.checked)}),y.jsx("span",{children:"Spawn Heatmap"})]}),y.jsxs("label",{className:"ml-toggle-label",children:[y.jsx("input",{type:"checkbox",checked:D,onChange:k=>z(k.target.checked)}),y.jsx("span",{children:"Portals"})]})]}),y.jsx("div",{style:{borderTop:"1px solid #333",marginTop:4,paddingTop:4}}),y.jsx(Er,{value:X,onChange:W}),y.jsx("input",{className:"ml-filter",type:"text",placeholder:"Filter players...",value:Ul,onChange:k=>Bl(k.target.value)}),y.jsx(pr,{players:I,vitals:jl,getColor:O,onSelect:N,selectedPlayer:Q})]})},_r=({id:o,title:x,zIndex:_,width:d=700,height:U=340,children:O})=>{const{closeWindow:N,bringToFront:T}=zu(),M=E.useRef(null),D=E.useRef({dragging:!1,sx:0,sy:0,ox:0,oy:0}),H=E.useRef({x:420,y:10+Math.random()*40}),z=E.useCallback(j=>{var X;j.preventDefault(),T(o);const Q=(X=M.current)==null?void 0:X.getBoundingClientRect();Q&&(D.current={dragging:!0,sx:j.clientX,sy:j.clientY,ox:Q.left,oy:Q.top})},[o,T]);return E.useEffect(()=>{const j=X=>{const W=D.current;!W.dragging||!M.current||(H.current.x=W.ox+(X.clientX-W.sx),H.current.y=W.oy+(X.clientY-W.sy),M.current.style.left=`${H.current.x}px`,M.current.style.top=`${H.current.y}px`)},Q=()=>{D.current.dragging=!1};return window.addEventListener("mousemove",j),window.addEventListener("mouseup",Q),()=>{window.removeEventListener("mousemove",j),window.removeEventListener("mouseup",Q)}},[]),y.jsxs("div",{ref:M,className:"ml-window",style:{zIndex:_,width:d,height:U,left:H.current.x,top:H.current.y},onMouseDown:()=>T(o),children:[y.jsxs("div",{className:"ml-window-header",onMouseDown:z,children:[y.jsx("span",{className:"ml-window-title",children:x}),y.jsx("button",{className:"ml-window-close",onClick:()=>N(o),children:"×"})]}),y.jsx("div",{className:"ml-window-content",children:O})]})},xr={0:"#00FF00",2:"#FFFFFF",3:"#FF0000",4:"#FFFFFF",5:"#33CCFF",6:"#CCFF99",7:"#00FFFF",14:"#FFD700",15:"#FF69B4",17:"#AAAAFF",18:"#88FF88",21:"#FF8888",22:"#FFAA66"},Um=50,jm=o=>`mo-chat-history-${o}`;function Dr(o){try{const x=localStorage.getItem(jm(o));return x?JSON.parse(x):[]}catch{return[]}}function Or(o,x){try{localStorage.setItem(jm(o),JSON.stringify(x.slice(-Um)))}catch{}}const Nr=({id:o,charName:x,zIndex:_,messages:d,socket:U})=>{const O=E.useRef(null),[N,T]=E.useState(""),[M,D]=E.useState(!1),H=E.useRef(Dr(x)),z=E.useRef(-1),j=E.useRef(""),Q=E.useRef(!1);E.useEffect(()=>{const $=O.current;$&&(Q.current?D(!0):($.scrollTop=$.scrollHeight,D(!1)))},[d.length]);const X=E.useCallback(()=>{const $=O.current;if(!$)return;const tl=$.scrollHeight-$.scrollTop-$.clientHeight<30;Q.current=!tl,tl&&D(!1)},[]),W=E.useCallback(()=>{const $=O.current;$&&($.scrollTop=$.scrollHeight,Q.current=!1,D(!1))},[]),Ul=E.useCallback($=>{$.preventDefault();const tl=N.trim();!tl||!U||U.readyState!==WebSocket.OPEN||(U.send(JSON.stringify({player_name:x,command:tl})),H.current.push(tl),H.current.length>Um&&H.current.shift(),Or(x,H.current),z.current=-1,j.current="",T(""),Q.current=!1)},[N,U,x]),Bl=E.useCallback($=>{const tl=H.current;if(tl.length!==0){if($.key==="ArrowUp")$.preventDefault(),z.current===-1?(j.current=N,z.current=tl.length-1):z.current>0&&z.current--,T(tl[z.current]);else if($.key==="ArrowDown"){if($.preventDefault(),z.current===-1)return;z.currenty.jsx("div",{className:"ml-chat-line",style:{color:xr[$.color??2]??"#ddd"},children:$.text},tl))}),M&&y.jsx("div",{onClick:W,style:{padding:"3px 0",textAlign:"center",fontSize:"0.65rem",color:"#6af",background:"#1a2a3a",cursor:"pointer",borderTop:"1px solid #334"},children:"▼ New messages below"}),y.jsx("form",{className:"ml-chat-form",onSubmit:Ul,children:y.jsx("input",{className:"ml-chat-input",value:N,onChange:$=>T($.target.value),onKeyDown:Bl,placeholder:"Enter chat..."})})]})},Ur=E.lazy(()=>wt(()=>import("./StatsWindow-DonAC4kK.js"),__vite__mapDeps([0,1])).then(o=>({default:o.StatsWindow}))),jr=E.lazy(()=>wt(()=>import("./CharacterWindow-HFix6rx0.js"),__vite__mapDeps([2,1])).then(o=>({default:o.CharacterWindow}))),Cr=E.lazy(()=>wt(()=>import("./InventoryWindow-DNVzs4Pz.js"),__vite__mapDeps([3,1])).then(o=>({default:o.InventoryWindow}))),Rr=E.lazy(()=>wt(()=>import("./RadarWindow-D2-ECy2X.js"),__vite__mapDeps([4,1])).then(o=>({default:o.RadarWindow}))),Hr=E.lazy(()=>wt(()=>import("./CombatStatsWindow-CJo0cOU-.js"),__vite__mapDeps([5,1])).then(o=>({default:o.CombatStatsWindow}))),qr=E.lazy(()=>wt(()=>import("./CombatPickerWindow-2QrIZhzN.js"),__vite__mapDeps([6,1])).then(o=>({default:o.CombatPickerWindow}))),Br=E.lazy(()=>wt(()=>import("./IssuesWindow-CBadrEJS.js"),__vite__mapDeps([7,1])).then(o=>({default:o.IssuesWindow}))),Yr=E.lazy(()=>wt(()=>import("./VitalSharingWindow-Cxliz82-.js"),__vite__mapDeps([8,1])).then(o=>({default:o.VitalSharingWindow}))),Cm=bu.memo(({characters:o,chatMessages:x,nearbyObjects:_,inventoryVersion:d,equipmentCantrips:U,socket:O})=>{const{windows:N}=zu();return y.jsx(E.Suspense,{fallback:null,children:N.map(T=>{var H;const M=T.charName??"";switch(T.id.split("-")[0]){case"chat":return y.jsx(Nr,{id:T.id,charName:M,zIndex:T.zIndex,messages:x.get(M)??[],socket:O},T.id);case"stats":return y.jsx(Ur,{id:T.id,charName:M,zIndex:T.zIndex},T.id);case"char":return y.jsx(jr,{id:T.id,charName:M,zIndex:T.zIndex,vitals:((H=o.get(M))==null?void 0:H.vitals)??void 0},T.id);case"inv":return y.jsx(Cr,{id:T.id,charName:M,zIndex:T.zIndex,inventoryVersion:d,equipmentCantrips:U.get(M)},T.id);case"radar":return y.jsx(Rr,{id:T.id,charName:M,zIndex:T.zIndex,socket:O,radarData:_.get(M)??null},T.id);case"combat":return y.jsx(Hr,{id:T.id,charName:M,zIndex:T.zIndex},T.id);case"combatpicker":return y.jsx(qr,{id:T.id,zIndex:T.zIndex,characters:o},T.id);case"issues":return y.jsx(Br,{id:T.id,zIndex:T.zIndex},T.id);case"vitalsharing":return y.jsx(Yr,{id:T.id,zIndex:T.zIndex},T.id);default:return null}})})});Cm.displayName="WindowRenderer";let Xr=0;const Gr=({recentRares:o})=>{const[x,_]=E.useState([]),[d,U]=E.useState(0),[O,N]=E.useState([]);E.useEffect(()=>{if(o.length>d&&d>0){const M=o.slice(0,o.length-d);for(const D of M){const H=++Xr;_(z=>[...z,{key:H,charName:D.character_name,rareName:D.name,exiting:!1}]),T();try{const z=new AudioContext,j=z.createOscillator(),Q=z.createGain();j.connect(Q),Q.connect(z.destination),j.frequency.value=880,j.type="sine",Q.gain.value=.3,j.start(),Q.gain.exponentialRampToValueAtTime(.001,z.currentTime+.5),j.stop(z.currentTime+.5)}catch{}setTimeout(()=>{_(z=>z.map(j=>j.key===H?{...j,exiting:!0}:j)),setTimeout(()=>{_(z=>z.filter(j=>j.key!==H))},500)},6e3)}}U(o.length)},[o.length]);const T=E.useCallback(()=>{const M=Date.now(),D=["#FFD700","#FF4444","#FF8800","#AA44FF","#4488FF"],H=Array.from({length:30},(z,j)=>{const Q=Math.PI*2*j/30+(Math.random()-.5)*.5,X=100+Math.random()*200;return{dx:Math.cos(Q)*X,dy:Math.sin(Q)*X-50,color:D[Math.floor(Math.random()*D.length)]}});N(z=>[...z,{id:M,particles:H}]),setTimeout(()=>N(z=>z.filter(j=>j.id!==M)),2200)},[]);return y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"ml-rare-notifications",children:x.map(M=>y.jsxs("div",{className:`ml-rare-notif ${M.exiting?"exiting":""}`,children:[y.jsx("div",{className:"ml-rare-notif-title",children:"🎆 LEGENDARY RARE! 🎆"}),y.jsx("div",{className:"ml-rare-notif-name",children:M.rareName}),y.jsx("div",{className:"ml-rare-notif-by",children:"found by"}),y.jsx("div",{className:"ml-rare-notif-char",children:M.charName})]},M.key))}),y.jsx("div",{className:"ml-fireworks",children:O.map(M=>y.jsx(bu.Fragment,{children:M.particles.map((D,H)=>y.jsx("div",{className:"ml-firework-particle",style:{left:"50%",top:"30%",backgroundColor:D.color,"--dx":`${D.dx}px`,"--dy":`${D.dy+200}px`}},H))},M.id))})]})},Mm=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf","#ff4444","#44ff44","#4444ff","#ffff44","#ff44ff","#44ffff","#ff8844","#88ff44","#4488ff","#ff4488","#cc3333","#33cc33","#3333cc","#cccc33","#cc33cc","#33cccc","#cc6633","#66cc33","#3366cc","#cc3366","#ff6666","#66ff66","#6666ff","#ffff66","#ff66ff","#66ffff","#ffaa66","#aaff66","#66aaff","#ff66aa","#990099","#009900","#000099","#990000","#009999","#999900","#aa5500","#55aa00","#0055aa","#aa0055","#ffaaaa","#aaffaa","#aaaaff","#ffffaa","#ffaaff","#aaffff","#ffccaa","#ccffaa","#aaccff","#ffaacc"];function Qr(o){let x=0;for(let _=0;_{let U=o.current.get(d);return U||(U=x.current{const _=Zr(),[d,U]=E.useState(!1),[O,N]=E.useState(!1),[T,M]=E.useState(null),D=E.useMemo(()=>Array.from(o.characters.values()).filter(X=>X.telemetry).map(X=>X.telemetry),[o.characters]),H=E.useMemo(()=>new Map(Array.from(o.characters.values()).filter(X=>X.vitals).map(X=>[X.name,X.vitals])),[o.characters]),[z,j]=E.useState("");E.useEffect(()=>{fetch("/api/api-version",{credentials:"include"}).then(X=>X.json()).then(X=>j(X.version??"")).catch(()=>{})},[]);const Q=E.useCallback(X=>{M(W=>W===X?null:X)},[]);return y.jsx(rr,{children:y.jsxs("div",{className:"ml-layout",children:[y.jsx(Mr,{players:D,vitals:H,serverHealth:o.serverHealth,totalRares:o.totalRares,totalKills:o.totalKills,getColor:_,onSelectPlayer:Q,onViewToggle:x,showHeatmap:d,showPortals:O,onToggleHeatmap:U,onTogglePortals:N,version:z,selectedPlayer:T}),y.jsx(zr,{players:D,getColor:_,onSelectPlayer:Q,showHeatmap:d,showPortals:O,selectedPlayer:T}),y.jsx(Cm,{characters:o.characters,chatMessages:o.chatMessages,nearbyObjects:o.nearbyObjects,inventoryVersion:o.inventoryVersion,equipmentCantrips:o.equipmentCantrips,socket:o.socketRef.current}),y.jsx(Gr,{recentRares:o.recentRares})]})})};function Lr(o){const x=E.useRef(null),_=E.useRef(0),d=E.useRef(o);d.current=o;const U=E.useCallback(()=>{var N;if(((N=x.current)==null?void 0:N.readyState)===WebSocket.OPEN)return;const O=new WebSocket(gr());x.current=O,O.addEventListener("message",T=>{try{const M=JSON.parse(T.data);d.current(M)}catch{}}),O.addEventListener("close",()=>{x.current=null,_.current=window.setTimeout(U,2e3)}),O.addEventListener("error",()=>{O.close()})},[]);return E.useEffect(()=>(U(),()=>{var O;clearTimeout(_.current),(O=x.current)==null||O.close(),x.current=null}),[U]),x}const Kr=()=>za("/live"),Jr=()=>za("/combat-stats"),wr=()=>za("/server-health"),kr=()=>za("/total-rares"),Wr=()=>za("/total-kills");function Fr(){const[o,x]=E.useState(new Map),[_,d]=E.useState(null),[U,O]=E.useState(0),[N,T]=E.useState(0),[M,D]=E.useState([]),H=E.useRef(new Map),[z,j]=E.useState(0),[Q,X]=E.useState(0),W=E.useRef(new Map),[Ul,Bl]=E.useState(0),[$,tl]=E.useState(new Map),Vl=E.useRef(o);Vl.current=o;const jl=E.useCallback((R,J)=>{x(B=>{const L=new Map(B),pl=L.get(R)??{name:R,telemetry:null,vitals:null,combat:null,lastUpdate:0};return L.set(R,J(pl)),L})},[]),I=E.useCallback(R=>{var J;if(R.type){if(R.type==="telemetry"){const B=R;jl(B.character_name,L=>({...L,telemetry:B,lastUpdate:Date.now()}))}else if(R.type==="vitals"){const B=R;jl(B.character_name,L=>({...L,vitals:B,lastUpdate:Date.now()}))}else if(R.type==="combat_stats"){const B=R;jl(B.character_name,L=>({...L,combat:B,lastUpdate:Date.now()}))}else if(R.type==="rare"){const B=R;D(L=>[B,...L].slice(0,50))}else if(R.type==="inventory_delta")X(B=>B+1);else if(R.type==="equipment_cantrip_state"){const B=R;W.current.set(B.character_name,B),Bl(L=>L+1)}else if(R.type==="dungeon_map"){const B=R;B.landblock&&(window.__dungeonMapCache||(window.__dungeonMapCache={}),window.__dungeonMapCache[B.landblock]=B)}else if(R.type==="nearby_objects"){const B=R;if(tl(L=>{const pl=new Map(L);return pl.set(B.character_name,B),pl}),B.is_dungeon&&B.landblock&&!((J=window.__dungeonMapCache)!=null&&J[B.landblock])){const L=F.current;(L==null?void 0:L.readyState)===WebSocket.OPEN&&L.send(JSON.stringify({type:"request_dungeon_map",landblock:B.landblock}))}}else if(R.type==="chat"){const B=R,L=H.current.get(B.character_name)??[];L.push({text:B.text,color:B.color,timestamp:B.timestamp}),L.length>1e3&&L.splice(0,L.length-1e3),H.current.set(B.character_name,L),j(pl=>pl+1)}}},[jl]),F=Lr(I);E.useEffect(()=>{const R=async()=>{try{const B=await Kr();x(L=>{var st;const pl=new Map(L);for(const b of B.players??[]){const C=pl.get(b.character_name);pl.set(b.character_name,{name:b.character_name,telemetry:b,vitals:(C==null?void 0:C.vitals)??null,combat:(C==null?void 0:C.combat)??null,lastUpdate:Date.now()})}for(const b of pl.keys())(st=B.players)!=null&&st.some(C=>C.character_name===b)||pl.delete(b);return pl})}catch{}};R();const J=setInterval(R,5e3);return()=>clearInterval(J)},[]),E.useEffect(()=>{const R=async()=>{try{const B=await Jr();for(const L of B.stats??[])jl(L.character_name,pl=>({...pl,combat:{...L,type:"combat_stats"}}))}catch{}};R();const J=setInterval(R,3e4);return()=>clearInterval(J)},[jl]),E.useEffect(()=>{const R=async()=>{try{d(await wr())}catch{}};R();const J=setInterval(R,3e4);return()=>clearInterval(J)},[]),E.useEffect(()=>{const R=async()=>{try{const[B,L]=await Promise.all([kr(),Wr()]);O(B.all_time??0),T(L.total??0)}catch{}};R();const J=setInterval(R,3e5);return()=>clearInterval(J)},[]);const ul=E.useMemo(()=>H.current,[z]),k=E.useMemo(()=>W.current,[Ul]);return{characters:o,serverHealth:_,totalRares:U,totalKills:N,recentRares:M,chatMessages:ul,nearbyObjects:$,inventoryVersion:Q,equipmentCantrips:k,socketRef:F}}const $r=E.lazy(()=>wt(()=>import("./DashboardView-BWfpkQBB.js"),__vite__mapDeps([9,1])));function Ir(){const[o,x]=E.useState(()=>localStorage.getItem("v2-view")||"map"),_=Fr();E.useEffect(()=>{const U=O=>{O.ctrlKey&&O.key==="d"&&(O.preventDefault(),d())};return window.addEventListener("keydown",U),()=>window.removeEventListener("keydown",U)});const d=()=>{const U=o==="map"?"dashboard":"map";x(U),localStorage.setItem("v2-view",U)};return o==="map"?y.jsx(Vr,{data:_,onViewToggle:d}):y.jsx(E.Suspense,{fallback:y.jsx("div",{style:{background:"#0d0d0d",color:"#888",padding:40,textAlign:"center"},children:"Loading dashboard..."}),children:y.jsx($r,{data:_,onViewToggle:d})})}dr.createRoot(document.getElementById("root")).render(y.jsx(E.StrictMode,{children:y.jsx(Ir,{})}));"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").catch(()=>{});export{_r as D,bu as R,za as a,y as j,E as r,zu as u}; +`).replace(Mh,"")}function Bd(l,t){return t=qd(t),qd(l)===t}function hl(l,t,a,e,u,n){switch(a){case"children":typeof e=="string"?t==="body"||t==="textarea"&&e===""||wa(l,e):(typeof e=="number"||typeof e=="bigint")&&t!=="body"&&wa(l,""+e);break;case"className":Uu(l,"class",e);break;case"tabIndex":Uu(l,"tabindex",e);break;case"dir":case"role":case"viewBox":case"width":case"height":Uu(l,a,e);break;case"style":qf(l,e,n);break;case"data":if(t!=="object"){Uu(l,"data",e);break}case"src":case"href":if(e===""&&(t!=="a"||a!=="href")){l.removeAttribute(a);break}if(e==null||typeof e=="function"||typeof e=="symbol"||typeof e=="boolean"){l.removeAttribute(a);break}e=Cu(""+e),l.setAttribute(a,e);break;case"action":case"formAction":if(typeof e=="function"){l.setAttribute(a,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof n=="function"&&(a==="formAction"?(t!=="input"&&hl(l,t,"name",u.name,u,null),hl(l,t,"formEncType",u.formEncType,u,null),hl(l,t,"formMethod",u.formMethod,u,null),hl(l,t,"formTarget",u.formTarget,u,null)):(hl(l,t,"encType",u.encType,u,null),hl(l,t,"method",u.method,u,null),hl(l,t,"target",u.target,u,null)));if(e==null||typeof e=="symbol"||typeof e=="boolean"){l.removeAttribute(a);break}e=Cu(""+e),l.setAttribute(a,e);break;case"onClick":e!=null&&(l.onclick=Nt);break;case"onScroll":e!=null&&ll("scroll",l);break;case"onScrollEnd":e!=null&&ll("scrollend",l);break;case"dangerouslySetInnerHTML":if(e!=null){if(typeof e!="object"||!("__html"in e))throw Error(d(61));if(a=e.__html,a!=null){if(u.children!=null)throw Error(d(60));l.innerHTML=a}}break;case"multiple":l.multiple=e&&typeof e!="function"&&typeof e!="symbol";break;case"muted":l.muted=e&&typeof e!="function"&&typeof e!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(e==null||typeof e=="function"||typeof e=="boolean"||typeof e=="symbol"){l.removeAttribute("xlink:href");break}a=Cu(""+e),l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":e!=null&&typeof e!="function"&&typeof e!="symbol"?l.setAttribute(a,""+e):l.removeAttribute(a);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":e&&typeof e!="function"&&typeof e!="symbol"?l.setAttribute(a,""):l.removeAttribute(a);break;case"capture":case"download":e===!0?l.setAttribute(a,""):e!==!1&&e!=null&&typeof e!="function"&&typeof e!="symbol"?l.setAttribute(a,e):l.removeAttribute(a);break;case"cols":case"rows":case"size":case"span":e!=null&&typeof e!="function"&&typeof e!="symbol"&&!isNaN(e)&&1<=e?l.setAttribute(a,e):l.removeAttribute(a);break;case"rowSpan":case"start":e==null||typeof e=="function"||typeof e=="symbol"||isNaN(e)?l.removeAttribute(a):l.setAttribute(a,e);break;case"popover":ll("beforetoggle",l),ll("toggle",l),Nu(l,"popover",e);break;case"xlinkActuate":Ot(l,"http://www.w3.org/1999/xlink","xlink:actuate",e);break;case"xlinkArcrole":Ot(l,"http://www.w3.org/1999/xlink","xlink:arcrole",e);break;case"xlinkRole":Ot(l,"http://www.w3.org/1999/xlink","xlink:role",e);break;case"xlinkShow":Ot(l,"http://www.w3.org/1999/xlink","xlink:show",e);break;case"xlinkTitle":Ot(l,"http://www.w3.org/1999/xlink","xlink:title",e);break;case"xlinkType":Ot(l,"http://www.w3.org/1999/xlink","xlink:type",e);break;case"xmlBase":Ot(l,"http://www.w3.org/XML/1998/namespace","xml:base",e);break;case"xmlLang":Ot(l,"http://www.w3.org/XML/1998/namespace","xml:lang",e);break;case"xmlSpace":Ot(l,"http://www.w3.org/XML/1998/namespace","xml:space",e);break;case"is":Nu(l,"is",e);break;case"innerText":case"textContent":break;default:(!(2i)break;var S=f.transferSize,A=f.initiatorType;S&&Yd(A)&&(f=f.responseEnd,c+=S*(f"u"?null:document;function Fd(l,t,a){var e=pe;if(e&&typeof t=="string"&&t){var u=dt(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),Wd.has(u)||(Wd.add(u),l={rel:l,crossOrigin:a,href:t},e.querySelector(u)===null&&(t=e.createElement("link"),Zl(t,"link",l),Hl(t),e.head.appendChild(t)))}}function Bh(l){Jt.D(l),Fd("dns-prefetch",l,null)}function Yh(l,t){Jt.C(l,t),Fd("preconnect",l,t)}function Xh(l,t,a){Jt.L(l,t,a);var e=pe;if(e&&l&&t){var u='link[rel="preload"][as="'+dt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+dt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+dt(a.imageSizes)+'"]')):u+='[href="'+dt(l)+'"]';var n=u;switch(t){case"style":n=Te(l);break;case"script":n=Ee(l)}bt.has(n)||(l=z({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:l,as:t},a),bt.set(n,l),e.querySelector(u)!==null||t==="style"&&e.querySelector(du(n))||t==="script"&&e.querySelector(mu(n))||(t=e.createElement("link"),Zl(t,"link",l),Hl(t),e.head.appendChild(t)))}}function Gh(l,t){Jt.m(l,t);var a=pe;if(a&&l){var e=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+dt(e)+'"][href="'+dt(l)+'"]',n=u;switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ee(l)}if(!bt.has(n)&&(l=z({rel:"modulepreload",href:l},t),bt.set(n,l),a.querySelector(u)===null)){switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(mu(n)))return}e=a.createElement("link"),Zl(e,"link",l),Hl(e),a.head.appendChild(e)}}}function Qh(l,t,a){Jt.S(l,t,a);var e=pe;if(e&&l){var u=La(e).hoistableStyles,n=Te(l);t=t||"default";var c=u.get(n);if(!c){var i={loading:0,preload:null};if(c=e.querySelector(du(n)))i.loading=5;else{l=z({rel:"stylesheet",href:l,"data-precedence":t},a),(a=bt.get(n))&&Pi(l,a);var f=c=e.createElement("link");Hl(f),Zl(f,"link",l),f._p=new Promise(function(r,S){f.onload=r,f.onerror=S}),f.addEventListener("load",function(){i.loading|=1}),f.addEventListener("error",function(){i.loading|=2}),i.loading|=4,Un(c,t,e)}c={type:"stylesheet",instance:c,count:1,state:i},u.set(n,c)}}}function Zh(l,t){Jt.X(l,t);var a=pe;if(a&&l){var e=La(a).hoistableScripts,u=Ee(l),n=e.get(u);n||(n=a.querySelector(mu(u)),n||(l=z({src:l,async:!0},t),(t=bt.get(u))&&lf(l,t),n=a.createElement("script"),Hl(n),Zl(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function Vh(l,t){Jt.M(l,t);var a=pe;if(a&&l){var e=La(a).hoistableScripts,u=Ee(l),n=e.get(u);n||(n=a.querySelector(mu(u)),n||(l=z({src:l,async:!0,type:"module"},t),(t=bt.get(u))&&lf(l,t),n=a.createElement("script"),Hl(n),Zl(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function $d(l,t,a,e){var u=(u=kt.current)?Nn(u):null;if(!u)throw Error(d(446));switch(l){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Te(a.href),a=La(u).hoistableStyles,e=a.get(t),e||(e={type:"style",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){l=Te(a.href);var n=La(u).hoistableStyles,c=n.get(l);if(c||(u=u.ownerDocument||u,c={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,c),(n=u.querySelector(du(l)))&&!n._p&&(c.instance=n,c.state.loading=5),bt.has(l)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},bt.set(l,a),n||Lh(u,l,a,c.state))),t&&e===null)throw Error(d(528,""));return c}if(t&&e!==null)throw Error(d(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ee(a),a=La(u).hoistableScripts,e=a.get(t),e||(e={type:"script",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};default:throw Error(d(444,l))}}function Te(l){return'href="'+dt(l)+'"'}function du(l){return'link[rel="stylesheet"]['+l+"]"}function Id(l){return z({},l,{"data-precedence":l.precedence,precedence:null})}function Lh(l,t,a,e){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?e.loading=1:(t=l.createElement("link"),e.preload=t,t.addEventListener("load",function(){return e.loading|=1}),t.addEventListener("error",function(){return e.loading|=2}),Zl(t,"link",a),Hl(t),l.head.appendChild(t))}function Ee(l){return'[src="'+dt(l)+'"]'}function mu(l){return"script[async]"+l}function Pd(l,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var e=l.querySelector('style[data-href~="'+dt(a.href)+'"]');if(e)return t.instance=e,Hl(e),e;var u=z({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return e=(l.ownerDocument||l).createElement("style"),Hl(e),Zl(e,"style",u),Un(e,a.precedence,l),t.instance=e;case"stylesheet":u=Te(a.href);var n=l.querySelector(du(u));if(n)return t.state.loading|=4,t.instance=n,Hl(n),n;e=Id(a),(u=bt.get(u))&&Pi(e,u),n=(l.ownerDocument||l).createElement("link"),Hl(n);var c=n;return c._p=new Promise(function(i,f){c.onload=i,c.onerror=f}),Zl(n,"link",e),t.state.loading|=4,Un(n,a.precedence,l),t.instance=n;case"script":return n=Ee(a.src),(u=l.querySelector(mu(n)))?(t.instance=u,Hl(u),u):(e=a,(u=bt.get(n))&&(e=z({},a),lf(e,u)),l=l.ownerDocument||l,u=l.createElement("script"),Hl(u),Zl(u,"link",e),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(d(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(e=t.instance,t.state.loading|=4,Un(e,a.precedence,l));return t.instance}function Un(l,t,a){for(var e=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=e.length?e[e.length-1]:null,n=u,c=0;c title"):null)}function Kh(l,t,a){if(a===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function am(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Jh(l,t,a,e){if(a.type==="stylesheet"&&(typeof e.media!="string"||matchMedia(e.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var u=Te(e.href),n=t.querySelector(du(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Cn.bind(l),t.then(l,l)),a.state.loading|=4,a.instance=n,Hl(n);return}n=t.ownerDocument||t,e=Id(e),(u=bt.get(u))&&Pi(e,u),n=n.createElement("link"),Hl(n);var c=n;c._p=new Promise(function(i,f){c.onload=i,c.onerror=f}),Zl(n,"link",e),a.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(l.count++,a=Cn.bind(l),t.addEventListener("load",a),t.addEventListener("error",a))}}var tf=0;function wh(l,t){return l.stylesheets&&l.count===0&&Hn(l,l.stylesheets),0tf?50:800)+t);return l.unsuspend=a,function(){l.unsuspend=null,clearTimeout(e),clearTimeout(u)}}:null}function Cn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Hn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Rn=null;function Hn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Rn=new Map,t.forEach(kh,l),Rn=null,Cn.call(l))}function kh(l,t){if(!(t.state.loading&4)){var a=Rn.get(l);if(a)var e=a.get(null);else{a=new Map,Rn.set(l,a);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(x){console.error(x)}}return o(),of.exports=sr(),of.exports}var dr=or();const mr="modulepreload",hr=function(o){return"/"+o},Tm={},wt=function(x,_,d){let U=Promise.resolve();if(_&&_.length>0){let N=function(D){return Promise.all(D.map(H=>Promise.resolve(H).then(z=>({status:"fulfilled",value:z}),z=>({status:"rejected",reason:z}))))};document.getElementsByTagName("link");const T=document.querySelector("meta[property=csp-nonce]"),M=(T==null?void 0:T.nonce)||(T==null?void 0:T.getAttribute("nonce"));U=N(_.map(D=>{if(D=hr(D),D in Tm)return;Tm[D]=!0;const H=D.endsWith(".css"),z=H?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${D}"]${z}`))return;const j=document.createElement("link");if(j.rel=H?"stylesheet":mr,H||(j.as="script"),j.crossOrigin="",j.href=D,M&&j.setAttribute("nonce",M),document.head.appendChild(j),H)return new Promise((Q,X)=>{j.addEventListener("load",Q),j.addEventListener("error",()=>X(new Error(`Unable to preload CSS for ${D}`)))})}))}function O(N){const T=new Event("vite:preloadError",{cancelable:!0});if(T.payload=N,window.dispatchEvent(T),!T.defaultPrevented)throw N}return U.then(N=>{for(const T of N||[])T.status==="rejected"&&O(T.reason);return x().catch(O)})},xm=E.createContext({windows:[],openWindow:()=>{},closeWindow:()=>{},bringToFront:()=>{}}),rr=({children:o})=>{const[x,_]=E.useState([]),d=E.useRef(1e4),U=E.useCallback((T,M,D)=>{_(H=>H.find(j=>j.id===T)?H.map(j=>j.id===T?{...j,zIndex:++d.current}:j):[...H,{id:T,title:M,charName:D,zIndex:++d.current}])},[]),O=E.useCallback(T=>{_(M=>M.filter(D=>D.id!==T))},[]),N=E.useCallback(T=>{_(M=>M.map(D=>D.id===T?{...D,zIndex:++d.current}:D))},[]);return y.jsx(xm.Provider,{value:{windows:x,openWindow:U,closeWindow:O,bringToFront:N},children:o})},zu=()=>E.useContext(xm),zt={west:-102.1,east:102.1,north:102.1,south:-102.1};function pu(o,x,_,d){const U=(o-zt.west)/(zt.east-zt.west)*_,O=(zt.north-x)/(zt.north-zt.south)*d;return{x:U,y:O}}function vr(o,x,_,d,U,O,N){const T=(o-d)/_,M=(x-U)/_,D=zt.west+T/O*(zt.east-zt.west),H=zt.north-M/N*(zt.north-zt.south);return{ew:D,ns:H}}function hf(o,x){const _=o>=0?"N":"S",d=x>=0?"E":"W";return`${Math.abs(o).toFixed(1)}${_}, ${Math.abs(x).toFixed(1)}${d}`}const Dm=bu.memo(({players:o,imgW:x,imgH:_,getColor:d,onHover:U,onSelect:O,selectedPlayer:N})=>{const{openWindow:T}=zu(),[M,D]=E.useState(null);E.useEffect(()=>{const z=()=>D(null);return M&&window.addEventListener("click",z),()=>window.removeEventListener("click",z)},[M]);const H=E.useMemo(()=>o.filter(z=>z.ew!==void 0&&z.ns!==void 0).map(z=>({...z,pos:pu(z.ew,z.ns,x,_),color:d(z.character_name)})),[o,x,_,d]);return y.jsxs("div",{className:"ml-dots-layer",children:[H.map(z=>y.jsx("div",{className:`ml-dot ${N===z.character_name?"ml-dot-selected":""}`,style:{left:z.pos.x,top:z.pos.y,backgroundColor:z.color},onMouseEnter:j=>{var X;const Q=(X=j.currentTarget.closest(".ml-map-container"))==null?void 0:X.getBoundingClientRect();Q&&U(z,j.clientX-Q.left,j.clientY-Q.top)},onMouseLeave:()=>U(null,0,0),onClick:()=>O(z.character_name),onDoubleClick:()=>T(`chat-${z.character_name}`,`Chat: ${z.character_name}`,z.character_name),onContextMenu:j=>{var Bl;j.preventDefault();const Q=z.character_name,X=(Bl=j.currentTarget.closest(".ml-map-container"))==null?void 0:Bl.getBoundingClientRect(),W=X?j.clientX-X.left:j.clientX,Ul=X?j.clientY-X.top:j.clientY;D({name:Q,x:W,y:Ul})}},z.character_name)),M&&y.jsx("div",{style:{position:"fixed",left:M.x+410,top:M.y,background:"#1a1a1a",border:"1px solid #444",borderRadius:4,zIndex:9999,padding:"2px 0",fontSize:"0.75rem",boxShadow:"0 4px 12px rgba(0,0,0,0.5)",minWidth:120},children:[{label:"Chat",id:"chat"},{label:"Stats",id:"stats"},{label:"Inventory",id:"inv"},{label:"Character",id:"char"},{label:"Combat",id:"combat"},{label:"Radar",id:"radar"}].map(z=>y.jsx("div",{onClick:()=>{T(`${z.id}-${M.name}`,`${z.label}: ${M.name}`,M.name),D(null)},style:{padding:"4px 12px",cursor:"pointer",color:"#ccc"},onMouseEnter:j=>j.currentTarget.style.background="#333",onMouseLeave:j=>j.currentTarget.style.background="",children:z.label},z.id))})]})});Dm.displayName="PlayerDots";const yr="/api";async function za(o){const x=await fetch(`${yr}${o}`,{credentials:"include"});if(!x.ok)throw new Error(`API ${o}: ${x.status}`);return x.json()}function gr(){return`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}/api/ws/live`}const Om=bu.memo(({imgW:o,imgH:x,getColor:_})=>{const[d,U]=E.useState([]);E.useEffect(()=>{const N=async()=>{try{const M=await za("/trails/?seconds=600");U(M.trails??[])}catch{}};N();const T=setInterval(N,2e3);return()=>clearInterval(T)},[]);const O=E.useMemo(()=>{const N={};for(const T of d){const{x:M,y:D}=pu(T.ew,T.ns,o,x);N[T.character_name]||(N[T.character_name]=[]),N[T.character_name].push(`${M},${D}`)}return Object.entries(N).filter(([,T])=>T.length>=2).map(([T,M])=>({name:T,points:M.join(" ")}))},[d,o,x]);return y.jsx("svg",{className:"ml-trails-svg",viewBox:`0 0 ${o} ${x}`,preserveAspectRatio:"none",children:O.map(N=>y.jsx("polyline",{points:N.points,stroke:_(N.name),fill:"none",strokeWidth:2,strokeOpacity:.7,strokeLinecap:"round",strokeLinejoin:"round"},N.name))})});Om.displayName="TrailsSVG";const Sr=({imgW:o,imgH:x,enabled:_})=>{const d=E.useRef(null),[U,O]=E.useState([]);return E.useEffect(()=>{if(!_)return;(async()=>{try{const T=await za("/spawns/heatmap?hours=24&limit=50000");O(T.spawn_points??[])}catch{}})()},[_]),E.useEffect(()=>{const N=d.current;if(!N||!_||U.length===0||o===0)return;N.width=o,N.height=x;const T=N.getContext("2d");if(T){T.clearRect(0,0,o,x);for(const M of U){const{x:D,y:H}=pu(M.ew,M.ns,o,x),z=Math.max(5,Math.min(12,5+Math.sqrt(M.intensity*.5))),j=T.createRadialGradient(D,H,0,D,H,z);j.addColorStop(0,`rgba(255, 0, 0, ${Math.min(.9,M.intensity/40)})`),j.addColorStop(.6,`rgba(255, 100, 0, ${Math.min(.4,M.intensity/120)})`),j.addColorStop(1,"rgba(255, 150, 0, 0)"),T.fillStyle=j,T.fillRect(D-z,H-z,z*2,z*2)}}},[U,o,x,_]),_?y.jsx("canvas",{ref:d,className:"ml-heatmap-canvas"}):null},br=({imgW:o,imgH:x,enabled:_})=>{const[d,U]=E.useState([]);E.useEffect(()=>{if(!_)return;const N=async()=>{try{const M=await za("/portals");U(M.portals??[])}catch{}};N();const T=setInterval(N,6e4);return()=>clearInterval(T)},[_]);const O=E.useMemo(()=>d.map(N=>({...N,pos:pu(N.coordinates.ew,N.coordinates.ns,o,x)})),[d,o,x]);return!_||O.length===0?null:y.jsx("div",{className:"ml-portals-layer",children:O.map((N,T)=>y.jsx("div",{className:"ml-portal-icon",style:{left:N.pos.x,top:N.pos.y},title:`${N.portal_name} (by ${N.discovered_by})`},T))})},Em=20,Am=.3,zr=({players:o,getColor:x,onSelectPlayer:_,showHeatmap:d,showPortals:U,selectedPlayer:O})=>{var jl;const N=E.useRef(null),T=E.useRef(null),[M,D]=E.useState({w:0,h:0}),[H,z]=E.useState(null),j=E.useRef(null),Q=E.useRef({scale:1,offX:0,offY:0}),X=E.useRef({dragging:!1,sx:0,sy:0,startOffX:0,startOffY:0}),W=E.useCallback(()=>{if(T.current){const{scale:I,offX:F,offY:ul}=Q.current;T.current.style.transform=`translate(${F}px, ${ul}px) scale(${I})`}},[]),Ul=E.useCallback(I=>{const F=I.currentTarget;if(D({w:F.naturalWidth,h:F.naturalHeight}),N.current){const ul=N.current.clientWidth,k=N.current.clientHeight,R=Math.min(ul/F.naturalWidth,k/F.naturalHeight);Q.current={scale:R,offX:(ul-F.naturalWidth*R)/2,offY:(k-F.naturalHeight*R)/2},W()}},[W]),Bl=E.useCallback(I=>{var pl;I.preventDefault();const F=(pl=N.current)==null?void 0:pl.getBoundingClientRect();if(!F)return;const ul=Q.current,k=I.deltaY<0?1.1:.9,R=Math.min(Em,Math.max(Am,ul.scale*k)),J=R/ul.scale,B=I.clientX-F.left,L=I.clientY-F.top;Q.current={scale:R,offX:B-(B-ul.offX)*J,offY:L-(L-ul.offY)*J},W()},[W]),$=E.useCallback(I=>{if(I.button!==0)return;const F=Q.current;X.current={dragging:!0,sx:I.clientX,sy:I.clientY,startOffX:F.offX,startOffY:F.offY}},[]);E.useEffect(()=>{const I=ul=>{const k=X.current;if(k.dragging&&(Q.current.offX=k.startOffX+(ul.clientX-k.sx),Q.current.offY=k.startOffY+(ul.clientY-k.sy),W()),N.current&&M.w>0&&j.current){const R=N.current.getBoundingClientRect(),J=Q.current,B=vr(ul.clientX-R.left,ul.clientY-R.top,J.scale,J.offX,J.offY,M.w,M.h);j.current.textContent=hf(B.ns,B.ew)}},F=()=>{X.current.dragging=!1};return window.addEventListener("mousemove",I),window.addEventListener("mouseup",F),()=>{window.removeEventListener("mousemove",I),window.removeEventListener("mouseup",F)}},[W,M.w,M.h]);const tl=E.useRef(null);E.useEffect(()=>{if(!O||M.w===0||!N.current||tl.current===O)return;const I=o.find(J=>J.character_name===O);if(!I)return;tl.current=O;const{x:F,y:ul}=pu(I.ew,I.ns,M.w,M.h),k=N.current.getBoundingClientRect(),R=3;Q.current={scale:Math.min(Em,Math.max(Am,R)),offX:k.width/2-F*R,offY:k.height/2-ul*R},W()},[O,o,M.w,M.h,W]),E.useEffect(()=>{O||(tl.current=null)},[O]);const Vl=E.useCallback((I,F,ul)=>{z(I?{x:F,y:ul,player:I}:null)},[]);return y.jsxs("div",{className:"ml-map-container",ref:N,onWheel:Bl,onMouseDown:$,children:[y.jsxs("div",{ref:T,className:"ml-map-group",children:[y.jsx("img",{src:"/dereth.png",alt:"Dereth",className:"ml-map-img",onLoad:Ul,draggable:!1}),M.w>0&&y.jsxs(y.Fragment,{children:[y.jsx(Sr,{imgW:M.w,imgH:M.h,enabled:d}),y.jsx(Om,{imgW:M.w,imgH:M.h,getColor:x}),y.jsx(Dm,{players:o,imgW:M.w,imgH:M.h,getColor:x,onHover:Vl,onSelect:_,selectedPlayer:O}),y.jsx(br,{imgW:M.w,imgH:M.h,enabled:U})]})]}),H&&y.jsxs("div",{className:"ml-tooltip",style:{left:H.x+12,top:H.y-10},children:[y.jsx("strong",{children:H.player.character_name}),y.jsx("br",{}),hf(H.player.ns,H.player.ew),y.jsx("br",{}),H.player.kills_per_hour," kph · ",(jl=H.player.kills)==null?void 0:jl.toLocaleString()," kills"]}),y.jsx("div",{className:"ml-coords",ref:j})]})},Nm=bu.memo(({player:o,vitals:x,color:_,onSelect:d,isSelected:U})=>{var H,z;const{openWindow:O}=zu(),N=(o.vt_state||"idle").toLowerCase(),T=N==="combat"||N==="hunt",M=(o.total_rares??0)>0?Math.round((o.total_kills??0)/(o.total_rares??1)).toLocaleString():null,D=o.character_name;return y.jsxs("li",{className:`ml-player-row ${U?"ml-player-selected":""}`,style:{borderLeftColor:_},children:[y.jsxs("div",{className:"ml-pr-header",onClick:d,children:[y.jsx("span",{className:"ml-pr-name",children:D}),y.jsx("span",{className:"ml-pr-coords",children:hf(o.ns,o.ew)})]}),y.jsxs("div",{className:"ml-pr-vitals",children:[y.jsx("div",{className:"ml-vital-bar hp",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.health_percentage)??0}%`}})}),y.jsx("div",{className:"ml-vital-bar sta",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.stamina_percentage)??0}%`}})}),y.jsx("div",{className:"ml-vital-bar mana",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.mana_percentage)??0}%`}})})]}),y.jsxs("div",{className:"ml-pr-grid",children:[y.jsxs("span",{className:"ml-gs",title:"Session kills",children:["⚔️ ",((H=o.kills)==null?void 0:H.toLocaleString())??0]}),y.jsxs("span",{className:"ml-gs",title:"Total kills",children:["🏆 ",(o.total_kills??0).toLocaleString()]}),y.jsxs("span",{className:"ml-gs",title:"Kills per hour",children:[o.kills_per_hour??"0"," ",y.jsx("span",{className:"ml-suffix",children:"KPH"})]}),y.jsxs("span",{className:"ml-gs",title:"Rares (session / total)",children:["💎 ",o.session_rares??0," / ",o.total_rares??0]}),y.jsx("span",{className:"ml-gs",title:"Kills per rare",children:M?y.jsxs(y.Fragment,{children:["📊 ",M," ",y.jsx("span",{className:"ml-suffix",children:"KPR"})]}):""}),y.jsx("span",{className:`ml-meta-pill ${T?"active":N!=="idle"&&N!=="default"&&N!==""?"other":""}`,children:o.vt_state||"idle"}),y.jsxs("span",{className:"ml-gs",title:"Online time",children:["🕐 ",((z=o.onlinetime)==null?void 0:z.replace(/^00\./,""))??"--"]}),y.jsxs("span",{className:"ml-gs",title:"Deaths",children:["☠️ ",o.deaths??"0"]}),y.jsxs("span",{className:"ml-gs",title:"Prismatic tapers",children:[y.jsx("img",{src:"/prismatic-taper-icon.png",className:"ml-taper-icon",alt:""}),o.prismatic_taper_count??"0"]})]}),y.jsxs("div",{className:"ml-pr-buttons",children:[y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`chat-${D}`,`Chat: ${D}`,D),children:"Chat"}),y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`stats-${D}`,`Stats: ${D}`,D),children:"Stats"}),y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`inv-${D}`,`Inventory: ${D}`,D),children:"Inv"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`char-${D}`,`Character: ${D}`,D),children:"Char"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`combat-${D}`,`Combat: ${D}`,D),children:"Combat"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`radar-${D}`,`Radar: ${D}`,D),children:"Radar"})]})]})});Nm.displayName="PlayerRow";const pr=({players:o,vitals:x,getColor:_,onSelect:d,selectedPlayer:U})=>{const O=E.useRef(null),[N,T]=E.useState(!1),M=E.useCallback(()=>{O.current&&T(O.current.scrollTop>200)},[]);return y.jsxs("div",{style:{position:"relative",flex:1,minHeight:0},children:[y.jsx("ul",{className:"ml-player-list",ref:O,onScroll:M,children:o.map(D=>y.jsx(Nm,{player:D,vitals:x.get(D.character_name)??null,color:_(D.character_name),onSelect:()=>d(D.character_name),isSelected:U===D.character_name},D.character_name))}),N&&y.jsx("button",{onClick:()=>{var D;(D=O.current)==null||D.scrollTo({top:0,behavior:"smooth"})},style:{position:"absolute",bottom:8,right:8,width:28,height:28,borderRadius:"50%",background:"rgba(68,136,255,0.2)",border:"1px solid rgba(68,136,255,0.4)",color:"#6af",cursor:"pointer",fontSize:"0.8rem",display:"flex",alignItems:"center",justifyContent:"center"},children:"▲"})]})},Tr=[{key:"name",label:"Name"},{key:"kph",label:"KPH"},{key:"skills",label:"S.Kills"},{key:"srares",label:"S.Rares"},{key:"tkills",label:"T.Kills"},{key:"kpr",label:"KPR"}],Er=({value:o,onChange:x})=>y.jsx("div",{className:"ml-sort-buttons",children:Tr.map(_=>y.jsx("button",{className:`ml-sort-btn ${o===_.key?"active":""}`,onClick:()=>x(_.key),children:_.label},_.key))}),Ar=()=>{const{openWindow:o}=zu();return y.jsxs("div",{className:"ml-tool-links",children:[y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("issues","Issues Board"),children:"📋 Issues"}),y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("vitalsharing","Vital Sharing"),children:"🤝 Vitals"}),y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("combatpicker","Combat Stats"),children:"⚔️ Combat"})]})},Mr=({players:o,vitals:x,serverHealth:_,totalRares:d,totalKills:U,getColor:O,onSelectPlayer:N,onViewToggle:T,showHeatmap:M,showPortals:D,onToggleHeatmap:H,onTogglePortals:z,version:j,selectedPlayer:Q})=>{var F,ul;const[X,W]=E.useState("name"),[Ul,Bl]=E.useState(""),$=E.useMemo(()=>o.reduce((k,R)=>k+(parseInt(R.kills_per_hour)||0),0),[o]),tl=((F=_==null?void 0:_.status)==null?void 0:F.toLowerCase())==="online"||((ul=_==null?void 0:_.status)==null?void 0:ul.toLowerCase())==="up",Vl=E.useDeferredValue(o),jl=E.useDeferredValue(x),I=E.useMemo(()=>{let k=[...Vl];switch(Ul&&(k=k.filter(R=>R.character_name.toLowerCase().startsWith(Ul.toLowerCase()))),X){case"kph":k.sort((R,J)=>(parseInt(J.kills_per_hour)||0)-(parseInt(R.kills_per_hour)||0));break;case"skills":k.sort((R,J)=>(J.kills||0)-(R.kills||0));break;case"srares":k.sort((R,J)=>(J.session_rares??0)-(R.session_rares??0));break;case"tkills":k.sort((R,J)=>(J.total_kills??0)-(R.total_kills??0));break;case"kpr":k.sort((R,J)=>{const B=(R.total_kills??0)/Math.max(1,R.total_rares??1),L=(J.total_kills??0)/Math.max(1,J.total_rares??1);return B-L});break;default:k.sort((R,J)=>R.character_name.localeCompare(J.character_name))}return k},[Vl,X,Ul]);return y.jsxs("div",{className:"ml-sidebar",children:[j&&y.jsxs("div",{className:"ml-version",children:["v",j]}),y.jsx("div",{className:"ml-sidebar-header",children:y.jsxs("span",{className:"ml-sidebar-title",children:["Active Mosswart Enjoyers (",o.length,")"]})}),y.jsxs("div",{className:"ml-server-status",children:[y.jsx("span",{className:`ml-status-dot ${tl?"online":"offline"}`}),y.jsxs("span",{className:"ml-status-text",children:["Coldeve ",tl?"Online":"Offline"]}),(_==null?void 0:_.player_count)!=null&&y.jsxs("span",{className:"ml-status-detail",children:["👥 ",_.player_count]}),(_==null?void 0:_.latency_ms)!=null&&y.jsxs("span",{className:"ml-status-detail",children:[Math.round(_.latency_ms),"ms"]}),(_==null?void 0:_.uptime_seconds)!=null&&y.jsxs("span",{className:"ml-status-detail",children:["Up: ",Math.floor(_.uptime_seconds/3600),"h"]})]}),y.jsxs("div",{className:"ml-counters",children:[y.jsxs("div",{className:"ml-counter rares",children:[y.jsx("span",{className:"ml-counter-val",children:d}),y.jsx("span",{className:"ml-counter-lbl",children:"Rares"})]}),y.jsxs("div",{className:`ml-counter kph ${$>5e3?"ultra":""}`,children:[y.jsx("span",{className:"ml-counter-val",children:$.toLocaleString()}),y.jsx("span",{className:"ml-counter-lbl",children:"Server KPH"})]}),y.jsxs("div",{className:"ml-counter kills",children:[y.jsx("span",{className:"ml-counter-val",children:U.toLocaleString()}),y.jsx("span",{className:"ml-counter-lbl",children:"Kills"})]})]}),y.jsxs("div",{className:"ml-tool-links",children:[y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:T,children:"📊 Dashboard"}),y.jsx("a",{href:"/inventory.html",target:"_blank",className:"ml-tool-link",children:"🔍 Inv Search"}),y.jsx("a",{href:"/suitbuilder.html",target:"_blank",className:"ml-tool-link",children:"🛡️ Suitbuilder"}),y.jsx("a",{href:"/debug.html",target:"_blank",className:"ml-tool-link",children:"🐛 Debug"}),y.jsx("a",{href:"/quest-status.html",target:"_blank",className:"ml-tool-link",children:"📜 Quests"})]}),y.jsx(Ar,{}),y.jsxs("div",{className:"ml-toggles",children:[y.jsxs("label",{className:"ml-toggle-label",children:[y.jsx("input",{type:"checkbox",checked:M,onChange:k=>H(k.target.checked)}),y.jsx("span",{children:"Spawn Heatmap"})]}),y.jsxs("label",{className:"ml-toggle-label",children:[y.jsx("input",{type:"checkbox",checked:D,onChange:k=>z(k.target.checked)}),y.jsx("span",{children:"Portals"})]})]}),y.jsx("div",{style:{borderTop:"1px solid #333",marginTop:4,paddingTop:4}}),y.jsx(Er,{value:X,onChange:W}),y.jsx("input",{className:"ml-filter",type:"text",placeholder:"Filter players...",value:Ul,onChange:k=>Bl(k.target.value)}),y.jsx(pr,{players:I,vitals:jl,getColor:O,onSelect:N,selectedPlayer:Q})]})},_r=({id:o,title:x,zIndex:_,width:d=700,height:U=340,children:O})=>{const{closeWindow:N,bringToFront:T}=zu(),M=E.useRef(null),D=E.useRef({dragging:!1,sx:0,sy:0,ox:0,oy:0}),H=E.useRef({x:420,y:10+Math.random()*40}),z=E.useCallback(j=>{var X;j.preventDefault(),T(o);const Q=(X=M.current)==null?void 0:X.getBoundingClientRect();Q&&(D.current={dragging:!0,sx:j.clientX,sy:j.clientY,ox:Q.left,oy:Q.top})},[o,T]);return E.useEffect(()=>{const j=X=>{const W=D.current;!W.dragging||!M.current||(H.current.x=W.ox+(X.clientX-W.sx),H.current.y=W.oy+(X.clientY-W.sy),M.current.style.left=`${H.current.x}px`,M.current.style.top=`${H.current.y}px`)},Q=()=>{D.current.dragging=!1};return window.addEventListener("mousemove",j),window.addEventListener("mouseup",Q),()=>{window.removeEventListener("mousemove",j),window.removeEventListener("mouseup",Q)}},[]),y.jsxs("div",{ref:M,className:"ml-window",style:{zIndex:_,width:d,height:U,left:H.current.x,top:H.current.y},onMouseDown:()=>T(o),children:[y.jsxs("div",{className:"ml-window-header",onMouseDown:z,children:[y.jsx("span",{className:"ml-window-title",children:x}),y.jsx("button",{className:"ml-window-close",onClick:()=>N(o),children:"×"})]}),y.jsx("div",{className:"ml-window-content",children:O})]})},xr={0:"#00FF00",2:"#FFFFFF",3:"#FF0000",4:"#FFFFFF",5:"#33CCFF",6:"#CCFF99",7:"#00FFFF",14:"#FFD700",15:"#FF69B4",17:"#AAAAFF",18:"#88FF88",21:"#FF8888",22:"#FFAA66"},Um=50,jm=o=>`mo-chat-history-${o}`;function Dr(o){try{const x=localStorage.getItem(jm(o));return x?JSON.parse(x):[]}catch{return[]}}function Or(o,x){try{localStorage.setItem(jm(o),JSON.stringify(x.slice(-Um)))}catch{}}const Nr=({id:o,charName:x,zIndex:_,messages:d,socket:U})=>{const O=E.useRef(null),[N,T]=E.useState(""),[M,D]=E.useState(!1),H=E.useRef(Dr(x)),z=E.useRef(-1),j=E.useRef(""),Q=E.useRef(!1);E.useEffect(()=>{const $=O.current;$&&(Q.current?D(!0):($.scrollTop=$.scrollHeight,D(!1)))},[d.length]);const X=E.useCallback(()=>{const $=O.current;if(!$)return;const tl=$.scrollHeight-$.scrollTop-$.clientHeight<30;Q.current=!tl,tl&&D(!1)},[]),W=E.useCallback(()=>{const $=O.current;$&&($.scrollTop=$.scrollHeight,Q.current=!1,D(!1))},[]),Ul=E.useCallback($=>{$.preventDefault();const tl=N.trim();!tl||!U||U.readyState!==WebSocket.OPEN||(U.send(JSON.stringify({player_name:x,command:tl})),H.current.push(tl),H.current.length>Um&&H.current.shift(),Or(x,H.current),z.current=-1,j.current="",T(""),Q.current=!1)},[N,U,x]),Bl=E.useCallback($=>{const tl=H.current;if(tl.length!==0){if($.key==="ArrowUp")$.preventDefault(),z.current===-1?(j.current=N,z.current=tl.length-1):z.current>0&&z.current--,T(tl[z.current]);else if($.key==="ArrowDown"){if($.preventDefault(),z.current===-1)return;z.currenty.jsx("div",{className:"ml-chat-line",style:{color:xr[$.color??2]??"#ddd"},children:$.text},tl))}),M&&y.jsx("div",{onClick:W,style:{padding:"3px 0",textAlign:"center",fontSize:"0.65rem",color:"#6af",background:"#1a2a3a",cursor:"pointer",borderTop:"1px solid #334"},children:"▼ New messages below"}),y.jsx("form",{className:"ml-chat-form",onSubmit:Ul,children:y.jsx("input",{className:"ml-chat-input",value:N,onChange:$=>T($.target.value),onKeyDown:Bl,placeholder:"Enter chat..."})})]})},Ur=E.lazy(()=>wt(()=>import("./StatsWindow-BvEd94FW.js"),__vite__mapDeps([0,1])).then(o=>({default:o.StatsWindow}))),jr=E.lazy(()=>wt(()=>import("./CharacterWindow-DHhMuitc.js"),__vite__mapDeps([2,1])).then(o=>({default:o.CharacterWindow}))),Cr=E.lazy(()=>wt(()=>import("./InventoryWindow-CHG3Ftlg.js"),__vite__mapDeps([3,1])).then(o=>({default:o.InventoryWindow}))),Rr=E.lazy(()=>wt(()=>import("./RadarWindow-D_o-FWZR.js"),__vite__mapDeps([4,1])).then(o=>({default:o.RadarWindow}))),Hr=E.lazy(()=>wt(()=>import("./CombatStatsWindow-Js_v2JL3.js"),__vite__mapDeps([5,1])).then(o=>({default:o.CombatStatsWindow}))),qr=E.lazy(()=>wt(()=>import("./CombatPickerWindow-CWXujjNT.js"),__vite__mapDeps([6,1])).then(o=>({default:o.CombatPickerWindow}))),Br=E.lazy(()=>wt(()=>import("./IssuesWindow-BeCdzqJV.js"),__vite__mapDeps([7,1])).then(o=>({default:o.IssuesWindow}))),Yr=E.lazy(()=>wt(()=>import("./VitalSharingWindow-0C98e7ZG.js"),__vite__mapDeps([8,1])).then(o=>({default:o.VitalSharingWindow}))),Cm=bu.memo(({characters:o,chatMessages:x,nearbyObjects:_,inventoryVersion:d,equipmentCantrips:U,socket:O})=>{const{windows:N}=zu();return y.jsx(E.Suspense,{fallback:null,children:N.map(T=>{var H;const M=T.charName??"";switch(T.id.split("-")[0]){case"chat":return y.jsx(Nr,{id:T.id,charName:M,zIndex:T.zIndex,messages:x.get(M)??[],socket:O},T.id);case"stats":return y.jsx(Ur,{id:T.id,charName:M,zIndex:T.zIndex},T.id);case"char":return y.jsx(jr,{id:T.id,charName:M,zIndex:T.zIndex,vitals:((H=o.get(M))==null?void 0:H.vitals)??void 0},T.id);case"inv":return y.jsx(Cr,{id:T.id,charName:M,zIndex:T.zIndex,inventoryVersion:d,equipmentCantrips:U.get(M)},T.id);case"radar":return y.jsx(Rr,{id:T.id,charName:M,zIndex:T.zIndex,socket:O,radarData:_.get(M)??null},T.id);case"combat":return y.jsx(Hr,{id:T.id,charName:M,zIndex:T.zIndex},T.id);case"combatpicker":return y.jsx(qr,{id:T.id,zIndex:T.zIndex,characters:o},T.id);case"issues":return y.jsx(Br,{id:T.id,zIndex:T.zIndex},T.id);case"vitalsharing":return y.jsx(Yr,{id:T.id,zIndex:T.zIndex},T.id);default:return null}})})});Cm.displayName="WindowRenderer";let Xr=0;const Gr=({recentRares:o})=>{const[x,_]=E.useState([]),[d,U]=E.useState(0),[O,N]=E.useState([]);E.useEffect(()=>{if(o.length>d&&d>0){const M=o.slice(0,o.length-d);for(const D of M){const H=++Xr;_(z=>[...z,{key:H,charName:D.character_name,rareName:D.name,exiting:!1}]),T();try{const z=new AudioContext,j=z.createOscillator(),Q=z.createGain();j.connect(Q),Q.connect(z.destination),j.frequency.value=880,j.type="sine",Q.gain.value=.3,j.start(),Q.gain.exponentialRampToValueAtTime(.001,z.currentTime+.5),j.stop(z.currentTime+.5)}catch{}setTimeout(()=>{_(z=>z.map(j=>j.key===H?{...j,exiting:!0}:j)),setTimeout(()=>{_(z=>z.filter(j=>j.key!==H))},500)},6e3)}}U(o.length)},[o.length]);const T=E.useCallback(()=>{const M=Date.now(),D=["#FFD700","#FF4444","#FF8800","#AA44FF","#4488FF"],H=Array.from({length:30},(z,j)=>{const Q=Math.PI*2*j/30+(Math.random()-.5)*.5,X=100+Math.random()*200;return{dx:Math.cos(Q)*X,dy:Math.sin(Q)*X-50,color:D[Math.floor(Math.random()*D.length)]}});N(z=>[...z,{id:M,particles:H}]),setTimeout(()=>N(z=>z.filter(j=>j.id!==M)),2200)},[]);return y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"ml-rare-notifications",children:x.map(M=>y.jsxs("div",{className:`ml-rare-notif ${M.exiting?"exiting":""}`,children:[y.jsx("div",{className:"ml-rare-notif-title",children:"🎆 LEGENDARY RARE! 🎆"}),y.jsx("div",{className:"ml-rare-notif-name",children:M.rareName}),y.jsx("div",{className:"ml-rare-notif-by",children:"found by"}),y.jsx("div",{className:"ml-rare-notif-char",children:M.charName})]},M.key))}),y.jsx("div",{className:"ml-fireworks",children:O.map(M=>y.jsx(bu.Fragment,{children:M.particles.map((D,H)=>y.jsx("div",{className:"ml-firework-particle",style:{left:"50%",top:"30%",backgroundColor:D.color,"--dx":`${D.dx}px`,"--dy":`${D.dy+200}px`}},H))},M.id))})]})},Mm=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf","#ff4444","#44ff44","#4444ff","#ffff44","#ff44ff","#44ffff","#ff8844","#88ff44","#4488ff","#ff4488","#cc3333","#33cc33","#3333cc","#cccc33","#cc33cc","#33cccc","#cc6633","#66cc33","#3366cc","#cc3366","#ff6666","#66ff66","#6666ff","#ffff66","#ff66ff","#66ffff","#ffaa66","#aaff66","#66aaff","#ff66aa","#990099","#009900","#000099","#990000","#009999","#999900","#aa5500","#55aa00","#0055aa","#aa0055","#ffaaaa","#aaffaa","#aaaaff","#ffffaa","#ffaaff","#aaffff","#ffccaa","#ccffaa","#aaccff","#ffaacc"];function Qr(o){let x=0;for(let _=0;_{let U=o.current.get(d);return U||(U=x.current{const _=Zr(),[d,U]=E.useState(!1),[O,N]=E.useState(!1),[T,M]=E.useState(null),D=E.useMemo(()=>Array.from(o.characters.values()).filter(X=>X.telemetry).map(X=>X.telemetry),[o.characters]),H=E.useMemo(()=>new Map(Array.from(o.characters.values()).filter(X=>X.vitals).map(X=>[X.name,X.vitals])),[o.characters]),[z,j]=E.useState("");E.useEffect(()=>{fetch("/api/api-version",{credentials:"include"}).then(X=>X.json()).then(X=>j(X.version??"")).catch(()=>{})},[]);const Q=E.useCallback(X=>{M(W=>W===X?null:X)},[]);return y.jsx(rr,{children:y.jsxs("div",{className:"ml-layout",children:[y.jsx(Mr,{players:D,vitals:H,serverHealth:o.serverHealth,totalRares:o.totalRares,totalKills:o.totalKills,getColor:_,onSelectPlayer:Q,onViewToggle:x,showHeatmap:d,showPortals:O,onToggleHeatmap:U,onTogglePortals:N,version:z,selectedPlayer:T}),y.jsx(zr,{players:D,getColor:_,onSelectPlayer:Q,showHeatmap:d,showPortals:O,selectedPlayer:T}),y.jsx(Cm,{characters:o.characters,chatMessages:o.chatMessages,nearbyObjects:o.nearbyObjects,inventoryVersion:o.inventoryVersion,equipmentCantrips:o.equipmentCantrips,socket:o.socketRef.current}),y.jsx(Gr,{recentRares:o.recentRares})]})})};function Lr(o){const x=E.useRef(null),_=E.useRef(0),d=E.useRef(o);d.current=o;const U=E.useCallback(()=>{var N;if(((N=x.current)==null?void 0:N.readyState)===WebSocket.OPEN)return;const O=new WebSocket(gr());x.current=O,O.addEventListener("message",T=>{try{const M=JSON.parse(T.data);d.current(M)}catch{}}),O.addEventListener("close",()=>{x.current=null,_.current=window.setTimeout(U,2e3)}),O.addEventListener("error",()=>{O.close()})},[]);return E.useEffect(()=>(U(),()=>{var O;clearTimeout(_.current),(O=x.current)==null||O.close(),x.current=null}),[U]),x}const Kr=()=>za("/live"),Jr=()=>za("/combat-stats"),wr=()=>za("/server-health"),kr=()=>za("/total-rares"),Wr=()=>za("/total-kills");function Fr(){const[o,x]=E.useState(new Map),[_,d]=E.useState(null),[U,O]=E.useState(0),[N,T]=E.useState(0),[M,D]=E.useState([]),H=E.useRef(new Map),[z,j]=E.useState(0),[Q,X]=E.useState(0),W=E.useRef(new Map),[Ul,Bl]=E.useState(0),[$,tl]=E.useState(new Map),Vl=E.useRef(o);Vl.current=o;const jl=E.useCallback((R,J)=>{x(B=>{const L=new Map(B),pl=L.get(R)??{name:R,telemetry:null,vitals:null,combat:null,lastUpdate:0};return L.set(R,J(pl)),L})},[]),I=E.useCallback(R=>{var J;if(R.type){if(R.type==="telemetry"){const B=R;jl(B.character_name,L=>({...L,telemetry:B,lastUpdate:Date.now()}))}else if(R.type==="vitals"){const B=R;jl(B.character_name,L=>({...L,vitals:B,lastUpdate:Date.now()}))}else if(R.type==="combat_stats"){const B=R;jl(B.character_name,L=>({...L,combat:B,lastUpdate:Date.now()}))}else if(R.type==="rare"){const B=R;D(L=>[B,...L].slice(0,50))}else if(R.type==="inventory_delta")X(B=>B+1);else if(R.type==="equipment_cantrip_state"){const B=R;W.current.set(B.character_name,B),Bl(L=>L+1)}else if(R.type==="dungeon_map"){const B=R;B.landblock&&(window.__dungeonMapCache||(window.__dungeonMapCache={}),window.__dungeonMapCache[B.landblock]=B)}else if(R.type==="nearby_objects"){const B=R;if(tl(L=>{const pl=new Map(L);return pl.set(B.character_name,B),pl}),B.is_dungeon&&B.landblock&&!((J=window.__dungeonMapCache)!=null&&J[B.landblock])){const L=F.current;(L==null?void 0:L.readyState)===WebSocket.OPEN&&L.send(JSON.stringify({type:"request_dungeon_map",landblock:B.landblock}))}}else if(R.type==="chat"){const B=R,L=H.current.get(B.character_name)??[];L.push({text:B.text,color:B.color,timestamp:B.timestamp}),L.length>1e3&&L.splice(0,L.length-1e3),H.current.set(B.character_name,L),j(pl=>pl+1)}}},[jl]),F=Lr(I);E.useEffect(()=>{const R=async()=>{try{const B=await Kr();x(L=>{var st;const pl=new Map(L);for(const b of B.players??[]){const C=pl.get(b.character_name);pl.set(b.character_name,{name:b.character_name,telemetry:b,vitals:(C==null?void 0:C.vitals)??null,combat:(C==null?void 0:C.combat)??null,lastUpdate:Date.now()})}for(const b of pl.keys())(st=B.players)!=null&&st.some(C=>C.character_name===b)||pl.delete(b);return pl})}catch{}};R();const J=setInterval(R,5e3);return()=>clearInterval(J)},[]),E.useEffect(()=>{const R=async()=>{try{const B=await Jr();for(const L of B.stats??[])jl(L.character_name,pl=>({...pl,combat:{...L,type:"combat_stats"}}))}catch{}};R();const J=setInterval(R,3e4);return()=>clearInterval(J)},[jl]),E.useEffect(()=>{const R=async()=>{try{d(await wr())}catch{}};R();const J=setInterval(R,3e4);return()=>clearInterval(J)},[]),E.useEffect(()=>{const R=async()=>{try{const[B,L]=await Promise.all([kr(),Wr()]);O(B.all_time??0),T(L.total??0)}catch{}};R();const J=setInterval(R,3e5);return()=>clearInterval(J)},[]);const ul=E.useMemo(()=>H.current,[z]),k=E.useMemo(()=>W.current,[Ul]);return{characters:o,serverHealth:_,totalRares:U,totalKills:N,recentRares:M,chatMessages:ul,nearbyObjects:$,inventoryVersion:Q,equipmentCantrips:k,socketRef:F}}const $r=E.lazy(()=>wt(()=>import("./DashboardView-B8znzNXc.js"),__vite__mapDeps([9,1])));function Ir(){const[o,x]=E.useState(()=>localStorage.getItem("v2-view")||"map"),_=Fr();E.useEffect(()=>{const U=O=>{O.ctrlKey&&O.key==="d"&&(O.preventDefault(),d())};return window.addEventListener("keydown",U),()=>window.removeEventListener("keydown",U)});const d=()=>{const U=o==="map"?"dashboard":"map";x(U),localStorage.setItem("v2-view",U)};return o==="map"?y.jsx(Vr,{data:_,onViewToggle:d}):y.jsx(E.Suspense,{fallback:y.jsx("div",{style:{background:"#0d0d0d",color:"#888",padding:40,textAlign:"center"},children:"Loading dashboard..."}),children:y.jsx($r,{data:_,onViewToggle:d})})}dr.createRoot(document.getElementById("root")).render(y.jsx(E.StrictMode,{children:y.jsx(Ir,{})}));"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").catch(()=>{});export{_r as D,bu as R,za as a,y as j,E as r,zu as u}; diff --git a/static/index.html b/static/index.html index 9ee76966..a35ea1ce 100644 --- a/static/index.html +++ b/static/index.html @@ -8,9 +8,9 @@ - + - +
diff --git a/static/v2/assets/CharacterWindow-DHhMuitc.js b/static/v2/assets/CharacterWindow-DHhMuitc.js new file mode 100644 index 00000000..4790add6 --- /dev/null +++ b/static/v2/assets/CharacterWindow-DHhMuitc.js @@ -0,0 +1 @@ +import{r as f,a as Y,j as e,D as X}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const B={218:"Reinforcement of the Lugians",219:"Bleeargh's Fortitude",220:"Oswald's Enhancement",221:"Siraluun's Blessing",222:"Enduring Calm",223:"Steadfast Will",224:"Ciandra's Essence",225:"Yoshi's Essence",226:"Jibril's Essence",227:"Celdiseth's Essence",228:"Koga's Essence",229:"Shadow of the Seventh Mule",230:"Might of the Seventh Mule",231:"Clutch of the Miser",232:"Enduring Enchantment",233:"Critical Protection",234:"Quick Learner",235:"Ciandra's Fortune",236:"Charmed Smith",237:"Innate Renewal",238:"Archmage's Endurance",239:"Enhancement of the Blade Turner",240:"Enhancement of the Arrow Turner",241:"Enhancement of the Mace Turner",242:"Caustic Enhancement",243:"Fierce Impaler",244:"Iron Skin of the Invincible",245:"Eye of the Remorseless",246:"Hand of the Remorseless",294:"Master of the Steel Circle",295:"Master of the Focused Eye",296:"Master of the Five Fold Path",297:"Frenzy of the Slayer",298:"Iron Skin of the Invincible",299:"Jack of All Trades",300:"Infused Void Magic",301:"Infused War Magic",302:"Infused Life Magic",309:"Infused Item Magic",310:"Infused Creature Magic",326:"Clutch of the Miser",328:"Enduring Enchantment"},F={333:"Valor / Destruction",334:"Protection",335:"Glory / Retribution",336:"Temperance / Hardening",338:"Aetheric Vision",339:"Mana Flow",340:"Mana Infusion",342:"Purity",343:"Craftsman",344:"Specialization",365:"World"},$={370:"Damage",371:"Damage Resistance",372:"Critical",373:"Critical Resistance",374:"Critical Damage",375:"Critical Damage Resistance",376:"Healing Boost",379:"Vitality"},W={287:"Celestial Hand",288:"Eldrytch Web",289:"Radiant Blood"},U={354:"Melee",355:"Ranged",362:"Summoning"},J={1:"Unarmed",2:"Swords",3:"Axes",4:"Maces",5:"Spears",6:"Daggers",7:"Staves",8:"Bows",9:"Crossbows",10:"Thrown",11:"Two-Handed",12:"Void",13:"War",14:"Life"},D={181:"Chess Rank",192:"Fishing Skill",199:"Total Augmentations",322:"Aetheria Slots",390:"Enlightenment"};function K(c){return c>=1001?"Master":c>=301?"Lord":c>=151?"Knight":c>=31?"Adept":"Initiate"}const d="#af7a30",u="#000022",Z=({id:c,charName:g,zIndex:L,vitals:s})=>{var _,N;const[n,O]=f.useState(null),[j,H]=f.useState(0),[m,P]=f.useState(0);f.useEffect(()=>{Y(`/character-stats/${encodeURIComponent(g)}`).then(O).catch(()=>{})},[g]);const a=t=>t!=null?Number(t).toLocaleString():"—",o=(n==null?void 0:n.stats_data)||n||{},C=o.attributes||{},A=o.skills||{},V=o.vitals||{},E=o.titles||[],h=o.properties||{},T=Object.entries(A).filter(([,t])=>(t==null?void 0:t.training)==="Specialized").sort(([t],[l])=>t.localeCompare(l)),I=Object.entries(A).filter(([,t])=>(t==null?void 0:t.training)==="Trained").sort(([t],[l])=>t.localeCompare(l)),S=Object.entries(h).filter(([t,l])=>B[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:B[parseInt(t)],uses:Number(l)})),w=Object.entries(h).filter(([t,l])=>F[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:F[parseInt(t)],uses:Number(l)})),z=Object.entries(h).filter(([t,l])=>$[parseInt(t)]&&Number(l)>0).map(([t,l])=>({name:$[parseInt(t)],value:Number(l)})),x=[];n!=null&&n.birth&&x.push({name:"Birth",value:n.birth}),(n==null?void 0:n.deaths)!=null&&x.push({name:"Deaths",value:a(n.deaths)}),Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);D[i]&&x.push({name:D[i],value:l})});const y=[];Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);U[i]&&y.push({name:U[i],value:J[Number(l)]||`Unknown (${l})`})});const b=[];Object.entries(h).forEach(([t,l])=>{const i=parseInt(t);W[i]&&Number(l)>0&&b.push({name:W[i],rank:K(Number(l)),value:Number(l)})});const R=t=>({padding:"5px 8px",fontSize:12,fontWeight:"bold",color:"#fff",cursor:"pointer",userSelect:"none",borderTop:`2px solid ${t?d:u}`,borderLeft:`2px solid ${t?d:u}`,borderRight:`2px solid ${t?d:u}`,background:t?"rgba(0,100,0,0.4)":"transparent"}),M={background:"#000",border:`2px solid ${d}`,maxHeight:400,overflowY:"auto",overflowX:"hidden"},r={background:"#222",fontWeight:"bold",fontSize:12,padding:"2px 6px"},k={padding:"2px 6px",background:"rgba(0,100,0,0.4)",whiteSpace:"nowrap"},p={padding:"2px 6px",background:"rgba(0,0,100,0.4)",textAlign:"right",whiteSpace:"nowrap"},G={padding:"2px 6px",color:"#ccc"};return e.jsx(X,{id:c,title:`Character: ${g}`,zIndex:L,width:740,height:600,children:e.jsxs("div",{style:{background:u,color:"#fff",font:'14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif',overflowY:"auto",padding:"10px 15px 15px",flex:1},children:[e.jsxs("div",{style:{marginBottom:10},children:[e.jsxs("h1",{style:{margin:"0 0 2px",fontSize:28,fontWeight:"bold"},children:[g,e.jsx("span",{style:{fontSize:"200%",color:"#fff27f",float:"right"},children:(n==null?void 0:n.level)||""})]}),e.jsx("div",{style:{fontSize:"85%",color:"gold"},children:[n==null?void 0:n.gender,n==null?void 0:n.race].filter(Boolean).join(" ")||"Awaiting character data..."})]}),e.jsxs("div",{style:{fontSize:"85%",margin:"6px 0 10px",display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0 20px"},children:[e.jsxs("div",{children:["Total XP: ",a(n==null?void 0:n.total_xp)]}),e.jsxs("div",{style:{textAlign:"right"},children:["Unassigned XP: ",a(n==null?void 0:n.unassigned_xp)]}),e.jsxs("div",{children:["Luminance: ",(n==null?void 0:n.luminance_earned)!=null?`${a(n.luminance_earned)} / ${a(n.luminance_total)}`:"—"]}),e.jsxs("div",{style:{textAlign:"right"},children:["Deaths: ",a(n==null?void 0:n.deaths)]})]}),e.jsxs("div",{style:{display:"flex",gap:13,flexWrap:"wrap"},children:[e.jsxs("div",{style:{width:320},children:[e.jsx("div",{style:{height:30,display:"flex"},children:["Attributes","Skills","Titles"].map((t,l)=>e.jsx("div",{style:R(j===l),onClick:()=>H(l),children:t},t))}),e.jsxs("div",{style:M,children:[j===0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{padding:"6px 8px",display:"flex",flexDirection:"column",gap:8,borderBottom:`2px solid ${d}`},children:[{label:"Health",pct:(s==null?void 0:s.health_percentage)??0,cur:s==null?void 0:s.health_current,max:s==null?void 0:s.health_max,bg:"#cc3333"},{label:"Stamina",pct:(s==null?void 0:s.stamina_percentage)??0,cur:s==null?void 0:s.stamina_current,max:s==null?void 0:s.stamina_max,bg:"#ccaa33"},{label:"Mana",pct:(s==null?void 0:s.mana_percentage)??0,cur:s==null?void 0:s.mana_current,max:s==null?void 0:s.mana_max,bg:"#3366cc"}].map(t=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6},children:[e.jsx("span",{style:{width:55,fontSize:12,color:"#ccc"},children:t.label}),e.jsx("div",{style:{flex:1,height:14,overflow:"hidden",position:"relative",border:`1px solid ${d}`},children:e.jsx("div",{style:{height:"100%",width:`${t.pct}%`,background:t.bg,transition:"width 0.5s ease"}})}),e.jsxs("span",{style:{width:80,textAlign:"right",fontSize:12,color:"#ccc"},children:[t.cur??"—"," / ",t.max??"—"]})]},t.label))}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Attribute"}),e.jsx("td",{style:r,children:"Creation"}),e.jsx("td",{style:r,children:"Base"})]})}),e.jsx("tbody",{children:["strength","endurance","coordination","quickness","focus","self"].map(t=>{var l,i;return e.jsxs("tr",{children:[e.jsx("td",{style:k,children:t.charAt(0).toUpperCase()+t.slice(1)}),e.jsx("td",{style:G,children:((l=C[t])==null?void 0:l.creation)??"—"}),e.jsx("td",{style:p,children:((i=C[t])==null?void 0:i.base)??"—"})]},t)})})]}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Vital"}),e.jsx("td",{style:r,children:"Base"})]})}),e.jsx("tbody",{children:["health","stamina","mana"].map(t=>{var l;return e.jsxs("tr",{children:[e.jsx("td",{style:k,children:t.charAt(0).toUpperCase()+t.slice(1)}),e.jsx("td",{style:p,children:((l=V[t])==null?void 0:l.base)??"—"})]},t)})})]}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:e.jsxs("tr",{children:[e.jsx("td",{style:k,children:"Skill Credits"}),e.jsx("td",{style:p,children:a(o.skill_credits)})]})})})]}),j===1&&e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Skill"}),e.jsx("td",{style:r,children:"Level"})]})}),e.jsxs("tbody",{children:[T.map(([t,l])=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",background:"linear-gradient(to right, #392067, #392067, black)"},children:t.replace(/_/g," ").replace(/\b\w/g,i=>i.toUpperCase())}),e.jsx("td",{style:{...p,background:"linear-gradient(to right, #392067, #392067, black)"},children:l.base})]},t)),I.map(([t,l])=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",background:"linear-gradient(to right, #0f3c3e, #0f3c3e, black)"},children:t.replace(/_/g," ").replace(/\b\w/g,i=>i.toUpperCase())}),e.jsx("td",{style:{...p,background:"linear-gradient(to right, #0f3c3e, #0f3c3e, black)"},children:l.base})]},t)),T.length===0&&I.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:2,style:{padding:10,color:"#666",fontStyle:"italic",textAlign:"center"},children:"No skill data"})})]})]}),j===2&&e.jsx("div",{style:{padding:"6px 10px",fontSize:13},children:E.length>0?E.map((t,l)=>e.jsx("div",{style:{padding:"1px 0"},children:t},l)):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No titles"})})]})]}),e.jsxs("div",{style:{width:320},children:[e.jsx("div",{style:{height:30,display:"flex"},children:["Augmentations","Ratings","Other"].map((t,l)=>e.jsx("div",{style:R(m===l),onClick:()=>P(l),children:t},t))}),e.jsxs("div",{style:M,children:[m===0&&(S.length||w.length?e.jsxs(e.Fragment,{children:[S.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Augmentations"}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Name"}),e.jsx("td",{style:r,children:"Uses"})]})}),e.jsx("tbody",{children:S.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.uses})]},t.name))})]})]}),w.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Auras"}),e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Name"}),e.jsx("td",{style:r,children:"Uses"})]})}),e.jsx("tbody",{children:w.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.uses})]},t.name))})]})]})]}):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No augmentation data"})),m===1&&(z.length>0?e.jsxs("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("td",{style:r,children:"Rating"}),e.jsx("td",{style:r,children:"Value"})]})}),e.jsx("tbody",{children:z.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})]}):e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No rating data"})),m===2&&e.jsxs("div",{children:[x.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"General"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:x.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})})]}),y.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Masteries"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:y.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsx("td",{style:{padding:"2px 6px",textAlign:"right"},children:t.value})]},t.name))})})]}),b.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Society"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsx("tbody",{children:b.map(t=>e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px"},children:t.name}),e.jsxs("td",{style:{padding:"2px 6px",textAlign:"right"},children:[t.rank," (",t.value,")"]})]},t.name))})})]}),x.length===0&&y.length===0&&b.length===0&&e.jsx("div",{style:{color:"#666",fontStyle:"italic",textAlign:"center",padding:10},children:"No additional data"})]})]})]})]}),(n==null?void 0:n.allegiance)&&e.jsxs("div",{style:{marginTop:5,border:`2px solid ${d}`,background:"#000"},children:[e.jsx("div",{style:{background:"#222",padding:"4px 8px",fontWeight:"bold",fontSize:13,borderBottom:`1px solid ${d}`},children:"Allegiance"}),e.jsx("table",{style:{width:"100%",fontSize:13,borderCollapse:"collapse"},children:e.jsxs("tbody",{children:[n.allegiance.name&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc",width:100},children:"Name"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.name})]}),((_=n.allegiance.monarch)==null?void 0:_.name)&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Monarch"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.monarch.name})]}),((N=n.allegiance.patron)==null?void 0:N.name)&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Patron"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.patron.name})]}),n.allegiance.rank!=null&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Rank"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.rank})]}),n.allegiance.followers!=null&&e.jsxs("tr",{children:[e.jsx("td",{style:{padding:"2px 6px",color:"#ccc"},children:"Followers"}),e.jsx("td",{style:{padding:"2px 6px"},children:n.allegiance.followers})]})]})})]})]})})};export{Z as CharacterWindow}; diff --git a/static/v2/assets/CombatPickerWindow-CWXujjNT.js b/static/v2/assets/CombatPickerWindow-CWXujjNT.js new file mode 100644 index 00000000..e5d33139 --- /dev/null +++ b/static/v2/assets/CombatPickerWindow-CWXujjNT.js @@ -0,0 +1 @@ +import{u as c,j as r,D as d}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const p=({id:n,zIndex:i,characters:a})=>{const{openWindow:s}=c(),e=Array.from(a.keys()).sort();return r.jsx(d,{id:n,title:"Combat Stats — Select Character",zIndex:i,width:300,height:400,children:r.jsx("div",{style:{flex:1,overflowY:"auto",padding:6},children:e.length===0?r.jsx("div",{style:{padding:12,color:"#666",textAlign:"center",fontSize:"0.8rem"},children:"No characters online"}):e.map(o=>r.jsx("div",{style:{padding:"5px 8px",cursor:"pointer",borderBottom:"1px solid #222",color:"#ccc",fontSize:"0.82rem"},onMouseEnter:t=>t.currentTarget.style.background="#2a2a2a",onMouseLeave:t=>t.currentTarget.style.background="",onClick:()=>s(`combat-${o}`,`Combat: ${o}`,o),children:o},o))})})};export{p as CombatPickerWindow}; diff --git a/static/v2/assets/CombatStatsWindow-Js_v2JL3.js b/static/v2/assets/CombatStatsWindow-Js_v2JL3.js new file mode 100644 index 00000000..03bc5630 --- /dev/null +++ b/static/v2/assets/CombatStatsWindow-Js_v2JL3.js @@ -0,0 +1 @@ +import{r as A,a as B,j as t,D as L}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const w=["Typeless","Slash","Pierce","Bludgeon","Fire","Cold","Acid","Electric"];function _(c,a,x){var o,m,f,k;return(((m=(o=c==null?void 0:c[a])==null?void 0:o[x])==null?void 0:m.total_normal_damage)??0)+(((k=(f=c==null?void 0:c[a])==null?void 0:f[x])==null?void 0:k.total_crit_damage)??0)}function G(c){let a={attacks:0,failed:0,crits:0,normalDmg:0,maxNormal:0,critDmg:0,maxCrit:0};if(!c)return a;for(const x of Object.values(c))for(const o of Object.values(x))a.attacks+=o.total_attacks??0,a.failed+=o.failed_attacks??0,a.crits+=o.crits??0,a.normalDmg+=o.total_normal_damage??0,a.maxNormal=Math.max(a.maxNormal,o.max_normal_damage??0),a.critDmg+=o.total_crit_damage??0,a.maxCrit=Math.max(a.maxCrit,o.max_crit_damage??0);return a}function F(c,a){let x={attacks:0,failed:0};const o=c==null?void 0:c[a];if(!o)return x;for(const m of Object.values(o))x.attacks+=m.total_attacks??0,x.failed+=m.failed_attacks??0;return x}const Y=({id:c,charName:a,zIndex:x})=>{const[o,m]=A.useState(null),[f,k]=A.useState("session"),[h,R]=A.useState(null);A.useEffect(()=>{B(`/combat-stats/${encodeURIComponent(a)}`).then(m).catch(()=>{});const e=setInterval(()=>{B(`/combat-stats/${encodeURIComponent(a)}`).then(m).catch(()=>{})},1e4);return()=>clearInterval(e)},[a]);const p=o==null?void 0:o[f],j=(p==null?void 0:p.monsters)??{},S=Object.keys(j).filter(e=>e!=="__cloak_surges__").sort(),n=A.useMemo(()=>{let e={},l={},v=0,$=0;const T=h?[j[h]].filter(Boolean):S.map(u=>j[u]);for(const u of T)if(u){for(const[g,D]of Object.entries(u.offense??{})){e[g]||(e[g]={});for(const[y,E]of Object.entries(D)){e[g][y]||(e[g][y]={total_attacks:0,failed_attacks:0,crits:0,total_normal_damage:0,max_normal_damage:0,total_crit_damage:0,max_crit_damage:0});const i=e[g][y],d=E;i.total_attacks+=d.total_attacks??0,i.failed_attacks+=d.failed_attacks??0,i.crits+=d.crits??0,i.total_normal_damage+=d.total_normal_damage??0,i.max_normal_damage=Math.max(i.max_normal_damage,d.max_normal_damage??0),i.total_crit_damage+=d.total_crit_damage??0,i.max_crit_damage=Math.max(i.max_crit_damage,d.max_crit_damage??0)}}for(const[g,D]of Object.entries(u.defense??{})){l[g]||(l[g]={});for(const[y,E]of Object.entries(D)){l[g][y]||(l[g][y]={total_attacks:0,failed_attacks:0,crits:0,total_normal_damage:0,max_normal_damage:0,total_crit_damage:0,max_crit_damage:0});const i=l[g][y],d=E;i.total_attacks+=d.total_attacks??0,i.failed_attacks+=d.failed_attacks??0,i.total_normal_damage+=d.total_normal_damage??0,i.max_normal_damage=Math.max(i.max_normal_damage,d.max_normal_damage??0),i.total_crit_damage+=d.total_crit_damage??0,i.max_crit_damage=Math.max(i.max_crit_damage,d.max_crit_damage??0)}}v+=u.aetheria_surges??0,$+=u.cloak_surges??0}return j.__cloak_surges__&&!h&&($+=j.__cloak_surges__.cloak_surges??0),{offense:e,defense:l,aeth:v,cloak:$}},[j,S,h]),r=G(n.offense),b=F(n.defense,"MeleeMissile"),M=F(n.defense,"Magic");r.attacks>0&&((r.attacks-r.failed)/r.attacks*100).toFixed(0);const N=b.attacks>0?(b.failed/b.attacks*100).toFixed(0):"0",W=M.attacks>0?(M.failed/M.attacks*100).toFixed(0):"0",C=r.attacks-r.failed,O=C-r.crits,z=O>0?Math.round(r.normalDmg/O):0;r.crits>0&&Math.round(r.critDmg/r.crits);const I=C>0?(r.crits/C*100).toFixed(1):"0",s=e=>e===0?"":e.toLocaleString();return t.jsxs(L,{id:c,title:`Combat: ${a}`,zIndex:x,width:640,height:520,children:[t.jsxs("div",{style:{display:"flex",gap:4,padding:"4px 8px",borderBottom:"1px solid #333",alignItems:"center"},children:[t.jsx("button",{className:`ml-stats-range-btn ${f==="session"?"active":""}`,onClick:()=>k("session"),children:"Session"}),t.jsx("button",{className:`ml-stats-range-btn ${f==="lifetime"?"active":""}`,onClick:()=>k("lifetime"),children:"Lifetime"}),t.jsx("div",{style:{flex:1}}),f==="session"&&t.jsx("button",{style:{fontSize:"0.6rem",padding:"2px 8px",background:"rgba(204,68,68,0.15)",color:"#c66",border:"1px solid rgba(204,68,68,0.3)",borderRadius:3,cursor:"pointer"},onClick:()=>{confirm("Clear current session stats?")&&m(e=>e&&{...e,session:{total_damage_given:0,total_damage_received:0,total_kills:0,total_aetheria_surges:0,total_cloak_surges:0,monsters:{}}})},children:"Clear Session"})]}),t.jsxs("div",{style:{display:"flex",flex:1,overflow:"hidden"},children:[t.jsxs("div",{style:{width:240,borderRight:"1px solid #333",overflowY:"auto",fontSize:"0.72rem"},children:[t.jsxs("div",{style:{display:"flex",padding:"3px 6px",borderBottom:"1px solid #333",color:"#777",fontSize:"0.65rem",fontWeight:600},children:[t.jsx("span",{style:{width:14}}),t.jsx("span",{style:{flex:1},children:"Monster"}),t.jsx("span",{style:{width:40,textAlign:"right"},children:"Kills"}),t.jsx("span",{style:{width:55,textAlign:"right"},children:"Dmg"})]}),t.jsxs("div",{style:{display:"flex",padding:"3px 6px",cursor:"pointer",background:h===null?"#2a3a4a":"",borderBottom:"1px solid #222",color:"#ddd"},onClick:()=>R(null),children:[t.jsx("span",{style:{width:14,color:"#888"},children:h===null?"*":""}),t.jsx("span",{style:{flex:1},children:"All"}),t.jsx("span",{style:{width:40,textAlign:"right"},children:s((p==null?void 0:p.total_kills)??0)}),t.jsx("span",{style:{width:55,textAlign:"right"},children:s((p==null?void 0:p.total_damage_given)??0)})]}),S.map(e=>{const l=j[e];return t.jsxs("div",{style:{display:"flex",padding:"2px 6px",cursor:"pointer",background:h===e?"#2a3a4a":"",borderBottom:"1px solid #1a1a1a",color:"#ccc"},onClick:()=>R(e),children:[t.jsx("span",{style:{width:14,color:"#888"},children:h===e?"*":""}),t.jsx("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),t.jsx("span",{style:{width:40,textAlign:"right"},children:s(l.kill_count)}),t.jsx("span",{style:{width:55,textAlign:"right"},children:s(l.damage_given)})]},e)})]}),t.jsx("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.72rem"},children:t.jsxs("table",{style:{width:"100%",borderCollapse:"collapse"},children:[t.jsx("thead",{children:t.jsxs("tr",{style:{color:"#777",fontSize:"0.65rem"},children:[t.jsx("th",{style:{textAlign:"left",padding:"1px 4px"}}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Given M/M"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Given Mag"}),t.jsx("th",{style:{width:4}}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Recv M/M"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"},children:"Recv Mag"}),t.jsx("th",{style:{width:4}}),t.jsx("th",{style:{textAlign:"left",padding:"1px 3px"},children:"Stats"}),t.jsx("th",{style:{textAlign:"right",padding:"1px 3px"}})]})}),t.jsxs("tbody",{children:[w.map((e,l)=>{const v=[["Evades",b.attacks>0?`${s(b.attacks)} (${N}%)`:""],["Resists",M.attacks>0?`${s(M.attacks)} (${W}%)`:""],["A.Surges",n.aeth>0?`${s(n.aeth)}`:""],["C.Surges",n.cloak>0?`${s(n.cloak)}`:""],["",""],["",""],["Av/Mx",z>0?`${s(z)} / ${s(r.maxNormal)}`:""],["Crits",r.crits>0?`${s(r.crits)} (${I}%)`:""]][l]??["",""];return t.jsxs("tr",{children:[t.jsx("td",{style:{padding:"1px 4px",color:"#888"},children:e}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.offense,"MeleeMissile",e))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.offense,"Magic",e))}),t.jsx("td",{}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.defense,"MeleeMissile",e))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(_(n.defense,"Magic",e))}),t.jsx("td",{}),t.jsx("td",{style:{padding:"1px 3px",color:"#777",fontWeight:600,fontSize:"0.65rem"},children:v[0]}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:v[1]})]},e)}),t.jsx("tr",{children:t.jsx("td",{colSpan:9,style:{height:4}})}),t.jsxs("tr",{children:[t.jsx("td",{style:{padding:"1px 4px",color:"#888",fontWeight:600},children:"Total"}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.offense,"MeleeMissile",l),0))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.offense,"Magic",l),0))}),t.jsx("td",{}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.defense,"MeleeMissile",l),0))}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(w.reduce((e,l)=>e+_(n.defense,"Magic",l),0))}),t.jsx("td",{}),t.jsx("td",{style:{padding:"1px 3px",color:"#777",fontWeight:600,fontSize:"0.65rem"},children:"Total"}),t.jsx("td",{style:{textAlign:"right",padding:"1px 3px",color:"#ccc"},children:s(r.normalDmg+r.critDmg)})]})]})]})})]})]})};export{Y as CombatStatsWindow}; diff --git a/static/v2/assets/DashboardView-B8znzNXc.js b/static/v2/assets/DashboardView-B8znzNXc.js new file mode 100644 index 00000000..39f2a536 --- /dev/null +++ b/static/v2/assets/DashboardView-B8znzNXc.js @@ -0,0 +1,72 @@ +import{j as E,R as A,r as N,a as eO}from"./index-ahPE6Fpe.js";import{c as hi,g as ue}from"./react-DlyoauG8.js";const tO=({children:e})=>E.jsxs("div",{className:"dashboard",children:[E.jsx("header",{className:"dashboard-header",children:E.jsx("h1",{className:"dashboard-title",children:"Mosswart Overlord"})}),E.jsx("main",{className:"dashboard-main",children:e})]}),rO=({activeChars:e,totalKills:t,totalRares:r,serverHealth:n})=>{var o;const i=((o=n==null?void 0:n.status)==null?void 0:o.toLowerCase())??"unknown",a=i==="online"||i==="up";return E.jsxs("div",{className:"global-stats",children:[E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:e}),E.jsx("span",{className:"global-label",children:"Active Characters"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:t.toLocaleString()}),E.jsx("span",{className:"global-label",children:"Total Kills"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:"global-value",children:r}),E.jsx("span",{className:"global-label",children:"Total Rares"})]}),E.jsxs("div",{className:"global-stat",children:[E.jsx("span",{className:`server-dot ${a?"online":"offline"}`}),E.jsxs("span",{className:"global-value",children:[(n==null?void 0:n.latency_ms)??"--","ms"]}),E.jsx("span",{className:"global-label",children:"Coldeve"})]})]})},Pi=A.memo(({label:e,current:t,max:r,color:n,bgColor:i})=>{const a=r>0?Math.min(100,Math.max(0,t/r*100)):0;return E.jsxs("div",{className:"vital-bar",children:[E.jsx("span",{className:"vital-label",children:e}),E.jsx("div",{className:"vital-track",style:{backgroundColor:i},children:E.jsx("div",{className:"vital-fill",style:{width:`${a}%`,background:n}})}),E.jsxs("span",{className:"vital-text",children:[t,"/",r]})]})});Pi.displayName="VitalBar";const nO=e=>{const t=(e||"idle").toLowerCase();return t==="combat"||t==="hunt"?{label:t==="combat"?"Combat":"Hunt",cls:"badge-combat"}:t==="nav"||t==="navigation"?{label:"Nav",cls:"badge-other"}:t==="default"||t==="idle"||t===""?{label:"Idle",cls:"badge-idle"}:{label:e,cls:"badge-other"}},Nb=A.memo(({character:e})=>{var u,s,c,f,l,h;const[t,r]=N.useState(!1),{telemetry:n,vitals:i,combat:a}=e,o=nO((n==null?void 0:n.vt_state)??"");return E.jsxs("div",{className:"char-card",onClick:()=>r(!t),children:[E.jsxs("div",{className:"char-header",children:[E.jsx("span",{className:"char-name",children:e.name}),E.jsx("span",{className:`char-badge ${o.cls}`,children:o.label})]}),i?E.jsxs("div",{className:"char-vitals",children:[E.jsx(Pi,{label:"HP",current:i.health_current,max:i.health_max,color:"linear-gradient(90deg, #ff4444, #ff6666)",bgColor:"#330000"}),E.jsx(Pi,{label:"ST",current:i.stamina_current,max:i.stamina_max,color:"linear-gradient(90deg, #ffaa00, #ffcc44)",bgColor:"#331a00"}),E.jsx(Pi,{label:"MN",current:i.mana_current,max:i.mana_max,color:"linear-gradient(90deg, #4488ff, #66aaff)",bgColor:"#001433"})]}):E.jsx("div",{className:"char-vitals-placeholder",children:"Awaiting vitals..."}),E.jsxs("div",{className:"char-stats-row",children:[E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:(n==null?void 0:n.kills_per_hour)??"--"}),E.jsx("span",{className:"stat-label",children:"kills/hr"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:((u=n==null?void 0:n.kills)==null?void 0:u.toLocaleString())??"--"}),E.jsx("span",{className:"stat-label",children:"kills"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:(n==null?void 0:n.deaths)??"0"}),E.jsx("span",{className:"stat-label",children:"deaths"})]}),E.jsxs("div",{className:"stat",children:[E.jsx("span",{className:"stat-value",children:((s=n==null?void 0:n.onlinetime)==null?void 0:s.replace(/^00\./,""))??"--"}),E.jsx("span",{className:"stat-label",children:"uptime"})]})]}),n&&E.jsxs("div",{className:"char-location",children:[(c=n.ns)==null?void 0:c.toFixed(1),"N, ",(f=n.ew)==null?void 0:f.toFixed(1),"E"]}),t&&E.jsxs("div",{className:"char-expanded",children:[i!=null&&i.vitae?E.jsxs("div",{className:"vitae-warn",children:["Vitae: ",i.vitae,"%"]}):null,E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["Prismatics: ",(n==null?void 0:n.prismatic_taper_count)??"--"]}),E.jsxs("span",{children:["Total Deaths: ",(n==null?void 0:n.total_deaths)??"--"]})]}),(a==null?void 0:a.session)&&E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["Session Dmg: ",(l=a.session.total_damage_given)==null?void 0:l.toLocaleString()]}),E.jsxs("span",{children:["Session Kills: ",a.session.total_kills]})]}),E.jsxs("div",{className:"expanded-row",children:[E.jsxs("span",{children:["RAM: ",n!=null&&n.mem_mb?(n.mem_mb/1048576).toFixed(0)+" MB":"--"]}),E.jsxs("span",{children:["CPU: ",((h=n==null?void 0:n.cpu_pct)==null?void 0:h.toFixed(1))??"--","%"]})]})]})]})});Nb.displayName="CharacterCard";const iO=({characters:e})=>{const t=N.useMemo(()=>Array.from(e.values()).sort((r,n)=>r.name.localeCompare(n.name)),[e]);return t.length===0?E.jsx("div",{className:"grid-empty",children:"No active characters"}):E.jsx("div",{className:"char-grid",children:t.map(r=>E.jsx(Nb,{character:r},r.name))})},aO=({tabs:e})=>{var n,i;const[t,r]=N.useState(((n=e[0])==null?void 0:n.id)??"");return E.jsxs("div",{className:"tab-container",children:[E.jsx("div",{className:"tab-bar",children:e.map(a=>E.jsx("button",{className:`tab-btn ${t===a.id?"active":""}`,onClick:()=>r(a.id),children:a.label},a.id))}),E.jsx("div",{className:"tab-content",children:(i=e.find(a=>a.id===t))==null?void 0:i.content})]})};function Rb(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t-1}return Wo=t,Wo}var Ho,wd;function OO(){if(wd)return Ho;wd=1;var e=Ea();function t(r,n){var i=this.__data__,a=e(i,r);return a<0?(++this.size,i.push([r,n])):i[a][1]=n,this}return Ho=t,Ho}var Ko,Od;function Ma(){if(Od)return Ko;Od=1;var e=gO(),t=bO(),r=xO(),n=wO(),i=OO();function a(o){var u=-1,s=o==null?0:o.length;for(this.clear();++u0?1:-1},Gt=function(t){return er(t)&&t.indexOf("%")===t.length-1},L=function(t){return HO(t)&&!ii(t)},KO=function(t){return ee(t)},Se=function(t){return L(t)||er(t)},GO=0,ai=function(t){var r=++GO;return"".concat(t||"").concat(r)},ke=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!L(t)&&!er(t))return n;var a;if(Gt(t)){var o=t.indexOf("%");a=r*parseFloat(t.slice(0,o))/100}else a=+t;return ii(a)&&(a=n),i&&a>r&&(a=r),a},Mt=function(t){if(!t)return null;var r=Object.keys(t);return r&&r.length?t[r[0]]:null},VO=function(t){if(!Array.isArray(t))return!1;for(var r=t.length,n={},i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function t_(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var Yd={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},yt=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},Zd=null,gu=null,Kf=function e(t){if(t===Zd&&Array.isArray(gu))return gu;var r=[];return N.Children.forEach(t,function(n){ee(n)||(FO.isFragment(n)?r=r.concat(e(n.props.children)):r.push(n))}),gu=r,Zd=t,r};function Ze(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(function(i){return yt(i)}):n=[yt(t)],Kf(e).forEach(function(i){var a=He(i,"type.displayName")||He(i,"type.name");n.indexOf(a)!==-1&&r.push(i)}),r}function ze(e,t){var r=Ze(e,t);return r&&r[0]}var Jd=function(t){if(!t||!t.props)return!1;var r=t.props,n=r.width,i=r.height;return!(!L(n)||n<=0||!L(i)||i<=0)},r_=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],n_=function(t){return t&&t.type&&er(t.type)&&r_.indexOf(t.type)>=0},i_=function(t,r,n,i){var a,o=(a=mu==null?void 0:mu[i])!==null&&a!==void 0?a:[];return r.startsWith("data-")||!Y(t)&&(i&&o.includes(r)||ZO.includes(r))||n&&Hf.includes(r)},X=function(t,r,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(N.isValidElement(t)&&(i=t.props),!Yr(i))return null;var a={};return Object.keys(i).forEach(function(o){var u;i_((u=i)===null||u===void 0?void 0:u[o],o,r,n)&&(a[o]=i[o])}),a},gl=function e(t,r){if(t===r)return!0;var n=N.Children.count(t);if(n!==N.Children.count(r))return!1;if(n===0)return!0;if(n===1)return Qd(Array.isArray(t)?t[0]:t,Array.isArray(r)?r[0]:r);for(var i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function c_(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function xl(e){var t=e.children,r=e.width,n=e.height,i=e.viewBox,a=e.className,o=e.style,u=e.title,s=e.desc,c=s_(e,u_),f=i||{width:r,height:n,x:0,y:0},l=Q("recharts-surface",a);return A.createElement("svg",bl({},X(c,!0,"svg"),{className:l,width:r,height:n,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),A.createElement("title",null,u),A.createElement("desc",null,s),t)}var l_=["children","className"];function wl(){return wl=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function h_(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var ae=A.forwardRef(function(e,t){var r=e.children,n=e.className,i=f_(e,l_),a=Q("recharts-layer",n);return A.createElement("g",wl({className:a},X(i,!0),{ref:t}),r)}),nt=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;aa?0:a+r),n=n>a?a:n,n<0&&(n+=a),a=r>n?0:n-r>>>0,r>>>=0;for(var o=Array(a);++i=a?r:e(r,n,i)}return xu=t,xu}var wu,np;function Wb(){if(np)return wu;np=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",i=t+r+n,a="\\ufe0e\\ufe0f",o="\\u200d",u=RegExp("["+o+e+i+a+"]");function s(c){return u.test(c)}return wu=s,wu}var Ou,ip;function v_(){if(ip)return Ou;ip=1;function e(t){return t.split("")}return Ou=e,Ou}var _u,ap;function y_(){if(ap)return _u;ap=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",i=t+r+n,a="\\ufe0e\\ufe0f",o="["+e+"]",u="["+i+"]",s="\\ud83c[\\udffb-\\udfff]",c="(?:"+u+"|"+s+")",f="[^"+e+"]",l="(?:\\ud83c[\\udde6-\\uddff]){2}",h="[\\ud800-\\udbff][\\udc00-\\udfff]",p="\\u200d",y=c+"?",v="["+a+"]?",d="(?:"+p+"(?:"+[f,l,h].join("|")+")"+v+y+")*",g=v+y+d,x="(?:"+[f+u+"?",u,l,h,o].join("|")+")",w=RegExp(s+"(?="+s+")|"+x+g,"g");function O(m){return m.match(w)||[]}return _u=O,_u}var Su,op;function m_(){if(op)return Su;op=1;var e=v_(),t=Wb(),r=y_();function n(i){return t(i)?r(i):e(i)}return Su=n,Su}var Au,up;function g_(){if(up)return Au;up=1;var e=p_(),t=Wb(),r=m_(),n=Bb();function i(a){return function(o){o=n(o);var u=t(o)?r(o):void 0,s=u?u[0]:o.charAt(0),c=u?e(u,1).join(""):o.slice(1);return s[a]()+c}}return Au=i,Au}var Pu,sp;function b_(){if(sp)return Pu;sp=1;var e=g_(),t=e("toUpperCase");return Pu=t,Pu}var x_=b_();const Ia=ue(x_);function le(e){return function(){return e}}const Hb=Math.cos,Mi=Math.sin,it=Math.sqrt,$i=Math.PI,ka=2*$i,Ol=Math.PI,_l=2*Ol,Wt=1e-6,w_=_l-Wt;function Kb(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Kb;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;iWt)if(!(Math.abs(l*s-c*f)>Wt)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let p=n-o,y=i-u,v=s*s+c*c,d=p*p+y*y,g=Math.sqrt(v),x=Math.sqrt(h),w=a*Math.tan((Ol-Math.acos((v+h-d)/(2*g*x)))/2),O=w/x,m=w/g;Math.abs(O-1)>Wt&&this._append`L${t+O*f},${r+O*l}`,this._append`A${a},${a},0,0,${+(l*p>f*y)},${this._x1=t+m*s},${this._y1=r+m*c}`}}arc(t,r,n,i,a,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),s=n*Math.sin(i),c=t+u,f=r+s,l=1^o,h=o?i-a:a-i;this._x1===null?this._append`M${c},${f}`:(Math.abs(this._x1-c)>Wt||Math.abs(this._y1-f)>Wt)&&this._append`L${c},${f}`,n&&(h<0&&(h=h%_l+_l),h>w_?this._append`A${n},${n},0,1,${l},${t-u},${r-s}A${n},${n},0,1,${l},${this._x1=c},${this._y1=f}`:h>Wt&&this._append`A${n},${n},0,${+(h>=Ol)},${l},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Gf(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new __(t)}function Vf(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Gb(e){this._context=e}Gb.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Na(e){return new Gb(e)}function Vb(e){return e[0]}function Xb(e){return e[1]}function Yb(e,t){var r=le(!0),n=null,i=Na,a=null,o=Gf(u);e=typeof e=="function"?e:e===void 0?Vb:le(e),t=typeof t=="function"?t:t===void 0?Xb:le(t);function u(s){var c,f=(s=Vf(s)).length,l,h=!1,p;for(n==null&&(a=i(p=o())),c=0;c<=f;++c)!(c=p;--y)u.point(w[y],O[y]);u.lineEnd(),u.areaEnd()}g&&(w[h]=+e(d,h,l),O[h]=+t(d,h,l),u.point(n?+n(d,h,l):w[h],r?+r(d,h,l):O[h]))}if(x)return u=null,x+""||null}function f(){return Yb().defined(i).curve(o).context(a)}return c.x=function(l){return arguments.length?(e=typeof l=="function"?l:le(+l),n=null,c):e},c.x0=function(l){return arguments.length?(e=typeof l=="function"?l:le(+l),c):e},c.x1=function(l){return arguments.length?(n=l==null?null:typeof l=="function"?l:le(+l),c):n},c.y=function(l){return arguments.length?(t=typeof l=="function"?l:le(+l),r=null,c):t},c.y0=function(l){return arguments.length?(t=typeof l=="function"?l:le(+l),c):t},c.y1=function(l){return arguments.length?(r=l==null?null:typeof l=="function"?l:le(+l),c):r},c.lineX0=c.lineY0=function(){return f().x(e).y(t)},c.lineY1=function(){return f().x(e).y(r)},c.lineX1=function(){return f().x(n).y(t)},c.defined=function(l){return arguments.length?(i=typeof l=="function"?l:le(!!l),c):i},c.curve=function(l){return arguments.length?(o=l,a!=null&&(u=o(a)),c):o},c.context=function(l){return arguments.length?(l==null?a=u=null:u=o(a=l),c):a},c}class Zb{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function S_(e){return new Zb(e,!0)}function A_(e){return new Zb(e,!1)}const Xf={draw(e,t){const r=it(t/$i);e.moveTo(r,0),e.arc(0,0,r,0,ka)}},P_={draw(e,t){const r=it(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},Jb=it(1/3),T_=Jb*2,j_={draw(e,t){const r=it(t/T_),n=r*Jb;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},E_={draw(e,t){const r=it(t),n=-r/2;e.rect(n,n,r,r)}},M_=.8908130915292852,Qb=Mi($i/10)/Mi(7*$i/10),$_=Mi(ka/10)*Qb,C_=-Hb(ka/10)*Qb,I_={draw(e,t){const r=it(t*M_),n=$_*r,i=C_*r;e.moveTo(0,-r),e.lineTo(n,i);for(let a=1;a<5;++a){const o=ka*a/5,u=Hb(o),s=Mi(o);e.lineTo(s*r,-u*r),e.lineTo(u*n-s*i,s*n+u*i)}e.closePath()}},Tu=it(3),k_={draw(e,t){const r=-it(t/(Tu*3));e.moveTo(0,r*2),e.lineTo(-Tu*r,-r),e.lineTo(Tu*r,-r),e.closePath()}},Ke=-.5,Ge=it(3)/2,Sl=1/it(12),N_=(Sl/2+1)*3,R_={draw(e,t){const r=it(t/N_),n=r/2,i=r*Sl,a=n,o=r*Sl+r,u=-a,s=o;e.moveTo(n,i),e.lineTo(a,o),e.lineTo(u,s),e.lineTo(Ke*n-Ge*i,Ge*n+Ke*i),e.lineTo(Ke*a-Ge*o,Ge*a+Ke*o),e.lineTo(Ke*u-Ge*s,Ge*u+Ke*s),e.lineTo(Ke*n+Ge*i,Ke*i-Ge*n),e.lineTo(Ke*a+Ge*o,Ke*o-Ge*a),e.lineTo(Ke*u+Ge*s,Ke*s-Ge*u),e.closePath()}};function D_(e,t){let r=null,n=Gf(i);e=typeof e=="function"?e:le(e||Xf),t=typeof t=="function"?t:le(t===void 0?64:+t);function i(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:le(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:le(+a),i):t},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function Ci(){}function Ii(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function e0(e){this._context=e}e0.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ii(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ii(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function q_(e){return new e0(e)}function t0(e){this._context=e}t0.prototype={areaStart:Ci,areaEnd:Ci,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Ii(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function L_(e){return new t0(e)}function r0(e){this._context=e}r0.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Ii(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function B_(e){return new r0(e)}function n0(e){this._context=e}n0.prototype={areaStart:Ci,areaEnd:Ci,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function F_(e){return new n0(e)}function cp(e){return e<0?-1:1}function lp(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),u=(a*i+o*n)/(n+i);return(cp(a)+cp(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(u))||0}function fp(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function ju(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,u=(a-n)/3;e._context.bezierCurveTo(n+u,i+u*t,a-u,o-u*r,a,o)}function ki(e){this._context=e}ki.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ju(this,this._t0,fp(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,ju(this,fp(this,r=lp(this,e,t)),r);break;default:ju(this,this._t0,r=lp(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function i0(e){this._context=new a0(e)}(i0.prototype=Object.create(ki.prototype)).point=function(e,t){ki.prototype.point.call(this,t,e)};function a0(e){this._context=e}a0.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function z_(e){return new ki(e)}function U_(e){return new i0(e)}function o0(e){this._context=e}o0.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=hp(e),i=hp(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function H_(e){return new Ra(e,.5)}function K_(e){return new Ra(e,0)}function G_(e){return new Ra(e,1)}function _r(e,t){if((o=e.length)>1)for(var r=1,n,i,a=e[t[0]],o,u=a.length;r=0;)r[t]=t;return r}function V_(e,t){return e[t]}function X_(e){const t=[];return t.key=e,t}function Y_(){var e=le([]),t=Al,r=_r,n=V_;function i(a){var o=Array.from(e.apply(this,arguments),X_),u,s=o.length,c=-1,f;for(const l of a)for(u=0,++c;u0){for(var r,n,i=0,a=e[0].length,o;i0){for(var r=0,n=e[t[0]],i,a=n.length;r0)||!((a=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,a,o;n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function a1(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var u0={symbolCircle:Xf,symbolCross:P_,symbolDiamond:j_,symbolSquare:E_,symbolStar:I_,symbolTriangle:k_,symbolWye:R_},o1=Math.PI/180,u1=function(t){var r="symbol".concat(Ia(t));return u0[r]||Xf},s1=function(t,r,n){if(r==="area")return t;switch(n){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*o1;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},c1=function(t,r){u0["symbol".concat(Ia(t))]=r},Yf=function(t){var r=t.type,n=r===void 0?"circle":r,i=t.size,a=i===void 0?64:i,o=t.sizeType,u=o===void 0?"area":o,s=i1(t,e1),c=pp(pp({},s),{},{type:n,size:a,sizeType:u}),f=function(){var d=u1(n),g=D_().type(d).size(s1(a,u,n));return g()},l=c.className,h=c.cx,p=c.cy,y=X(c,!0);return h===+h&&p===+p&&a===+a?A.createElement("path",Pl({},y,{className:Q("recharts-symbols",l),transform:"translate(".concat(h,", ").concat(p,")"),d:f()})):null};Yf.registerSymbol=c1;function Sr(e){"@babel/helpers - typeof";return Sr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sr(e)}function Tl(){return Tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var x=p.inactive?c:p.color;return A.createElement("li",Tl({className:d,style:l,key:"legend-item-".concat(y)},tr(n.props,p,y)),A.createElement(xl,{width:o,height:o,viewBox:f,style:h},n.renderIcon(p)),A.createElement("span",{className:"recharts-legend-item-text",style:{color:x}},v?v(g,p,y):g))})}},{key:"render",value:function(){var n=this.props,i=n.payload,a=n.layout,o=n.align;if(!i||!i.length)return null;var u={padding:0,margin:0,textAlign:a==="horizontal"?o:"left"};return A.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(N.PureComponent);_n(Zf,"displayName","Legend");_n(Zf,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var Eu,yp;function b1(){if(yp)return Eu;yp=1;var e=Ma();function t(){this.__data__=new e,this.size=0}return Eu=t,Eu}var Mu,mp;function x1(){if(mp)return Mu;mp=1;function e(t){var r=this.__data__,n=r.delete(t);return this.size=r.size,n}return Mu=e,Mu}var $u,gp;function w1(){if(gp)return $u;gp=1;function e(t){return this.__data__.get(t)}return $u=e,$u}var Cu,bp;function O1(){if(bp)return Cu;bp=1;function e(t){return this.__data__.has(t)}return Cu=e,Cu}var Iu,xp;function _1(){if(xp)return Iu;xp=1;var e=Ma(),t=Ff(),r=zf(),n=200;function i(a,o){var u=this.__data__;if(u instanceof e){var s=u.__data__;if(!t||s.lengthp))return!1;var v=l.get(o),d=l.get(u);if(v&&d)return v==u&&d==o;var g=-1,x=!0,w=s&i?new e:void 0;for(l.set(o,u),l.set(u,o);++g-1&&n%1==0&&n-1&&r%1==0&&r<=e}return ts=t,ts}var rs,Wp;function R1(){if(Wp)return rs;Wp=1;var e=_t(),t=th(),r=St(),n="[object Arguments]",i="[object Array]",a="[object Boolean]",o="[object Date]",u="[object Error]",s="[object Function]",c="[object Map]",f="[object Number]",l="[object Object]",h="[object RegExp]",p="[object Set]",y="[object String]",v="[object WeakMap]",d="[object ArrayBuffer]",g="[object DataView]",x="[object Float32Array]",w="[object Float64Array]",O="[object Int8Array]",m="[object Int16Array]",b="[object Int32Array]",_="[object Uint8Array]",S="[object Uint8ClampedArray]",P="[object Uint16Array]",$="[object Uint32Array]",j={};j[x]=j[w]=j[O]=j[m]=j[b]=j[_]=j[S]=j[P]=j[$]=!0,j[n]=j[i]=j[d]=j[a]=j[g]=j[o]=j[u]=j[s]=j[c]=j[f]=j[l]=j[h]=j[p]=j[y]=j[v]=!1;function T(M){return r(M)&&t(M.length)&&!!j[e(M)]}return rs=T,rs}var ns,Hp;function m0(){if(Hp)return ns;Hp=1;function e(t){return function(r){return t(r)}}return ns=e,ns}var pn={exports:{}};pn.exports;var Kp;function D1(){return Kp||(Kp=1,(function(e,t){var r=Db(),n=t&&!t.nodeType&&t,i=n&&!0&&e&&!e.nodeType&&e,a=i&&i.exports===n,o=a&&r.process,u=(function(){try{var s=i&&i.require&&i.require("util").types;return s||o&&o.binding&&o.binding("util")}catch{}})();e.exports=u})(pn,pn.exports)),pn.exports}var is,Gp;function g0(){if(Gp)return is;Gp=1;var e=R1(),t=m0(),r=D1(),n=r&&r.isTypedArray,i=n?t(n):e;return is=i,is}var as,Vp;function q1(){if(Vp)return as;Vp=1;var e=I1(),t=Qf(),r=Le(),n=y0(),i=eh(),a=g0(),o=Object.prototype,u=o.hasOwnProperty;function s(c,f){var l=r(c),h=!l&&t(c),p=!l&&!h&&n(c),y=!l&&!h&&!p&&a(c),v=l||h||p||y,d=v?e(c.length,String):[],g=d.length;for(var x in c)(f||u.call(c,x))&&!(v&&(x=="length"||p&&(x=="offset"||x=="parent")||y&&(x=="buffer"||x=="byteLength"||x=="byteOffset")||i(x,g)))&&d.push(x);return d}return as=s,as}var os,Xp;function L1(){if(Xp)return os;Xp=1;var e=Object.prototype;function t(r){var n=r&&r.constructor,i=typeof n=="function"&&n.prototype||e;return r===i}return os=t,os}var us,Yp;function b0(){if(Yp)return us;Yp=1;function e(t,r){return function(n){return t(r(n))}}return us=e,us}var ss,Zp;function B1(){if(Zp)return ss;Zp=1;var e=b0(),t=e(Object.keys,Object);return ss=t,ss}var cs,Jp;function F1(){if(Jp)return cs;Jp=1;var e=L1(),t=B1(),r=Object.prototype,n=r.hasOwnProperty;function i(a){if(!e(a))return t(a);var o=[];for(var u in Object(a))n.call(a,u)&&u!="constructor"&&o.push(u);return o}return cs=i,cs}var ls,Qp;function oi(){if(Qp)return ls;Qp=1;var e=Lf(),t=th();function r(n){return n!=null&&t(n.length)&&!e(n)}return ls=r,ls}var fs,ev;function Da(){if(ev)return fs;ev=1;var e=q1(),t=F1(),r=oi();function n(i){return r(i)?e(i):t(i)}return fs=n,fs}var hs,tv;function z1(){if(tv)return hs;tv=1;var e=E1(),t=C1(),r=Da();function n(i){return e(i,r,t)}return hs=n,hs}var ds,rv;function U1(){if(rv)return ds;rv=1;var e=z1(),t=1,r=Object.prototype,n=r.hasOwnProperty;function i(a,o,u,s,c,f){var l=u&t,h=e(a),p=h.length,y=e(o),v=y.length;if(p!=v&&!l)return!1;for(var d=p;d--;){var g=h[d];if(!(l?g in o:n.call(o,g)))return!1}var x=f.get(a),w=f.get(o);if(x&&w)return x==o&&w==a;var O=!0;f.set(a,o),f.set(o,a);for(var m=l;++d-1}return Ls=t,Ls}var Bs,Ev;function cS(){if(Ev)return Bs;Ev=1;function e(t,r,n){for(var i=-1,a=t==null?0:t.length;++i=o){var g=c?null:i(s);if(g)return a(g);y=!1,h=n,d=new e}else d=c?[]:v;e:for(;++l=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function SS(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function AS(e){return e.value}function PS(e,t){if(A.isValidElement(e))return A.cloneElement(e,t);if(typeof e=="function")return A.createElement(e,t);t.ref;var r=_S(t,vS);return A.createElement(Zf,r)}var Dv=1,Zt=(function(e){function t(){var r;yS(this,t);for(var n=arguments.length,i=new Array(n),a=0;aDv||Math.abs(i.height-this.lastBoundingBox.height)>Dv)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,n&&n(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?ft({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var i=this.props,a=i.layout,o=i.align,u=i.verticalAlign,s=i.margin,c=i.chartWidth,f=i.chartHeight,l,h;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&a==="vertical"){var p=this.getBBoxSnapshot();l={left:((c||0)-p.width)/2}}else l=o==="right"?{right:s&&s.right||0}:{left:s&&s.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(u==="middle"){var y=this.getBBoxSnapshot();h={top:((f||0)-y.height)/2}}else h=u==="bottom"?{bottom:s&&s.bottom||0}:{top:s&&s.top||0};return ft(ft({},l),h)}},{key:"render",value:function(){var n=this,i=this.props,a=i.content,o=i.width,u=i.height,s=i.wrapperStyle,c=i.payloadUniqBy,f=i.payload,l=ft(ft({position:"absolute",width:o||"auto",height:u||"auto"},this.getDefaultPosition(s)),s);return A.createElement("div",{className:"recharts-legend-wrapper",style:l,ref:function(p){n.wrapperNode=p}},PS(a,ft(ft({},this.props),{},{payload:S0(f,c,AS)})))}}],[{key:"getWithHeight",value:function(n,i){var a=ft(ft({},this.defaultProps),n.props),o=a.layout;return o==="vertical"&&L(n.props.height)?{height:n.props.height}:o==="horizontal"?{width:n.props.width||i}:null}}])})(N.PureComponent);qa(Zt,"displayName","Legend");qa(Zt,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var Hs,qv;function TS(){if(qv)return Hs;qv=1;var e=ni(),t=Qf(),r=Le(),n=e?e.isConcatSpreadable:void 0;function i(a){return r(a)||t(a)||!!(n&&a&&a[n])}return Hs=i,Hs}var Ks,Lv;function T0(){if(Lv)return Ks;Lv=1;var e=v0(),t=TS();function r(n,i,a,o,u){var s=-1,c=n.length;for(a||(a=t),u||(u=[]);++s0&&a(f)?i>1?r(f,i-1,a,o,u):e(u,f):o||(u[u.length]=f)}return u}return Ks=r,Ks}var Gs,Bv;function jS(){if(Bv)return Gs;Bv=1;function e(t){return function(r,n,i){for(var a=-1,o=Object(r),u=i(r),s=u.length;s--;){var c=u[t?s:++a];if(n(o[c],c,o)===!1)break}return r}}return Gs=e,Gs}var Vs,Fv;function ES(){if(Fv)return Vs;Fv=1;var e=jS(),t=e();return Vs=t,Vs}var Xs,zv;function j0(){if(zv)return Xs;zv=1;var e=ES(),t=Da();function r(n,i){return n&&e(n,i,t)}return Xs=r,Xs}var Ys,Uv;function MS(){if(Uv)return Ys;Uv=1;var e=oi();function t(r,n){return function(i,a){if(i==null)return i;if(!e(i))return r(i,a);for(var o=i.length,u=n?o:-1,s=Object(i);(n?u--:++un||u&&s&&f&&!c&&!l||a&&s&&f||!i&&f||!o)return 1;if(!a&&!u&&!l&&r=c)return f;var l=i[a];return f*(l=="desc"?-1:1)}}return r.index-n.index}return tc=t,tc}var rc,Xv;function kS(){if(Xv)return rc;Xv=1;var e=Uf(),t=Wf(),r=lt(),n=E0(),i=$S(),a=m0(),o=IS(),u=Zr(),s=Le();function c(f,l,h){l.length?l=e(l,function(v){return s(v)?function(d){return t(d,v.length===1?v[0]:v)}:v}):l=[u];var p=-1;l=e(l,a(r));var y=n(f,function(v,d,g){var x=e(l,function(w){return w(v)});return{criteria:x,index:++p,value:v}});return i(y,function(v,d){return o(v,d,h)})}return rc=c,rc}var nc,Yv;function NS(){if(Yv)return nc;Yv=1;function e(t,r,n){switch(n.length){case 0:return t.call(r);case 1:return t.call(r,n[0]);case 2:return t.call(r,n[0],n[1]);case 3:return t.call(r,n[0],n[1],n[2])}return t.apply(r,n)}return nc=e,nc}var ic,Zv;function RS(){if(Zv)return ic;Zv=1;var e=NS(),t=Math.max;function r(n,i,a){return i=t(i===void 0?n.length-1:i,0),function(){for(var o=arguments,u=-1,s=t(o.length-i,0),c=Array(s);++u0){if(++a>=e)return arguments[0]}else a=0;return i.apply(void 0,arguments)}}return sc=n,sc}var cc,ry;function BS(){if(ry)return cc;ry=1;var e=qS(),t=LS(),r=t(e);return cc=r,cc}var lc,ny;function FS(){if(ny)return lc;ny=1;var e=Zr(),t=RS(),r=BS();function n(i,a){return r(t(i,a,e),i+"")}return lc=n,lc}var fc,iy;function La(){if(iy)return fc;iy=1;var e=Bf(),t=oi(),r=eh(),n=kt();function i(a,o,u){if(!n(u))return!1;var s=typeof o;return(s=="number"?t(u)&&r(o,u.length):s=="string"&&o in u)?e(u[o],a):!1}return fc=i,fc}var hc,ay;function zS(){if(ay)return hc;ay=1;var e=T0(),t=kS(),r=FS(),n=La(),i=r(function(a,o){if(a==null)return[];var u=o.length;return u>1&&n(a,o[0],o[1])?o=[]:u>2&&n(o[0],o[1],o[2])&&(o=[o[0]]),t(a,e(o,1),[])});return hc=i,hc}var US=zS();const ih=ue(US);function Sn(e){"@babel/helpers - typeof";return Sn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sn(e)}function Ml(){return Ml=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t.x),"".concat(nn,"-left"),L(r)&&t&&L(t.x)&&r=t.y),"".concat(nn,"-top"),L(n)&&t&&L(t.y)&&nv?Math.max(f,s[n]):Math.max(l,s[n])}function iA(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function aA(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTopLeft,i=e.position,a=e.reverseDirection,o=e.tooltipBox,u=e.useTranslate3d,s=e.viewBox,c,f,l;return o.height>0&&o.width>0&&r?(f=sy({allowEscapeViewBox:t,coordinate:r,key:"x",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.width,viewBox:s,viewBoxDimension:s.width}),l=sy({allowEscapeViewBox:t,coordinate:r,key:"y",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.height,viewBox:s,viewBoxDimension:s.height}),c=iA({translateX:f,translateY:l,useTranslate3d:u})):c=rA,{cssProperties:c,cssClasses:nA({translateX:f,translateY:l,coordinate:r})}}function Pr(e){"@babel/helpers - typeof";return Pr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pr(e)}function cy(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ly(e){for(var t=1;tfy||Math.abs(n.height-this.state.lastBoundingBox.height)>fy)&&this.setState({lastBoundingBox:{width:n.width,height:n.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var n,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((n=this.props.coordinate)===null||n===void 0?void 0:n.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var n=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,u=i.animationDuration,s=i.animationEasing,c=i.children,f=i.coordinate,l=i.hasPayload,h=i.isAnimationActive,p=i.offset,y=i.position,v=i.reverseDirection,d=i.useTranslate3d,g=i.viewBox,x=i.wrapperStyle,w=aA({allowEscapeViewBox:o,coordinate:f,offsetTopLeft:p,position:y,reverseDirection:v,tooltipBox:this.state.lastBoundingBox,useTranslate3d:d,viewBox:g}),O=w.cssClasses,m=w.cssProperties,b=ly(ly({transition:h&&a?"transform ".concat(u,"ms ").concat(s):void 0},m),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&l?"visible":"hidden",position:"absolute",top:0,left:0},x);return A.createElement("div",{tabIndex:-1,className:O,style:b,ref:function(S){n.wrapperNode=S}},c)}}])})(N.PureComponent),vA=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Jr={isSsr:vA()};function Tr(e){"@babel/helpers - typeof";return Tr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Tr(e)}function hy(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function dy(e){for(var t=1;t0;return A.createElement(pA,{allowEscapeViewBox:o,animationDuration:u,animationEasing:s,isAnimationActive:h,active:a,coordinate:f,hasPayload:b,offset:p,position:d,reverseDirection:g,useTranslate3d:x,viewBox:w,wrapperStyle:O},AA(c,dy(dy({},this.props),{},{payload:m})))}}])})(N.PureComponent);ah(Ue,"displayName","Tooltip");ah(Ue,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Jr.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var pc,py;function PA(){if(py)return pc;py=1;var e=ct(),t=function(){return e.Date.now()};return pc=t,pc}var vc,vy;function TA(){if(vy)return vc;vy=1;var e=/\s/;function t(r){for(var n=r.length;n--&&e.test(r.charAt(n)););return n}return vc=t,vc}var yc,yy;function jA(){if(yy)return yc;yy=1;var e=TA(),t=/^\s+/;function r(n){return n&&n.slice(0,e(n)+1).replace(t,"")}return yc=r,yc}var mc,my;function N0(){if(my)return mc;my=1;var e=jA(),t=kt(),r=Xr(),n=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,u=parseInt;function s(c){if(typeof c=="number")return c;if(r(c))return n;if(t(c)){var f=typeof c.valueOf=="function"?c.valueOf():c;c=t(f)?f+"":f}if(typeof c!="string")return c===0?c:+c;c=e(c);var l=a.test(c);return l||o.test(c)?u(c.slice(2),l?2:8):i.test(c)?n:+c}return mc=s,mc}var gc,gy;function EA(){if(gy)return gc;gy=1;var e=kt(),t=PA(),r=N0(),n="Expected a function",i=Math.max,a=Math.min;function o(u,s,c){var f,l,h,p,y,v,d=0,g=!1,x=!1,w=!0;if(typeof u!="function")throw new TypeError(n);s=r(s)||0,e(c)&&(g=!!c.leading,x="maxWait"in c,h=x?i(r(c.maxWait)||0,s):h,w="trailing"in c?!!c.trailing:w);function O(M){var I=f,C=l;return f=l=void 0,d=M,p=u.apply(C,I),p}function m(M){return d=M,y=setTimeout(S,s),g?O(M):p}function b(M){var I=M-v,C=M-d,R=s-I;return x?a(R,h-C):R}function _(M){var I=M-v,C=M-d;return v===void 0||I>=s||I<0||x&&C>=h}function S(){var M=t();if(_(M))return P(M);y=setTimeout(S,b(M))}function P(M){return y=void 0,w&&f?O(M):(f=l=void 0,p)}function $(){y!==void 0&&clearTimeout(y),d=0,f=v=l=y=void 0}function j(){return y===void 0?p:P(t())}function T(){var M=t(),I=_(M);if(f=arguments,l=this,v=M,I){if(y===void 0)return m(v);if(x)return clearTimeout(y),y=setTimeout(S,s),O(v)}return y===void 0&&(y=setTimeout(S,s)),p}return T.cancel=$,T.flush=j,T}return gc=o,gc}var bc,by;function MA(){if(by)return bc;by=1;var e=EA(),t=kt(),r="Expected a function";function n(i,a,o){var u=!0,s=!0;if(typeof i!="function")throw new TypeError(r);return t(o)&&(u="leading"in o?!!o.leading:u,s="trailing"in o?!!o.trailing:s),e(i,a,{leading:u,maxWait:a,trailing:s})}return bc=n,bc}var $A=MA();const R0=ue($A);function Pn(e){"@babel/helpers - typeof";return Pn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pn(e)}function xy(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function vi(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(M=R0(M,v,{trailing:!0,leading:!1}));var I=new ResizeObserver(M),C=m.current.getBoundingClientRect(),R=C.width,D=C.height;return j(R,D),I.observe(m.current),function(){I.disconnect()}},[j,v]);var T=N.useMemo(function(){var M=P.containerWidth,I=P.containerHeight;if(M<0||I<0)return null;nt(Gt(o)||Gt(s),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,o,s),nt(!r||r>0,"The aspect(%s) must be greater than zero.",r);var C=Gt(o)?M:o,R=Gt(s)?I:s;r&&r>0&&(C?R=C/r:R&&(C=R*r),h&&R>h&&(R=h)),nt(C>0||R>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,C,R,o,s,f,l,r);var D=!Array.isArray(p)&&yt(p.type).endsWith("Chart");return A.Children.map(p,function(B){return A.isValidElement(B)?N.cloneElement(B,vi({width:C,height:R},D?{style:vi({height:"100%",width:"100%",maxHeight:R,maxWidth:C},B.props.style)}:{})):B})},[r,p,s,h,l,f,P,o]);return A.createElement("div",{id:d?"".concat(d):void 0,className:Q("recharts-responsive-container",g),style:vi(vi({},O),{},{width:o,height:s,minWidth:f,minHeight:l,maxHeight:h}),ref:m},T)}),Ba=function(t){return null};Ba.displayName="Cell";function Tn(e){"@babel/helpers - typeof";return Tn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Tn(e)}function Oy(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function kl(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Jr.isSsr)return{width:0,height:0};var n=HA(r),i=JSON.stringify({text:t,copyStyle:n});if(fr.widthCache[i])return fr.widthCache[i];try{var a=document.getElementById(_y);a||(a=document.createElement("span"),a.setAttribute("id",_y),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var o=kl(kl({},WA),n);Object.assign(a.style,o),a.textContent="".concat(t);var u=a.getBoundingClientRect(),s={width:u.width,height:u.height};return fr.widthCache[i]=s,++fr.cacheCount>UA&&(fr.cacheCount=0,fr.widthCache={}),s}catch{return{width:0,height:0}}},KA=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function jn(e){"@babel/helpers - typeof";return jn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jn(e)}function Li(e,t){return YA(e)||XA(e,t)||VA(e,t)||GA()}function GA(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function VA(e,t){if(e){if(typeof e=="string")return Sy(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Sy(e,t)}}function Sy(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function lP(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function My(e,t){return pP(e)||dP(e,t)||hP(e,t)||fP()}function fP(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hP(e,t){if(e){if(typeof e=="string")return $y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return $y(e,t)}}function $y(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[];return C.reduce(function(R,D){var B=D.word,F=D.width,H=R[R.length-1];if(H&&(i==null||a||H.width+F+nD.width?R:D})};if(!f)return p;for(var v="…",d=function(C){var R=l.slice(0,C),D=B0({breakAll:c,style:s,children:R+v}).wordsWithComputedWidth,B=h(D),F=B.length>o||y(B).width>Number(i);return[F,B]},g=0,x=l.length-1,w=0,O;g<=x&&w<=l.length-1;){var m=Math.floor((g+x)/2),b=m-1,_=d(b),S=My(_,2),P=S[0],$=S[1],j=d(m),T=My(j,1),M=T[0];if(!P&&!M&&(g=m+1),P&&M&&(x=m-1),!P&&M){O=$;break}w++}return O||p},Cy=function(t){var r=ee(t)?[]:t.toString().split(L0);return[{words:r}]},yP=function(t){var r=t.width,n=t.scaleToFit,i=t.children,a=t.style,o=t.breakAll,u=t.maxLines;if((r||n)&&!Jr.isSsr){var s,c,f=B0({breakAll:o,children:i,style:a});if(f){var l=f.wordsWithComputedWidth,h=f.spaceWidth;s=l,c=h}else return Cy(i);return vP({breakAll:o,children:i,maxLines:u,style:a},s,c,r,n)}return Cy(i)},Iy="#808080",rr=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.lineHeight,u=o===void 0?"1em":o,s=t.capHeight,c=s===void 0?"0.71em":s,f=t.scaleToFit,l=f===void 0?!1:f,h=t.textAnchor,p=h===void 0?"start":h,y=t.verticalAnchor,v=y===void 0?"end":y,d=t.fill,g=d===void 0?Iy:d,x=Ey(t,sP),w=N.useMemo(function(){return yP({breakAll:x.breakAll,children:x.children,maxLines:x.maxLines,scaleToFit:l,style:x.style,width:x.width})},[x.breakAll,x.children,x.maxLines,l,x.style,x.width]),O=x.dx,m=x.dy,b=x.angle,_=x.className,S=x.breakAll,P=Ey(x,cP);if(!Se(n)||!Se(a))return null;var $=n+(L(O)?O:0),j=a+(L(m)?m:0),T;switch(v){case"start":T=xc("calc(".concat(c,")"));break;case"middle":T=xc("calc(".concat((w.length-1)/2," * -").concat(u," + (").concat(c," / 2))"));break;default:T=xc("calc(".concat(w.length-1," * -").concat(u,")"));break}var M=[];if(l){var I=w[0].width,C=x.width;M.push("scale(".concat((L(C)?C/I:1)/I,")"))}return b&&M.push("rotate(".concat(b,", ").concat($,", ").concat(j,")")),M.length&&(P.transform=M.join(" ")),A.createElement("text",Nl({},X(P,!0),{x:$,y:j,className:Q("recharts-text",_),textAnchor:p,fill:g.includes("url")?Iy:g}),w.map(function(R,D){var B=R.words.join(S?"":" ");return A.createElement("tspan",{x:$,dy:D===0?T:u,key:"".concat(B,"-").concat(D)},B)}))};function Ct(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function mP(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function oh(e){let t,r,n;e.length!==2?(t=Ct,r=(u,s)=>Ct(e(u),s),n=(u,s)=>e(u)-s):(t=e===Ct||e===mP?e:gP,r=e,n=e);function i(u,s,c=0,f=u.length){if(c>>1;r(u[l],s)<0?c=l+1:f=l}while(c>>1;r(u[l],s)<=0?c=l+1:f=l}while(cc&&n(u[l-1],s)>-n(u[l],s)?l-1:l}return{left:i,center:o,right:a}}function gP(){return 0}function F0(e){return e===null?NaN:+e}function*bP(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const xP=oh(Ct),ui=xP.right;oh(F0).center;class ky extends Map{constructor(t,r=_P){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(Ny(this,t))}has(t){return super.has(Ny(this,t))}set(t,r){return super.set(wP(this,t),r)}delete(t){return super.delete(OP(this,t))}}function Ny({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function wP({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function OP({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function _P(e){return e!==null&&typeof e=="object"?e.valueOf():e}function SP(e=Ct){if(e===Ct)return z0;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function z0(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const AP=Math.sqrt(50),PP=Math.sqrt(10),TP=Math.sqrt(2);function Bi(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=AP?10:a>=PP?5:a>=TP?2:1;let u,s,c;return i<0?(c=Math.pow(10,-i)/o,u=Math.round(e*c),s=Math.round(t*c),u/ct&&--s,c=-c):(c=Math.pow(10,i)*o,u=Math.round(e/c),s=Math.round(t/c),u*ct&&--s),s0))return[];if(e===t)return[e];const n=t=i))return[];const u=a-i+1,s=new Array(u);if(n)if(o<0)for(let c=0;c=n)&&(r=n);return r}function Dy(e,t){let r;for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);return r}function U0(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?z0:SP(i);n>r;){if(n-r>600){const s=n-r+1,c=t-r+1,f=Math.log(s),l=.5*Math.exp(2*f/3),h=.5*Math.sqrt(f*l*(s-l)/s)*(c-s/2<0?-1:1),p=Math.max(r,Math.floor(t-c*l/s+h)),y=Math.min(n,Math.floor(t+(s-c)*l/s+h));U0(e,t,p,y,i)}const a=e[t];let o=r,u=n;for(an(e,r,t),i(e[n],a)>0&&an(e,r,n);o0;)--u}i(e[r],a)===0?an(e,r,u):(++u,an(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function an(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function jP(e,t,r){if(e=Float64Array.from(bP(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return Dy(e);if(t>=1)return Ry(e);var n,i=(n-1)*t,a=Math.floor(i),o=Ry(U0(e,a).subarray(0,a+1)),u=Dy(e.subarray(a+1));return o+(u-o)*(i-a)}}function EP(e,t,r=F0){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,a=Math.floor(i),o=+r(e[a],a,e),u=+r(e[a+1],a+1,e);return o+(u-o)*(i-a)}}function MP(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?mi(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?mi(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=CP.exec(e))?new qe(t[1],t[2],t[3],1):(t=IP.exec(e))?new qe(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=kP.exec(e))?mi(t[1],t[2],t[3],t[4]):(t=NP.exec(e))?mi(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=RP.exec(e))?Wy(t[1],t[2]/100,t[3]/100,1):(t=DP.exec(e))?Wy(t[1],t[2]/100,t[3]/100,t[4]):qy.hasOwnProperty(e)?Fy(qy[e]):e==="transparent"?new qe(NaN,NaN,NaN,0):null}function Fy(e){return new qe(e>>16&255,e>>8&255,e&255,1)}function mi(e,t,r,n){return n<=0&&(e=t=r=NaN),new qe(e,t,r,n)}function BP(e){return e instanceof si||(e=Cn(e)),e?(e=e.rgb(),new qe(e.r,e.g,e.b,e.opacity)):new qe}function Bl(e,t,r,n){return arguments.length===1?BP(e):new qe(e,t,r,n??1)}function qe(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}sh(qe,Bl,H0(si,{brighter(e){return e=e==null?Fi:Math.pow(Fi,e),new qe(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Mn:Math.pow(Mn,e),new qe(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new qe(Jt(this.r),Jt(this.g),Jt(this.b),zi(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:zy,formatHex:zy,formatHex8:FP,formatRgb:Uy,toString:Uy}));function zy(){return`#${Vt(this.r)}${Vt(this.g)}${Vt(this.b)}`}function FP(){return`#${Vt(this.r)}${Vt(this.g)}${Vt(this.b)}${Vt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Uy(){const e=zi(this.opacity);return`${e===1?"rgb(":"rgba("}${Jt(this.r)}, ${Jt(this.g)}, ${Jt(this.b)}${e===1?")":`, ${e})`}`}function zi(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Jt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Vt(e){return e=Jt(e),(e<16?"0":"")+e.toString(16)}function Wy(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new rt(e,t,r,n)}function K0(e){if(e instanceof rt)return new rt(e.h,e.s,e.l,e.opacity);if(e instanceof si||(e=Cn(e)),!e)return new rt;if(e instanceof rt)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=NaN,u=a-i,s=(a+i)/2;return u?(t===a?o=(r-n)/u+(r0&&s<1?0:o,new rt(o,u,s,e.opacity)}function zP(e,t,r,n){return arguments.length===1?K0(e):new rt(e,t,r,n??1)}function rt(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}sh(rt,zP,H0(si,{brighter(e){return e=e==null?Fi:Math.pow(Fi,e),new rt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Mn:Math.pow(Mn,e),new rt(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new qe(wc(e>=240?e-240:e+120,i,n),wc(e,i,n),wc(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new rt(Hy(this.h),gi(this.s),gi(this.l),zi(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=zi(this.opacity);return`${e===1?"hsl(":"hsla("}${Hy(this.h)}, ${gi(this.s)*100}%, ${gi(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Hy(e){return e=(e||0)%360,e<0?e+360:e}function gi(e){return Math.max(0,Math.min(1,e||0))}function wc(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const ch=e=>()=>e;function UP(e,t){return function(r){return e+r*t}}function WP(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function HP(e){return(e=+e)==1?G0:function(t,r){return r-t?WP(t,r,e):ch(isNaN(t)?r:t)}}function G0(e,t){var r=t-e;return r?UP(e,r):ch(isNaN(e)?t:e)}const Ky=(function e(t){var r=HP(t);function n(i,a){var o=r((i=Bl(i)).r,(a=Bl(a)).r),u=r(i.g,a.g),s=r(i.b,a.b),c=G0(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=u(f),i.b=s(f),i.opacity=c(f),i+""}}return n.gamma=e,n})(1);function KP(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;ir&&(a=t.slice(r,a),u[o]?u[o]+=a:u[++o]=a),(n=n[0])===(i=i[0])?u[o]?u[o]+=i:u[++o]=i:(u[++o]=null,s.push({i:o,x:Ui(n,i)})),r=Oc.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function nT(e,t,r){var n=e[0],i=e[1],a=t[0],o=t[1];return i2?iT:nT,s=c=null,l}function l(h){return h==null||isNaN(h=+h)?a:(s||(s=u(e.map(n),t,r)))(n(o(h)))}return l.invert=function(h){return o(i((c||(c=u(t,e.map(n),Ui)))(h)))},l.domain=function(h){return arguments.length?(e=Array.from(h,Wi),f()):e.slice()},l.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},l.rangeRound=function(h){return t=Array.from(h),r=lh,f()},l.clamp=function(h){return arguments.length?(o=h?!0:Ne,f()):o!==Ne},l.interpolate=function(h){return arguments.length?(r=h,f()):r},l.unknown=function(h){return arguments.length?(a=h,l):a},function(h,p){return n=h,i=p,f()}}function fh(){return Fa()(Ne,Ne)}function aT(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Hi(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function jr(e){return e=Hi(Math.abs(e)),e?e[1]:NaN}function oT(e,t){return function(r,n){for(var i=r.length,a=[],o=0,u=e[0],s=0;i>0&&u>0&&(s+u+1>n&&(u=Math.max(1,n-s)),a.push(r.substring(i-=u,i+u)),!((s+=u+1)>n));)u=e[o=(o+1)%e.length];return a.reverse().join(t)}}function uT(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var sT=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function In(e){if(!(t=sT.exec(e)))throw new Error("invalid format: "+e);var t;return new hh({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}In.prototype=hh.prototype;function hh(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}hh.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function cT(e){e:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var Ki;function lT(e,t){var r=Hi(e,t);if(!r)return Ki=void 0,e.toPrecision(t);var n=r[0],i=r[1],a=i-(Ki=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Hi(e,Math.max(0,t+a-1))[0]}function Vy(e,t){var r=Hi(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const Xy={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:aT,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Vy(e*100,t),r:Vy,s:lT,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Yy(e){return e}var Zy=Array.prototype.map,Jy=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function fT(e){var t=e.grouping===void 0||e.thousands===void 0?Yy:oT(Zy.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?Yy:uT(Zy.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",s=e.nan===void 0?"NaN":e.nan+"";function c(l,h){l=In(l);var p=l.fill,y=l.align,v=l.sign,d=l.symbol,g=l.zero,x=l.width,w=l.comma,O=l.precision,m=l.trim,b=l.type;b==="n"?(w=!0,b="g"):Xy[b]||(O===void 0&&(O=12),m=!0,b="g"),(g||p==="0"&&y==="=")&&(g=!0,p="0",y="=");var _=(h&&h.prefix!==void 0?h.prefix:"")+(d==="$"?r:d==="#"&&/[boxX]/.test(b)?"0"+b.toLowerCase():""),S=(d==="$"?n:/[%p]/.test(b)?o:"")+(h&&h.suffix!==void 0?h.suffix:""),P=Xy[b],$=/[defgprs%]/.test(b);O=O===void 0?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function j(T){var M=_,I=S,C,R,D;if(b==="c")I=P(T)+I,T="";else{T=+T;var B=T<0||1/T<0;if(T=isNaN(T)?s:P(Math.abs(T),O),m&&(T=cT(T)),B&&+T==0&&v!=="+"&&(B=!1),M=(B?v==="("?v:u:v==="-"||v==="("?"":v)+M,I=(b==="s"&&!isNaN(T)&&Ki!==void 0?Jy[8+Ki/3]:"")+I+(B&&v==="("?")":""),$){for(C=-1,R=T.length;++CD||D>57){I=(D===46?i+T.slice(C+1):T.slice(C))+I,T=T.slice(0,C);break}}}w&&!g&&(T=t(T,1/0));var F=M.length+T.length+I.length,H=F>1)+M+T+I+H.slice(F);break;default:T=H+M+T+I;break}return a(T)}return j.toString=function(){return l+""},j}function f(l,h){var p=Math.max(-8,Math.min(8,Math.floor(jr(h)/3)))*3,y=Math.pow(10,-p),v=c((l=In(l),l.type="f",l),{suffix:Jy[8+p/3]});return function(d){return v(y*d)}}return{format:c,formatPrefix:f}}var bi,dh,V0;hT({thousands:",",grouping:[3],currency:["$",""]});function hT(e){return bi=fT(e),dh=bi.format,V0=bi.formatPrefix,bi}function dT(e){return Math.max(0,-jr(Math.abs(e)))}function pT(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(jr(t)/3)))*3-jr(Math.abs(e)))}function vT(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,jr(t)-jr(e))+1}function X0(e,t,r,n){var i=ql(e,t,r),a;switch(n=In(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=pT(i,o))&&(n.precision=a),V0(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=vT(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=dT(i))&&(n.precision=a-(n.type==="%")*2);break}}return dh(n)}function Nt(e){var t=e.domain;return e.ticks=function(r){var n=t();return Rl(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return X0(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,o=n[i],u=n[a],s,c,f=10;for(u0;){if(c=Dl(o,u,r),c===s)return n[i]=o,n[a]=u,t(n);if(c>0)o=Math.floor(o/c)*c,u=Math.ceil(u/c)*c;else if(c<0)o=Math.ceil(o*c)/c,u=Math.floor(u*c)/c;else break;s=c}return e},e}function Gi(){var e=fh();return e.copy=function(){return ci(e,Gi())},Qe.apply(e,arguments),Nt(e)}function Y0(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,Wi),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return Y0(e).unknown(t)},e=arguments.length?Array.from(e,Wi):[0,1],Nt(r)}function Z0(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],o;return aMath.pow(e,t)}function xT(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function tm(e){return(t,r)=>-e(-t,r)}function ph(e){const t=e(Qy,em),r=t.domain;let n=10,i,a;function o(){return i=xT(n),a=bT(n),r()[0]<0?(i=tm(i),a=tm(a),e(yT,mT)):e(Qy,em),t}return t.base=function(u){return arguments.length?(n=+u,o()):n},t.domain=function(u){return arguments.length?(r(u),o()):r()},t.ticks=u=>{const s=r();let c=s[0],f=s[s.length-1];const l=f0){for(;h<=p;++h)for(y=1;yf)break;g.push(v)}}else for(;h<=p;++h)for(y=n-1;y>=1;--y)if(v=h>0?y/a(-h):y*a(h),!(vf)break;g.push(v)}g.length*2{if(u==null&&(u=10),s==null&&(s=n===10?"s":","),typeof s!="function"&&(!(n%1)&&(s=In(s)).precision==null&&(s.trim=!0),s=dh(s)),u===1/0)return s;const c=Math.max(1,n*u/t.ticks().length);return f=>{let l=f/a(Math.round(i(f)));return l*nr(Z0(r(),{floor:u=>a(Math.floor(i(u))),ceil:u=>a(Math.ceil(i(u)))})),t}function J0(){const e=ph(Fa()).domain([1,10]);return e.copy=()=>ci(e,J0()).base(e.base()),Qe.apply(e,arguments),e}function rm(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function nm(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function vh(e){var t=1,r=e(rm(t),nm(t));return r.constant=function(n){return arguments.length?e(rm(t=+n),nm(t)):t},Nt(r)}function Q0(){var e=vh(Fa());return e.copy=function(){return ci(e,Q0()).constant(e.constant())},Qe.apply(e,arguments)}function im(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function wT(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function OT(e){return e<0?-e*e:e*e}function yh(e){var t=e(Ne,Ne),r=1;function n(){return r===1?e(Ne,Ne):r===.5?e(wT,OT):e(im(r),im(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},Nt(t)}function mh(){var e=yh(Fa());return e.copy=function(){return ci(e,mh()).exponent(e.exponent())},Qe.apply(e,arguments),e}function _T(){return mh.apply(null,arguments).exponent(.5)}function am(e){return Math.sign(e)*e*e}function ST(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function ex(){var e=fh(),t=[0,1],r=!1,n;function i(a){var o=ST(e(a));return isNaN(o)?n:r?Math.round(o):o}return i.invert=function(a){return e.invert(am(a))},i.domain=function(a){return arguments.length?(e.domain(a),i):e.domain()},i.range=function(a){return arguments.length?(e.range((t=Array.from(a,Wi)).map(am)),i):t.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(e.clamp(a),i):e.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return ex(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Qe.apply(i,arguments),Nt(i)}function tx(){var e=[],t=[],r=[],n;function i(){var o=0,u=Math.max(1,t.length);for(r=new Array(u-1);++o0?r[u-1]:e[0],u=r?[n[r-1],t]:[n[c-1],n[c]]},o.unknown=function(s){return arguments.length&&(a=s),o},o.thresholds=function(){return n.slice()},o.copy=function(){return rx().domain([e,t]).range(i).unknown(a)},Qe.apply(Nt(o),arguments)}function nx(){var e=[.5],t=[0,1],r,n=1;function i(a){return a!=null&&a<=a?t[ui(e,a,0,n)]:r}return i.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return nx().domain(e).range(t).unknown(r)},Qe.apply(i,arguments)}const _c=new Date,Sc=new Date;function Ae(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),u=i.ceil(a);return a-o(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,u)=>{const s=[];if(a=i.ceil(a),u=u==null?1:Math.floor(u),!(a0))return s;let c;do s.push(c=new Date(+a)),t(a,u),e(a);while(cAe(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,u)=>{if(o>=o)if(u<0)for(;++u<=0;)for(;t(o,-1),!a(o););else for(;--u>=0;)for(;t(o,1),!a(o););}),r&&(i.count=(a,o)=>(_c.setTime(+a),Sc.setTime(+o),e(_c),e(Sc),Math.floor(r(_c,Sc))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?o=>n(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const Vi=Ae(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Vi.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Ae(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Vi);Vi.range;const dt=1e3,Ye=dt*60,pt=Ye*60,gt=pt*24,gh=gt*7,om=gt*30,Ac=gt*365,Xt=Ae(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*dt)},(e,t)=>(t-e)/dt,e=>e.getUTCSeconds());Xt.range;const bh=Ae(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*dt)},(e,t)=>{e.setTime(+e+t*Ye)},(e,t)=>(t-e)/Ye,e=>e.getMinutes());bh.range;const xh=Ae(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ye)},(e,t)=>(t-e)/Ye,e=>e.getUTCMinutes());xh.range;const wh=Ae(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*dt-e.getMinutes()*Ye)},(e,t)=>{e.setTime(+e+t*pt)},(e,t)=>(t-e)/pt,e=>e.getHours());wh.range;const Oh=Ae(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*pt)},(e,t)=>(t-e)/pt,e=>e.getUTCHours());Oh.range;const li=Ae(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ye)/gt,e=>e.getDate()-1);li.range;const za=Ae(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/gt,e=>e.getUTCDate()-1);za.range;const ix=Ae(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/gt,e=>Math.floor(e/gt));ix.range;function ur(e){return Ae(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Ye)/gh)}const Ua=ur(0),Xi=ur(1),AT=ur(2),PT=ur(3),Er=ur(4),TT=ur(5),jT=ur(6);Ua.range;Xi.range;AT.range;PT.range;Er.range;TT.range;jT.range;function sr(e){return Ae(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/gh)}const Wa=sr(0),Yi=sr(1),ET=sr(2),MT=sr(3),Mr=sr(4),$T=sr(5),CT=sr(6);Wa.range;Yi.range;ET.range;MT.range;Mr.range;$T.range;CT.range;const _h=Ae(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());_h.range;const Sh=Ae(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Sh.range;const bt=Ae(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());bt.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Ae(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});bt.range;const xt=Ae(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());xt.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Ae(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});xt.range;function ax(e,t,r,n,i,a){const o=[[Xt,1,dt],[Xt,5,5*dt],[Xt,15,15*dt],[Xt,30,30*dt],[a,1,Ye],[a,5,5*Ye],[a,15,15*Ye],[a,30,30*Ye],[i,1,pt],[i,3,3*pt],[i,6,6*pt],[i,12,12*pt],[n,1,gt],[n,2,2*gt],[r,1,gh],[t,1,om],[t,3,3*om],[e,1,Ac]];function u(c,f,l){const h=fd).right(o,h);if(p===o.length)return e.every(ql(c/Ac,f/Ac,l));if(p===0)return Vi.every(Math.max(ql(c,f,l),1));const[y,v]=o[h/o[p-1][2]53)return null;"w"in q||(q.w=1),"Z"in q?(te=Tc(on(q.y,0,1)),xe=te.getUTCDay(),te=xe>4||xe===0?Yi.ceil(te):Yi(te),te=za.offset(te,(q.V-1)*7),q.y=te.getUTCFullYear(),q.m=te.getUTCMonth(),q.d=te.getUTCDate()+(q.w+6)%7):(te=Pc(on(q.y,0,1)),xe=te.getDay(),te=xe>4||xe===0?Xi.ceil(te):Xi(te),te=li.offset(te,(q.V-1)*7),q.y=te.getFullYear(),q.m=te.getMonth(),q.d=te.getDate()+(q.w+6)%7)}else("W"in q||"U"in q)&&("w"in q||(q.w="u"in q?q.u%7:"W"in q?1:0),xe="Z"in q?Tc(on(q.y,0,1)).getUTCDay():Pc(on(q.y,0,1)).getDay(),q.m=0,q.d="W"in q?(q.w+6)%7+q.W*7-(xe+5)%7:q.w+q.U*7-(xe+6)%7);return"Z"in q?(q.H+=q.Z/100|0,q.M+=q.Z%100,Tc(q)):Pc(q)}}function S(z,Z,J,q){for(var ve=0,te=Z.length,xe=J.length,we,De;ve=xe)return-1;if(we=Z.charCodeAt(ve++),we===37){if(we=Z.charAt(ve++),De=m[we in um?Z.charAt(ve++):we],!De||(q=De(z,J,q))<0)return-1}else if(we!=J.charCodeAt(q++))return-1}return q}function P(z,Z,J){var q=c.exec(Z.slice(J));return q?(z.p=f.get(q[0].toLowerCase()),J+q[0].length):-1}function $(z,Z,J){var q=p.exec(Z.slice(J));return q?(z.w=y.get(q[0].toLowerCase()),J+q[0].length):-1}function j(z,Z,J){var q=l.exec(Z.slice(J));return q?(z.w=h.get(q[0].toLowerCase()),J+q[0].length):-1}function T(z,Z,J){var q=g.exec(Z.slice(J));return q?(z.m=x.get(q[0].toLowerCase()),J+q[0].length):-1}function M(z,Z,J){var q=v.exec(Z.slice(J));return q?(z.m=d.get(q[0].toLowerCase()),J+q[0].length):-1}function I(z,Z,J){return S(z,t,Z,J)}function C(z,Z,J){return S(z,r,Z,J)}function R(z,Z,J){return S(z,n,Z,J)}function D(z){return o[z.getDay()]}function B(z){return a[z.getDay()]}function F(z){return s[z.getMonth()]}function H(z){return u[z.getMonth()]}function G(z){return i[+(z.getHours()>=12)]}function U(z){return 1+~~(z.getMonth()/3)}function V(z){return o[z.getUTCDay()]}function he(z){return a[z.getUTCDay()]}function me(z){return s[z.getUTCMonth()]}function Be(z){return u[z.getUTCMonth()]}function qt(z){return i[+(z.getUTCHours()>=12)]}function Re(z){return 1+~~(z.getUTCMonth()/3)}return{format:function(z){var Z=b(z+="",w);return Z.toString=function(){return z},Z},parse:function(z){var Z=_(z+="",!1);return Z.toString=function(){return z},Z},utcFormat:function(z){var Z=b(z+="",O);return Z.toString=function(){return z},Z},utcParse:function(z){var Z=_(z+="",!0);return Z.toString=function(){return z},Z}}}var um={"-":"",_:" ",0:"0"},je=/^\s*\d+/,qT=/^%/,LT=/[\\^$*+?|[\]().{}]/g;function re(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a[t.toLowerCase(),r]))}function FT(e,t,r){var n=je.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function zT(e,t,r){var n=je.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function UT(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function WT(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function HT(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function sm(e,t,r){var n=je.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function cm(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function KT(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function GT(e,t,r){var n=je.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function VT(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function lm(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function XT(e,t,r){var n=je.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function fm(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function YT(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function ZT(e,t,r){var n=je.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function JT(e,t,r){var n=je.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function QT(e,t,r){var n=je.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function ej(e,t,r){var n=qT.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function tj(e,t,r){var n=je.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function rj(e,t,r){var n=je.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function hm(e,t){return re(e.getDate(),t,2)}function nj(e,t){return re(e.getHours(),t,2)}function ij(e,t){return re(e.getHours()%12||12,t,2)}function aj(e,t){return re(1+li.count(bt(e),e),t,3)}function ox(e,t){return re(e.getMilliseconds(),t,3)}function oj(e,t){return ox(e,t)+"000"}function uj(e,t){return re(e.getMonth()+1,t,2)}function sj(e,t){return re(e.getMinutes(),t,2)}function cj(e,t){return re(e.getSeconds(),t,2)}function lj(e){var t=e.getDay();return t===0?7:t}function fj(e,t){return re(Ua.count(bt(e)-1,e),t,2)}function ux(e){var t=e.getDay();return t>=4||t===0?Er(e):Er.ceil(e)}function hj(e,t){return e=ux(e),re(Er.count(bt(e),e)+(bt(e).getDay()===4),t,2)}function dj(e){return e.getDay()}function pj(e,t){return re(Xi.count(bt(e)-1,e),t,2)}function vj(e,t){return re(e.getFullYear()%100,t,2)}function yj(e,t){return e=ux(e),re(e.getFullYear()%100,t,2)}function mj(e,t){return re(e.getFullYear()%1e4,t,4)}function gj(e,t){var r=e.getDay();return e=r>=4||r===0?Er(e):Er.ceil(e),re(e.getFullYear()%1e4,t,4)}function bj(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+re(t/60|0,"0",2)+re(t%60,"0",2)}function dm(e,t){return re(e.getUTCDate(),t,2)}function xj(e,t){return re(e.getUTCHours(),t,2)}function wj(e,t){return re(e.getUTCHours()%12||12,t,2)}function Oj(e,t){return re(1+za.count(xt(e),e),t,3)}function sx(e,t){return re(e.getUTCMilliseconds(),t,3)}function _j(e,t){return sx(e,t)+"000"}function Sj(e,t){return re(e.getUTCMonth()+1,t,2)}function Aj(e,t){return re(e.getUTCMinutes(),t,2)}function Pj(e,t){return re(e.getUTCSeconds(),t,2)}function Tj(e){var t=e.getUTCDay();return t===0?7:t}function jj(e,t){return re(Wa.count(xt(e)-1,e),t,2)}function cx(e){var t=e.getUTCDay();return t>=4||t===0?Mr(e):Mr.ceil(e)}function Ej(e,t){return e=cx(e),re(Mr.count(xt(e),e)+(xt(e).getUTCDay()===4),t,2)}function Mj(e){return e.getUTCDay()}function $j(e,t){return re(Yi.count(xt(e)-1,e),t,2)}function Cj(e,t){return re(e.getUTCFullYear()%100,t,2)}function Ij(e,t){return e=cx(e),re(e.getUTCFullYear()%100,t,2)}function kj(e,t){return re(e.getUTCFullYear()%1e4,t,4)}function Nj(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Mr(e):Mr.ceil(e),re(e.getUTCFullYear()%1e4,t,4)}function Rj(){return"+0000"}function pm(){return"%"}function vm(e){return+e}function ym(e){return Math.floor(+e/1e3)}var hr,lx,fx;Dj({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Dj(e){return hr=DT(e),lx=hr.format,hr.parse,fx=hr.utcFormat,hr.utcParse,hr}function qj(e){return new Date(e)}function Lj(e){return e instanceof Date?+e:+new Date(+e)}function Ah(e,t,r,n,i,a,o,u,s,c){var f=fh(),l=f.invert,h=f.domain,p=c(".%L"),y=c(":%S"),v=c("%I:%M"),d=c("%I %p"),g=c("%a %d"),x=c("%b %d"),w=c("%B"),O=c("%Y");function m(b){return(s(b)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>jP(e,a/n))},r.copy=function(){return vx(t).domain(e)},At.apply(r,arguments)}function Ka(){var e=0,t=.5,r=1,n=1,i,a,o,u,s,c=Ne,f,l=!1,h;function p(v){return isNaN(v=+v)?h:(v=.5+((v=+f(v))-a)*(n*vr}return Ec=e,Ec}var Mc,xm;function Wj(){if(xm)return Mc;xm=1;var e=Ga(),t=bx(),r=Zr();function n(i){return i&&i.length?e(i,r,t):void 0}return Mc=n,Mc}var Hj=Wj();const Va=ue(Hj);var $c,wm;function xx(){if(wm)return $c;wm=1;function e(t,r){return te.e^a.s<0?1:-1;for(n=a.d.length,i=e.d.length,t=0,r=ne.d[t]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1};W.decimalPlaces=W.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*de;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};W.dividedBy=W.div=function(e){return mt(this,new this.constructor(e))};W.dividedToIntegerBy=W.idiv=function(e){var t=this,r=t.constructor;return se(mt(t,new r(e),0,1),r.precision)};W.equals=W.eq=function(e){return!this.cmp(e)};W.exponent=function(){return be(this)};W.greaterThan=W.gt=function(e){return this.cmp(e)>0};W.greaterThanOrEqualTo=W.gte=function(e){return this.cmp(e)>=0};W.isInteger=W.isint=function(){return this.e>this.d.length-2};W.isNegative=W.isneg=function(){return this.s<0};W.isPositive=W.ispos=function(){return this.s>0};W.isZero=function(){return this.s===0};W.lessThan=W.lt=function(e){return this.cmp(e)<0};W.lessThanOrEqualTo=W.lte=function(e){return this.cmp(e)<1};W.logarithm=W.log=function(e){var t,r=this,n=r.constructor,i=n.precision,a=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(We))throw Error(Je+"NaN");if(r.s<1)throw Error(Je+(r.s?"NaN":"-Infinity"));return r.eq(We)?new n(0):(pe=!1,t=mt(kn(r,a),kn(e,a),a),pe=!0,se(t,i))};W.minus=W.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Sx(t,e):Ox(t,(e.s=-e.s,e))};W.modulo=W.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Je+"NaN");return r.s?(pe=!1,t=mt(r,e,0,1).times(e),pe=!0,r.minus(t)):se(new n(r),i)};W.naturalExponential=W.exp=function(){return _x(this)};W.naturalLogarithm=W.ln=function(){return kn(this)};W.negated=W.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};W.plus=W.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Ox(t,e):Sx(t,(e.s=-e.s,e))};W.precision=W.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Qt+e);if(t=be(i)+1,n=i.d.length-1,r=n*de+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};W.squareRoot=W.sqrt=function(){var e,t,r,n,i,a,o,u=this,s=u.constructor;if(u.s<1){if(!u.s)return new s(0);throw Error(Je+"NaN")}for(e=be(u),pe=!1,i=Math.sqrt(+u),i==0||i==1/0?(t=at(u.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=tn((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new s(t)):n=new s(i.toString()),r=s.precision,i=o=r+3;;)if(a=n,n=a.plus(mt(u,a,o+2)).times(.5),at(a.d).slice(0,o)===(t=at(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if(se(a,r+1,0),a.times(a).eq(u)){n=a;break}}else if(t!="9999")break;o+=4}return pe=!0,se(n,r)};W.times=W.mul=function(e){var t,r,n,i,a,o,u,s,c,f=this,l=f.constructor,h=f.d,p=(e=new l(e)).d;if(!f.s||!e.s)return new l(0);for(e.s*=f.s,r=f.e+e.e,s=h.length,c=p.length,s=0;){for(t=0,i=s+n;i>n;)u=a[i]+p[n]*h[i-n-1]+t,a[i--]=u%Pe|0,t=u/Pe|0;a[i]=(a[i]+t)%Pe|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=r,pe?se(e,l.precision):e};W.toDecimalPlaces=W.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(st(e,0,en),t===void 0?t=n.rounding:st(t,0,8),se(r,e+be(r)+1,t))};W.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=nr(n,!0):(st(e,0,en),t===void 0?t=i.rounding:st(t,0,8),n=se(new i(n),e+1,t),r=nr(n,!0,e+1)),r};W.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?nr(i):(st(e,0,en),t===void 0?t=a.rounding:st(t,0,8),n=se(new a(i),e+be(i)+1,t),r=nr(n.abs(),!1,e+be(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};W.toInteger=W.toint=function(){var e=this,t=e.constructor;return se(new t(e),be(e)+1,t.rounding)};W.toNumber=function(){return+this};W.toPower=W.pow=function(e){var t,r,n,i,a,o,u=this,s=u.constructor,c=12,f=+(e=new s(e));if(!e.s)return new s(We);if(u=new s(u),!u.s){if(e.s<1)throw Error(Je+"Infinity");return u}if(u.eq(We))return u;if(n=s.precision,e.eq(We))return se(u,n);if(t=e.e,r=e.d.length-1,o=t>=r,a=u.s,o){if((r=f<0?-f:f)<=wx){for(i=new s(We),t=Math.ceil(n/de+4),pe=!1;r%2&&(i=i.times(u),Tm(i.d,t)),r=tn(r/2),r!==0;)u=u.times(u),Tm(u.d,t);return pe=!0,e.s<0?new s(We).div(i):se(i,n)}}else if(a<0)throw Error(Je+"NaN");return a=a<0&&e.d[Math.max(t,r)]&1?-1:1,u.s=1,pe=!1,i=e.times(kn(u,n+c)),pe=!0,i=_x(i),i.s=a,i};W.toPrecision=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?(r=be(i),n=nr(i,r<=a.toExpNeg||r>=a.toExpPos)):(st(e,1,en),t===void 0?t=a.rounding:st(t,0,8),i=se(new a(i),e,t),r=be(i),n=nr(i,e<=r||r<=a.toExpNeg,e)),n};W.toSignificantDigits=W.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(st(e,1,en),t===void 0?t=n.rounding:st(t,0,8)),se(new n(r),e,t)};W.toString=W.valueOf=W.val=W.toJSON=W[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=be(e),r=e.constructor;return nr(e,t<=r.toExpNeg||t>=r.toExpPos)};function Ox(e,t){var r,n,i,a,o,u,s,c,f=e.constructor,l=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),pe?se(t,l):t;if(s=e.d,c=t.d,o=e.e,i=t.e,s=s.slice(),a=o-i,a){for(a<0?(n=s,a=-a,u=c.length):(n=c,i=o,u=s.length),o=Math.ceil(l/de),u=o>u?o+1:u+1,a>u&&(a=u,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for(u=s.length,a=c.length,u-a<0&&(a=u,n=c,c=s,s=n),r=0;a;)r=(s[--a]=s[a]+c[a]+r)/Pe|0,s[a]%=Pe;for(r&&(s.unshift(r),++i),u=s.length;s[--u]==0;)s.pop();return t.d=s,t.e=i,pe?se(t,l):t}function st(e,t,r){if(e!==~~e||er)throw Error(Qt+e)}function at(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;to?1:-1;else for(u=s=0;ui[u]?1:-1;break}return s}function r(n,i,a){for(var o=0;a--;)n[a]-=o,o=n[a]1;)n.shift()}return function(n,i,a,o){var u,s,c,f,l,h,p,y,v,d,g,x,w,O,m,b,_,S,P=n.constructor,$=n.s==i.s?1:-1,j=n.d,T=i.d;if(!n.s)return new P(n);if(!i.s)throw Error(Je+"Division by zero");for(s=n.e-i.e,_=T.length,m=j.length,p=new P($),y=p.d=[],c=0;T[c]==(j[c]||0);)++c;if(T[c]>(j[c]||0)&&--s,a==null?x=a=P.precision:o?x=a+(be(n)-be(i))+1:x=a,x<0)return new P(0);if(x=x/de+2|0,c=0,_==1)for(f=0,T=T[0],x++;(c1&&(T=e(T,f),j=e(j,f),_=T.length,m=j.length),O=_,v=j.slice(0,_),d=v.length;d<_;)v[d++]=0;S=T.slice(),S.unshift(0),b=T[0],T[1]>=Pe/2&&++b;do f=0,u=t(T,v,_,d),u<0?(g=v[0],_!=d&&(g=g*Pe+(v[1]||0)),f=g/b|0,f>1?(f>=Pe&&(f=Pe-1),l=e(T,f),h=l.length,d=v.length,u=t(l,v,h,d),u==1&&(f--,r(l,_16)throw Error(jh+be(e));if(!e.s)return new f(We);for(pe=!1,u=l,o=new f(.03125);e.abs().gte(.1);)e=e.times(o),c+=5;for(n=Math.log(Ht(2,c))/Math.LN10*2+5|0,u+=n,r=i=a=new f(We),f.precision=u;;){if(i=se(i.times(e),u),r=r.times(++s),o=a.plus(mt(i,r,u)),at(o.d).slice(0,u)===at(a.d).slice(0,u)){for(;c--;)a=se(a.times(a),u);return f.precision=l,t==null?(pe=!0,se(a,l)):a}a=o}}function be(e){for(var t=e.e*de,r=e.d[0];r>=10;r/=10)t++;return t}function Rc(e,t,r){if(t>e.LN10.sd())throw pe=!0,r&&(e.precision=r),Error(Je+"LN10 precision limit exceeded");return se(new e(e.LN10),t)}function Et(e){for(var t="";e--;)t+="0";return t}function kn(e,t){var r,n,i,a,o,u,s,c,f,l=1,h=10,p=e,y=p.d,v=p.constructor,d=v.precision;if(p.s<1)throw Error(Je+(p.s?"NaN":"-Infinity"));if(p.eq(We))return new v(0);if(t==null?(pe=!1,c=d):c=t,p.eq(10))return t==null&&(pe=!0),Rc(v,c);if(c+=h,v.precision=c,r=at(y),n=r.charAt(0),a=be(p),Math.abs(a)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)p=p.times(e),r=at(p.d),n=r.charAt(0),l++;a=be(p),n>1?(p=new v("0."+r),a++):p=new v(n+"."+r.slice(1))}else return s=Rc(v,c+2,d).times(a+""),p=kn(new v(n+"."+r.slice(1)),c-h).plus(s),v.precision=d,t==null?(pe=!0,se(p,d)):p;for(u=o=p=mt(p.minus(We),p.plus(We),c),f=se(p.times(p),c),i=3;;){if(o=se(o.times(f),c),s=u.plus(mt(o,new v(i),c)),at(s.d).slice(0,c)===at(u.d).slice(0,c))return u=u.times(2),a!==0&&(u=u.plus(Rc(v,c+2,d).times(a+""))),u=mt(u,new v(l),c),v.precision=d,t==null?(pe=!0,se(u,d)):u;u=s,i+=2}}function Pm(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=tn(r/de),e.d=[],n=(r+1)%de,r<0&&(n+=de),nZi||e.e<-Zi))throw Error(jh+r)}else e.s=0,e.e=0,e.d=[0];return e}function se(e,t,r){var n,i,a,o,u,s,c,f,l=e.d;for(o=1,a=l[0];a>=10;a/=10)o++;if(n=t-o,n<0)n+=de,i=t,c=l[f=0];else{if(f=Math.ceil((n+1)/de),a=l.length,f>=a)return e;for(c=a=l[f],o=1;a>=10;a/=10)o++;n%=de,i=n-de+o}if(r!==void 0&&(a=Ht(10,o-i-1),u=c/a%10|0,s=t<0||l[f+1]!==void 0||c%a,s=r<4?(u||s)&&(r==0||r==(e.s<0?3:2)):u>5||u==5&&(r==4||s||r==6&&(n>0?i>0?c/Ht(10,o-i):0:l[f-1])%10&1||r==(e.s<0?8:7))),t<1||!l[0])return s?(a=be(e),l.length=1,t=t-a-1,l[0]=Ht(10,(de-t%de)%de),e.e=tn(-t/de)||0):(l.length=1,l[0]=e.e=e.s=0),e;if(n==0?(l.length=f,a=1,f--):(l.length=f+1,a=Ht(10,de-n),l[f]=i>0?(c/Ht(10,o-i)%Ht(10,i)|0)*a:0),s)for(;;)if(f==0){(l[0]+=a)==Pe&&(l[0]=1,++e.e);break}else{if(l[f]+=a,l[f]!=Pe)break;l[f--]=0,a=1}for(n=l.length;l[--n]===0;)l.pop();if(pe&&(e.e>Zi||e.e<-Zi))throw Error(jh+be(e));return e}function Sx(e,t){var r,n,i,a,o,u,s,c,f,l,h=e.constructor,p=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),pe?se(t,p):t;if(s=e.d,l=t.d,n=t.e,c=e.e,s=s.slice(),o=c-n,o){for(f=o<0,f?(r=s,o=-o,u=l.length):(r=l,n=c,u=s.length),i=Math.max(Math.ceil(p/de),u)+2,o>i&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for(i=s.length,u=l.length,f=i0;--i)s[u++]=0;for(i=l.length;i>o;){if(s[--i]0?a=a.charAt(0)+"."+a.slice(1)+Et(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+Et(-i-1)+a,r&&(n=r-o)>0&&(a+=Et(n))):i>=o?(a+=Et(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+Et(n))):((n=i+1)0&&(i+1===o&&(a+="."),a+=Et(n))),e.s<0?"-"+a:a}function Tm(e,t){if(e.length>t)return e.length=t,!0}function Ax(e){var t,r,n;function i(a){var o=this;if(!(o instanceof i))return new i(a);if(o.constructor=i,a instanceof i){o.s=a.s,o.e=a.e,o.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(Qt+a);if(a>0)o.s=1;else if(a<0)a=-a,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(a===~~a&&a<1e7){o.e=0,o.d=[a];return}return Pm(o,a.toString())}else if(typeof a!="string")throw Error(Qt+a);if(a.charCodeAt(0)===45?(a=a.slice(1),o.s=-1):o.s=1,tE.test(a))Pm(o,a);else throw Error(Qt+a)}if(i.prototype=W,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=Ax,i.config=i.set=rE,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Qt+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Qt+r+": "+n);return this}var Eh=Ax(eE);We=new Eh(1);const oe=Eh;function nE(e){return uE(e)||oE(e)||aE(e)||iE()}function iE(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function aE(e,t){if(e){if(typeof e=="string")return Ul(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ul(e,t)}}function oE(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function uE(e){if(Array.isArray(e))return Ul(e)}function Ul(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t?r.apply(void 0,i):e(t-o,jm(function(){for(var u=arguments.length,s=new Array(u),c=0;ce.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!(Symbol.iterator in Object(e)))){var r=[],n=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),u;!(n=(u=o.next()).done)&&(r.push(u.value),!(t&&r.length===t));n=!0);}catch(s){i=!0,a=s}finally{try{!n&&o.return!=null&&o.return()}finally{if(i)throw a}}return r}}function OE(e){if(Array.isArray(e))return e}function Mx(e){var t=Nn(e,2),r=t[0],n=t[1],i=r,a=n;return r>n&&(i=n,a=r),[i,a]}function $x(e,t,r){if(e.lte(0))return new oe(0);var n=Ja.getDigitCount(e.toNumber()),i=new oe(10).pow(n),a=e.div(i),o=n!==1?.05:.1,u=new oe(Math.ceil(a.div(o).toNumber())).add(r).mul(o),s=u.mul(i);return t?s:new oe(Math.ceil(s))}function _E(e,t,r){var n=1,i=new oe(e);if(!i.isint()&&r){var a=Math.abs(e);a<1?(n=new oe(10).pow(Ja.getDigitCount(e)-1),i=new oe(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new oe(Math.floor(e)))}else e===0?i=new oe(Math.floor((t-1)/2)):r||(i=new oe(Math.floor(e)));var o=Math.floor((t-1)/2),u=fE(lE(function(s){return i.add(new oe(s-o).mul(n)).toNumber()}),Wl);return u(0,t)}function Cx(e,t,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(r-1)))return{step:new oe(0),tickMin:new oe(0),tickMax:new oe(0)};var a=$x(new oe(t).sub(e).div(r-1),n,i),o;e<=0&&t>=0?o=new oe(0):(o=new oe(e).add(t).div(2),o=o.sub(new oe(o).mod(a)));var u=Math.ceil(o.sub(e).div(a).toNumber()),s=Math.ceil(new oe(t).sub(o).div(a).toNumber()),c=u+s+1;return c>r?Cx(e,t,r,n,i+1):(c0?s+(r-c):s,u=t>0?u:u+(r-c)),{step:a,tickMin:o.sub(new oe(u).mul(a)),tickMax:o.add(new oe(s).mul(a))})}function SE(e){var t=Nn(e,2),r=t[0],n=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(i,2),u=Mx([r,n]),s=Nn(u,2),c=s[0],f=s[1];if(c===-1/0||f===1/0){var l=f===1/0?[c].concat(Kl(Wl(0,i-1).map(function(){return 1/0}))):[].concat(Kl(Wl(0,i-1).map(function(){return-1/0})),[f]);return r>n?Hl(l):l}if(c===f)return _E(c,i,a);var h=Cx(c,f,o,a),p=h.step,y=h.tickMin,v=h.tickMax,d=Ja.rangeStep(y,v.add(new oe(.1).mul(p)),p);return r>n?Hl(d):d}function AE(e,t){var r=Nn(e,2),n=r[0],i=r[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Mx([n,i]),u=Nn(o,2),s=u[0],c=u[1];if(s===-1/0||c===1/0)return[n,i];if(s===c)return[s];var f=Math.max(t,2),l=$x(new oe(c).sub(s).div(f-1),a,0),h=[].concat(Kl(Ja.rangeStep(new oe(s),new oe(c).sub(new oe(.99).mul(l)),l)),[c]);return n>i?Hl(h):h}var PE=jx(SE),TE=jx(AE),jE="Invariant failed";function ir(e,t){throw new Error(jE)}var EE=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function $r(e){"@babel/helpers - typeof";return $r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$r(e)}function Ji(){return Ji=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function RE(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function DE(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function qE(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=-1,u=(r=n==null?void 0:n.length)!==null&&r!==void 0?r:0;if(u<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var s=a.range,c=0;c0?i[c-1].coordinate:i[u-1].coordinate,l=i[c].coordinate,h=c>=u-1?i[0].coordinate:i[c+1].coordinate,p=void 0;if(Ie(l-f)!==Ie(h-l)){var y=[];if(Ie(h-l)===Ie(s[1]-s[0])){p=h;var v=l+s[1]-s[0];y[0]=Math.min(v,(v+f)/2),y[1]=Math.max(v,(v+f)/2)}else{p=f;var d=h+s[1]-s[0];y[0]=Math.min(l,(d+l)/2),y[1]=Math.max(l,(d+l)/2)}var g=[Math.min(l,(p+l)/2),Math.max(l,(p+l)/2)];if(t>g[0]&&t<=g[1]||t>=y[0]&&t<=y[1]){o=i[c].index;break}}else{var x=Math.min(f,h),w=Math.max(f,h);if(t>(x+l)/2&&t<=(w+l)/2){o=i[c].index;break}}}else for(var O=0;O0&&O(n[O].coordinate+n[O-1].coordinate)/2&&t<=(n[O].coordinate+n[O+1].coordinate)/2||O===u-1&&t>(n[O].coordinate+n[O-1].coordinate)/2){o=n[O].index;break}return o},Mh=function(t){var r,n=t,i=n.type.displayName,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?ye(ye({},t.type.defaultProps),t.props):t.props,o=a.stroke,u=a.fill,s;switch(i){case"Line":s=o;break;case"Area":case"Radar":s=o&&o!=="none"?o:u;break;default:s=u;break}return s},tM=function(t){var r=t.barSize,n=t.totalSize,i=t.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var o={},u=Object.keys(a),s=0,c=u.length;s=0});if(g&&g.length){var x=g[0].type.defaultProps,w=x!==void 0?ye(ye({},x),g[0].props):g[0].props,O=w.barSize,m=w[d];o[m]||(o[m]=[]);var b=ee(O)?r:O;o[m].push({item:g[0],stackList:g.slice(1),barSize:ee(b)?void 0:ke(b,n,0)})}}return o},rM=function(t){var r=t.barGap,n=t.barCategoryGap,i=t.bandSize,a=t.sizeList,o=a===void 0?[]:a,u=t.maxBarSize,s=o.length;if(s<1)return null;var c=ke(r,i,0,!0),f,l=[];if(o[0].barSize===+o[0].barSize){var h=!1,p=i/s,y=o.reduce(function(O,m){return O+m.barSize||0},0);y+=(s-1)*c,y>=i&&(y-=(s-1)*c,c=0),y>=i&&p>0&&(h=!0,p*=.9,y=s*p);var v=(i-y)/2>>0,d={offset:v-c,size:0};f=o.reduce(function(O,m){var b={item:m.item,position:{offset:d.offset+d.size+c,size:h?p:m.barSize}},_=[].concat($m(O),[b]);return d=_[_.length-1].position,m.stackList&&m.stackList.length&&m.stackList.forEach(function(S){_.push({item:S,position:d})}),_},l)}else{var g=ke(n,i,0,!0);i-2*g-(s-1)*c<=0&&(c=0);var x=(i-2*g-(s-1)*c)/s;x>1&&(x>>=0);var w=u===+u?Math.min(x,u):x;f=o.reduce(function(O,m,b){var _=[].concat($m(O),[{item:m.item,position:{offset:g+(x+c)*b+(x-w)/2,size:w}}]);return m.stackList&&m.stackList.length&&m.stackList.forEach(function(S){_.push({item:S,position:_[_.length-1].position})}),_},l)}return f},nM=function(t,r,n,i){var a=n.children,o=n.width,u=n.margin,s=o-(u.left||0)-(u.right||0),c=Rx({children:a,legendWidth:s});if(c){var f=i||{},l=f.width,h=f.height,p=c.align,y=c.verticalAlign,v=c.layout;if((v==="vertical"||v==="horizontal"&&y==="middle")&&p!=="center"&&L(t[p]))return ye(ye({},t),{},Or({},p,t[p]+(l||0)));if((v==="horizontal"||v==="vertical"&&p==="center")&&y!=="middle"&&L(t[y]))return ye(ye({},t),{},Or({},y,t[y]+(h||0)))}return t},iM=function(t,r,n){return ee(r)?!0:t==="horizontal"?r==="yAxis":t==="vertical"||n==="x"?r==="xAxis":n==="y"?r==="yAxis":!0},Dx=function(t,r,n,i,a){var o=r.props.children,u=Ze(o,Qa).filter(function(c){return iM(i,a,c.props.direction)});if(u&&u.length){var s=u.map(function(c){return c.props.dataKey});return t.reduce(function(c,f){var l=Ce(f,n);if(ee(l))return c;var h=Array.isArray(l)?[Xa(l),Va(l)]:[l,l],p=s.reduce(function(y,v){var d=Ce(f,v,0),g=h[0]-Math.abs(Array.isArray(d)?d[0]:d),x=h[1]+Math.abs(Array.isArray(d)?d[1]:d);return[Math.min(g,y[0]),Math.max(x,y[1])]},[1/0,-1/0]);return[Math.min(p[0],c[0]),Math.max(p[1],c[1])]},[1/0,-1/0])}return null},aM=function(t,r,n,i,a){var o=r.map(function(u){return Dx(t,u,n,a,i)}).filter(function(u){return!ee(u)});return o&&o.length?o.reduce(function(u,s){return[Math.min(u[0],s[0]),Math.max(u[1],s[1])]},[1/0,-1/0]):null},qx=function(t,r,n,i,a){var o=r.map(function(s){var c=s.props.dataKey;return n==="number"&&c&&Dx(t,s,c,i)||gn(t,c,n,a)});if(n==="number")return o.reduce(function(s,c){return[Math.min(s[0],c[0]),Math.max(s[1],c[1])]},[1/0,-1/0]);var u={};return o.reduce(function(s,c){for(var f=0,l=c.length;f=2?Ie(u[0]-u[1])*2*c:c,r&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(l){var h=a?a.indexOf(l):l;return{coordinate:i(h)+c,value:l,offset:c}});return f.filter(function(l){return!ii(l.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(l,h){return{coordinate:i(l)+c,value:l,index:h,offset:c}}):i.ticks&&!n?i.ticks(t.tickCount).map(function(l){return{coordinate:i(l)+c,value:l,offset:c}}):i.domain().map(function(l,h){return{coordinate:i(l)+c,value:a?a[l]:l,index:h,offset:c}})},Dc=new WeakMap,xi=function(t,r){if(typeof r!="function")return t;Dc.has(t)||Dc.set(t,new WeakMap);var n=Dc.get(t);if(n.has(r))return n.get(r);var i=function(){t.apply(void 0,arguments),r.apply(void 0,arguments)};return n.set(r,i),i},Fx=function(t,r,n){var i=t.scale,a=t.type,o=t.layout,u=t.axisType;if(i==="auto")return o==="radial"&&u==="radiusAxis"?{scale:En(),realScaleType:"band"}:o==="radial"&&u==="angleAxis"?{scale:Gi(),realScaleType:"linear"}:a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!n)?{scale:mn(),realScaleType:"point"}:a==="category"?{scale:En(),realScaleType:"band"}:{scale:Gi(),realScaleType:"linear"};if(er(i)){var s="scale".concat(Ia(i));return{scale:(mm[s]||mn)(),realScaleType:mm[s]?s:"point"}}return Y(i)?{scale:i}:{scale:mn(),realScaleType:"point"}},Im=1e-4,zx=function(t){var r=t.domain();if(!(!r||r.length<=2)){var n=r.length,i=t.range(),a=Math.min(i[0],i[1])-Im,o=Math.max(i[0],i[1])+Im,u=t(r[0]),s=t(r[n-1]);(uo||so)&&t.domain([r[0],r[n-1]])}},oM=function(t,r){if(!t)return null;for(var n=0,i=t.length;ni)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]=0?(t[u][n][0]=a,t[u][n][1]=a+s,a=t[u][n][1]):(t[u][n][0]=o,t[u][n][1]=o+s,o=t[u][n][1])}},cM=function(t){var r=t.length;if(!(r<=0))for(var n=0,i=t[0].length;n=0?(t[o][n][0]=a,t[o][n][1]=a+u,a=t[o][n][1]):(t[o][n][0]=0,t[o][n][1]=0)}},lM={sign:sM,expand:Z_,none:_r,silhouette:J_,wiggle:Q_,positive:cM},fM=function(t,r,n){var i=r.map(function(u){return u.props.dataKey}),a=lM[n],o=Y_().keys(i).value(function(u,s){return+Ce(u,s,0)}).order(Al).offset(a);return o(t)},hM=function(t,r,n,i,a,o){if(!t)return null;var u=o?r.reverse():r,s={},c=u.reduce(function(l,h){var p,y=(p=h.type)!==null&&p!==void 0&&p.defaultProps?ye(ye({},h.type.defaultProps),h.props):h.props,v=y.stackId,d=y.hide;if(d)return l;var g=y[n],x=l[g]||{hasStack:!1,stackGroups:{}};if(Se(v)){var w=x.stackGroups[v]||{numericAxisId:n,cateAxisId:i,items:[]};w.items.push(h),x.hasStack=!0,x.stackGroups[v]=w}else x.stackGroups[ai("_stackId_")]={numericAxisId:n,cateAxisId:i,items:[h]};return ye(ye({},l),{},Or({},g,x))},s),f={};return Object.keys(c).reduce(function(l,h){var p=c[h];if(p.hasStack){var y={};p.stackGroups=Object.keys(p.stackGroups).reduce(function(v,d){var g=p.stackGroups[d];return ye(ye({},v),{},Or({},d,{numericAxisId:n,cateAxisId:i,items:g.items,stackedData:fM(t,g.items,a)}))},y)}return ye(ye({},l),{},Or({},h,p))},f)},Ux=function(t,r){var n=r.realScaleType,i=r.type,a=r.tickCount,o=r.originalDomain,u=r.allowDecimals,s=n||r.scale;if(s!=="auto"&&s!=="linear")return null;if(a&&i==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var c=t.domain();if(!c.length)return null;var f=PE(c,a,u);return t.domain([Xa(f),Va(f)]),{niceTicks:f}}if(a&&i==="number"){var l=t.domain(),h=TE(l,a,u);return{niceTicks:h}}return null},km=function(t){var r=t.axis,n=t.ticks,i=t.offset,a=t.bandSize,o=t.entry,u=t.index;if(r.type==="category")return n[u]?n[u].coordinate+i:null;var s=Ce(o,r.dataKey,r.domain[u]);return ee(s)?null:r.scale(s)-a/2+i},dM=function(t){var r=t.numericAxis,n=r.scale.domain();if(r.type==="number"){var i=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]);return i<=0&&a>=0?0:a<0?a:i}return n[0]},pM=function(t,r){var n,i=(n=t.type)!==null&&n!==void 0&&n.defaultProps?ye(ye({},t.type.defaultProps),t.props):t.props,a=i.stackId;if(Se(a)){var o=r[a];if(o){var u=o.items.indexOf(t);return u>=0?o.stackedData[u]:null}}return null},vM=function(t){return t.reduce(function(r,n){return[Xa(n.concat([r[0]]).filter(L)),Va(n.concat([r[1]]).filter(L))]},[1/0,-1/0])},Wx=function(t,r,n){return Object.keys(t).reduce(function(i,a){var o=t[a],u=o.stackedData,s=u.reduce(function(c,f){var l=vM(f.slice(r,n+1));return[Math.min(c[0],l[0]),Math.max(c[1],l[1])]},[1/0,-1/0]);return[Math.min(s[0],i[0]),Math.max(s[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},Nm=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Rm=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Yl=function(t,r,n){if(Y(t))return t(r,n);if(!Array.isArray(t))return r;var i=[];if(L(t[0]))i[0]=n?t[0]:Math.min(t[0],r[0]);else if(Nm.test(t[0])){var a=+Nm.exec(t[0])[1];i[0]=r[0]-a}else Y(t[0])?i[0]=t[0](r[0]):i[0]=r[0];if(L(t[1]))i[1]=n?t[1]:Math.max(t[1],r[1]);else if(Rm.test(t[1])){var o=+Rm.exec(t[1])[1];i[1]=r[1]+o}else Y(t[1])?i[1]=t[1](r[1]):i[1]=r[1];return i},ea=function(t,r,n){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!n||i>0)return i}if(t&&r&&r.length>=2){for(var a=ih(r,function(l){return l.coordinate}),o=1/0,u=1,s=a.length;ue.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},SM=function(t,r,n,i,a){var o=t.width,u=t.height,s=t.startAngle,c=t.endAngle,f=ke(t.cx,o,o/2),l=ke(t.cy,u,u/2),h=Gx(o,u,n),p=ke(t.innerRadius,h,0),y=ke(t.outerRadius,h,h*.8),v=Object.keys(r);return v.reduce(function(d,g){var x=r[g],w=x.domain,O=x.reversed,m;if(ee(x.range))i==="angleAxis"?m=[s,c]:i==="radiusAxis"&&(m=[p,y]),O&&(m=[m[1],m[0]]);else{m=x.range;var b=m,_=gM(b,2);s=_[0],c=_[1]}var S=Fx(x,a),P=S.realScaleType,$=S.scale;$.domain(w).range(m),zx($);var j=Ux($,ht(ht({},x),{},{realScaleType:P})),T=ht(ht(ht({},x),j),{},{range:m,radius:y,realScaleType:P,scale:$,cx:f,cy:l,innerRadius:p,outerRadius:y,startAngle:s,endAngle:c});return ht(ht({},d),{},Kx({},g,T))},{})},AM=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return Math.sqrt(Math.pow(n-a,2)+Math.pow(i-o,2))},PM=function(t,r){var n=t.x,i=t.y,a=r.cx,o=r.cy,u=AM({x:n,y:i},{x:a,y:o});if(u<=0)return{radius:u};var s=(n-a)/u,c=Math.acos(s);return i>o&&(c=2*Math.PI-c),{radius:u,angle:_M(c),angleInRadian:c}},TM=function(t){var r=t.startAngle,n=t.endAngle,i=Math.floor(r/360),a=Math.floor(n/360),o=Math.min(i,a);return{startAngle:r-o*360,endAngle:n-o*360}},jM=function(t,r){var n=r.startAngle,i=r.endAngle,a=Math.floor(n/360),o=Math.floor(i/360),u=Math.min(a,o);return t+u*360},Bm=function(t,r){var n=t.x,i=t.y,a=PM({x:n,y:i},r),o=a.radius,u=a.angle,s=r.innerRadius,c=r.outerRadius;if(oc)return!1;if(o===0)return!0;var f=TM(r),l=f.startAngle,h=f.endAngle,p=u,y;if(l<=h){for(;p>h;)p-=360;for(;p=l&&p<=h}else{for(;p>l;)p-=360;for(;p=h&&p<=l}return y?ht(ht({},r),{},{radius:o,angle:jM(p,r)}):null},Vx=function(t){return!N.isValidElement(t)&&!Y(t)&&typeof t!="boolean"?t.className:""};function Ln(e){"@babel/helpers - typeof";return Ln=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ln(e)}var EM=["offset"];function MM(e){return kM(e)||IM(e)||CM(e)||$M()}function $M(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function CM(e,t){if(e){if(typeof e=="string")return Zl(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Zl(e,t)}}function IM(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function kM(e){if(Array.isArray(e))return Zl(e)}function Zl(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function RM(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Fm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function _e(e){for(var t=1;t=0?1:-1,w,O;i==="insideStart"?(w=p+x*o,O=v):i==="insideEnd"?(w=y-x*o,O=!v):i==="end"&&(w=y+x*o,O=v),O=g<=0?O:!O;var m=fe(c,f,d,w),b=fe(c,f,d,w+(O?1:-1)*359),_="M".concat(m.x,",").concat(m.y,` + A`).concat(d,",").concat(d,",0,1,").concat(O?0:1,`, + `).concat(b.x,",").concat(b.y),S=ee(t.id)?ai("recharts-radial-line-"):t.id;return A.createElement("text",Bn({},n,{dominantBaseline:"central",className:Q("recharts-radial-bar-label",u)}),A.createElement("defs",null,A.createElement("path",{id:S,d:_})),A.createElement("textPath",{xlinkHref:"#".concat(S)},r))},UM=function(t){var r=t.viewBox,n=t.offset,i=t.position,a=r,o=a.cx,u=a.cy,s=a.innerRadius,c=a.outerRadius,f=a.startAngle,l=a.endAngle,h=(f+l)/2;if(i==="outside"){var p=fe(o,u,c+n,h),y=p.x,v=p.y;return{x:y,y:v,textAnchor:y>=o?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"end"};var d=(s+c)/2,g=fe(o,u,d,h),x=g.x,w=g.y;return{x,y:w,textAnchor:"middle",verticalAnchor:"middle"}},WM=function(t){var r=t.viewBox,n=t.parentViewBox,i=t.offset,a=t.position,o=r,u=o.x,s=o.y,c=o.width,f=o.height,l=f>=0?1:-1,h=l*i,p=l>0?"end":"start",y=l>0?"start":"end",v=c>=0?1:-1,d=v*i,g=v>0?"end":"start",x=v>0?"start":"end";if(a==="top"){var w={x:u+c/2,y:s-l*i,textAnchor:"middle",verticalAnchor:p};return _e(_e({},w),n?{height:Math.max(s-n.y,0),width:c}:{})}if(a==="bottom"){var O={x:u+c/2,y:s+f+h,textAnchor:"middle",verticalAnchor:y};return _e(_e({},O),n?{height:Math.max(n.y+n.height-(s+f),0),width:c}:{})}if(a==="left"){var m={x:u-d,y:s+f/2,textAnchor:g,verticalAnchor:"middle"};return _e(_e({},m),n?{width:Math.max(m.x-n.x,0),height:f}:{})}if(a==="right"){var b={x:u+c+d,y:s+f/2,textAnchor:x,verticalAnchor:"middle"};return _e(_e({},b),n?{width:Math.max(n.x+n.width-b.x,0),height:f}:{})}var _=n?{width:c,height:f}:{};return a==="insideLeft"?_e({x:u+d,y:s+f/2,textAnchor:x,verticalAnchor:"middle"},_):a==="insideRight"?_e({x:u+c-d,y:s+f/2,textAnchor:g,verticalAnchor:"middle"},_):a==="insideTop"?_e({x:u+c/2,y:s+h,textAnchor:"middle",verticalAnchor:y},_):a==="insideBottom"?_e({x:u+c/2,y:s+f-h,textAnchor:"middle",verticalAnchor:p},_):a==="insideTopLeft"?_e({x:u+d,y:s+h,textAnchor:x,verticalAnchor:y},_):a==="insideTopRight"?_e({x:u+c-d,y:s+h,textAnchor:g,verticalAnchor:y},_):a==="insideBottomLeft"?_e({x:u+d,y:s+f-h,textAnchor:x,verticalAnchor:p},_):a==="insideBottomRight"?_e({x:u+c-d,y:s+f-h,textAnchor:g,verticalAnchor:p},_):Yr(a)&&(L(a.x)||Gt(a.x))&&(L(a.y)||Gt(a.y))?_e({x:u+ke(a.x,c),y:s+ke(a.y,f),textAnchor:"end",verticalAnchor:"end"},_):_e({x:u+c/2,y:s+f/2,textAnchor:"middle",verticalAnchor:"middle"},_)},HM=function(t){return"cx"in t&&L(t.cx)};function Te(e){var t=e.offset,r=t===void 0?5:t,n=NM(e,EM),i=_e({offset:r},n),a=i.viewBox,o=i.position,u=i.value,s=i.children,c=i.content,f=i.className,l=f===void 0?"":f,h=i.textBreakAll;if(!a||ee(u)&&ee(s)&&!N.isValidElement(c)&&!Y(c))return null;if(N.isValidElement(c))return N.cloneElement(c,i);var p;if(Y(c)){if(p=N.createElement(c,i),N.isValidElement(p))return p}else p=BM(i);var y=HM(a),v=X(i,!0);if(y&&(o==="insideStart"||o==="insideEnd"||o==="end"))return zM(i,p,v);var d=y?UM(i):WM(i);return A.createElement(rr,Bn({className:Q("recharts-label",l)},v,d,{breakAll:h}),p)}Te.displayName="Label";var Xx=function(t){var r=t.cx,n=t.cy,i=t.angle,a=t.startAngle,o=t.endAngle,u=t.r,s=t.radius,c=t.innerRadius,f=t.outerRadius,l=t.x,h=t.y,p=t.top,y=t.left,v=t.width,d=t.height,g=t.clockWise,x=t.labelViewBox;if(x)return x;if(L(v)&&L(d)){if(L(l)&&L(h))return{x:l,y:h,width:v,height:d};if(L(p)&&L(y))return{x:p,y,width:v,height:d}}return L(l)&&L(h)?{x:l,y:h,width:0,height:0}:L(r)&&L(n)?{cx:r,cy:n,startAngle:a||i||0,endAngle:o||i||0,innerRadius:c||0,outerRadius:f||s||u||0,clockWise:g}:t.viewBox?t.viewBox:{}},KM=function(t,r){return t?t===!0?A.createElement(Te,{key:"label-implicit",viewBox:r}):Se(t)?A.createElement(Te,{key:"label-implicit",viewBox:r,value:t}):N.isValidElement(t)?t.type===Te?N.cloneElement(t,{key:"label-implicit",viewBox:r}):A.createElement(Te,{key:"label-implicit",content:t,viewBox:r}):Y(t)?A.createElement(Te,{key:"label-implicit",content:t,viewBox:r}):Yr(t)?A.createElement(Te,Bn({viewBox:r},t,{key:"label-implicit"})):null:null},GM=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var i=t.children,a=Xx(t),o=Ze(i,Te).map(function(s,c){return N.cloneElement(s,{viewBox:r||a,key:"label-".concat(c)})});if(!n)return o;var u=KM(t.label,r||a);return[u].concat(MM(o))};Te.parseViewBox=Xx;Te.renderCallByParent=GM;var qc,zm;function VM(){if(zm)return qc;zm=1;function e(t){var r=t==null?0:t.length;return r?t[r-1]:void 0}return qc=e,qc}var XM=VM();const YM=ue(XM);function Fn(e){"@babel/helpers - typeof";return Fn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fn(e)}var ZM=["valueAccessor"],JM=["data","dataKey","clockWise","id","textBreakAll"];function QM(e){return n$(e)||r$(e)||t$(e)||e$()}function e$(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function t$(e,t){if(e){if(typeof e=="string")return Jl(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Jl(e,t)}}function r$(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function n$(e){if(Array.isArray(e))return Jl(e)}function Jl(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function u$(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var s$=function(t){return Array.isArray(t.value)?YM(t.value):t.value};function It(e){var t=e.valueAccessor,r=t===void 0?s$:t,n=Hm(e,ZM),i=n.data,a=n.dataKey,o=n.clockWise,u=n.id,s=n.textBreakAll,c=Hm(n,JM);return!i||!i.length?null:A.createElement(ae,{className:"recharts-label-list"},i.map(function(f,l){var h=ee(a)?r(f,l):Ce(f&&f.payload,a),p=ee(u)?{}:{id:"".concat(u,"-").concat(l)};return A.createElement(Te,ra({},X(f,!0),c,p,{parentViewBox:f.parentViewBox,value:h,textBreakAll:s,viewBox:Te.parseViewBox(ee(o)?f:Wm(Wm({},f),{},{clockWise:o})),key:"label-".concat(l),index:l}))}))}It.displayName="LabelList";function c$(e,t){return e?e===!0?A.createElement(It,{key:"labelList-implicit",data:t}):A.isValidElement(e)||Y(e)?A.createElement(It,{key:"labelList-implicit",data:t,content:e}):Yr(e)?A.createElement(It,ra({data:t},e,{key:"labelList-implicit"})):null:null}function l$(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var n=e.children,i=Ze(n,It).map(function(o,u){return N.cloneElement(o,{data:t,key:"labelList-".concat(u)})});if(!r)return i;var a=c$(e.label,t);return[a].concat(QM(i))}It.renderCallByParent=l$;function zn(e){"@babel/helpers - typeof";return zn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zn(e)}function Ql(){return Ql=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(o>c),`, + `).concat(l.x,",").concat(l.y,` + `);if(i>0){var p=fe(r,n,i,o),y=fe(r,n,i,c);h+="L ".concat(y.x,",").concat(y.y,` + A `).concat(i,",").concat(i,`,0, + `).concat(+(Math.abs(s)>180),",").concat(+(o<=c),`, + `).concat(p.x,",").concat(p.y," Z")}else h+="L ".concat(r,",").concat(n," Z");return h},v$=function(t){var r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,u=t.forceCornerRadius,s=t.cornerIsExternal,c=t.startAngle,f=t.endAngle,l=Ie(f-c),h=wi({cx:r,cy:n,radius:a,angle:c,sign:l,cornerRadius:o,cornerIsExternal:s}),p=h.circleTangency,y=h.lineTangency,v=h.theta,d=wi({cx:r,cy:n,radius:a,angle:f,sign:-l,cornerRadius:o,cornerIsExternal:s}),g=d.circleTangency,x=d.lineTangency,w=d.theta,O=s?Math.abs(c-f):Math.abs(c-f)-v-w;if(O<0)return u?"M ".concat(y.x,",").concat(y.y,` + a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 + a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 + `):Yx({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:c,endAngle:f});var m="M ".concat(y.x,",").concat(y.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(p.x,",").concat(p.y,` + A`).concat(a,",").concat(a,",0,").concat(+(O>180),",").concat(+(l<0),",").concat(g.x,",").concat(g.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(x.x,",").concat(x.y,` + `);if(i>0){var b=wi({cx:r,cy:n,radius:i,angle:c,sign:l,isExternal:!0,cornerRadius:o,cornerIsExternal:s}),_=b.circleTangency,S=b.lineTangency,P=b.theta,$=wi({cx:r,cy:n,radius:i,angle:f,sign:-l,isExternal:!0,cornerRadius:o,cornerIsExternal:s}),j=$.circleTangency,T=$.lineTangency,M=$.theta,I=s?Math.abs(c-f):Math.abs(c-f)-P-M;if(I<0&&o===0)return"".concat(m,"L").concat(r,",").concat(n,"Z");m+="L".concat(T.x,",").concat(T.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(j.x,",").concat(j.y,` + A`).concat(i,",").concat(i,",0,").concat(+(I>180),",").concat(+(l>0),",").concat(_.x,",").concat(_.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(S.x,",").concat(S.y,"Z")}else m+="L".concat(r,",").concat(n,"Z");return m},y$={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Zx=function(t){var r=Gm(Gm({},y$),t),n=r.cx,i=r.cy,a=r.innerRadius,o=r.outerRadius,u=r.cornerRadius,s=r.forceCornerRadius,c=r.cornerIsExternal,f=r.startAngle,l=r.endAngle,h=r.className;if(o0&&Math.abs(f-l)<360?d=v$({cx:n,cy:i,innerRadius:a,outerRadius:o,cornerRadius:Math.min(v,y/2),forceCornerRadius:s,cornerIsExternal:c,startAngle:f,endAngle:l}):d=Yx({cx:n,cy:i,innerRadius:a,outerRadius:o,startAngle:f,endAngle:l}),A.createElement("path",Ql({},X(r,!0),{className:p,d,role:"img"}))};function Un(e){"@babel/helpers - typeof";return Un=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Un(e)}function ef(){return ef=Object.assign?Object.assign.bind():function(e){for(var t=1;tj$.call(e,t));function cr(e,t){return e===t||!e&&!t&&e!==e&&t!==t}const $$="__v",C$="__o",I$="_owner",{getOwnPropertyDescriptor:tg,keys:rg}=Object;function k$(e,t){return e.byteLength===t.byteLength&&na(new Uint8Array(e),new Uint8Array(t))}function N$(e,t,r){let n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function R$(e,t){return e.byteLength===t.byteLength&&na(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function D$(e,t){return cr(e.getTime(),t.getTime())}function q$(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function L$(e,t){return e===t}function ng(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Array(n),a=e.entries();let o,u,s=0;for(;(o=a.next())&&!o.done;){const c=t.entries();let f=!1,l=0;for(;(u=c.next())&&!u.done;){if(i[l]){l++;continue}const h=o.value,p=u.value;if(r.equals(h[0],p[0],s,l,e,t,r)&&r.equals(h[1],p[1],h[0],p[0],e,t,r)){f=i[l]=!0;break}l++}if(!f)return!1;s++}return!0}const B$=cr;function F$(e,t,r){const n=rg(e);let i=n.length;if(rg(t).length!==i)return!1;for(;i-- >0;)if(!Jx(e,t,r,n[i]))return!1;return!0}function fn(e,t,r){const n=eg(e);let i=n.length;if(eg(t).length!==i)return!1;let a,o,u;for(;i-- >0;)if(a=n[i],!Jx(e,t,r,a)||(o=tg(e,a),u=tg(t,a),(o||u)&&(!o||!u||o.configurable!==u.configurable||o.enumerable!==u.enumerable||o.writable!==u.writable)))return!1;return!0}function z$(e,t){return cr(e.valueOf(),t.valueOf())}function U$(e,t){return e.source===t.source&&e.flags===t.flags}function ig(e,t,r){const n=e.size;if(n!==t.size)return!1;if(!n)return!0;const i=new Array(n),a=e.values();let o,u;for(;(o=a.next())&&!o.done;){const s=t.values();let c=!1,f=0;for(;(u=s.next())&&!u.done;){if(!i[f]&&r.equals(o.value,u.value,o.value,u.value,e,t,r)){c=i[f]=!0;break}f++}if(!c)return!1}return!0}function na(e,t){let r=e.byteLength;if(t.byteLength!==r||e.byteOffset!==t.byteOffset)return!1;for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function W$(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function Jx(e,t,r,n){return(n===I$||n===C$||n===$$)&&(e.$$typeof||t.$$typeof)?!0:M$(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}const H$="[object ArrayBuffer]",K$="[object Arguments]",G$="[object Boolean]",V$="[object DataView]",X$="[object Date]",Y$="[object Error]",Z$="[object Map]",J$="[object Number]",Q$="[object Object]",eC="[object RegExp]",tC="[object Set]",rC="[object String]",nC={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},iC="[object URL]",aC=Object.prototype.toString;function oC({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:r,areDatesEqual:n,areErrorsEqual:i,areFunctionsEqual:a,areMapsEqual:o,areNumbersEqual:u,areObjectsEqual:s,arePrimitiveWrappersEqual:c,areRegExpsEqual:f,areSetsEqual:l,areTypedArraysEqual:h,areUrlsEqual:p,unknownTagComparators:y}){return function(d,g,x){if(d===g)return!0;if(d==null||g==null)return!1;const w=typeof d;if(w!==typeof g)return!1;if(w!=="object")return w==="number"?u(d,g,x):w==="function"?a(d,g,x):!1;const O=d.constructor;if(O!==g.constructor)return!1;if(O===Object)return s(d,g,x);if(Array.isArray(d))return t(d,g,x);if(O===Date)return n(d,g,x);if(O===RegExp)return f(d,g,x);if(O===Map)return o(d,g,x);if(O===Set)return l(d,g,x);const m=aC.call(d);if(m===X$)return n(d,g,x);if(m===eC)return f(d,g,x);if(m===Z$)return o(d,g,x);if(m===tC)return l(d,g,x);if(m===Q$)return typeof d.then!="function"&&typeof g.then!="function"&&s(d,g,x);if(m===iC)return p(d,g,x);if(m===Y$)return i(d,g,x);if(m===K$)return s(d,g,x);if(nC[m])return h(d,g,x);if(m===H$)return e(d,g,x);if(m===V$)return r(d,g,x);if(m===G$||m===J$||m===rC)return c(d,g,x);if(y){let b=y[m];if(!b){const _=E$(d);_&&(b=y[_])}if(b)return b(d,g,x)}return!1}}function uC({circular:e,createCustomConfig:t,strict:r}){let n={areArrayBuffersEqual:k$,areArraysEqual:r?fn:N$,areDataViewsEqual:R$,areDatesEqual:D$,areErrorsEqual:q$,areFunctionsEqual:L$,areMapsEqual:r?zc(ng,fn):ng,areNumbersEqual:B$,areObjectsEqual:r?fn:F$,arePrimitiveWrappersEqual:z$,areRegExpsEqual:U$,areSetsEqual:r?zc(ig,fn):ig,areTypedArraysEqual:r?zc(na,fn):na,areUrlsEqual:W$,unknownTagComparators:void 0};if(t&&(n=Object.assign({},n,t(n))),e){const i=_i(n.areArraysEqual),a=_i(n.areMapsEqual),o=_i(n.areObjectsEqual),u=_i(n.areSetsEqual);n=Object.assign({},n,{areArraysEqual:i,areMapsEqual:a,areObjectsEqual:o,areSetsEqual:u})}return n}function sC(e){return function(t,r,n,i,a,o,u){return e(t,r,u)}}function cC({circular:e,comparator:t,createState:r,equals:n,strict:i}){if(r)return function(u,s){const{cache:c=e?new WeakMap:void 0,meta:f}=r();return t(u,s,{cache:c,equals:n,meta:f,strict:i})};if(e)return function(u,s){return t(u,s,{cache:new WeakMap,equals:n,meta:void 0,strict:i})};const a={cache:void 0,equals:n,meta:void 0,strict:i};return function(u,s){return t(u,s,a)}}const lC=Dt();Dt({strict:!0});Dt({circular:!0});Dt({circular:!0,strict:!0});Dt({createInternalComparator:()=>cr});Dt({strict:!0,createInternalComparator:()=>cr});Dt({circular:!0,createInternalComparator:()=>cr});Dt({circular:!0,createInternalComparator:()=>cr,strict:!0});function Dt(e={}){const{circular:t=!1,createInternalComparator:r,createState:n,strict:i=!1}=e,a=uC(e),o=oC(a),u=r?r(o):sC(o);return cC({circular:t,comparator:o,createState:n,equals:u,strict:i})}function fC(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function ag(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=-1,n=function i(a){r<0&&(r=a),a-r>t?(e(a),r=-1):fC(i)};requestAnimationFrame(n)}function rf(e){"@babel/helpers - typeof";return rf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rf(e)}function hC(e){return yC(e)||vC(e)||pC(e)||dC()}function dC(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function pC(e,t){if(e){if(typeof e=="string")return og(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return og(e,t)}}function og(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?1:g<0?0:g},v=function(g){for(var x=g>1?1:g,w=x,O=0;O<8;++O){var m=l(w)-x,b=p(w);if(Math.abs(m-x)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,a=i===void 0?8:i,o=t.dt,u=o===void 0?17:o,s=function(f,l,h){var p=-(f-l)*n,y=h*a,v=h+(p-y)*u/1e3,d=h*u/1e3+f;return Math.abs(d-l)e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function GC(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a=0)&&(r[i]=e[i]);return r}function Uc(e){return ZC(e)||YC(e)||XC(e)||VC()}function VC(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function XC(e,t){if(e){if(typeof e=="string")return sf(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return sf(e,t)}}function YC(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ZC(e){if(Array.isArray(e))return sf(e)}function sf(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function oa(e){return oa=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},oa(e)}var wt=(function(e){rI(r,e);var t=nI(r);function r(n,i){var a;JC(this,r),a=t.call(this,n,i);var o=a.props,u=o.isActive,s=o.attributeName,c=o.from,f=o.to,l=o.steps,h=o.children,p=o.duration;if(a.handleStyleChange=a.handleStyleChange.bind(ff(a)),a.changeStyle=a.changeStyle.bind(ff(a)),!u||p<=0)return a.state={style:{}},typeof h=="function"&&(a.state={style:f}),lf(a);if(l&&l.length)a.state={style:l[0].style};else if(c){if(typeof h=="function")return a.state={style:c},lf(a);a.state={style:s?vn({},s,c):c}}else a.state={style:{}};return a}return eI(r,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,o=i.canBegin;this.mounted=!0,!(!a||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,o=a.isActive,u=a.canBegin,s=a.attributeName,c=a.shouldReAnimate,f=a.to,l=a.from,h=this.state.style;if(u){if(!o){var p={style:s?vn({},s,f):f};this.state&&h&&(s&&h[s]!==f||!s&&h!==f)&&this.setState(p);return}if(!(lC(i.to,f)&&i.canBegin&&i.isActive)){var y=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var v=y||c?l:i.to;if(this.state&&h){var d={style:s?vn({},s,v):v};(s&&h[s]!==v||!s&&h!==v)&&this.setState(d)}this.runAnimation(et(et({},this.props),{},{from:v,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,o=i.from,u=i.to,s=i.duration,c=i.easing,f=i.begin,l=i.onAnimationEnd,h=i.onAnimationStart,p=WC(o,u,IC(c),s,this.changeStyle),y=function(){a.stopJSAnimation=p()};this.manager.start([h,f,y,s,l])}},{key:"runStepAnimation",value:function(i){var a=this,o=i.steps,u=i.begin,s=i.onAnimationStart,c=o[0],f=c.style,l=c.duration,h=l===void 0?0:l,p=function(v,d,g){if(g===0)return v;var x=d.duration,w=d.easing,O=w===void 0?"ease":w,m=d.style,b=d.properties,_=d.onAnimationEnd,S=g>0?o[g-1]:d,P=b||Object.keys(m);if(typeof O=="function"||O==="spring")return[].concat(Uc(v),[a.runJSAnimation.bind(a,{from:S.style,to:m,duration:x,easing:O}),x]);var $=cg(P,x,O),j=et(et(et({},S.style),m),{},{transition:$});return[].concat(Uc(v),[j,x,_]).filter(wC)};return this.manager.start([s].concat(Uc(o.reduce(p,[f,Math.max(h,u)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=mC());var a=i.begin,o=i.duration,u=i.attributeName,s=i.to,c=i.easing,f=i.onAnimationStart,l=i.onAnimationEnd,h=i.steps,p=i.children,y=this.manager;if(this.unSubscribe=y.subscribe(this.handleStyleChange),typeof c=="function"||typeof p=="function"||c==="spring"){this.runJSAnimation(i);return}if(h.length>1){this.runStepAnimation(i);return}var v=u?vn({},u,s):s,d=cg(Object.keys(v),o,c);y.start([f,a,et(et({},v),{},{transition:d}),o,l])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var o=i.duration;i.attributeName,i.easing;var u=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var s=KC(i,HC),c=N.Children.count(a),f=this.state.style;if(typeof a=="function")return a(f);if(!u||c===0||o<=0)return a;var l=function(p){var y=p.props,v=y.style,d=v===void 0?{}:v,g=y.className,x=N.cloneElement(p,et(et({},s),{},{style:et(et({},d),f),className:g}));return x};return c===1?l(N.Children.only(a)):A.createElement("div",null,N.Children.map(a,function(h){return l(h)}))}}]),r})(N.PureComponent);wt.displayName="Animate";wt.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};wt.propTypes={from:ie.oneOfType([ie.object,ie.string]),to:ie.oneOfType([ie.object,ie.string]),attributeName:ie.string,duration:ie.number,begin:ie.number,easing:ie.oneOfType([ie.string,ie.func]),steps:ie.arrayOf(ie.shape({duration:ie.number.isRequired,style:ie.object.isRequired,easing:ie.oneOfType([ie.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),ie.func]),properties:ie.arrayOf("string"),onAnimationEnd:ie.func})),children:ie.oneOfType([ie.node,ie.func]),isActive:ie.bool,canBegin:ie.bool,onAnimationEnd:ie.func,shouldReAnimate:ie.bool,onAnimationStart:ie.func,onAnimationReStart:ie.func};function Kn(e){"@babel/helpers - typeof";return Kn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Kn(e)}function ua(){return ua=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0?1:-1,s=n>=0?1:-1,c=i>=0&&n>=0||i<0&&n<0?1:0,f;if(o>0&&a instanceof Array){for(var l=[0,0,0,0],h=0,p=4;ho?o:a[h];f="M".concat(t,",").concat(r+u*l[0]),l[0]>0&&(f+="A ".concat(l[0],",").concat(l[0],",0,0,").concat(c,",").concat(t+s*l[0],",").concat(r)),f+="L ".concat(t+n-s*l[1],",").concat(r),l[1]>0&&(f+="A ".concat(l[1],",").concat(l[1],",0,0,").concat(c,`, + `).concat(t+n,",").concat(r+u*l[1])),f+="L ".concat(t+n,",").concat(r+i-u*l[2]),l[2]>0&&(f+="A ".concat(l[2],",").concat(l[2],",0,0,").concat(c,`, + `).concat(t+n-s*l[2],",").concat(r+i)),f+="L ".concat(t+s*l[3],",").concat(r+i),l[3]>0&&(f+="A ".concat(l[3],",").concat(l[3],",0,0,").concat(c,`, + `).concat(t,",").concat(r+i-u*l[3])),f+="Z"}else if(o>0&&a===+a&&a>0){var y=Math.min(o,a);f="M ".concat(t,",").concat(r+u*y,` + A `).concat(y,",").concat(y,",0,0,").concat(c,",").concat(t+s*y,",").concat(r,` + L `).concat(t+n-s*y,",").concat(r,` + A `).concat(y,",").concat(y,",0,0,").concat(c,",").concat(t+n,",").concat(r+u*y,` + L `).concat(t+n,",").concat(r+i-u*y,` + A `).concat(y,",").concat(y,",0,0,").concat(c,",").concat(t+n-s*y,",").concat(r+i,` + L `).concat(t+s*y,",").concat(r+i,` + A `).concat(y,",").concat(y,",0,0,").concat(c,",").concat(t,",").concat(r+i-u*y," Z")}else f="M ".concat(t,",").concat(r," h ").concat(n," v ").concat(i," h ").concat(-n," Z");return f},dI=function(t,r){if(!t||!r)return!1;var n=t.x,i=t.y,a=r.x,o=r.y,u=r.width,s=r.height;if(Math.abs(u)>0&&Math.abs(s)>0){var c=Math.min(a,a+u),f=Math.max(a,a+u),l=Math.min(o,o+s),h=Math.max(o,o+s);return n>=c&&n<=f&&i>=l&&i<=h}return!1},pI={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},$h=function(t){var r=mg(mg({},pI),t),n=N.useRef(),i=N.useState(-1),a=aI(i,2),o=a[0],u=a[1];N.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var O=n.current.getTotalLength();O&&u(O)}catch{}},[]);var s=r.x,c=r.y,f=r.width,l=r.height,h=r.radius,p=r.className,y=r.animationEasing,v=r.animationDuration,d=r.animationBegin,g=r.isAnimationActive,x=r.isUpdateAnimationActive;if(s!==+s||c!==+c||f!==+f||l!==+l||f===0||l===0)return null;var w=Q("recharts-rectangle",p);return x?A.createElement(wt,{canBegin:o>0,from:{width:f,height:l,x:s,y:c},to:{width:f,height:l,x:s,y:c},duration:v,animationEasing:y,isActive:x},function(O){var m=O.width,b=O.height,_=O.x,S=O.y;return A.createElement(wt,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:d,duration:v,isActive:g,easing:y},A.createElement("path",ua({},X(r,!0),{className:w,d:gg(_,S,m,b,h),ref:n})))}):A.createElement("path",ua({},X(r,!0),{className:w,d:gg(s,c,f,l,h)}))},vI=["points","className","baseLinePoints","connectNulls"];function yr(){return yr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function mI(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function bg(e){return wI(e)||xI(e)||bI(e)||gI()}function gI(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bI(e,t){if(e){if(typeof e=="string")return hf(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return hf(e,t)}}function xI(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wI(e){if(Array.isArray(e))return hf(e)}function hf(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[],r=[[]];return t.forEach(function(n){xg(n)?r[r.length-1].push(n):r[r.length-1].length>0&&r.push([])}),xg(t[0])&&r[r.length-1].push(t[0]),r[r.length-1].length<=0&&(r=r.slice(0,-1)),r},xn=function(t,r){var n=OI(t);r&&(n=[n.reduce(function(a,o){return[].concat(bg(a),bg(o))},[])]);var i=n.map(function(a){return a.reduce(function(o,u,s){return"".concat(o).concat(s===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return n.length===1?"".concat(i,"Z"):i},_I=function(t,r,n){var i=xn(t,n);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(xn(r.reverse(),n).slice(1))},SI=function(t){var r=t.points,n=t.className,i=t.baseLinePoints,a=t.connectNulls,o=yI(t,vI);if(!r||!r.length)return null;var u=Q("recharts-polygon",n);if(i&&i.length){var s=o.stroke&&o.stroke!=="none",c=_I(r,i,a);return A.createElement("g",{className:u},A.createElement("path",yr({},X(o,!0),{fill:c.slice(-1)==="Z"?o.fill:"none",stroke:"none",d:c})),s?A.createElement("path",yr({},X(o,!0),{fill:"none",d:xn(r,a)})):null,s?A.createElement("path",yr({},X(o,!0),{fill:"none",d:xn(i,a)})):null)}var f=xn(r,a);return A.createElement("path",yr({},X(o,!0),{fill:f.slice(-1)==="Z"?o.fill:"none",className:u,d:f}))};function df(){return df=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function $I(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var CI=function(t,r,n,i,a,o){return"M".concat(t,",").concat(a,"v").concat(i,"M").concat(o,",").concat(r,"h").concat(n)},II=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.top,u=o===void 0?0:o,s=t.left,c=s===void 0?0:s,f=t.width,l=f===void 0?0:f,h=t.height,p=h===void 0?0:h,y=t.className,v=MI(t,AI),d=PI({x:n,y:a,top:u,left:c,width:l,height:p},v);return!L(n)||!L(a)||!L(l)||!L(p)||!L(u)||!L(c)?null:A.createElement("path",pf({},X(d,!0),{className:Q("recharts-cross",y),d:CI(n,a,l,p,u,c)}))},Wc,Og;function kI(){if(Og)return Wc;Og=1;var e=Ga(),t=bx(),r=lt();function n(i,a){return i&&i.length?e(i,r(a,2),t):void 0}return Wc=n,Wc}var NI=kI();const RI=ue(NI);var Hc,_g;function DI(){if(_g)return Hc;_g=1;var e=Ga(),t=lt(),r=xx();function n(i,a){return i&&i.length?e(i,t(a,2),r):void 0}return Hc=n,Hc}var qI=DI();const LI=ue(qI);var BI=["cx","cy","angle","ticks","axisLine"],FI=["ticks","tick","angle","tickFormatter","stroke"];function Ir(e){"@babel/helpers - typeof";return Ir=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ir(e)}function wn(){return wn=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function zI(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function UI(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Pg(e,t){for(var r=0;rEg?o=i==="outer"?"start":"end":a<-Eg?o=i==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.cx,a=n.cy,o=n.radius,u=n.axisLine,s=n.axisLineType,c=Ut(Ut({},X(this.props,!1)),{},{fill:"none"},X(u,!1));if(s==="circle")return A.createElement(Ch,Kt({className:"recharts-polar-angle-axis-line"},c,{cx:i,cy:a,r:o}));var f=this.props.ticks,l=f.map(function(h){return fe(i,a,o,h.coordinate)});return A.createElement(SI,Kt({className:"recharts-polar-angle-axis-line"},c,{points:l}))}},{key:"renderTicks",value:function(){var n=this,i=this.props,a=i.ticks,o=i.tick,u=i.tickLine,s=i.tickFormatter,c=i.stroke,f=X(this.props,!1),l=X(o,!1),h=Ut(Ut({},f),{},{fill:"none"},X(u,!1)),p=a.map(function(y,v){var d=n.getTickLineCoord(y),g=n.getTickTextAnchor(y),x=Ut(Ut(Ut({textAnchor:g},f),{},{stroke:"none",fill:c},l),{},{index:v,payload:y,x:d.x2,y:d.y2});return A.createElement(ae,Kt({className:Q("recharts-polar-angle-axis-tick",Vx(o)),key:"tick-".concat(y.coordinate)},tr(n.props,y,v)),u&&A.createElement("line",Kt({className:"recharts-polar-angle-axis-tick-line"},h,d)),o&&t.renderTickItem(o,x,s?s(y.value,v):y.value))});return A.createElement(ae,{className:"recharts-polar-angle-axis-ticks"},p)}},{key:"render",value:function(){var n=this.props,i=n.ticks,a=n.radius,o=n.axisLine;return a<=0||!i||!i.length?null:A.createElement(ae,{className:Q("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(n,i,a){var o;return A.isValidElement(n)?o=A.cloneElement(n,i):Y(n)?o=n(i):o=A.createElement(rr,Kt({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),o}}])})(N.PureComponent);ro(no,"displayName","PolarAngleAxis");ro(no,"axisType","angleAxis");ro(no,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var Kc,Mg;function ik(){if(Mg)return Kc;Mg=1;var e=b0(),t=e(Object.getPrototypeOf,Object);return Kc=t,Kc}var Gc,$g;function ak(){if($g)return Gc;$g=1;var e=_t(),t=ik(),r=St(),n="[object Object]",i=Function.prototype,a=Object.prototype,o=i.toString,u=a.hasOwnProperty,s=o.call(Object);function c(f){if(!r(f)||e(f)!=n)return!1;var l=t(f);if(l===null)return!0;var h=u.call(l,"constructor")&&l.constructor;return typeof h=="function"&&h instanceof h&&o.call(h)==s}return Gc=c,Gc}var ok=ak();const uk=ue(ok);var Vc,Cg;function sk(){if(Cg)return Vc;Cg=1;var e=_t(),t=St(),r="[object Boolean]";function n(i){return i===!0||i===!1||t(i)&&e(i)==r}return Vc=n,Vc}var ck=sk();const lk=ue(ck);function Vn(e){"@babel/helpers - typeof";return Vn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vn(e)}function la(){return la=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0,from:{upperWidth:0,lowerWidth:0,height:h,x:s,y:c},to:{upperWidth:f,lowerWidth:l,height:h,x:s,y:c},duration:v,animationEasing:y,isActive:g},function(w){var O=w.upperWidth,m=w.lowerWidth,b=w.height,_=w.x,S=w.y;return A.createElement(wt,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:d,duration:v,easing:y},A.createElement("path",la({},X(r,!0),{className:x,d:Rg(_,S,O,m,b),ref:n})))}):A.createElement("g",null,A.createElement("path",la({},X(r,!0),{className:x,d:Rg(s,c,f,l,h)})))},wk=["option","shapeType","propTransformer","activeClassName","isActive"];function Xn(e){"@babel/helpers - typeof";return Xn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xn(e)}function Ok(e,t){if(e==null)return{};var r=_k(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function _k(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Dg(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function fa(e){for(var t=1;t0?He(w,"paddingAngle",0):0;if(m){var _=jt(m.endAngle-m.startAngle,w.endAngle-w.startAngle),S=ce(ce({},w),{},{startAngle:x+b,endAngle:x+_(v)+b});d.push(S),x=S.endAngle}else{var P=w.endAngle,$=w.startAngle,j=jt(0,P-$),T=j(v),M=ce(ce({},w),{},{startAngle:x+b,endAngle:x+T+b});d.push(M),x=M.endAngle}}),A.createElement(ae,null,n.renderSectorsStatically(d))})}},{key:"attachKeyboardHandlers",value:function(n){var i=this;n.onkeydown=function(a){if(!a.altKey)switch(a.key){case"ArrowLeft":{var o=++i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[o].focus(),i.setState({sectorToFocus:o});break}case"ArrowRight":{var u=--i.state.sectorToFocus<0?i.sectorRefs.length-1:i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[u].focus(),i.setState({sectorToFocus:u});break}case"Escape":{i.sectorRefs[i.state.sectorToFocus].blur(),i.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var n=this.props,i=n.sectors,a=n.isAnimationActive,o=this.state.prevSectors;return a&&i&&i.length&&(!o||!Ya(o,i))?this.renderSectorsWithAnimation():this.renderSectorsStatically(i)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var n=this,i=this.props,a=i.hide,o=i.sectors,u=i.className,s=i.label,c=i.cx,f=i.cy,l=i.innerRadius,h=i.outerRadius,p=i.isAnimationActive,y=this.state.isAnimationFinished;if(a||!o||!o.length||!L(c)||!L(f)||!L(l)||!L(h))return null;var v=Q("recharts-pie",u);return A.createElement(ae,{tabIndex:this.props.rootTabIndex,className:v,ref:function(g){n.pieRef=g}},this.renderSectors(),s&&this.renderLabels(o),Te.renderCallByParent(this.props,null,!1),(!p||y)&&It.renderCallByParent(this.props,o,!1))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return i.prevIsAnimationActive!==n.isAnimationActive?{prevIsAnimationActive:n.isAnimationActive,prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:[],isAnimationFinished:!0}:n.isAnimationActive&&n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:i.curSectors,isAnimationFinished:!0}:n.sectors!==i.curSectors?{curSectors:n.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(n,i){return n>i?"start":n=360?x:x-1)*s,O=d-x*p-w,m=i.reduce(function(S,P){var $=Ce(P,g,0);return S+(L($)?$:0)},0),b;if(m>0){var _;b=i.map(function(S,P){var $=Ce(S,g,0),j=Ce(S,f,P),T=(L($)?$:0)/m,M;P?M=_.endAngle+Ie(v)*s*($!==0?1:0):M=o;var I=M+Ie(v)*(($!==0?p:0)+T*O),C=(M+I)/2,R=(y.innerRadius+y.outerRadius)/2,D=[{name:j,value:$,payload:S,dataKey:g,type:h}],B=fe(y.cx,y.cy,R,C);return _=ce(ce(ce({percent:T,cornerRadius:a,name:j,tooltipPayload:D,midAngle:C,middleRadius:R,tooltipPosition:B},S),y),{},{value:Ce(S,g),startAngle:M,endAngle:I,payload:S,paddingAngle:Ie(v)*s}),_})}return ce(ce({},y),{},{sectors:b,data:i})});var Xc,Fg;function Wk(){if(Fg)return Xc;Fg=1;var e=Math.ceil,t=Math.max;function r(n,i,a,o){for(var u=-1,s=t(e((i-n)/(a||1)),0),c=Array(s);s--;)c[o?s:++u]=n,n+=a;return c}return Xc=r,Xc}var Yc,zg;function hw(){if(zg)return Yc;zg=1;var e=N0(),t=1/0,r=17976931348623157e292;function n(i){if(!i)return i===0?i:0;if(i=e(i),i===t||i===-t){var a=i<0?-1:1;return a*r}return i===i?i:0}return Yc=n,Yc}var Zc,Ug;function Hk(){if(Ug)return Zc;Ug=1;var e=Wk(),t=La(),r=hw();function n(i){return function(a,o,u){return u&&typeof u!="number"&&t(a,o,u)&&(o=u=void 0),a=r(a),o===void 0?(o=a,a=0):o=r(o),u=u===void 0?a0&&n.handleDrag(i.changedTouches[0])}),Fe(n,"handleDragEnd",function(){n.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=n.props,a=i.endIndex,o=i.onDragEnd,u=i.startIndex;o==null||o({endIndex:a,startIndex:u})}),n.detachDragEndListener()}),Fe(n,"handleLeaveWrapper",function(){(n.state.isTravellerMoving||n.state.isSlideMoving)&&(n.leaveTimer=window.setTimeout(n.handleDragEnd,n.props.leaveTimeOut))}),Fe(n,"handleEnterSlideOrTraveller",function(){n.setState({isTextActive:!0})}),Fe(n,"handleLeaveSlideOrTraveller",function(){n.setState({isTextActive:!1})}),Fe(n,"handleSlideDragStart",function(i){var a=Xg(i)?i.changedTouches[0]:i;n.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),n.attachDragEndListener()}),n.travellerDragStartHandlers={startX:n.handleTravellerDragStart.bind(n,"startX"),endX:n.handleTravellerDragStart.bind(n,"endX")},n.state={},n}return nN(t,e),Qk(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(n){var i=n.startX,a=n.endX,o=this.state.scaleValues,u=this.props,s=u.gap,c=u.data,f=c.length-1,l=Math.min(i,a),h=Math.max(i,a),p=t.getIndexInRange(o,l),y=t.getIndexInRange(o,h);return{startIndex:p-p%s,endIndex:y===f?f:y-y%s}}},{key:"getTextOfTick",value:function(n){var i=this.props,a=i.data,o=i.tickFormatter,u=i.dataKey,s=Ce(a[n],u,n);return Y(o)?o(s,n):s}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(n){var i=this.state,a=i.slideMoveStartX,o=i.startX,u=i.endX,s=this.props,c=s.x,f=s.width,l=s.travellerWidth,h=s.startIndex,p=s.endIndex,y=s.onChange,v=n.pageX-a;v>0?v=Math.min(v,c+f-l-u,c+f-l-o):v<0&&(v=Math.max(v,c-o,c-u));var d=this.getIndex({startX:o+v,endX:u+v});(d.startIndex!==h||d.endIndex!==p)&&y&&y(d),this.setState({startX:o+v,endX:u+v,slideMoveStartX:n.pageX})}},{key:"handleTravellerDragStart",value:function(n,i){var a=Xg(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:n,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(n){var i=this.state,a=i.brushMoveStartX,o=i.movingTravellerId,u=i.endX,s=i.startX,c=this.state[o],f=this.props,l=f.x,h=f.width,p=f.travellerWidth,y=f.onChange,v=f.gap,d=f.data,g={startX:this.state.startX,endX:this.state.endX},x=n.pageX-a;x>0?x=Math.min(x,l+h-p-c):x<0&&(x=Math.max(x,l-c)),g[o]=c+x;var w=this.getIndex(g),O=w.startIndex,m=w.endIndex,b=function(){var S=d.length-1;return o==="startX"&&(u>s?O%v===0:m%v===0)||us?m%v===0:O%v===0)||u>s&&m===S};this.setState(Fe(Fe({},o,c+x),"brushMoveStartX",n.pageX),function(){y&&b()&&y(w)})}},{key:"handleTravellerMoveKeyboard",value:function(n,i){var a=this,o=this.state,u=o.scaleValues,s=o.startX,c=o.endX,f=this.state[i],l=u.indexOf(f);if(l!==-1){var h=l+n;if(!(h===-1||h>=u.length)){var p=u[h];i==="startX"&&p>=c||i==="endX"&&p<=s||this.setState(Fe({},i,p),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,u=n.height,s=n.fill,c=n.stroke;return A.createElement("rect",{stroke:c,fill:s,x:i,y:a,width:o,height:u})}},{key:"renderPanorama",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,u=n.height,s=n.data,c=n.children,f=n.padding,l=N.Children.only(c);return l?A.cloneElement(l,{x:i,y:a,width:o,height:u,margin:f,compact:!0,data:s}):null}},{key:"renderTravellerLayer",value:function(n,i){var a,o,u=this,s=this.props,c=s.y,f=s.travellerWidth,l=s.height,h=s.traveller,p=s.ariaLabel,y=s.data,v=s.startIndex,d=s.endIndex,g=Math.max(n,this.props.x),x=Qc(Qc({},X(this.props,!1)),{},{x:g,y:c,width:f,height:l}),w=p||"Min value: ".concat((a=y[v])===null||a===void 0?void 0:a.name,", Max value: ").concat((o=y[d])===null||o===void 0?void 0:o.name);return A.createElement(ae,{tabIndex:0,role:"slider","aria-label":w,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(m){["ArrowLeft","ArrowRight"].includes(m.key)&&(m.preventDefault(),m.stopPropagation(),u.handleTravellerMoveKeyboard(m.key==="ArrowRight"?1:-1,i))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(h,x))}},{key:"renderSlide",value:function(n,i){var a=this.props,o=a.y,u=a.height,s=a.stroke,c=a.travellerWidth,f=Math.min(n,i)+c,l=Math.max(Math.abs(i-n)-c,0);return A.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:s,fillOpacity:.2,x:f,y:o,width:l,height:u})}},{key:"renderText",value:function(){var n=this.props,i=n.startIndex,a=n.endIndex,o=n.y,u=n.height,s=n.travellerWidth,c=n.stroke,f=this.state,l=f.startX,h=f.endX,p=5,y={pointerEvents:"none",fill:c};return A.createElement(ae,{className:"recharts-brush-texts"},A.createElement(rr,pa({textAnchor:"end",verticalAnchor:"middle",x:Math.min(l,h)-p,y:o+u/2},y),this.getTextOfTick(i)),A.createElement(rr,pa({textAnchor:"start",verticalAnchor:"middle",x:Math.max(l,h)+s+p,y:o+u/2},y),this.getTextOfTick(a)))}},{key:"render",value:function(){var n=this.props,i=n.data,a=n.className,o=n.children,u=n.x,s=n.y,c=n.width,f=n.height,l=n.alwaysShowText,h=this.state,p=h.startX,y=h.endX,v=h.isTextActive,d=h.isSlideMoving,g=h.isTravellerMoving,x=h.isTravellerFocused;if(!i||!i.length||!L(u)||!L(s)||!L(c)||!L(f)||c<=0||f<=0)return null;var w=Q("recharts-brush",a),O=A.Children.count(o)===1,m=Zk("userSelect","none");return A.createElement(ae,{className:w,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:m},this.renderBackground(),O&&this.renderPanorama(),this.renderSlide(p,y),this.renderTravellerLayer(p,"startX"),this.renderTravellerLayer(y,"endX"),(v||d||g||x||l)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(n){var i=n.x,a=n.y,o=n.width,u=n.height,s=n.stroke,c=Math.floor(a+u/2)-1;return A.createElement(A.Fragment,null,A.createElement("rect",{x:i,y:a,width:o,height:u,fill:s,stroke:"none"}),A.createElement("line",{x1:i+1,y1:c,x2:i+o-1,y2:c,fill:"none",stroke:"#fff"}),A.createElement("line",{x1:i+1,y1:c+2,x2:i+o-1,y2:c+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(n,i){var a;return A.isValidElement(n)?a=A.cloneElement(n,i):Y(n)?a=n(i):a=t.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(n,i){var a=n.data,o=n.width,u=n.x,s=n.travellerWidth,c=n.updateId,f=n.startIndex,l=n.endIndex;if(a!==i.prevData||c!==i.prevUpdateId)return Qc({prevData:a,prevTravellerWidth:s,prevUpdateId:c,prevX:u,prevWidth:o},a&&a.length?aN({data:a,width:o,x:u,travellerWidth:s,startIndex:f,endIndex:l}):{scale:null,scaleValues:null});if(i.scale&&(o!==i.prevWidth||u!==i.prevX||s!==i.prevTravellerWidth)){i.scale.range([u,u+o-s]);var h=i.scale.domain().map(function(p){return i.scale(p)});return{prevData:a,prevTravellerWidth:s,prevUpdateId:c,prevX:u,prevWidth:o,startX:i.scale(n.startIndex),endX:i.scale(n.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(n,i){for(var a=n.length,o=0,u=a-1;u-o>1;){var s=Math.floor((o+u)/2);n[s]>i?u=s:o=s}return i>=n[u]?u:o}}])})(N.PureComponent);Fe(Dr,"displayName","Brush");Fe(Dr,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var el,Yg;function oN(){if(Yg)return el;Yg=1;var e=nh();function t(r,n){var i;return e(r,function(a,o,u){return i=n(a,o,u),!i}),!!i}return el=t,el}var tl,Zg;function uN(){if(Zg)return tl;Zg=1;var e=h0(),t=lt(),r=oN(),n=Le(),i=La();function a(o,u,s){var c=n(o)?e:r;return s&&i(o,u,s)&&(u=void 0),c(o,t(u,3))}return tl=a,tl}var sN=uN();const cN=ue(sN);var ut=function(t,r){var n=t.alwaysShow,i=t.ifOverflow;return n&&(i="extendDomain"),i===r},rl,Jg;function lN(){if(Jg)return rl;Jg=1;var e=M0();function t(r,n,i){n=="__proto__"&&e?e(r,n,{configurable:!0,enumerable:!0,value:i,writable:!0}):r[n]=i}return rl=t,rl}var nl,Qg;function fN(){if(Qg)return nl;Qg=1;var e=lN(),t=j0(),r=lt();function n(i,a){var o={};return a=r(a,3),t(i,function(u,s,c){e(o,s,a(u,s,c))}),o}return nl=n,nl}var hN=fN();const dN=ue(hN);var il,eb;function pN(){if(eb)return il;eb=1;function e(t,r){for(var n=-1,i=t==null?0:t.length;++n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function _N(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function SN(e,t){var r=e.x,n=e.y,i=ON(e,gN),a="".concat(r),o=parseInt(a,10),u="".concat(n),s=parseInt(u,10),c="".concat(t.height||i.height),f=parseInt(c,10),l="".concat(t.width||i.width),h=parseInt(l,10);return hn(hn(hn(hn(hn({},t),i),o?{x:o}:{}),s?{y:s}:{}),{},{height:f,width:h,name:t.name,radius:t.radius})}function ib(e){return A.createElement(cw,bf({shapeType:"rectangle",propTransformer:SN,activeClassName:"recharts-active-bar"},e))}var AN=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(n,i){if(typeof t=="number")return t;var a=L(n)||KO(n);return a?t(n,i):(a||ir(),r)}},PN=["value","background"],mw;function qr(e){"@babel/helpers - typeof";return qr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qr(e)}function TN(e,t){if(e==null)return{};var r=jN(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function jN(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ya(){return ya=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(C)0&&Math.abs(I)0&&(M=Math.min((he||0)-(I[me-1]||0),M))}),Number.isFinite(M)){var C=M/T,R=v.layout==="vertical"?n.height:n.width;if(v.padding==="gap"&&(_=C*R/2),v.padding==="no-gap"){var D=ke(t.barCategoryGap,C*R),B=C*R/2;_=B-D-(B-D)/R*D}}}i==="xAxis"?S=[n.left+(w.left||0)+(_||0),n.left+n.width-(w.right||0)-(_||0)]:i==="yAxis"?S=s==="horizontal"?[n.top+n.height-(w.bottom||0),n.top+(w.top||0)]:[n.top+(w.top||0)+(_||0),n.top+n.height-(w.bottom||0)-(_||0)]:S=v.range,m&&(S=[S[1],S[0]]);var F=Fx(v,a,h),H=F.scale,G=F.realScaleType;H.domain(g).range(S),zx(H);var U=Ux(H,tt(tt({},v),{},{realScaleType:G}));i==="xAxis"?(j=d==="top"&&!O||d==="bottom"&&O,P=n.left,$=l[b]-j*v.height):i==="yAxis"&&(j=d==="left"&&!O||d==="right"&&O,P=l[b]-j*v.width,$=n.top);var V=tt(tt(tt({},v),U),{},{realScaleType:G,x:P,y:$,scale:H,width:i==="xAxis"?n.width:v.width,height:i==="yAxis"?n.height:v.height});return V.bandSize=ea(V,U),!v.hide&&i==="xAxis"?l[b]+=(j?-1:1)*V.height:v.hide||(l[b]+=(j?-1:1)*V.width),tt(tt({},p),{},oo({},y,V))},{})},ww=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return{x:Math.min(n,a),y:Math.min(i,o),width:Math.abs(a-n),height:Math.abs(o-i)}},BN=function(t){var r=t.x1,n=t.y1,i=t.x2,a=t.y2;return ww({x:r,y:n},{x:i,y:a})},Ow=(function(){function e(t){RN(this,e),this.scale=t}return DN(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.bandAware,a=n.position;if(r!==void 0){if(a)switch(a){case"start":return this.scale(r);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+o}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(r)+u}default:return this.scale(r)}if(i){var s=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+s}return this.scale(r)}}},{key:"isInRange",value:function(r){var n=this.range(),i=n[0],a=n[n.length-1];return i<=a?r>=i&&r<=a:r>=a&&r<=i}}],[{key:"create",value:function(r){return new e(r)}}])})();oo(Ow,"EPS",1e-4);var Ih=function(t){var r=Object.keys(t).reduce(function(n,i){return tt(tt({},n),{},oo({},i,Ow.create(t[i])))},{});return tt(tt({},r),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=a.bandAware,u=a.position;return dN(i,function(s,c){return r[c].apply(s,{bandAware:o,position:u})})},isInRange:function(i){return yw(i,function(a,o){return r[o].isInRange(a)})}})};function FN(e){return(e%180+180)%180}var zN=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=FN(i),o=a*Math.PI/180,u=Math.atan(n/r),s=o>u&&o-1?s[c?a[f]:f]:void 0}}return ul=n,ul}var sl,lb;function WN(){if(lb)return sl;lb=1;var e=hw();function t(r){var n=e(r),i=n%1;return n===n?i?n-i:n:0}return sl=t,sl}var cl,fb;function HN(){if(fb)return cl;fb=1;var e=_0(),t=lt(),r=WN(),n=Math.max;function i(a,o,u){var s=a==null?0:a.length;if(!s)return-1;var c=u==null?0:r(u);return c<0&&(c=n(s+c,0)),e(a,t(o,3),c)}return cl=i,cl}var ll,hb;function KN(){if(hb)return ll;hb=1;var e=UN(),t=HN(),r=e(t);return ll=r,ll}var GN=KN();const VN=ue(GN);var XN=Lb();const YN=ue(XN);var ZN=YN(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),kh=N.createContext(void 0),Nh=N.createContext(void 0),_w=N.createContext(void 0),Sw=N.createContext({}),Aw=N.createContext(void 0),Pw=N.createContext(0),Tw=N.createContext(0),db=function(t){var r=t.state,n=r.xAxisMap,i=r.yAxisMap,a=r.offset,o=t.clipPathId,u=t.children,s=t.width,c=t.height,f=ZN(a);return A.createElement(kh.Provider,{value:n},A.createElement(Nh.Provider,{value:i},A.createElement(Sw.Provider,{value:a},A.createElement(_w.Provider,{value:f},A.createElement(Aw.Provider,{value:o},A.createElement(Pw.Provider,{value:c},A.createElement(Tw.Provider,{value:s},u)))))))},JN=function(){return N.useContext(Aw)},jw=function(t){var r=N.useContext(kh);r==null&&ir();var n=r[t];return n==null&&ir(),n},QN=function(){var t=N.useContext(kh);return Mt(t)},eR=function(){var t=N.useContext(Nh),r=VN(t,function(n){return yw(n.domain,Number.isFinite)});return r||Mt(t)},Ew=function(t){var r=N.useContext(Nh);r==null&&ir();var n=r[t];return n==null&&ir(),n},tR=function(){var t=N.useContext(_w);return t},rR=function(){return N.useContext(Sw)},Rh=function(){return N.useContext(Tw)},Dh=function(){return N.useContext(Pw)};function Lr(e){"@babel/helpers - typeof";return Lr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Lr(e)}function nR(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function iR(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);re*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function LR(e,t){return Rw(e,t+1)}function BR(e,t,r,n,i){for(var a=(n||[]).slice(),o=t.start,u=t.end,s=0,c=1,f=o,l=function(){var y=n==null?void 0:n[s];if(y===void 0)return{v:Rw(n,c)};var v=s,d,g=function(){return d===void 0&&(d=r(y,v)),d},x=y.coordinate,w=s===0||wa(e,x,g,f,u);w||(s=0,f=o,c+=1),w&&(f=x+e*(g()/2+i),s+=c)},h;c<=a.length;)if(h=l(),h)return h.v;return[]}function ei(e){"@babel/helpers - typeof";return ei=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ei(e)}function wb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Me(e){for(var t=1;t0?p.coordinate-d*e:p.coordinate})}else a[h]=p=Me(Me({},p),{},{tickCoord:p.coordinate});var g=wa(e,p.tickCoord,v,u,s);g&&(s=p.tickCoord-e*(v()/2+i),a[h]=Me(Me({},p),{},{isShow:!0}))},f=o-1;f>=0;f--)c(f);return a}function HR(e,t,r,n,i,a){var o=(n||[]).slice(),u=o.length,s=t.start,c=t.end;if(a){var f=n[u-1],l=r(f,u-1),h=e*(f.coordinate+e*l/2-c);o[u-1]=f=Me(Me({},f),{},{tickCoord:h>0?f.coordinate-h*e:f.coordinate});var p=wa(e,f.tickCoord,function(){return l},s,c);p&&(c=f.tickCoord-e*(l/2+i),o[u-1]=Me(Me({},f),{},{isShow:!0}))}for(var y=a?u-1:u,v=function(x){var w=o[x],O,m=function(){return O===void 0&&(O=r(w,x)),O};if(x===0){var b=e*(w.coordinate-e*m()/2-s);o[x]=w=Me(Me({},w),{},{tickCoord:b<0?w.coordinate-b*e:w.coordinate})}else o[x]=w=Me(Me({},w),{},{tickCoord:w.coordinate});var _=wa(e,w.tickCoord,m,s,c);_&&(s=w.tickCoord+e*(m()/2+i),o[x]=Me(Me({},w),{},{isShow:!0}))},d=0;d=2?Ie(i[1].coordinate-i[0].coordinate):1,g=qR(a,d,p);return s==="equidistantPreserveStart"?BR(d,g,v,i,o):(s==="preserveStart"||s==="preserveStartEnd"?h=HR(d,g,v,i,o,s==="preserveStartEnd"):h=WR(d,g,v,i,o),h.filter(function(x){return x.isShow}))}var KR=["viewBox"],GR=["viewBox"],VR=["ticks"];function zr(e){"@babel/helpers - typeof";return zr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zr(e)}function gr(){return gr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function XR(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function YR(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _b(e,t){for(var r=0;r0?s(this.props):s(p)),o<=0||u<=0||!y||!y.length?null:A.createElement(ae,{className:Q("recharts-cartesian-axis",c),ref:function(d){n.layerReference=d}},a&&this.renderAxisLine(),this.renderTicks(y,this.state.fontSize,this.state.letterSpacing),Te.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,i,a){var o,u=Q(i.className,"recharts-cartesian-axis-tick-value");return A.isValidElement(n)?o=A.cloneElement(n,Oe(Oe({},i),{},{className:u})):Y(n)?o=n(Oe(Oe({},i),{},{className:u})):o=A.createElement(rr,gr({},i,{className:"recharts-cartesian-axis-tick-value"}),a),o}}])})(N.Component);Fh(rn,"displayName","CartesianAxis");Fh(rn,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var nD=["x1","y1","x2","y2","key"],iD=["offset"];function ar(e){"@babel/helpers - typeof";return ar=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ar(e)}function Sb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function $e(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function sD(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var cD=function(t){var r=t.fill;if(!r||r==="none")return null;var n=t.fillOpacity,i=t.x,a=t.y,o=t.width,u=t.height,s=t.ry;return A.createElement("rect",{x:i,y:a,ry:s,width:o,height:u,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function Lw(e,t){var r;if(A.isValidElement(e))r=A.cloneElement(e,t);else if(Y(e))r=e(t);else{var n=t.x1,i=t.y1,a=t.x2,o=t.y2,u=t.key,s=Ab(t,nD),c=X(s,!1);c.offset;var f=Ab(c,iD);r=A.createElement("line",Yt({},f,{x1:n,y1:i,x2:a,y2:o,fill:"none",key:u}))}return r}function lD(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(u,s){var c=$e($e({},e),{},{x1:t,y1:u,x2:t+r,y2:u,key:"line-".concat(s),index:s});return Lw(i,c)});return A.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function fD(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(u,s){var c=$e($e({},e),{},{x1:u,y1:t,x2:u,y2:t+r,key:"line-".concat(s),index:s});return Lw(i,c)});return A.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function hD(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,u=e.horizontalPoints,s=e.horizontal,c=s===void 0?!0:s;if(!c||!t||!t.length)return null;var f=u.map(function(h){return Math.round(h+i-i)}).sort(function(h,p){return h-p});i!==f[0]&&f.unshift(0);var l=f.map(function(h,p){var y=!f[p+1],v=y?i+o-h:f[p+1]-h;if(v<=0)return null;var d=p%t.length;return A.createElement("rect",{key:"react-".concat(p),y:h,x:n,height:v,width:a,stroke:"none",fill:t[d],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return A.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},l)}function dD(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,u=e.width,s=e.height,c=e.verticalPoints;if(!r||!n||!n.length)return null;var f=c.map(function(h){return Math.round(h+a-a)}).sort(function(h,p){return h-p});a!==f[0]&&f.unshift(0);var l=f.map(function(h,p){var y=!f[p+1],v=y?a+u-h:f[p+1]-h;if(v<=0)return null;var d=p%n.length;return A.createElement("rect",{key:"react-".concat(p),x:h,y:o,width:v,height:s,stroke:"none",fill:n[d],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return A.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},l)}var pD=function(t,r){var n=t.xAxis,i=t.width,a=t.height,o=t.offset;return Bx(Bh($e($e($e({},rn.defaultProps),n),{},{ticks:vt(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,r)},vD=function(t,r){var n=t.yAxis,i=t.width,a=t.height,o=t.offset;return Bx(Bh($e($e($e({},rn.defaultProps),n),{},{ticks:vt(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,r)},dr={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function _a(e){var t,r,n,i,a,o,u=Rh(),s=Dh(),c=rR(),f=$e($e({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:dr.stroke,fill:(r=e.fill)!==null&&r!==void 0?r:dr.fill,horizontal:(n=e.horizontal)!==null&&n!==void 0?n:dr.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:dr.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:dr.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:dr.verticalFill,x:L(e.x)?e.x:c.left,y:L(e.y)?e.y:c.top,width:L(e.width)?e.width:c.width,height:L(e.height)?e.height:c.height}),l=f.x,h=f.y,p=f.width,y=f.height,v=f.syncWithTicks,d=f.horizontalValues,g=f.verticalValues,x=QN(),w=eR();if(!L(p)||p<=0||!L(y)||y<=0||!L(l)||l!==+l||!L(h)||h!==+h)return null;var O=f.verticalCoordinatesGenerator||pD,m=f.horizontalCoordinatesGenerator||vD,b=f.horizontalPoints,_=f.verticalPoints;if((!b||!b.length)&&Y(m)){var S=d&&d.length,P=m({yAxis:w?$e($e({},w),{},{ticks:S?d:w.ticks}):void 0,width:u,height:s,offset:c},S?!0:v);nt(Array.isArray(P),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(ar(P),"]")),Array.isArray(P)&&(b=P)}if((!_||!_.length)&&Y(O)){var $=g&&g.length,j=O({xAxis:x?$e($e({},x),{},{ticks:$?g:x.ticks}):void 0,width:u,height:s,offset:c},$?!0:v);nt(Array.isArray(j),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(ar(j),"]")),Array.isArray(j)&&(_=j)}return A.createElement("g",{className:"recharts-cartesian-grid"},A.createElement(cD,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),A.createElement(lD,Yt({},f,{offset:c,horizontalPoints:b,xAxis:x,yAxis:w})),A.createElement(fD,Yt({},f,{offset:c,verticalPoints:_,xAxis:x,yAxis:w})),A.createElement(hD,Yt({},f,{horizontalPoints:b})),A.createElement(dD,Yt({},f,{verticalPoints:_})))}_a.displayName="CartesianGrid";function Ur(e){"@babel/helpers - typeof";return Ur=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ur(e)}function yD(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mD(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function i2(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function a2(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o2(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?o:t&&t.length&&L(i)&&L(a)?t.slice(i,a+1):[]};function Jw(e){return e==="number"?[0,"auto"]:void 0}var Rf=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,u=fo(r,t);return n<0||!a||!a.length||n>=u.length?null:a.reduce(function(s,c){var f,l=(f=c.props.data)!==null&&f!==void 0?f:r;l&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(l=l.slice(t.dataStartIndex,t.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var p=l===void 0?u:l;h=yl(p,o.dataKey,i)}else h=l&&l[n]||u[n];return h?[].concat(Vr(s),[Hx(c,h)]):s},[])},Cb=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=g2(a,n),u=t.orderedTooltipTicks,s=t.tooltipAxis,c=t.tooltipTicks,f=eM(o,u,c,s);if(f>=0&&c){var l=c[f]&&c[f].value,h=Rf(t,r,f,l),p=b2(n,u,f,a);return{activeTooltipIndex:f,activeLabel:l,activePayload:h,activeCoordinate:p}}return null},x2=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,u=r.stackGroups,s=r.dataStartIndex,c=r.dataEndIndex,f=t.layout,l=t.children,h=t.stackOffset,p=Lx(f,a);return n.reduce(function(y,v){var d,g=v.type.defaultProps!==void 0?k(k({},v.type.defaultProps),v.props):v.props,x=g.type,w=g.dataKey,O=g.allowDataOverflow,m=g.allowDuplicatedCategory,b=g.scale,_=g.ticks,S=g.includeHidden,P=g[o];if(y[P])return y;var $=fo(t.data,{graphicalItems:i.filter(function(U){var V,he=o in U.props?U.props[o]:(V=U.type.defaultProps)===null||V===void 0?void 0:V[o];return he===P}),dataStartIndex:s,dataEndIndex:c}),j=$.length,T,M,I;KD(g.domain,O,x)&&(T=Yl(g.domain,null,O),p&&(x==="number"||b!=="auto")&&(I=gn($,w,"category")));var C=Jw(x);if(!T||T.length===0){var R,D=(R=g.domain)!==null&&R!==void 0?R:C;if(w){if(T=gn($,w,x),x==="category"&&p){var B=VO(T);m&&B?(M=T,T=da(0,j)):m||(T=Dm(D,T,v).reduce(function(U,V){return U.indexOf(V)>=0?U:[].concat(Vr(U),[V])},[]))}else if(x==="category")m?T=T.filter(function(U){return U!==""&&!ee(U)}):T=Dm(D,T,v).reduce(function(U,V){return U.indexOf(V)>=0||V===""||ee(V)?U:[].concat(Vr(U),[V])},[]);else if(x==="number"){var F=aM($,i.filter(function(U){var V,he,me=o in U.props?U.props[o]:(V=U.type.defaultProps)===null||V===void 0?void 0:V[o],Be="hide"in U.props?U.props.hide:(he=U.type.defaultProps)===null||he===void 0?void 0:he.hide;return me===P&&(S||!Be)}),w,a,f);F&&(T=F)}p&&(x==="number"||b!=="auto")&&(I=gn($,w,"category"))}else p?T=da(0,j):u&&u[P]&&u[P].hasStack&&x==="number"?T=h==="expand"?[0,1]:Wx(u[P].stackGroups,s,c):T=qx($,i.filter(function(U){var V=o in U.props?U.props[o]:U.type.defaultProps[o],he="hide"in U.props?U.props.hide:U.type.defaultProps.hide;return V===P&&(S||!he)}),x,f,!0);if(x==="number")T=If(l,T,P,a,_),D&&(T=Yl(D,T,O));else if(x==="category"&&D){var H=D,G=T.every(function(U){return H.indexOf(U)>=0});G&&(T=H)}}return k(k({},y),{},K({},P,k(k({},g),{},{axisType:a,domain:T,categoricalDomain:I,duplicateDomain:M,originalDomain:(d=g.domain)!==null&&d!==void 0?d:C,isCategorical:p,layout:f})))},{})},w2=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,u=r.stackGroups,s=r.dataStartIndex,c=r.dataEndIndex,f=t.layout,l=t.children,h=fo(t.data,{graphicalItems:n,dataStartIndex:s,dataEndIndex:c}),p=h.length,y=Lx(f,a),v=-1;return n.reduce(function(d,g){var x=g.type.defaultProps!==void 0?k(k({},g.type.defaultProps),g.props):g.props,w=x[o],O=Jw("number");if(!d[w]){v++;var m;return y?m=da(0,p):u&&u[w]&&u[w].hasStack?(m=Wx(u[w].stackGroups,s,c),m=If(l,m,w,a)):(m=Yl(O,qx(h,n.filter(function(b){var _,S,P=o in b.props?b.props[o]:(_=b.type.defaultProps)===null||_===void 0?void 0:_[o],$="hide"in b.props?b.props.hide:(S=b.type.defaultProps)===null||S===void 0?void 0:S.hide;return P===w&&!$}),"number",f),i.defaultProps.allowDataOverflow),m=If(l,m,w,a)),k(k({},d),{},K({},w,k(k({axisType:a},i.defaultProps),{},{hide:!0,orientation:He(y2,"".concat(a,".").concat(v%2),null),domain:m,originalDomain:O,isCategorical:y,layout:f})))}return d},{})},O2=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,u=r.stackGroups,s=r.dataStartIndex,c=r.dataEndIndex,f=t.children,l="".concat(i,"Id"),h=Ze(f,a),p={};return h&&h.length?p=x2(t,{axes:h,graphicalItems:o,axisType:i,axisIdKey:l,stackGroups:u,dataStartIndex:s,dataEndIndex:c}):o&&o.length&&(p=w2(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:l,stackGroups:u,dataStartIndex:s,dataEndIndex:c})),p},_2=function(t){var r=Mt(t),n=vt(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:ih(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:ea(r,n)}},Ib=function(t){var r=t.children,n=t.defaultShowTooltip,i=ze(r,Dr),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},S2=function(t){return!t||!t.length?!1:t.some(function(r){var n=yt(r&&r.type);return n&&n.indexOf("Bar")>=0})},kb=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},A2=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,u=t.yAxisMap,s=u===void 0?{}:u,c=n.width,f=n.height,l=n.children,h=n.margin||{},p=ze(l,Dr),y=ze(l,Zt),v=Object.keys(s).reduce(function(m,b){var _=s[b],S=_.orientation;return!_.mirror&&!_.hide?k(k({},m),{},K({},S,m[S]+_.width)):m},{left:h.left||0,right:h.right||0}),d=Object.keys(o).reduce(function(m,b){var _=o[b],S=_.orientation;return!_.mirror&&!_.hide?k(k({},m),{},K({},S,He(m,"".concat(S))+_.height)):m},{top:h.top||0,bottom:h.bottom||0}),g=k(k({},d),v),x=g.bottom;p&&(g.bottom+=p.props.height||Dr.defaultProps.height),y&&r&&(g=nM(g,i,n,r));var w=c-g.left-g.right,O=f-g.top-g.bottom;return k(k({brushBottom:x},g),{},{width:Math.max(w,0),height:Math.max(O,0)})},P2=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},Qw=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,u=o===void 0?["axis"]:o,s=t.axisComponents,c=t.legendContent,f=t.formatAxisMap,l=t.defaultProps,h=function(g,x){var w=x.graphicalItems,O=x.stackGroups,m=x.offset,b=x.updateId,_=x.dataStartIndex,S=x.dataEndIndex,P=g.barSize,$=g.layout,j=g.barGap,T=g.barCategoryGap,M=g.maxBarSize,I=kb($),C=I.numericAxisName,R=I.cateAxisName,D=S2(w),B=[];return w.forEach(function(F,H){var G=fo(g.data,{graphicalItems:[F],dataStartIndex:_,dataEndIndex:S}),U=F.type.defaultProps!==void 0?k(k({},F.type.defaultProps),F.props):F.props,V=U.dataKey,he=U.maxBarSize,me=U["".concat(C,"Id")],Be=U["".concat(R,"Id")],qt={},Re=s.reduce(function(Lt,Bt){var ho=x["".concat(Bt.axisType,"Map")],zh=U["".concat(Bt.axisType,"Id")];ho&&ho[zh]||Bt.axisType==="zAxis"||ir();var Uh=ho[zh];return k(k({},Lt),{},K(K({},Bt.axisType,Uh),"".concat(Bt.axisType,"Ticks"),vt(Uh)))},qt),z=Re[R],Z=Re["".concat(R,"Ticks")],J=O&&O[me]&&O[me].hasStack&&pM(F,O[me].stackGroups),q=yt(F.type).indexOf("Bar")>=0,ve=ea(z,Z),te=[],xe=D&&tM({barSize:P,stackGroups:O,totalSize:P2(Re,R)});if(q){var we,De,Tt=ee(he)?M:he,lr=(we=(De=ea(z,Z,!0))!==null&&De!==void 0?De:Tt)!==null&&we!==void 0?we:0;te=rM({barGap:j,barCategoryGap:T,bandSize:lr!==ve?lr:ve,sizeList:xe[Be],maxBarSize:Tt}),lr!==ve&&(te=te.map(function(Lt){return k(k({},Lt),{},{position:k(k({},Lt.position),{},{offset:Lt.position.offset-lr/2})})}))}var fi=F&&F.type&&F.type.getComposedData;fi&&B.push({props:k(k({},fi(k(k({},Re),{},{displayedData:G,props:g,dataKey:V,item:F,bandSize:ve,barPosition:te,offset:m,stackedData:J,layout:$,dataStartIndex:_,dataEndIndex:S}))),{},K(K(K({key:F.key||"item-".concat(H)},C,Re[C]),R,Re[R]),"animationId",b)),childIndex:o_(F,g.children),item:F})}),B},p=function(g,x){var w=g.props,O=g.dataStartIndex,m=g.dataEndIndex,b=g.updateId;if(!Jd({props:w}))return null;var _=w.children,S=w.layout,P=w.stackOffset,$=w.data,j=w.reverseStackOrder,T=kb(S),M=T.numericAxisName,I=T.cateAxisName,C=Ze(_,n),R=hM($,C,"".concat(M,"Id"),"".concat(I,"Id"),P,j),D=s.reduce(function(U,V){var he="".concat(V.axisType,"Map");return k(k({},U),{},K({},he,O2(w,k(k({},V),{},{graphicalItems:C,stackGroups:V.axisType===M&&R,dataStartIndex:O,dataEndIndex:m}))))},{}),B=A2(k(k({},D),{},{props:w,graphicalItems:C}),x==null?void 0:x.legendBBox);Object.keys(D).forEach(function(U){D[U]=f(w,D[U],B,U.replace("Map",""),r)});var F=D["".concat(I,"Map")],H=_2(F),G=h(w,k(k({},D),{},{dataStartIndex:O,dataEndIndex:m,updateId:b,graphicalItems:C,stackGroups:R,offset:B}));return k(k({formattedGraphicalItems:G,graphicalItems:C,offset:B,stackGroups:R},H),D)},y=(function(d){function g(x){var w,O,m;return a2(this,g),m=s2(this,g,[x]),K(m,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),K(m,"accessibilityManager",new HD),K(m,"handleLegendBBoxUpdate",function(b){if(b){var _=m.state,S=_.dataStartIndex,P=_.dataEndIndex,$=_.updateId;m.setState(k({legendBBox:b},p({props:m.props,dataStartIndex:S,dataEndIndex:P,updateId:$},k(k({},m.state),{},{legendBBox:b}))))}}),K(m,"handleReceiveSyncEvent",function(b,_,S){if(m.props.syncId===b){if(S===m.eventEmitterSymbol&&typeof m.props.syncMethod!="function")return;m.applySyncEvent(_)}}),K(m,"handleBrushChange",function(b){var _=b.startIndex,S=b.endIndex;if(_!==m.state.dataStartIndex||S!==m.state.dataEndIndex){var P=m.state.updateId;m.setState(function(){return k({dataStartIndex:_,dataEndIndex:S},p({props:m.props,dataStartIndex:_,dataEndIndex:S,updateId:P},m.state))}),m.triggerSyncEvent({dataStartIndex:_,dataEndIndex:S})}}),K(m,"handleMouseEnter",function(b){var _=m.getMouseInfo(b);if(_){var S=k(k({},_),{},{isTooltipActive:!0});m.setState(S),m.triggerSyncEvent(S);var P=m.props.onMouseEnter;Y(P)&&P(S,b)}}),K(m,"triggeredAfterMouseMove",function(b){var _=m.getMouseInfo(b),S=_?k(k({},_),{},{isTooltipActive:!0}):{isTooltipActive:!1};m.setState(S),m.triggerSyncEvent(S);var P=m.props.onMouseMove;Y(P)&&P(S,b)}),K(m,"handleItemMouseEnter",function(b){m.setState(function(){return{isTooltipActive:!0,activeItem:b,activePayload:b.tooltipPayload,activeCoordinate:b.tooltipPosition||{x:b.cx,y:b.cy}}})}),K(m,"handleItemMouseLeave",function(){m.setState(function(){return{isTooltipActive:!1}})}),K(m,"handleMouseMove",function(b){b.persist(),m.throttleTriggeredAfterMouseMove(b)}),K(m,"handleMouseLeave",function(b){m.throttleTriggeredAfterMouseMove.cancel();var _={isTooltipActive:!1};m.setState(_),m.triggerSyncEvent(_);var S=m.props.onMouseLeave;Y(S)&&S(_,b)}),K(m,"handleOuterEvent",function(b){var _=a_(b),S=He(m.props,"".concat(_));if(_&&Y(S)){var P,$;/.*touch.*/i.test(_)?$=m.getMouseInfo(b.changedTouches[0]):$=m.getMouseInfo(b),S((P=$)!==null&&P!==void 0?P:{},b)}}),K(m,"handleClick",function(b){var _=m.getMouseInfo(b);if(_){var S=k(k({},_),{},{isTooltipActive:!0});m.setState(S),m.triggerSyncEvent(S);var P=m.props.onClick;Y(P)&&P(S,b)}}),K(m,"handleMouseDown",function(b){var _=m.props.onMouseDown;if(Y(_)){var S=m.getMouseInfo(b);_(S,b)}}),K(m,"handleMouseUp",function(b){var _=m.props.onMouseUp;if(Y(_)){var S=m.getMouseInfo(b);_(S,b)}}),K(m,"handleTouchMove",function(b){b.changedTouches!=null&&b.changedTouches.length>0&&m.throttleTriggeredAfterMouseMove(b.changedTouches[0])}),K(m,"handleTouchStart",function(b){b.changedTouches!=null&&b.changedTouches.length>0&&m.handleMouseDown(b.changedTouches[0])}),K(m,"handleTouchEnd",function(b){b.changedTouches!=null&&b.changedTouches.length>0&&m.handleMouseUp(b.changedTouches[0])}),K(m,"handleDoubleClick",function(b){var _=m.props.onDoubleClick;if(Y(_)){var S=m.getMouseInfo(b);_(S,b)}}),K(m,"handleContextMenu",function(b){var _=m.props.onContextMenu;if(Y(_)){var S=m.getMouseInfo(b);_(S,b)}}),K(m,"triggerSyncEvent",function(b){m.props.syncId!==void 0&&dl.emit(pl,m.props.syncId,b,m.eventEmitterSymbol)}),K(m,"applySyncEvent",function(b){var _=m.props,S=_.layout,P=_.syncMethod,$=m.state.updateId,j=b.dataStartIndex,T=b.dataEndIndex;if(b.dataStartIndex!==void 0||b.dataEndIndex!==void 0)m.setState(k({dataStartIndex:j,dataEndIndex:T},p({props:m.props,dataStartIndex:j,dataEndIndex:T,updateId:$},m.state)));else if(b.activeTooltipIndex!==void 0){var M=b.chartX,I=b.chartY,C=b.activeTooltipIndex,R=m.state,D=R.offset,B=R.tooltipTicks;if(!D)return;if(typeof P=="function")C=P(B,b);else if(P==="value"){C=-1;for(var F=0;F=0){var J,q;if(M.dataKey&&!M.allowDuplicatedCategory){var ve=typeof M.dataKey=="function"?Z:"payload.".concat(M.dataKey.toString());J=yl(F,ve,C),q=H&&G&&yl(G,ve,C)}else J=F==null?void 0:F[I],q=H&&G&&G[I];if(Be||me){var te=b.props.activeIndex!==void 0?b.props.activeIndex:I;return[N.cloneElement(b,k(k(k({},P.props),Re),{},{activeIndex:te})),null,null]}if(!ee(J))return[z].concat(Vr(m.renderActivePoints({item:P,activePoint:J,basePoint:q,childIndex:I,isRange:H})))}else{var xe,we=(xe=m.getItemByXY(m.state.activeCoordinate))!==null&&xe!==void 0?xe:{graphicalItem:z},De=we.graphicalItem,Tt=De.item,lr=Tt===void 0?b:Tt,fi=De.childIndex,Lt=k(k(k({},P.props),Re),{},{activeIndex:fi});return[N.cloneElement(lr,Lt),null,null]}return H?[z,null,null]:[z,null]}),K(m,"renderCustomized",function(b,_,S){return N.cloneElement(b,k(k({key:"recharts-customized-".concat(S)},m.props),m.state))}),K(m,"renderMap",{CartesianGrid:{handler:Ai,once:!0},ReferenceArea:{handler:m.renderReferenceElement},ReferenceLine:{handler:Ai},ReferenceDot:{handler:m.renderReferenceElement},XAxis:{handler:Ai},YAxis:{handler:Ai},Brush:{handler:m.renderBrush,once:!0},Bar:{handler:m.renderGraphicChild},Line:{handler:m.renderGraphicChild},Area:{handler:m.renderGraphicChild},Radar:{handler:m.renderGraphicChild},RadialBar:{handler:m.renderGraphicChild},Scatter:{handler:m.renderGraphicChild},Pie:{handler:m.renderGraphicChild},Funnel:{handler:m.renderGraphicChild},Tooltip:{handler:m.renderCursor,once:!0},PolarGrid:{handler:m.renderPolarGrid,once:!0},PolarAngleAxis:{handler:m.renderPolarAxis},PolarRadiusAxis:{handler:m.renderPolarAxis},Customized:{handler:m.renderCustomized}}),m.clipPathId="".concat((w=x.id)!==null&&w!==void 0?w:ai("recharts"),"-clip"),m.throttleTriggeredAfterMouseMove=R0(m.triggeredAfterMouseMove,(O=x.throttleDelay)!==null&&O!==void 0?O:1e3/60),m.state={},m}return f2(g,d),u2(g,[{key:"componentDidMount",value:function(){var w,O;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(O=this.props.margin.top)!==null&&O!==void 0?O:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var w=this.props,O=w.children,m=w.data,b=w.height,_=w.layout,S=ze(O,Ue);if(S){var P=S.props.defaultIndex;if(!(typeof P!="number"||P<0||P>this.state.tooltipTicks.length-1)){var $=this.state.tooltipTicks[P]&&this.state.tooltipTicks[P].value,j=Rf(this.state,m,P,$),T=this.state.tooltipTicks[P].coordinate,M=(this.state.offset.top+b)/2,I=_==="horizontal",C=I?{x:T,y:M}:{y:T,x:M},R=this.state.formattedGraphicalItems.find(function(B){var F=B.item;return F.type.name==="Scatter"});R&&(C=k(k({},C),R.props.points[P].tooltipPosition),j=R.props.points[P].tooltipPayload);var D={activeTooltipIndex:P,isTooltipActive:!0,activeLabel:$,activePayload:j,activeCoordinate:C};this.setState(D),this.renderCursor(S),this.accessibilityManager.setIndex(P)}}}},{key:"getSnapshotBeforeUpdate",value:function(w,O){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==O.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==w.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==w.margin){var m,b;this.accessibilityManager.setDetails({offset:{left:(m=this.props.margin.left)!==null&&m!==void 0?m:0,top:(b=this.props.margin.top)!==null&&b!==void 0?b:0}})}return null}},{key:"componentDidUpdate",value:function(w){gl([ze(w.children,Ue)],[ze(this.props.children,Ue)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var w=ze(this.props.children,Ue);if(w&&typeof w.props.shared=="boolean"){var O=w.props.shared?"axis":"item";return u.indexOf(O)>=0?O:a}return a}},{key:"getMouseInfo",value:function(w){if(!this.container)return null;var O=this.container,m=O.getBoundingClientRect(),b=KA(m),_={chartX:Math.round(w.pageX-b.left),chartY:Math.round(w.pageY-b.top)},S=m.width/O.offsetWidth||1,P=this.inRange(_.chartX,_.chartY,S);if(!P)return null;var $=this.state,j=$.xAxisMap,T=$.yAxisMap,M=this.getTooltipEventType(),I=Cb(this.state,this.props.data,this.props.layout,P);if(M!=="axis"&&j&&T){var C=Mt(j).scale,R=Mt(T).scale,D=C&&C.invert?C.invert(_.chartX):null,B=R&&R.invert?R.invert(_.chartY):null;return k(k({},_),{},{xValue:D,yValue:B},I)}return I?k(k({},_),I):null}},{key:"inRange",value:function(w,O){var m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,b=this.props.layout,_=w/m,S=O/m;if(b==="horizontal"||b==="vertical"){var P=this.state.offset,$=_>=P.left&&_<=P.left+P.width&&S>=P.top&&S<=P.top+P.height;return $?{x:_,y:S}:null}var j=this.state,T=j.angleAxisMap,M=j.radiusAxisMap;if(T&&M){var I=Mt(T);return Bm({x:_,y:S},I)}return null}},{key:"parseEventsOfWrapper",value:function(){var w=this.props.children,O=this.getTooltipEventType(),m=ze(w,Ue),b={};m&&O==="axis"&&(m.props.trigger==="click"?b={onClick:this.handleClick}:b={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var _=Ei(this.props,this.handleOuterEvent);return k(k({},_),b)}},{key:"addListener",value:function(){dl.on(pl,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){dl.removeListener(pl,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(w,O,m){for(var b=this.state.formattedGraphicalItems,_=0,S=b.length;_{const t=N.useMemo(()=>Array.from(e.values()).filter(i=>i.telemetry).map(i=>({name:i.name.length>18?i.name.slice(0,16)+"..":i.name,fullName:i.name,killsPerHour:parseInt(i.telemetry.kills_per_hour)||0,totalKills:i.telemetry.kills||0})).sort((i,a)=>a.killsPerHour-i.killsPerHour).slice(0,30),[e]),r=N.useMemo(()=>Array.from(e.values()).filter(i=>{var a;return(a=i.combat)==null?void 0:a.session}).map(i=>({name:i.name.length>18?i.name.slice(0,16)+"..":i.name,fullName:i.name,damage:i.combat.session.total_damage_given})).sort((i,a)=>a.damage-i.damage).slice(0,30),[e]),n=N.useMemo(()=>{var a;const i={};for(const o of e.values()){const u=(a=o.combat)==null?void 0:a.session;if(u!=null&&u.monsters){for(const s of Object.values(u.monsters))if(s.offense)for(const c of Object.values(s.offense))for(const[f,l]of Object.entries(c))f==="None"||f==="Unknown"||(i[f]=(i[f]||0)+(l.damage||0))}}return Object.entries(i).map(([o,u])=>({name:o,value:u})).filter(o=>o.value>0).sort((o,u)=>u.value-o.value)},[e]);return E.jsxs("div",{className:"combat-tab",children:[E.jsxs("div",{className:"chart-section",children:[E.jsx("h3",{className:"chart-title",children:"Kills per Hour"}),E.jsx(Ti,{width:"100%",height:Math.max(200,t.length*28),children:E.jsxs(Df,{data:t,layout:"vertical",margin:{left:10,right:20,top:5,bottom:5},children:[E.jsx(_a,{strokeDasharray:"3 3",stroke:"#333"}),E.jsx(Wr,{type:"number",stroke:"#888",fontSize:11}),E.jsx(Kr,{type:"category",dataKey:"name",width:130,stroke:"#888",fontSize:11}),E.jsx(Ue,{contentStyle:{background:"#1a1a1a",border:"1px solid #444",fontSize:12},formatter:i=>[i.toLocaleString(),"Kills/hr"],labelFormatter:(i,a)=>{var o,u;return((u=(o=a==null?void 0:a[0])==null?void 0:o.payload)==null?void 0:u.fullName)||i}}),E.jsx(Ot,{dataKey:"killsPerHour",fill:"#44cc44",radius:[0,3,3,0]})]})})]}),r.length>0&&E.jsxs("div",{className:"chart-section",children:[E.jsx("h3",{className:"chart-title",children:"Total Damage (Session)"}),E.jsx(Ti,{width:"100%",height:Math.max(200,r.length*28),children:E.jsxs(Df,{data:r,layout:"vertical",margin:{left:10,right:20,top:5,bottom:5},children:[E.jsx(_a,{strokeDasharray:"3 3",stroke:"#333"}),E.jsx(Wr,{type:"number",stroke:"#888",fontSize:11}),E.jsx(Kr,{type:"category",dataKey:"name",width:130,stroke:"#888",fontSize:11}),E.jsx(Ue,{contentStyle:{background:"#1a1a1a",border:"1px solid #444",fontSize:12},formatter:i=>[i.toLocaleString(),"Damage"],labelFormatter:(i,a)=>{var o,u;return((u=(o=a==null?void 0:a[0])==null?void 0:o.payload)==null?void 0:u.fullName)||i}}),E.jsx(Ot,{dataKey:"damage",fill:"#ff6644",radius:[0,3,3,0]})]})})]}),n.length>0&&E.jsxs("div",{className:"chart-section",children:[E.jsx("h3",{className:"chart-title",children:"Damage by Element (All Characters)"}),E.jsx(Ti,{width:"100%",height:300,children:E.jsxs(T2,{children:[E.jsx(Pt,{data:n,dataKey:"value",nameKey:"name",cx:"50%",cy:"50%",outerRadius:100,label:({name:i,percent:a})=>`${i} ${(a*100).toFixed(0)}%`,labelLine:!0,fontSize:12,children:n.map(i=>E.jsx(Ba,{fill:j2[i.name]||"#888"},i.name))}),E.jsx(Ue,{contentStyle:{background:"#1a1a1a",border:"1px solid #444",fontSize:12},formatter:i=>i.toLocaleString()}),E.jsx(Zt,{wrapperStyle:{fontSize:12,color:"#aaa"}})]})})]})]})},M2=({characters:e,totalRares:t,totalKills:r,recentRares:n})=>{const i=N.useMemo(()=>Array.from(e.values()).filter(o=>o.telemetry&&(o.telemetry.total_rares??0)>0).map(o=>({name:o.name.length>18?o.name.slice(0,16)+"..":o.name,fullName:o.name,rares:o.telemetry.total_rares??0})).sort((o,u)=>u.rares-o.rares),[e]),a=t>0?Math.round(r/t):0;return E.jsxs("div",{className:"rares-tab",children:[E.jsxs("div",{className:"rares-summary",children:[E.jsxs("div",{className:"rare-stat-card",children:[E.jsx("span",{className:"rare-stat-value",children:t}),E.jsx("span",{className:"rare-stat-label",children:"Total Rares Found"})]}),E.jsxs("div",{className:"rare-stat-card",children:[E.jsx("span",{className:"rare-stat-value",children:r.toLocaleString()}),E.jsx("span",{className:"rare-stat-label",children:"Total Kills"})]}),E.jsxs("div",{className:"rare-stat-card",children:[E.jsx("span",{className:"rare-stat-value",children:a>0?`1 in ${a.toLocaleString()}`:"--"}),E.jsx("span",{className:"rare-stat-label",children:"Drop Rate"})]})]}),n.length>0&&E.jsxs("div",{className:"chart-section",children:[E.jsx("h3",{className:"chart-title",children:"Recent Rare Drops (This Session)"}),E.jsx("div",{className:"rare-timeline",children:n.map((o,u)=>E.jsxs("div",{className:"rare-event",children:[E.jsx("span",{className:"rare-time",children:new Date(o.timestamp).toLocaleTimeString()}),E.jsx("span",{className:"rare-char",children:o.character_name}),E.jsx("span",{className:"rare-name",children:o.name})]},u))})]}),i.length>0&&E.jsxs("div",{className:"chart-section",children:[E.jsx("h3",{className:"chart-title",children:"Rares per Character (Lifetime)"}),E.jsx(Ti,{width:"100%",height:Math.max(200,i.length*28),children:E.jsxs(Df,{data:i,layout:"vertical",margin:{left:10,right:20,top:5,bottom:5},children:[E.jsx(_a,{strokeDasharray:"3 3",stroke:"#333"}),E.jsx(Wr,{type:"number",stroke:"#888",fontSize:11}),E.jsx(Kr,{type:"category",dataKey:"name",width:130,stroke:"#888",fontSize:11}),E.jsx(Ue,{contentStyle:{background:"#1a1a1a",border:"1px solid #444",fontSize:12},formatter:o=>[o,"Rares"],labelFormatter:(o,u)=>{var s,c;return((c=(s=u==null?void 0:u[0])==null?void 0:s.payload)==null?void 0:c.fullName)||o}}),E.jsx(Ot,{dataKey:"rares",fill:"#ffcc00",radius:[0,3,3,0]})]})})]})]})},pr={west:-102.1,east:102.1,north:102.1,south:-102.1},Ta=800;function $2(e,t){const r=(e-pr.west)/(pr.east-pr.west)*Ta,n=(pr.north-t)/(pr.north-pr.south)*Ta;return{x:r,y:n}}const C2=({characters:e})=>{const t=N.useRef(null),[r,n]=N.useState(null),i=N.useMemo(()=>Array.from(e.values()).filter(o=>o.telemetry&&o.telemetry.ew!==void 0).map(o=>{const u=o.telemetry,{x:s,y:c}=$2(u.ew,u.ns),f=(u.vt_state||"").toLowerCase()==="combat"||(u.vt_state||"").toLowerCase()==="hunt";return{name:o.name,x:s,y:c,isHunting:f,ns:u.ns,ew:u.ew}}),[e]),a=N.useCallback(o=>n(o),[]);return E.jsxs("div",{className:"map-tab",children:[E.jsxs("div",{className:"map-container",ref:t,children:[E.jsx("img",{src:"/dereth_highres.png",alt:"Dereth Map",className:"map-image",draggable:!1}),E.jsx("svg",{className:"map-overlay",viewBox:`0 0 ${Ta} ${Ta}`,children:i.map(o=>{var u,s;return E.jsxs("g",{children:[E.jsx("circle",{cx:o.x,cy:o.y,r:r===o.name?6:4,fill:o.isHunting?"#44cc44":"#ffaa00",stroke:"#000",strokeWidth:1,opacity:.9,onMouseEnter:()=>a(o.name),onMouseLeave:()=>a(null),style:{cursor:"pointer"}}),r===o.name&&E.jsxs("text",{x:o.x+8,y:o.y+4,fill:"#fff",fontSize:11,stroke:"#000",strokeWidth:.3,paintOrder:"stroke",children:[o.name," (",(u=o.ns)==null?void 0:u.toFixed(1),"N, ",(s=o.ew)==null?void 0:s.toFixed(1),"E)"]})]},o.name)})})]}),E.jsxs("div",{className:"map-legend",children:[E.jsxs("span",{children:[E.jsx("span",{className:"legend-dot hunting"})," Hunting/Combat"]}),E.jsxs("span",{children:[E.jsx("span",{className:"legend-dot other"})," Other state"]}),E.jsxs("span",{className:"map-count",children:[i.length," characters on map"]})]})]})},I2=()=>{const[e,t]=N.useState(""),[r,n]=N.useState([]),[i,a]=N.useState(0),[o,u]=N.useState(!1),s=N.useRef(0),c=N.useCallback(async l=>{if(l.length<2){n([]),a(0);return}u(!0);try{const h=await eO(`/search/items?q=${encodeURIComponent(l)}&limit=100`);n(h.results??[]),a(h.total??0)}catch{n([])}u(!1)},[]),f=N.useCallback(l=>{const h=l.target.value;t(h),clearTimeout(s.current),s.current=window.setTimeout(()=>c(h),400)},[c]);return E.jsxs("div",{className:"inventory-tab",children:[E.jsxs("div",{className:"search-bar",children:[E.jsx("input",{type:"text",value:e,onChange:f,placeholder:"Search items across all characters...",className:"search-input"}),o&&E.jsx("span",{className:"search-spinner",children:"Searching..."})]}),i>0&&E.jsxs("div",{className:"search-count",children:[i.toLocaleString()," results"]}),E.jsxs("div",{className:"search-results",children:[r.length===0&&e.length>=2&&!o&&E.jsx("div",{className:"search-empty",children:"No items found"}),E.jsxs("table",{className:"results-table",children:[E.jsx("thead",{children:E.jsxs("tr",{children:[E.jsx("th",{children:"Character"}),E.jsx("th",{children:"Item"}),E.jsx("th",{children:"Type"}),E.jsx("th",{children:"Material"}),E.jsx("th",{children:"Set"}),E.jsx("th",{children:"Work"})]})}),E.jsx("tbody",{children:r.map((l,h)=>E.jsxs("tr",{children:[E.jsx("td",{children:l.character_name}),E.jsx("td",{className:"item-name",children:l.item_name}),E.jsx("td",{children:l.type||""}),E.jsx("td",{children:l.material||""}),E.jsx("td",{children:l.set_name||""}),E.jsx("td",{children:l.workmanship||""})]},h))})]})]})]})};function R2({data:e,onViewToggle:t}){const r=[{id:"combat",label:"Combat",content:E.jsx(E2,{characters:e.characters})},{id:"rares",label:"Rares",content:E.jsx(M2,{characters:e.characters,totalRares:e.totalRares,totalKills:e.totalKills,recentRares:e.recentRares})},{id:"map",label:"Map",content:E.jsx(C2,{characters:e.characters})},{id:"inventory",label:"Inventory",content:E.jsx(I2,{})}];return E.jsxs(tO,{children:[E.jsx("div",{style:{display:"flex",justifyContent:"flex-start",marginBottom:8},children:E.jsx("button",{onClick:t,className:"tab-btn",children:"Map View"})}),E.jsx(rO,{activeChars:e.characters.size,totalKills:e.totalKills,totalRares:e.totalRares,serverHealth:e.serverHealth}),E.jsx(iO,{characters:e.characters}),E.jsx(aO,{tabs:r})]})}export{R2 as default}; diff --git a/static/v2/assets/InventoryWindow-CHG3Ftlg.js b/static/v2/assets/InventoryWindow-CHG3Ftlg.js new file mode 100644 index 00000000..25db2ca7 --- /dev/null +++ b/static/v2/assets/InventoryWindow-CHG3Ftlg.js @@ -0,0 +1 @@ +import{r as _,a as T,j as n,D as Q}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";function X(e){var s,d;if(!e)return e;const o=c=>c!=null&&c!==-1&&c!==-1?c:void 0,r=e.IntValues||{};return{item_id:e.item_id??e.Id??0,name:e.name??e.Name??((s=e.StringValues)==null?void 0:s["1"])??"Unknown",icon:e.icon??e.Icon??0,object_class:e.object_class??e.ObjectClass??0,current_wielded_location:e.current_wielded_location??o(e.CurrentWieldedLocation)??o(Number(r[10]))??0,container_id:e.container_id??e.ContainerId??0,items_capacity:e.items_capacity??o(e.ItemsCapacity)??o(Number(r[6]))??((d=e.enhanced_properties)==null?void 0:d.ItemSlots_Decal)??void 0,value:e.value??o(e.Value)??o(Number(r[19]))??0,burden:e.burden??o(e.Burden)??o(Number(r[5]))??0,armor_level:e.armor_level??o(e.ArmorLevel),max_damage:e.max_damage??o(e.MaxDamage),material:e.material??e.material_name??e.Material??void 0,item_set:e.item_set??e.ItemSet??void 0,imbue:e.imbue??e.Imbue??void 0,tinks:e.tinks??o(e.Tinks),workmanship:e.workmanship??o(e.Workmanship),equip_skill:e.equip_skill??e.equip_skill_name??e.EquipSkill??void 0,wield_level:e.wield_level??o(e.WieldLevel),skill_level:e.skill_level??o(e.SkillLevel),lore_requirement:e.lore_requirement??o(e.LoreRequirement),attack_bonus:e.attack_bonus??o(e.AttackBonus),melee_defense_bonus:e.melee_defense_bonus??o(e.MeleeDefenseBonus),magic_defense_bonus:e.magic_defense_bonus??o(e.MagicDBonus),damage_bonus:e.damage_bonus??o(e.DamageBonus),damage_rating:e.damage_rating??o(e.DamRating),crit_rating:e.crit_rating??o(e.CritRating),heal_boost_rating:e.heal_boost_rating??o(e.HealBoostRating),current_mana:e.current_mana??o(Number(r[218103815]))??void 0,max_mana:e.max_mana??o(Number(r[218103814]))??void 0,spellcraft:e.spellcraft??void 0,damage_range:e.damage_range??void 0,damage_type:e.damage_type??void 0,speed_text:e.speed_text??void 0,mana_display:e.mana_display??void 0,spells:e.spells??void 0,icon_overlay_id:e.icon_overlay_id??o(Number(r[218103849]))??void 0,icon_underlay_id:e.icon_underlay_id??o(Number(r[218103850]))??void 0,_raw:e}}function C(e){return!e||e<=0?"06000133":(e+100663296).toString(16).toUpperCase().padStart(8,"0")}const M={32768:{name:"Neck",row:1,col:1},1:{name:"Head",row:1,col:3},268435456:{name:"Sigil",row:1,col:5},536870912:{name:"Sigil",row:1,col:6},1073741824:{name:"Sigil",row:1,col:7},67108864:{name:"Trinket",row:2,col:1},2048:{name:"U.Arm",row:2,col:2},512:{name:"Chest",row:2,col:3},134217728:{name:"Cloak",row:2,col:7},65536:{name:"Brace L",row:3,col:1},4096:{name:"L.Arm",row:3,col:2},1024:{name:"Abdomen",row:3,col:3},8192:{name:"U.Leg",row:3,col:4},131072:{name:"Brace R",row:3,col:5},2:{name:"Shirt",row:3,col:7},262144:{name:"Ring L",row:4,col:1},32:{name:"Hands",row:4,col:2},16384:{name:"L.Leg",row:4,col:4},524288:{name:"Ring R",row:4,col:5},4:{name:"Pants",row:4,col:7},256:{name:"Feet",row:5,col:4},2097152:{name:"Shield",row:6,col:1},1048576:{name:"Melee",row:6,col:3},4194304:{name:"Missile",row:6,col:3},16777216:{name:"Held",row:6,col:3},33554432:{name:"2H",row:6,col:3},8388608:{name:"Ammo",row:6,col:7}},I={},ne=[32768,67108864,65536,131072,262144,524288],oe=[1,512,2048,1024,4096,8192,16384,32,256],te=[2,4,134217728,268435456,536870912,1073741824],ie=[2097152,1048576,4194304,16777216,33554432,8388608];(()=>{const e=new Set;Object.entries(M).forEach(([o,r])=>{const s=`${r.row}-${r.col}`,d=parseInt(o);e.has(s)||(e.add(s),ne.includes(d)?I[s]="#3a2555":oe.includes(d)?I[s]="#1e2e55":te.includes(d)?I[s]="#1e3e3e":ie.includes(d)?I[s]="#142040":I[s]="#2a2a2a")})})();const $="#af7a30";function W({item:e,size:o=36}){const r={position:"absolute",top:0,left:0,width:o,height:o,border:"none",background:"transparent",imageRendering:"pixelated"},s=e.icon_underlay_id&&e.icon_underlay_id>100?`/icons/${C(e.icon_underlay_id)}.png`:null,d=e.icon_overlay_id&&e.icon_overlay_id>100?`/icons/${C(e.icon_overlay_id)}.png`:null;return n.jsxs("div",{style:{width:o,height:o,position:"relative"},children:[s&&n.jsx("img",{src:s,alt:"",style:{...r,zIndex:1},onError:c=>{c.target.style.display="none"}}),n.jsx("img",{src:`/icons/${C(e.icon)}.png`,alt:e.name,style:{...r,zIndex:2},onError:c=>{c.target.src="/icons/06000133.png"}}),d&&n.jsx("img",{src:d,alt:"",style:{...r,zIndex:3},onError:c=>{c.target.style.display="none"}})]})}function le({item:e,x:o,y:r}){var j,L;const s=g=>g!=null&&g!==-1&&g!==-1,d=g=>g.toLocaleString(),c=g=>`${((g-1)*100).toFixed(1)}%`;return n.jsxs("div",{style:{position:"fixed",left:o+14,top:r+14,background:"rgba(0,0,0,0.96)",border:"1px solid #555",borderRadius:4,padding:"8px 12px",zIndex:99999,minWidth:200,maxWidth:340,fontSize:13,color:"#ddd",pointerEvents:"none",lineHeight:1.6,fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif'},children:[n.jsx("div",{style:{color:"#ffcc00",fontWeight:"bold",fontSize:14,marginBottom:4},children:e.name}),n.jsxs("div",{style:{color:"#aaa"},children:["Value: ",d(e.value)," · Burden: ",e.burden]}),e.workmanship&&n.jsxs("div",{style:{color:"#aaa"},children:["Workmanship: ",e.workmanship]}),e.material&&n.jsxs("div",{style:{color:"#88ff88"},children:["Material: ",e.material]}),s(e.armor_level)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Armor Level: ",e.armor_level]}),s(e.max_damage)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Max Damage: ",e.max_damage]}),e.damage_range&&n.jsxs("div",{style:{color:"#88ff88"},children:["Damage: ",e.damage_range,e.damage_type?`, ${e.damage_type}`:""]}),s(e.attack_bonus)&&e.attack_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Attack: +",c(e.attack_bonus)]}),s(e.melee_defense_bonus)&&e.melee_defense_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Melee Def: +",c(e.melee_defense_bonus)]}),s(e.magic_defense_bonus)&&e.magic_defense_bonus!==1&&n.jsxs("div",{style:{color:"#88ff88"},children:["Magic Def: +",c(e.magic_defense_bonus)]}),e.equip_skill&&n.jsxs("div",{style:{color:"#ddd"},children:["Skill: ",e.equip_skill]}),s(e.wield_level)&&n.jsxs("div",{style:{color:"#ffaa00"},children:["Wield Level: ",e.wield_level]}),s(e.lore_requirement)&&n.jsxs("div",{style:{color:"#ffaa00"},children:["Lore: ",e.lore_requirement]}),e.imbue&&n.jsxs("div",{style:{color:"#88ff88"},children:["Imbue: ",e.imbue]}),e.item_set&&n.jsxs("div",{style:{color:"#88ff88"},children:["Set: ",e.item_set]}),s(e.tinks)&&n.jsxs("div",{style:{color:"#88ff88"},children:["Tinks: ",e.tinks]}),s(e.damage_rating)&&n.jsxs("div",{children:["Damage Rating: ",e.damage_rating]}),s(e.crit_rating)&&n.jsxs("div",{children:["Crit Rating: ",e.crit_rating]}),s(e.heal_boost_rating)&&n.jsxs("div",{children:["Heal Boost: ",e.heal_boost_rating]}),e.spellcraft&&n.jsxs("div",{style:{color:"#dda0dd"},children:["Spellcraft: ",e.spellcraft]}),s(e.current_mana)&&s(e.max_mana)&&n.jsxs("div",{style:{color:"#98d7ff"},children:["Mana: ",e.current_mana," / ",e.max_mana]}),((L=(j=e.spells)==null?void 0:j.spells)==null?void 0:L.length)>0&&n.jsxs("div",{style:{color:"#4a90e2",marginTop:4,fontSize:12},children:["Spells: ",e.spells.spells.map(g=>g.name).join(", ")]})]})}function G({iconSrc:e,isActive:o,fillPct:r,label:s,onClick:d}){const c=r>90?"#b7432c":r>70?"#d8a431":"#00ff00";return n.jsxs("div",{onClick:d,title:s,style:{display:"flex",alignItems:"flex-start",gap:2,cursor:"pointer",flexShrink:0,marginTop:3,position:"relative"},children:[o&&n.jsx("span",{style:{position:"absolute",left:-11,top:8,color:$,fontSize:10},children:"▶"}),n.jsx("div",{style:{width:30,height:30,border:o?"1px solid #00ff00":"1px solid #333",boxShadow:o?"0 0 4px #00ff00":"none",background:"#000",display:"flex",alignItems:"center",justifyContent:"center"},children:n.jsx("img",{src:e,alt:"",style:{width:26,height:26,objectFit:"contain",imageRendering:"pixelated"},onError:j=>{j.target.src="/icons/06001080.png"}})}),n.jsx("div",{style:{width:7,height:30,background:"#222",border:"1px solid #666",position:"relative",overflow:"hidden",borderRadius:2},title:`${Math.round(r)}% full`,children:n.jsx("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:`${r}%`,background:c,minHeight:r>0?2:0}})})]})}const ce=({id:e,charName:o,zIndex:r,inventoryVersion:s,equipmentCantrips:d})=>{var V,q,Y;const[c,j]=_.useState([]),[L,g]=_.useState(!0),[k,H]=_.useState(null),[B,U]=_.useState(null),[f,J]=_.useState(null),D=_.useRef(0),O=_.useRef(!1);_.useEffect(()=>{g(!0),Promise.all([T(`/inventory/${encodeURIComponent(o)}?limit=1000`).catch(()=>({items:[]})),T(`/character-stats/${encodeURIComponent(o)}`).catch(()=>null)]).then(([t,i])=>{j((t.items??[]).map(X)),J(i),O.current=!0}).finally(()=>g(!1))},[o]),_.useEffect(()=>{if(!(!O.current||!s))return clearTimeout(D.current),D.current=window.setTimeout(()=>{T(`/inventory/${encodeURIComponent(o)}?limit=1000`).then(t=>j((t.items??[]).map(X))).catch(()=>{})},2e3),()=>clearTimeout(D.current)},[o,s]);const y=_.useCallback((t,i)=>{U(t&&i?{item:t,x:i.clientX,y:i.clientY}:null)},[]),Z=_.useMemo(()=>{const t=new Set,i=[];return Object.entries(M).forEach(([u,m])=>{const a=`${m.row}-${m.col}`;t.has(a)||(t.add(a),i.push({key:a,...m,mask:parseInt(u)}))}),i},[]),{equippedMap:A,containers:z,packItems:w}=_.useMemo(()=>{const t=new Map,i=[],u=new Set,m=new Map;c.forEach(l=>{l.object_class===10&&(i.push(l),u.add(l.item_id))}),i.sort((l,h)=>(l.item_id>>>0)-(h.item_id>>>0));let a=null;return c.forEach(l=>{l.current_wielded_location>0&&l.container_id&&!u.has(l.container_id)&&(a=l.container_id)}),c.forEach(l=>{if(u.has(l.item_id))return;const h=l.current_wielded_location;if(h>0)if(l.object_class===2)Object.entries(M).forEach(([b,x])=>{if((h&parseInt(b))===parseInt(b)){const v=`${x.row}-${x.col}`;t.has(v)||t.set(v,l)}});else{let b=!1;if(M[h]){const x=M[h],v=`${x.row}-${x.col}`;t.has(v)||(t.set(v,l),b=!0)}if(!b){for(const[x,v]of Object.entries(M))if((h&parseInt(x))===parseInt(x)){const K=`${v.row}-${v.col}`;if(!t.has(K)){t.set(K,l),b=!0;break}}}}else{let p=l.container_id||0;a&&p===a&&(p=0),m.has(p)||m.set(p,[]),m.get(p).push(l)}}),{equippedMap:t,containers:i,packItems:m}},[c]);let S=w.get(0)??[],F=0;if(S.length===0){let t=0;for(const[i,u]of w.entries())!z.some(m=>m.item_id===i)&&u.length>t&&(t=u.length,F=i);S=w.get(F)??[]}const P=k!==null?w.get(k)??[]:S,N=(f==null?void 0:f.burden_units)??((V=f==null?void 0:f.stats_data)==null?void 0:V.burden_units)??0,R=(f==null?void 0:f.encumbrance_capacity)??((q=f==null?void 0:f.stats_data)==null?void 0:q.encumbrance_capacity)??0,E=R>0?Math.min(200,N/R*100):0,ee=E>150?"#b7432c":E>100?"#d8a431":"#2e8b57";return L?n.jsx(Q,{id:e,title:`Inventory: ${o}`,zIndex:r,width:572,height:720,children:n.jsx("div",{style:{padding:20,color:"#666",fontStyle:"italic"},children:"Loading inventory..."})}):n.jsxs(Q,{id:e,title:`Inventory: ${o}`,zIndex:r,width:572,height:720,children:[n.jsxs("div",{style:{display:"flex",flex:1,overflow:"hidden",background:"rgba(14,14,14,0.96)",fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif',fontSize:13},children:[n.jsxs("div",{style:{width:316,display:"flex",flexDirection:"column",overflow:"hidden"},children:[n.jsx("div",{style:{position:"relative",height:270,minHeight:270,background:"#0a0a0a",borderBottom:`1px solid ${$}`},children:Z.map(t=>{const i=A.get(t.key),u=I[t.key]??"#2a2a2a";return n.jsx("div",{style:{position:"absolute",left:(t.col-1)*44+4,top:(t.row-1)*44+4,width:36,height:36,background:i?"#5a5a62":u,border:i?"2px solid #00ffff":"2px outset #6a6a72",boxShadow:i?"0 0 5px #00ffff, inset 0 0 5px rgba(0,255,255,0.2)":"none",display:"flex",alignItems:"center",justifyContent:"center",cursor:i?"pointer":"default"},onMouseEnter:m=>i&&y(i,m),onMouseMove:m=>i&&y(i,m),onMouseLeave:()=>y(null),children:i?n.jsx(W,{item:i,size:32}):n.jsx("img",{src:"/icons/06000133.png",alt:"",style:{width:28,height:28,opacity:.15,filter:"grayscale(100%)",imageRendering:"pixelated"}})},t.key)})}),n.jsxs("div",{style:{padding:"3px 6px",fontSize:11,color:"#ccc",background:"#111",borderBottom:`1px solid ${$}`},children:["Contents of ",k!==null?((Y=z.find(t=>t.item_id===k))==null?void 0:Y.name)??"Pack":"Backpack"]}),n.jsxs("div",{style:{flex:1,overflowY:"auto",display:"grid",gridTemplateColumns:"repeat(6, 36px)",gridAutoRows:36,gap:2,padding:4,alignContent:"start"},children:[P.map((t,i)=>n.jsx("div",{style:{width:36,height:36,background:"linear-gradient(135deg, #3d007a 0%, #1a0033 100%)",border:"1px solid #4a148c",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},onMouseEnter:u=>y(t,u),onMouseMove:u=>y(t,u),onMouseLeave:()=>y(null),children:n.jsx(W,{item:t,size:32})},t.item_id??i)),Array.from({length:Math.max(0,24-P.length)}).map((t,i)=>n.jsx("div",{style:{width:36,height:36,background:"#0a0a0a",border:"1px solid #1a1a1a"}},`e${i}`))]})]}),n.jsxs("div",{style:{width:42,display:"flex",flexDirection:"column",alignItems:"center",padding:"4px 2px",borderLeft:`1px solid ${$}`,borderRight:`1px solid ${$}`},children:[n.jsx("div",{style:{textAlign:"center",fontSize:8,color:"#ccc",marginBottom:2},children:R>0?`${Math.floor(E)}%`:"Burden"}),n.jsx("div",{style:{width:14,height:40,background:"#111",border:"1px solid #555",position:"relative",overflow:"hidden",marginBottom:6,flexShrink:0},title:R>0?`${N.toLocaleString()} / ${R.toLocaleString()}`:`Burden: ${c.reduce((t,i)=>t+(i.burden??0),0).toLocaleString()}`,children:n.jsx("div",{style:{position:"absolute",bottom:0,left:0,right:0,height:`${E/2}%`,background:ee,transition:"height 0.3s"}})}),n.jsx(G,{iconSrc:"/icons/0600127E.png",isActive:k===null,fillPct:S.length>0?Math.min(100,S.length/102*100):0,label:`Backpack (${S.length}/102)`,onClick:()=>H(null)}),z.map(t=>{const i=t.item_id,u=c.filter(l=>l.container_id===i&&l.item_id!==i).length,m=t.items_capacity||24,a=m>0?Math.min(100,u/m*100):0;return n.jsx(G,{iconSrc:`/icons/${C(t.icon)}.png`,isActive:k===i,fillPct:a,label:`${t.name} (${u}/${m})`,onClick:()=>H(i)},i)})]}),n.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",minWidth:160},children:[n.jsx("div",{style:{padding:"4px 8px",fontSize:"0.72rem",fontWeight:600,color:"#aaa",background:"#111",borderBottom:`1px solid ${$}`},children:"Mana"}),n.jsxs("div",{style:{flex:1,overflowY:"auto",padding:"2px 0"},children:[(()=>{const t=(d==null?void 0:d.items)??[],i=new Map(t.map(a=>[a.item_id,a])),u=d!=null&&d.timestamp?new Date(d.timestamp).getTime():0,m=u>0?Math.max(0,(Date.now()-u)/1e3):0;return Array.from(A.values()).map(a=>{const l=i.get(a.item_id),h=(l==null?void 0:l.current_mana)??a.current_mana??0,p=(l==null?void 0:l.max_mana)??a.max_mana??0,b=(l==null?void 0:l.mana_time_remaining_seconds)??null,x=b!=null?Math.max(0,b-m):null,v=(l==null?void 0:l.state)??(h>0?"active":"not_active");return{...a,current_mana:h,max_mana:p,liveRemaining:x,manaState:v}}).filter(a=>a.current_mana>0||a.max_mana>0).sort((a,l)=>(a.liveRemaining??999999)-(l.liveRemaining??999999)).map((a,l)=>{const h=a.manaState==="active"?"#4c4":a.manaState==="not_active"?"#c44":"#da8";return n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"2px 4px",borderBottom:"1px solid #1a1a1a",cursor:"pointer"},onMouseEnter:p=>y(a,p),onMouseMove:p=>y(a,p),onMouseLeave:()=>y(null),children:[n.jsx("div",{style:{width:20,height:20,flexShrink:0},children:n.jsx(W,{item:a,size:20})}),n.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:h,flexShrink:0}}),n.jsx("div",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",fontSize:"0.68rem",color:"#ccc"},children:a.name}),n.jsxs("div",{style:{fontSize:"0.65rem",color:"#88bbff",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums"},children:[a.current_mana,"/",a.max_mana]}),n.jsx("div",{style:{fontSize:"0.63rem",color:"#9c9",whiteSpace:"nowrap",fontVariantNumeric:"tabular-nums",minWidth:42,textAlign:"right"},children:a.liveRemaining!=null?se(a.liveRemaining):""})]},l)})})(),Array.from(A.values()).filter(t=>t.current_mana>0||t.max_mana>0).length===0&&n.jsx("div",{style:{padding:12,color:"#555",textAlign:"center",fontSize:"0.7rem"},children:"No mana items equipped"})]})]})]}),B&&n.jsx(le,{item:B.item,x:B.x,y:B.y})]})};function se(e){if(e<=0)return"0h00m";const o=Math.floor(e),r=Math.floor(o/3600),s=Math.floor(o%3600/60);return`${r}h${String(s).padStart(2,"0")}m`}export{ce as InventoryWindow}; diff --git a/static/v2/assets/IssuesWindow-BeCdzqJV.js b/static/v2/assets/IssuesWindow-BeCdzqJV.js new file mode 100644 index 00000000..f331fe5a --- /dev/null +++ b/static/v2/assets/IssuesWindow-BeCdzqJV.js @@ -0,0 +1 @@ +import{r as n,a as W,j as e,D as L}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const O={plugin:{label:"Plugin",color:"#8844cc"},overlord:{label:"Overlord",color:"#4488cc"},nav:{label:"Nav",color:"#44aa44"},macro:{label:"Macro",color:"#cc8844"},other:{label:"Other",color:"#888888"}},i={padding:"3px 6px",fontSize:"0.8rem",border:"1px solid #555",background:"#2a2a2a",color:"#ddd",borderRadius:0},N={...i,fontSize:"0.75rem"},g={padding:"4px 12px",background:"#4a80c0",color:"#fff",border:"1px solid #336699",cursor:"pointer",fontSize:"0.75rem"},a={padding:"3px 8px",background:"#444",color:"#ccc",border:"1px solid #555",cursor:"pointer",fontSize:"0.7rem"},F=({id:P,zIndex:A})=>{const[h,R]=n.useState([]),[c,m]=n.useState(""),[y,u]=n.useState(""),[f,$]=n.useState("plugin"),[v,d]=n.useState(null),[p,j]=n.useState(""),[b,S]=n.useState(""),[C,z]=n.useState(""),[T,k]=n.useState({}),x=n.useCallback(async()=>{try{const t=await W("/issues");R((t.issues??[]).sort((r,s)=>(r.resolved?1:0)-(s.resolved?1:0)))}catch{}},[]);n.useEffect(()=>{x()},[x]);const l=async(t,r)=>{await fetch(`/api${t}`,{...r,credentials:"include",headers:{"Content-Type":"application/json",...r.headers}}),x()},E=async()=>{c.trim()&&(await l("/issues",{method:"POST",body:JSON.stringify({title:c.trim(),description:y.trim(),category:f})}),m(""),u(""))},B=t=>{if(v===t.id){d(null);return}d(t.id),j(t.title),S(t.description||""),z(t.category||"other")},I=async t=>{p.trim()&&(await l(`/issues/${t}`,{method:"PATCH",body:JSON.stringify({title:p.trim(),description:b.trim(),category:C})}),d(null))},w=async t=>{const r=(T[t]||"").trim();r&&(await l(`/issues/${t}/comments`,{method:"POST",body:JSON.stringify({text:r})}),k(s=>({...s,[t]:""})))};return e.jsxs(L,{id:P,title:"Issues Board",zIndex:A,width:540,height:520,children:[e.jsxs("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.8rem"},children:[h.length===0&&e.jsx("div",{style:{padding:10,color:"#888",textAlign:"center"},children:"No open issues"}),h.map(t=>{const r=O[t.category]||O.other,s=t.created?new Date(t.created).toLocaleDateString("sv-SE"):"",D=t.comments||[];return e.jsxs("div",{style:{padding:"6px 8px",marginBottom:4,background:"#1f1f1f",borderRadius:3,border:"1px solid #333",opacity:t.resolved?.55:1},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[e.jsx("span",{style:{fontSize:"0.65rem",padding:"1px 6px",borderRadius:3,background:r.color,color:"#fff",fontWeight:600},children:r.label}),e.jsx("strong",{style:{fontSize:"0.8rem",flex:1},children:t.title}),e.jsxs("span",{style:{fontSize:"0.65rem",color:"#888"},children:["by ",t.author||"User"]}),e.jsx("span",{style:{color:"#666",fontSize:"0.65rem"},children:s})]}),t.description&&e.jsx("div",{style:{color:"#999",marginTop:3,fontSize:"0.75rem"},children:t.description}),e.jsxs("div",{style:{display:"flex",gap:4,marginTop:4},children:[t.resolved?e.jsxs(e.Fragment,{children:[e.jsx("button",{style:{...a,fontSize:"0.65rem"},onClick:()=>l(`/issues/${t.id}`,{method:"PATCH",body:JSON.stringify({resolved:!1})}),children:"↻ Reopen"}),e.jsx("button",{style:{...a,fontSize:"0.65rem",color:"#c66"},onClick:()=>{confirm(`Delete issue "${t.title}"?`)&&l(`/issues/${t.id}`,{method:"DELETE"})},children:"🗑 Delete"})]}):e.jsx("button",{style:{...a,fontSize:"0.65rem",background:"rgba(68,204,68,0.15)",color:"#4c4",border:"1px solid rgba(68,204,68,0.3)"},onClick:()=>l(`/issues/${t.id}`,{method:"PATCH",body:JSON.stringify({resolved:!0})}),children:"✓ Resolve"}),e.jsx("button",{style:{...a,fontSize:"0.65rem"},onClick:()=>B(t),children:"✎ Edit"})]}),v===t.id&&e.jsxs("div",{style:{marginTop:4,padding:4,background:"#222",borderRadius:3},children:[e.jsxs("div",{style:{display:"flex",gap:4,marginBottom:4},children:[e.jsx("input",{value:p,onChange:o=>j(o.target.value),style:{...i,flex:1}}),e.jsxs("select",{value:C,onChange:o=>z(o.target.value),style:N,children:[e.jsx("option",{value:"plugin",children:"Plugin"}),e.jsx("option",{value:"overlord",children:"Overlord"}),e.jsx("option",{value:"nav",children:"Nav"}),e.jsx("option",{value:"macro",children:"Macro"}),e.jsx("option",{value:"other",children:"Other"})]})]}),e.jsxs("div",{style:{display:"flex",gap:4},children:[e.jsx("textarea",{value:b,onChange:o=>S(o.target.value),rows:2,style:{...i,flex:1,fontSize:"0.75rem",resize:"vertical"}}),e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx("button",{style:{...g,fontSize:"0.7rem",padding:"3px 8px"},onClick:()=>I(t.id),children:"Save"}),e.jsx("button",{style:{...a},onClick:()=>d(null),children:"Cancel"})]})]})]}),e.jsxs("div",{style:{marginTop:4,paddingTop:4,borderTop:"1px solid #2a2a2a"},children:[D.length===0?e.jsx("div",{style:{color:"#555",fontSize:"0.7rem",padding:"2px 0"},children:"No comments yet"}):D.map(o=>e.jsxs("div",{style:{marginBottom:3,fontSize:"0.72rem"},children:[e.jsx("span",{style:{color:"#8ac",fontWeight:500},children:o.author||"Anonymous"}),e.jsx("span",{style:{color:"#555",marginLeft:6,fontSize:"0.6rem"},children:o.created?new Date(o.created).toLocaleDateString("sv-SE"):""}),e.jsx("div",{style:{color:"#bbb",marginTop:1},children:o.text})]},o.id)),e.jsxs("div",{style:{display:"flex",gap:4,marginTop:3},children:[e.jsx("input",{value:T[t.id]||"",onChange:o=>k(J=>({...J,[t.id]:o.target.value})),placeholder:"Add a comment...",style:{...i,flex:1,fontSize:"0.75rem"},onKeyDown:o=>{o.key==="Enter"&&w(t.id)}}),e.jsx("button",{style:{...g,fontSize:"0.7rem",padding:"3px 8px"},onClick:()=>w(t.id),children:"Post"})]})]})]},t.id)})]}),e.jsxs("div",{style:{padding:6,borderTop:"1px solid #333"},children:[e.jsxs("div",{style:{display:"flex",gap:4,marginBottom:4},children:[e.jsx("input",{value:c,onChange:t=>m(t.target.value),placeholder:"Issue title...",style:{...i,flex:1},onKeyDown:t=>{t.key==="Enter"&&E()}}),e.jsxs("select",{value:f,onChange:t=>$(t.target.value),style:N,children:[e.jsx("option",{value:"plugin",children:"Plugin"}),e.jsx("option",{value:"overlord",children:"Overlord"}),e.jsx("option",{value:"nav",children:"Nav"}),e.jsx("option",{value:"macro",children:"Macro"}),e.jsx("option",{value:"other",children:"Other"})]})]}),e.jsxs("div",{style:{display:"flex",gap:4},children:[e.jsx("textarea",{value:y,onChange:t=>u(t.target.value),placeholder:"Description (optional)...",rows:2,style:{...i,flex:1,fontSize:"0.75rem",resize:"vertical"}}),e.jsx("button",{style:{...g,alignSelf:"flex-end"},onClick:E,children:"Add"})]})]})]})};export{F as IssuesWindow}; diff --git a/static/v2/assets/RadarWindow-D_o-FWZR.js b/static/v2/assets/RadarWindow-D_o-FWZR.js new file mode 100644 index 00000000..d5ef40b7 --- /dev/null +++ b/static/v2/assets/RadarWindow-D_o-FWZR.js @@ -0,0 +1 @@ +import{r as x,j as c,D as ne}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const q=300,H=.5,se={walls:{r:0,g:0,b:255},innerWalls:{r:127,g:127,b:255},rampedWalls:{r:77,g:255,b:255},floors:{r:0,g:127,b:255},stairs:{r:0,g:63,b:255}},le={walls:{r:140,g:140,b:180},innerWalls:{r:100,g:100,b:140},rampedWalls:{r:120,g:160,b:120},floors:{r:60,g:80,b:60},stairs:{r:180,g:160,b:80}};function oe(d){const g=document.createElement("canvas");g.width=10,g.height=10;const w=g.getContext("2d");w.drawImage(d,0,0,10,10);const a=w.getImageData(0,0,10,10),t=a.data;for(let p=0;p240&&R>240&&k>240){t[p+3]=0;continue}let E=!1;for(const[L,I]of Object.entries(se))if(Math.abs(_-I.r)<15&&Math.abs(R-I.g)<15&&Math.abs(k-I.b)<15){const W=le[L];t[p]=W.r,t[p+1]=W.g,t[p+2]=W.b,E=!0;break}!E&&_<15&&R<15&&k<15&&(t[p+3]=100)}return w.putImageData(a,0,0),g}function ie(d){return d===1?Math.PI:d<-.7&&d>-.8?Math.PI/2:d>.7&&d<.8?-Math.PI/2:0}let A=null;function ce(){A||(A={},fetch("/dungeon_tiles.json").then(d=>d.json()).then(d=>{Object.entries(d).forEach(([g,w])=>{const a=new Image;a.onload=()=>{A[g]=oe(a)},a.src=w})}).catch(()=>{}))}const K={Monster:"#ff4444",Player:"#4488ff",NPC:"#44cc44",Vendor:"#44cc44",Portal:"#aa44ff",Corpse:"#ff8800",Container:"#cccc44",Door:"#888888"};function re(d){const g=(d%360+360)%360;return["N","NE","E","SE","S","SW","W","NW"][Math.round(g/45)%8]}const fe=({id:d,charName:g,zIndex:w,socket:a,radarData:t})=>{const p=x.useRef(null),_=x.useRef(H),[R,k]=x.useState(H),[E,L]=x.useState(null),I=x.useRef(null),W=x.useRef([]);x.useEffect(()=>{const n=new Image;n.src="/dereth.png",n.onload=()=>{I.current=n},ce()},[]),x.useEffect(()=>((a==null?void 0:a.readyState)===WebSocket.OPEN&&a.send(JSON.stringify({player_name:g,command:"start_radar"})),()=>{(a==null?void 0:a.readyState)===WebSocket.OPEN&&a.send(JSON.stringify({player_name:g,command:"stop_radar"}))}),[g,a]);const Q=x.useCallback(n=>{n.preventDefault();const e=n.deltaY>0?1.25:.8;_.current=Math.max(.02,Math.min(5,_.current*e)),k(_.current)},[]),D=x.useCallback(n=>{const e=p.current;if(!e)return;const o=e.getBoundingClientRect(),s=(n.clientX-o.left)*(e.width/o.width),r=(n.clientY-o.top)*(e.height/o.height);let M=null,u=20;W.current.forEach(f=>{if(f._px===void 0)return;const S=Math.sqrt((s-f._px)**2+(r-f._py)**2);S{var G;const n=p.current;if(!n||!t)return;const e=n.getContext("2d");if(!e)return;const o=q,s=o/2,r=o/2,M=t.objects??[],u=t.player_ew??0,f=t.player_ns??0,S=t.player_heading??0,b=t.is_dungeon??!1,V=t.player_x??0,Z=t.player_y??0,Y=_.current,z=b?o/2/(Y*240):o/2/Y,j=S*Math.PI/180;e.clearRect(0,0,o,o),e.fillStyle="#111",e.beginPath(),e.arc(s,r,s,0,Math.PI*2),e.fill(),e.save(),e.beginPath(),e.arc(s,r,s-1,0,Math.PI*2),e.clip();const B=t.landblock??null,te=t.player_raw_z??0;if(b&&B&&((G=window.__dungeonMapCache)!=null&&G[B])){const l=window.__dungeonMapCache[B],h=Math.floor((te+3)/6)*6;e.translate(s,r),e.rotate(-(S-180)*Math.PI/180);const i=10*z,O=A&&Object.keys(A).length>0;(l.z_levels||[]).slice().sort((y,m)=>(y.z===h?1:0)-(m.z===h?1:0)).forEach(y=>{const m=y.z===h;e.globalAlpha=m?.85:.12,(y.cells||[]).forEach(T=>{const P=-(T.x-V)*z,N=(T.y-Z)*z,C=O?A[String(T.env_id)]:null;C?(e.save(),e.translate(P,N),e.rotate(ie(T.rotation)),e.drawImage(C,-i/2,-i/2,i,i),e.restore()):(e.fillStyle=m?"#3a5a3a":"#1a2a1a",e.fillRect(P-i/2,N-i/2,i,i))})}),e.globalAlpha=1,e.setTransform(1,0,0,1,0,0)}else if(!b&&I.current){const l=I.current,h=l.naturalWidth/204.2,i=(u+102.1)*h,O=(102.1-f)*h;e.globalAlpha=.4,e.save(),e.translate(s,r),e.rotate(-j);const v=Y*h*2;e.drawImage(l,i-v/2,O-v/2,v,v,-s,-r,o,o),e.restore(),e.globalAlpha=1}e.restore(),e.strokeStyle="#333",e.lineWidth=1;for(let l=1;l<=4;l++)e.beginPath(),e.arc(s,r,s/4*l,0,Math.PI*2),e.stroke();e.beginPath(),e.moveTo(s,0),e.lineTo(s,o),e.moveTo(0,r),e.lineTo(o,r),e.stroke(),e.font="bold 12px monospace",e.textAlign="center",e.textBaseline="middle",[{l:"N",a:0},{l:"E",a:Math.PI/2},{l:"S",a:Math.PI},{l:"W",a:-Math.PI/2}].forEach(({l,a:h})=>{const i=h-j;e.fillStyle=l==="N"?"#cc4444":"#888",e.fillText(l,s+Math.sin(i)*(s-12),r-Math.cos(i)*(s-12))}),e.strokeStyle="#666",e.lineWidth=1,e.beginPath(),e.moveTo(s,r),e.lineTo(s,r-s*.85),e.stroke();const $=b?Math.PI-j:j,X=Math.cos($),F=Math.sin($);M.forEach(l=>{let h,i;b&&l.raw_x!==void 0?(h=-(l.raw_x-V),i=l.raw_y-Z):(h=(l.ew??0)-u,i=(l.ns??0)-f);const O=h*X-i*F,v=b?h*F+i*X:-(h*F+i*X),y=s+O*z,m=r+v*z;if(Math.sqrt((y-s)**2+(m-r)**2)>s-4)return;l._px=y,l._py=m;const P=l.object_class??l.type??"",N=K[P]??"#888",C=l.id===E,J=C?6:P==="Monster"||P==="Player"?4:3;C&&(e.strokeStyle="#fff",e.lineWidth=2,e.beginPath(),e.arc(y,m,J+3,0,Math.PI*2),e.stroke()),e.fillStyle=N,e.beginPath(),e.arc(y,m,J,0,Math.PI*2),e.fill(),(P==="Player"||P==="Portal"||C)&&(e.fillStyle=C?"#fff":N,e.font="9px monospace",e.textAlign="left",e.fillText(l.name,y+6,m+3))}),W.current=M,e.fillStyle="#ffcc00",e.beginPath(),e.arc(s,r,5,0,Math.PI*2),e.fill(),e.strokeStyle="#fff",e.lineWidth=1,e.stroke()},[t,R,E]);const U=((t==null?void 0:t.objects)??[]).map(n=>{const e=(t==null?void 0:t.player_ew)??0,o=(t==null?void 0:t.player_ns)??0,s=(t==null?void 0:t.is_dungeon)??!1,r=(t==null?void 0:t.player_x)??0,M=(t==null?void 0:t.player_y)??0;let u,f,S;s&&n.raw_x!==void 0?(u=-(n.raw_x-r),f=n.raw_y-M,S=Math.sqrt(u*u+f*f)):(u=(n.ew??0)-e,f=(n.ns??0)-o,S=Math.sqrt(u*u+f*f)*240);const b=Math.atan2(u,f)*180/Math.PI;return{...n,dist:S,dir:re(b)}}).sort((n,e)=>n.dist-e.dist),ee=Math.round(R*240);return c.jsxs(ne,{id:d,title:`Radar: ${g}`,zIndex:w,width:360,height:560,children:[c.jsxs("div",{style:{padding:"4px 8px",display:"flex",justifyContent:"space-between",fontSize:"0.75rem",color:"#888",borderBottom:"1px solid #333",background:"#1a1a1a"},children:[c.jsxs("span",{children:["Range: ~",ee,"m"]}),c.jsx("span",{style:{fontSize:"0.65rem",color:"#555"},children:"Scroll to zoom"})]}),c.jsx("canvas",{ref:p,width:q,height:q,style:{display:"block",margin:"0 auto",borderBottom:"1px solid #333",cursor:"crosshair",flexShrink:0},onWheel:Q,onClick:D}),c.jsxs("div",{style:{flex:1,overflowY:"auto",fontSize:"0.72rem",minHeight:0},children:[c.jsxs("div",{style:{display:"flex",padding:"3px 6px",borderBottom:"1px solid #333",color:"#666",fontSize:"0.65rem",fontWeight:600},children:[c.jsx("span",{style:{width:8}}),c.jsx("span",{style:{flex:1,marginLeft:6},children:"Name"}),c.jsx("span",{style:{width:55,textAlign:"left"},children:"Type"}),c.jsx("span",{style:{width:40,textAlign:"right"},children:"Dist"}),c.jsx("span",{style:{width:24,textAlign:"center"},children:"Dir"})]}),U.length===0&&c.jsx("div",{style:{padding:12,color:"#555",textAlign:"center",fontSize:"0.7rem"},children:"Waiting for radar data..."}),U.map(n=>{const e=n.object_class??n.type??"",o=K[e]??"#888",s=n.id===E;return c.jsxs("div",{onClick:()=>L(s?null:n.id),style:{display:"flex",alignItems:"center",padding:"2px 6px",borderBottom:"1px solid #1a1a1a",cursor:"pointer",color:"#ccc",background:s?"#1a2a3a":"",borderLeft:s?"2px solid #4488ff":"2px solid transparent"},children:[c.jsx("span",{style:{width:8,height:8,borderRadius:"50%",background:o,flexShrink:0}}),c.jsx("span",{style:{flex:1,marginLeft:6,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n.name}),c.jsx("span",{style:{width:55,color:"#888",fontSize:"0.65rem"},children:e}),c.jsx("span",{style:{width:40,textAlign:"right",fontVariantNumeric:"tabular-nums"},children:n.dist<1e3?`${Math.round(n.dist)}m`:`${(n.dist/1e3).toFixed(1)}km`}),c.jsx("span",{style:{width:24,textAlign:"center",color:"#666"},children:n.dir})]},n.id)})]})]})};export{fe as RadarWindow}; diff --git a/static/v2/assets/StatsWindow-BvEd94FW.js b/static/v2/assets/StatsWindow-BvEd94FW.js new file mode 100644 index 00000000..715ecca9 --- /dev/null +++ b/static/v2/assets/StatsWindow-BvEd94FW.js @@ -0,0 +1 @@ +import{r as o,j as t,D as d}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const c=[{title:"Kills per Hour",id:1},{title:"Memory (MB)",id:2},{title:"CPU (%)",id:3},{title:"Mem Handles",id:4}],m=[{label:"1H",value:"now-1h"},{label:"6H",value:"now-6h"},{label:"24H",value:"now-24h"},{label:"7D",value:"now-7d"}],v=({id:s,charName:a,zIndex:i})=>{const[l,r]=o.useState("now-24h"),n=e=>`/grafana/d-solo/dereth-tracker/dereth-tracker-dashboard?panelId=${e}&var-character=${encodeURIComponent(a)}&from=${l}&to=now&theme=light`;return t.jsxs(d,{id:s,title:`Stats: ${a}`,zIndex:i,width:750,height:480,children:[t.jsx("div",{className:"ml-stats-controls",children:m.map(e=>t.jsx("button",{className:`ml-stats-range-btn ${l===e.value?"active":""}`,onClick:()=>r(e.value),children:e.label},e.value))}),t.jsx("div",{className:"ml-stats-grid",children:c.map(e=>t.jsx("div",{className:"ml-stats-panel",children:t.jsx("iframe",{src:n(e.id),width:"100%",height:"100%",frameBorder:"0",title:e.title})},e.id))})]})};export{v as StatsWindow}; diff --git a/static/v2/assets/VitalSharingWindow-0C98e7ZG.js b/static/v2/assets/VitalSharingWindow-0C98e7ZG.js new file mode 100644 index 00000000..0e555efa --- /dev/null +++ b/static/v2/assets/VitalSharingWindow-0C98e7ZG.js @@ -0,0 +1 @@ +import{r as n,j as t,D as x,a as m}from"./index-ahPE6Fpe.js";import"./react-DlyoauG8.js";const v=({id:o,zIndex:c})=>{const[a,d]=n.useState([]);n.useEffect(()=>{const e=async()=>{try{const s=await m("/vital-sharing/peers");d(s.peers??[])}catch{}};e();const l=setInterval(e,5e3);return()=>clearInterval(l)},[]);const h=(e,l)=>l>0?Math.min(100,e/l*100):0;return t.jsx(x,{id:o,title:"Vital Sharing Network",zIndex:c,width:520,height:450,children:t.jsx("div",{style:{flex:1,overflowY:"auto",padding:6,fontSize:"0.75rem"},children:a.length===0?t.jsx("div",{style:{padding:16,color:"#666",textAlign:"center"},children:"No vital-sharing peers connected"}):a.map(e=>{var l,s,r;return t.jsxs("div",{style:{padding:"6px 8px",marginBottom:4,background:"#1f1f1f",borderRadius:3,border:"1px solid #333"},children:[t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:3},children:[t.jsx("span",{style:{color:e.plugin_connected?"#4c4":"#a33",fontSize:"0.8rem"},children:"●"}),t.jsx("strong",{style:{flex:1},children:e.character_name}),e.subscribed&&t.jsx("span",{style:{color:"#6bf",fontSize:"0.65rem"},children:"[subscribed]"})]}),t.jsxs("div",{style:{color:"#666",fontSize:"0.68rem",marginBottom:3},children:["tags: ",((l=e.tags)==null?void 0:l.join(", "))||"none"]}),e.vitals&&e.vitals.max_health>0&&t.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[{label:"HP",cur:e.vitals.current_health,max:e.vitals.max_health,bg:"#330000",fill:"#c44"},{label:"STA",cur:e.vitals.current_stamina,max:e.vitals.max_stamina,bg:"#331a00",fill:"#ca0"},{label:"MANA",cur:e.vitals.current_mana,max:e.vitals.max_mana,bg:"#001433",fill:"#48f"}].map(i=>t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[t.jsx("span",{style:{width:32,color:"#888",fontSize:"0.65rem"},children:i.label}),t.jsx("div",{style:{flex:1,height:6,background:i.bg,borderRadius:3,overflow:"hidden"},children:t.jsx("div",{style:{width:`${h(i.cur,i.max)}%`,height:"100%",background:i.fill,borderRadius:3}})}),t.jsxs("span",{style:{width:60,textAlign:"right",fontSize:"0.65rem",color:"#888"},children:[i.cur,"/",i.max]})]},i.label))}),e.position&&t.jsxs("div",{style:{color:"#555",fontSize:"0.65rem",marginTop:2},children:[(s=e.position.ns)==null?void 0:s.toFixed(1),"N, ",(r=e.position.ew)==null?void 0:r.toFixed(1),"E"]})]},e.character_name)})})})};export{v as VitalSharingWindow}; diff --git a/static/v2/assets/index-CjQam_eg.css b/static/v2/assets/index-CjQam_eg.css new file mode 100644 index 00000000..fb793373 --- /dev/null +++ b/static/v2/assets/index-CjQam_eg.css @@ -0,0 +1 @@ +*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-body: #0d0d0d;--bg-card: #1a1a1a;--bg-card-hover: #222;--bg-header: #111;--border: #333;--text: #ddd;--text-muted: #888;--text-dim: #555;--accent: #4488ff;--hp: linear-gradient(90deg, #ff4444, #ff6666);--hp-bg: #330000;--sta: linear-gradient(90deg, #ffaa00, #ffcc44);--sta-bg: #331a00;--mana: linear-gradient(90deg, #4488ff, #66aaff);--mana-bg: #001433;--badge-combat: #44cc44;--badge-nav: #ffaa00;--badge-idle: #666;--radius: 6px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-body);color:var(--text);line-height:1.4;min-height:100vh}.dashboard{display:flex;flex-direction:column;min-height:100vh}.dashboard-header{background:var(--bg-header);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.dashboard-title{font-size:1.2rem;font-weight:600;color:var(--accent)}.dashboard-nav{display:flex;gap:16px}.nav-link{color:var(--text-muted);text-decoration:none;font-size:.85rem;transition:color .2s}.nav-link:hover{color:var(--text)}.dashboard-main{flex:1;padding:16px 24px;max-width:1600px;margin:0 auto;width:100%;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.dashboard-main::-webkit-scrollbar{display:none}.global-stats{display:flex;gap:24px;padding:12px 0;margin-bottom:16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.global-stat{display:flex;align-items:center;gap:6px}.global-value{font-size:1.1rem;font-weight:600;color:var(--text)}.global-label{font-size:.75rem;color:var(--text-muted)}.server-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.server-dot.online{background:#4c4}.server-dot.offline{background:#c44}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.grid-empty{text-align:center;color:var(--text-muted);padding:48px;font-size:1rem}.char-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;cursor:pointer;transition:background .15s,border-color .15s}.char-card:hover{background:var(--bg-card-hover);border-color:#444}.char-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.char-name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.char-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:3px;letter-spacing:.5px}.badge-combat{background:#4c43;color:var(--badge-combat)}.badge-nav{background:#fa03;color:var(--badge-nav)}.badge-other{background:#c443;color:#c44}.badge-idle{background:#64646433;color:var(--badge-idle)}.char-vitals{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.char-vitals-placeholder{font-size:.75rem;color:var(--text-dim);margin-bottom:8px;font-style:italic}.vital-bar{display:flex;align-items:center;gap:6px}.vital-label{font-size:.65rem;color:var(--text-muted);width:20px;text-align:right}.vital-track{flex:1;height:6px;border-radius:3px;overflow:hidden}.vital-fill{height:100%;border-radius:3px;transition:width .3s ease-out}.vital-text{font-size:.65rem;color:var(--text-muted);width:65px;text-align:right;font-variant-numeric:tabular-nums}.char-stats-row{display:flex;gap:12px;margin-bottom:4px}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}.stat-label{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.char-location{font-size:.7rem;color:var(--text-dim);text-align:right}.char-expanded{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.expanded-row{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-muted);margin-bottom:2px}.vitae-warn{color:#f66;font-size:.8rem;font-weight:600;margin-bottom:4px}.tab-container{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}.tab-bar{display:flex;gap:4px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{padding:8px 20px;font-size:.85rem;background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.tab-btn:hover{background:var(--bg-card-hover);color:var(--text)}.tab-btn.active{background:var(--bg-card-hover);color:var(--accent);border-bottom-color:var(--bg-body)}.tab-content{min-height:300px}.chart-section{margin-bottom:24px}.chart-title{font-size:.9rem;font-weight:600;color:var(--text);margin-bottom:12px}.rares-summary{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.rare-stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 20px;display:flex;flex-direction:column;align-items:center;min-width:140px}.rare-stat-value{font-size:1.3rem;font-weight:700;color:#fc0}.rare-stat-label{font-size:.7rem;color:var(--text-muted);margin-top:4px}.rare-timeline{max-height:200px;overflow-y:auto}.rare-event{display:flex;gap:12px;padding:4px 0;border-bottom:1px solid #222;font-size:.8rem}.rare-time{color:var(--text-dim);width:80px}.rare-char{color:var(--text-muted);width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rare-name{color:#fc0;font-weight:600}.map-tab{display:flex;flex-direction:column;align-items:center}.map-container{position:relative;width:100%;max-width:800px;aspect-ratio:1}.map-image{width:100%;height:100%;object-fit:contain;display:block}.map-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.map-legend{display:flex;gap:16px;align-items:center;margin-top:8px;font-size:.75rem;color:var(--text-muted)}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.legend-dot.hunting{background:#4c4}.legend-dot.other{background:#fa0}.map-count{margin-left:auto}.inventory-tab{width:100%}.search-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px}.search-input{flex:1;padding:8px 12px;font-size:.9rem;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none}.search-input:focus{border-color:var(--accent)}.search-spinner{font-size:.75rem;color:var(--text-muted)}.search-count{font-size:.75rem;color:var(--text-muted);margin-bottom:8px}.search-empty{text-align:center;color:var(--text-dim);padding:24px}.results-table{width:100%;border-collapse:collapse;font-size:.8rem}.results-table th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);color:var(--text-muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.3px}.results-table td{padding:4px 8px;border-bottom:1px solid #1a1a1a;color:var(--text)}.results-table tr:hover td{background:var(--bg-card-hover)}.item-name{font-weight:500}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:8px;padding:10px 16px}.dashboard-main{padding:12px}.global-stats{gap:16px}.char-grid{grid-template-columns:1fr}.char-stats-row{gap:8px}}@media(max-width:480px){.dashboard-nav{gap:10px;font-size:.8rem}.char-card{padding:10px}}.ml-layout{display:flex;height:100vh;overflow:hidden;background:#111;color:#eee;font-family:Segoe UI,sans-serif}.ml-sidebar{width:400px;min-width:400px;background:#1a1a1a;border-right:2px solid #333;display:flex;flex-direction:column;overflow-y:auto;padding:12px 14px;scrollbar-width:none;-ms-overflow-style:none}.ml-sidebar::-webkit-scrollbar{display:none}.ml-sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.ml-sidebar-title{font-size:.85rem;font-weight:600;color:#88f}.ml-view-toggle{font-size:.7rem;padding:3px 10px;background:#333;color:#aaa;border:1px solid #555;border-radius:3px;cursor:pointer}.ml-view-toggle:hover{background:#444;color:#fff}.ml-server-status{display:flex;align-items:center;gap:6px;padding:4px 0 8px;font-size:.75rem;color:#aaa}.ml-status-dot{width:8px;height:8px;border-radius:50%}.ml-status-dot.online{background:#4c4;animation:ml-pulse 2s ease-in-out infinite}.ml-status-dot.offline{background:#c44}.ml-status-detail{color:#888;font-size:.7rem}.ml-status-latency{margin-left:auto;color:#888}.ml-tool-links{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.ml-tool-link{font-size:.68rem;color:#8ac;text-decoration:none;padding:2px 6px;background:#4488ff14;border:1px solid rgba(68,136,255,.15);border-radius:3px;transition:all .15s}.ml-tool-link:hover{background:#4488ff2e;color:#adf}@keyframes ml-pulse{0%,to{opacity:1}50%{opacity:.4}}.ml-counters{display:flex;gap:6px;margin-bottom:10px}.ml-counter{flex:1;text-align:center;padding:6px 4px;border-radius:4px;background:#222;border:1px solid #333}.ml-counter-val{display:block;font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.ml-counter-lbl{display:block;font-size:.6rem;color:#888;text-transform:uppercase;letter-spacing:.3px}.ml-counter.rares .ml-counter-val{color:#fc0}.ml-counter.kph .ml-counter-val{color:#4af}.ml-counter.kph{border-color:#234;animation:ml-kph-glow 3s ease-in-out infinite}.ml-counter.kph.ultra{background:linear-gradient(135deg,#112,#221);animation:ml-kph-glow 1.5s ease-in-out infinite}.ml-counter.kills .ml-counter-val{color:#f66}@keyframes ml-kph-glow{0%,to{box-shadow:0 0 4px #4af3}50%{box-shadow:0 0 12px #44aaff80}}.ml-sort-buttons{display:flex;gap:2px;margin:8px 0}.ml-sort-btn{flex:1;padding:4px 0;font-size:.65rem;font-weight:600;background:#2a2a2a;color:#888;border:1px solid #444;border-radius:3px;cursor:pointer;text-transform:uppercase;letter-spacing:.3px}.ml-sort-btn:hover{background:#333;color:#ccc}.ml-sort-btn.active{background:#334;color:#88f;border-color:#88f}.ml-filter{width:100%;padding:5px 8px;font-size:.78rem;background:#222;color:#eee;border:1px solid #444;border-radius:3px;outline:none;margin-bottom:8px;box-sizing:border-box}.ml-filter:focus{border-color:#88f}.ml-filter::placeholder{color:#666}.ml-player-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.ml-player-list::-webkit-scrollbar{display:none}.ml-player-row{padding:6px 8px;border-bottom:1px solid #2a2a2a;border-left:3px solid transparent;cursor:pointer;transition:background .1s}.ml-player-row:hover{background:#252525}.ml-player-row.ml-player-selected{background:#2a3344}.ml-pr-name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-pr-coords{font-size:.65rem;color:#888;margin-bottom:3px}.ml-pr-vitals{display:flex;gap:3px;margin-bottom:4px}.ml-vital-bar{flex:1;height:4px;border-radius:2px;overflow:hidden}.ml-vital-bar.hp{background:#300}.ml-vital-bar.sta{background:#331a00}.ml-vital-bar.mana{background:#001433}.ml-vital-bar.hp .ml-vital-fill{background:linear-gradient(90deg,#f44,#f66)}.ml-vital-bar.sta .ml-vital-fill{background:linear-gradient(90deg,#fa0,#fc4)}.ml-vital-bar.mana .ml-vital-fill{background:linear-gradient(90deg,#48f,#6af)}.ml-vital-fill{height:100%;border-radius:2px;transition:width .3s ease-out}.ml-pr-header{display:flex;justify-content:space-between;align-items:baseline;cursor:pointer}.ml-pr-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px 8px;font-size:.68rem;color:#aaa;margin-bottom:4px}.ml-gs{font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ml-suffix{font-size:.58rem;color:#666;text-transform:uppercase;letter-spacing:.3px}.ml-taper-icon{width:14px;height:14px;margin-right:2px;vertical-align:text-bottom}.ml-meta-pill{font-size:.6rem;padding:0 6px;border-radius:3px;background:#333;color:#888;text-align:center;justify-self:end}.ml-pr-buttons{display:flex;gap:3px;margin-top:4px}.ml-btn{padding:2px 8px;font-size:.63rem;font-weight:500;border:1px solid #3a3a3a;border-radius:4px;background:#2a2a2a;color:#999;cursor:pointer;white-space:nowrap;transition:all .15s;letter-spacing:.2px}.ml-btn:hover{background:#383838;color:#ddd;border-color:#555}.ml-btn.accent{background:#4488ff1f;color:#6aadff;border-color:#4488ff4d}.ml-btn.accent:hover{background:#4488ff38;color:#8ec5ff;border-color:#4488ff80}.ml-meta-pill.active{background:#44cc4426;color:#4c4}.ml-meta-pill.other{background:#cc444426;color:#c44}.ml-map-container{flex:1;position:relative;overflow:hidden;background:#000;cursor:grab}.ml-map-container:active{cursor:grabbing}.ml-map-group{position:absolute;top:0;left:0;transform-origin:0 0}.ml-map-img{display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ml-dots-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-dot{position:absolute;width:6px;height:6px;border-radius:50%;transform:translate(-50%,-50%);border:1px solid rgba(0,0,0,.5);pointer-events:all;cursor:pointer;z-index:5}.ml-dot:hover{width:10px;height:10px;z-index:10}.ml-dot.ml-dot-selected{width:10px;height:10px;z-index:10;animation:ml-blink .6s step-end infinite}@keyframes ml-blink{50%{opacity:0}}.ml-version{font-size:.65rem;color:#aaa;margin-bottom:2px}.ml-tooltip{position:absolute;background:#001e3ceb;color:#eee;padding:6px 10px;border-radius:4px;font-size:.75rem;pointer-events:none;z-index:1000;white-space:nowrap;border:1px solid #335}.ml-coords{position:absolute;bottom:8px;left:8px;background:#003264d9;color:#eee;padding:4px 10px;border-radius:4px;font-size:.75rem;pointer-events:none;z-index:100;font-variant-numeric:tabular-nums}.ml-toggles{display:flex;gap:12px;margin-bottom:8px;font-size:.72rem}.ml-toggle-label{display:flex;align-items:center;gap:4px;color:#aaa;cursor:pointer}.ml-toggle-label input{accent-color:#4488ff}.ml-trails-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-heatmap-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.8}.ml-portals-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-portal-icon{position:absolute;width:6px;height:6px;transform:translate(-50%,-50%);pointer-events:all;cursor:help}.ml-portal-icon:before{content:"🌀";font-size:10px;position:absolute;transform:translate(-50%,-50%)}.ml-window{position:fixed;background:#1a1a1a;border:1px solid #444;border-radius:6px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #00000080}.ml-window-header{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:linear-gradient(135deg,#2a3a5a,#1a2a40);cursor:move;-webkit-user-select:none;user-select:none;border-bottom:1px solid #334}.ml-window-title{font-size:.8rem;font-weight:600;color:#acf}.ml-window-close{background:none;border:none;color:#888;font-size:1.1rem;cursor:pointer;line-height:1;padding:0 4px}.ml-window-close:hover{color:#f66}.ml-window-content{flex:1;overflow:auto;display:flex;flex-direction:column}.ml-stats-controls{display:flex;gap:4px;padding:6px 10px;border-bottom:1px solid #333}.ml-stats-range-btn{padding:3px 10px;font-size:.7rem;background:#2a2a2a;color:#888;border:1px solid #444;border-radius:3px;cursor:pointer}.ml-stats-range-btn.active{background:#4488ff26;color:#6aadff;border-color:#4488ff4d}.ml-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;flex:1}.ml-stats-panel{min-height:200px;background:#fff;border-radius:3px;overflow:hidden}.ml-stats-panel iframe{border:none}.ml-chat-messages{flex:1;overflow-y:auto;padding:6px 10px;font-size:.75rem;font-family:Consolas,Courier New,monospace;line-height:1.4}.ml-chat-line{word-break:break-word}.ml-chat-form{display:flex;border-top:1px solid #333;padding:4px}.ml-chat-input{flex:1;background:#222;color:#eee;border:1px solid #444;border-radius:3px;padding:4px 8px;font-size:.78rem;outline:none}.ml-chat-input:focus{border-color:#48f}.ml-chat-input::placeholder{color:#666}.ml-rare-notifications{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.ml-rare-notif{background:linear-gradient(135deg,#1a0a2e,#2a1040);border:2px solid #ffcc00;border-radius:8px;padding:16px 32px;text-align:center;animation:ml-notif-in .5s ease-out;box-shadow:0 0 40px #ffcc004d}.ml-rare-notif.exiting{animation:ml-notif-out .5s ease-in forwards}.ml-rare-notif-title{font-size:1.4rem;font-weight:800;color:#fc0;text-shadow:0 0 20px rgba(255,204,0,.5);margin-bottom:4px}.ml-rare-notif-name{font-size:1.1rem;font-weight:600;color:#fff;margin-bottom:4px}.ml-rare-notif-by{font-size:.75rem;color:#888}.ml-rare-notif-char{font-size:1rem;font-weight:700;color:#fc0}@keyframes ml-notif-in{0%{transform:translateY(-40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes ml-notif-out{to{transform:translateY(-60px);opacity:0}}.ml-fireworks{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:99998}.ml-firework-particle{position:absolute;width:6px;height:6px;border-radius:50%;animation:ml-particle 2s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes ml-particle{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}@media(max-width:768px){.ml-layout{flex-direction:column}.ml-sidebar{width:100%;min-width:100%;max-height:40vh;border-right:none;border-bottom:2px solid #333}.ml-map-container{min-height:60vh}} diff --git a/static/v2/assets/index-DWEW9dxC.css b/static/v2/assets/index-DWEW9dxC.css deleted file mode 100644 index d64e5dcd..00000000 --- a/static/v2/assets/index-DWEW9dxC.css +++ /dev/null @@ -1 +0,0 @@ -*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-body: #0d0d0d;--bg-card: #1a1a1a;--bg-card-hover: #222;--bg-header: #111;--border: #333;--text: #ddd;--text-muted: #888;--text-dim: #555;--accent: #4488ff;--hp: linear-gradient(90deg, #ff4444, #ff6666);--hp-bg: #330000;--sta: linear-gradient(90deg, #ffaa00, #ffcc44);--sta-bg: #331a00;--mana: linear-gradient(90deg, #4488ff, #66aaff);--mana-bg: #001433;--badge-combat: #44cc44;--badge-nav: #ffaa00;--badge-idle: #666;--radius: 6px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-body);color:var(--text);line-height:1.4;min-height:100vh}.dashboard{display:flex;flex-direction:column;min-height:100vh}.dashboard-header{background:var(--bg-header);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.dashboard-title{font-size:1.2rem;font-weight:600;color:var(--accent)}.dashboard-nav{display:flex;gap:16px}.nav-link{color:var(--text-muted);text-decoration:none;font-size:.85rem;transition:color .2s}.nav-link:hover{color:var(--text)}.dashboard-main{flex:1;padding:16px 24px;max-width:1600px;margin:0 auto;width:100%;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.dashboard-main::-webkit-scrollbar{display:none}.global-stats{display:flex;gap:24px;padding:12px 0;margin-bottom:16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.global-stat{display:flex;align-items:center;gap:6px}.global-value{font-size:1.1rem;font-weight:600;color:var(--text)}.global-label{font-size:.75rem;color:var(--text-muted)}.server-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.server-dot.online{background:#4c4}.server-dot.offline{background:#c44}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.grid-empty{text-align:center;color:var(--text-muted);padding:48px;font-size:1rem}.char-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;cursor:pointer;transition:background .15s,border-color .15s}.char-card:hover{background:var(--bg-card-hover);border-color:#444}.char-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.char-name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.char-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:3px;letter-spacing:.5px}.badge-combat{background:#4c43;color:var(--badge-combat)}.badge-nav{background:#fa03;color:var(--badge-nav)}.badge-other{background:#c443;color:#c44}.badge-idle{background:#64646433;color:var(--badge-idle)}.char-vitals{display:flex;flex-direction:column;gap:3px;margin-bottom:8px}.char-vitals-placeholder{font-size:.75rem;color:var(--text-dim);margin-bottom:8px;font-style:italic}.vital-bar{display:flex;align-items:center;gap:6px}.vital-label{font-size:.65rem;color:var(--text-muted);width:20px;text-align:right}.vital-track{flex:1;height:6px;border-radius:3px;overflow:hidden}.vital-fill{height:100%;border-radius:3px;transition:width .3s ease-out}.vital-text{font-size:.65rem;color:var(--text-muted);width:65px;text-align:right;font-variant-numeric:tabular-nums}.char-stats-row{display:flex;gap:12px;margin-bottom:4px}.stat{display:flex;flex-direction:column;align-items:center}.stat-value{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}.stat-label{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.char-location{font-size:.7rem;color:var(--text-dim);text-align:right}.char-expanded{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.expanded-row{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-muted);margin-bottom:2px}.vitae-warn{color:#f66;font-size:.8rem;font-weight:600;margin-bottom:4px}.tab-container{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}.tab-bar{display:flex;gap:4px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{padding:8px 20px;font-size:.85rem;background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.tab-btn:hover{background:var(--bg-card-hover);color:var(--text)}.tab-btn.active{background:var(--bg-card-hover);color:var(--accent);border-bottom-color:var(--bg-body)}.tab-content{min-height:300px}.chart-section{margin-bottom:24px}.chart-title{font-size:.9rem;font-weight:600;color:var(--text);margin-bottom:12px}.rares-summary{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.rare-stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 20px;display:flex;flex-direction:column;align-items:center;min-width:140px}.rare-stat-value{font-size:1.3rem;font-weight:700;color:#fc0}.rare-stat-label{font-size:.7rem;color:var(--text-muted);margin-top:4px}.rare-timeline{max-height:200px;overflow-y:auto}.rare-event{display:flex;gap:12px;padding:4px 0;border-bottom:1px solid #222;font-size:.8rem}.rare-time{color:var(--text-dim);width:80px}.rare-char{color:var(--text-muted);width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rare-name{color:#fc0;font-weight:600}.map-tab{display:flex;flex-direction:column;align-items:center}.map-container{position:relative;width:100%;max-width:800px;aspect-ratio:1}.map-image{width:100%;height:100%;object-fit:contain;display:block}.map-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.map-legend{display:flex;gap:16px;align-items:center;margin-top:8px;font-size:.75rem;color:var(--text-muted)}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.legend-dot.hunting{background:#4c4}.legend-dot.other{background:#fa0}.map-count{margin-left:auto}.inventory-tab{width:100%}.search-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px}.search-input{flex:1;padding:8px 12px;font-size:.9rem;background:var(--bg-card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);outline:none}.search-input:focus{border-color:var(--accent)}.search-spinner{font-size:.75rem;color:var(--text-muted)}.search-count{font-size:.75rem;color:var(--text-muted);margin-bottom:8px}.search-empty{text-align:center;color:var(--text-dim);padding:24px}.results-table{width:100%;border-collapse:collapse;font-size:.8rem}.results-table th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);color:var(--text-muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.3px}.results-table td{padding:4px 8px;border-bottom:1px solid #1a1a1a;color:var(--text)}.results-table tr:hover td{background:var(--bg-card-hover)}.item-name{font-weight:500}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:8px;padding:10px 16px}.dashboard-main{padding:12px}.global-stats{gap:16px}.char-grid{grid-template-columns:1fr}.char-stats-row{gap:8px}}@media(max-width:480px){.dashboard-nav{gap:10px;font-size:.8rem}.char-card{padding:10px}}.ml-layout{display:flex;height:100vh;overflow:hidden;background:#111;color:#eee;font-family:Segoe UI,sans-serif}.ml-sidebar{width:400px;min-width:400px;background:#1a1a1a;border-right:2px solid #333;display:flex;flex-direction:column;overflow-y:auto;padding:12px 14px}.ml-sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.ml-sidebar-title{font-size:.85rem;font-weight:600;color:#88f}.ml-view-toggle{font-size:.7rem;padding:3px 10px;background:#333;color:#aaa;border:1px solid #555;border-radius:3px;cursor:pointer}.ml-view-toggle:hover{background:#444;color:#fff}.ml-server-status{display:flex;align-items:center;gap:6px;padding:4px 0 8px;font-size:.75rem;color:#aaa}.ml-status-dot{width:8px;height:8px;border-radius:50%}.ml-status-dot.online{background:#4c4;animation:ml-pulse 2s ease-in-out infinite}.ml-status-dot.offline{background:#c44}.ml-status-detail{color:#888;font-size:.7rem}.ml-status-latency{margin-left:auto;color:#888}.ml-tool-links{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.ml-tool-link{font-size:.68rem;color:#8ac;text-decoration:none;padding:2px 6px;background:#4488ff14;border:1px solid rgba(68,136,255,.15);border-radius:3px;transition:all .15s}.ml-tool-link:hover{background:#4488ff2e;color:#adf}@keyframes ml-pulse{0%,to{opacity:1}50%{opacity:.4}}.ml-counters{display:flex;gap:6px;margin-bottom:10px}.ml-counter{flex:1;text-align:center;padding:6px 4px;border-radius:4px;background:#222;border:1px solid #333}.ml-counter-val{display:block;font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.ml-counter-lbl{display:block;font-size:.6rem;color:#888;text-transform:uppercase;letter-spacing:.3px}.ml-counter.rares .ml-counter-val{color:#fc0}.ml-counter.kph .ml-counter-val{color:#4af}.ml-counter.kph{border-color:#234;animation:ml-kph-glow 3s ease-in-out infinite}.ml-counter.kph.ultra{background:linear-gradient(135deg,#112,#221);animation:ml-kph-glow 1.5s ease-in-out infinite}.ml-counter.kills .ml-counter-val{color:#f66}@keyframes ml-kph-glow{0%,to{box-shadow:0 0 4px #4af3}50%{box-shadow:0 0 12px #44aaff80}}.ml-sort-buttons{display:flex;gap:2px;margin:8px 0}.ml-sort-btn{flex:1;padding:4px 0;font-size:.65rem;font-weight:600;background:#2a2a2a;color:#888;border:1px solid #444;border-radius:3px;cursor:pointer;text-transform:uppercase;letter-spacing:.3px}.ml-sort-btn:hover{background:#333;color:#ccc}.ml-sort-btn.active{background:#334;color:#88f;border-color:#88f}.ml-filter{width:100%;padding:5px 8px;font-size:.78rem;background:#222;color:#eee;border:1px solid #444;border-radius:3px;outline:none;margin-bottom:8px;box-sizing:border-box}.ml-filter:focus{border-color:#88f}.ml-filter::placeholder{color:#666}.ml-player-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.ml-player-list::-webkit-scrollbar{display:none}.ml-player-row{padding:6px 8px;border-bottom:1px solid #2a2a2a;border-left:3px solid transparent;cursor:pointer;transition:background .1s}.ml-player-row:hover{background:#252525}.ml-player-row.ml-player-selected{background:#2a3344}.ml-pr-name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-pr-coords{font-size:.65rem;color:#888;margin-bottom:3px}.ml-pr-vitals{display:flex;gap:3px;margin-bottom:4px}.ml-vital-bar{flex:1;height:4px;border-radius:2px;overflow:hidden}.ml-vital-bar.hp{background:#300}.ml-vital-bar.sta{background:#331a00}.ml-vital-bar.mana{background:#001433}.ml-vital-bar.hp .ml-vital-fill{background:linear-gradient(90deg,#f44,#f66)}.ml-vital-bar.sta .ml-vital-fill{background:linear-gradient(90deg,#fa0,#fc4)}.ml-vital-bar.mana .ml-vital-fill{background:linear-gradient(90deg,#48f,#6af)}.ml-vital-fill{height:100%;border-radius:2px;transition:width .3s ease-out}.ml-pr-header{display:flex;justify-content:space-between;align-items:baseline;cursor:pointer}.ml-pr-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px 8px;font-size:.68rem;color:#aaa;margin-bottom:4px}.ml-gs{font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ml-suffix{font-size:.58rem;color:#666;text-transform:uppercase;letter-spacing:.3px}.ml-taper-icon{width:14px;height:14px;margin-right:2px;vertical-align:text-bottom}.ml-meta-pill{font-size:.6rem;padding:0 6px;border-radius:3px;background:#333;color:#888;text-align:center;justify-self:end}.ml-pr-buttons{display:flex;gap:3px;margin-top:4px}.ml-btn{padding:2px 8px;font-size:.63rem;font-weight:500;border:1px solid #3a3a3a;border-radius:4px;background:#2a2a2a;color:#999;cursor:pointer;white-space:nowrap;transition:all .15s;letter-spacing:.2px}.ml-btn:hover{background:#383838;color:#ddd;border-color:#555}.ml-btn.accent{background:#4488ff1f;color:#6aadff;border-color:#4488ff4d}.ml-btn.accent:hover{background:#4488ff38;color:#8ec5ff;border-color:#4488ff80}.ml-meta-pill.active{background:#44cc4426;color:#4c4}.ml-meta-pill.other{background:#cc444426;color:#c44}.ml-map-container{flex:1;position:relative;overflow:hidden;background:#000;cursor:grab}.ml-map-container:active{cursor:grabbing}.ml-map-group{position:absolute;top:0;left:0;transform-origin:0 0}.ml-map-img{display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ml-dots-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-dot{position:absolute;width:6px;height:6px;border-radius:50%;transform:translate(-50%,-50%);border:1px solid rgba(0,0,0,.5);pointer-events:all;cursor:pointer;z-index:5}.ml-dot:hover{width:10px;height:10px;z-index:10}.ml-dot.ml-dot-selected{width:10px;height:10px;z-index:10;animation:ml-blink .6s step-end infinite}@keyframes ml-blink{50%{opacity:0}}.ml-version{font-size:.65rem;color:#aaa;margin-bottom:2px}.ml-tooltip{position:absolute;background:#001e3ceb;color:#eee;padding:6px 10px;border-radius:4px;font-size:.75rem;pointer-events:none;z-index:1000;white-space:nowrap;border:1px solid #335}.ml-coords{position:absolute;bottom:8px;left:8px;background:#003264d9;color:#eee;padding:4px 10px;border-radius:4px;font-size:.75rem;pointer-events:none;z-index:100;font-variant-numeric:tabular-nums}.ml-toggles{display:flex;gap:12px;margin-bottom:8px;font-size:.72rem}.ml-toggle-label{display:flex;align-items:center;gap:4px;color:#aaa;cursor:pointer}.ml-toggle-label input{accent-color:#4488ff}.ml-trails-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-heatmap-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.8}.ml-portals-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ml-portal-icon{position:absolute;width:6px;height:6px;transform:translate(-50%,-50%);pointer-events:all;cursor:help}.ml-portal-icon:before{content:"🌀";font-size:10px;position:absolute;transform:translate(-50%,-50%)}.ml-window{position:fixed;background:#1a1a1a;border:1px solid #444;border-radius:6px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #00000080}.ml-window-header{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:linear-gradient(135deg,#2a3a5a,#1a2a40);cursor:move;-webkit-user-select:none;user-select:none;border-bottom:1px solid #334}.ml-window-title{font-size:.8rem;font-weight:600;color:#acf}.ml-window-close{background:none;border:none;color:#888;font-size:1.1rem;cursor:pointer;line-height:1;padding:0 4px}.ml-window-close:hover{color:#f66}.ml-window-content{flex:1;overflow:auto;display:flex;flex-direction:column}.ml-stats-controls{display:flex;gap:4px;padding:6px 10px;border-bottom:1px solid #333}.ml-stats-range-btn{padding:3px 10px;font-size:.7rem;background:#2a2a2a;color:#888;border:1px solid #444;border-radius:3px;cursor:pointer}.ml-stats-range-btn.active{background:#4488ff26;color:#6aadff;border-color:#4488ff4d}.ml-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;flex:1}.ml-stats-panel{min-height:200px;background:#fff;border-radius:3px;overflow:hidden}.ml-stats-panel iframe{border:none}.ml-chat-messages{flex:1;overflow-y:auto;padding:6px 10px;font-size:.75rem;font-family:Consolas,Courier New,monospace;line-height:1.4}.ml-chat-line{word-break:break-word}.ml-chat-form{display:flex;border-top:1px solid #333;padding:4px}.ml-chat-input{flex:1;background:#222;color:#eee;border:1px solid #444;border-radius:3px;padding:4px 8px;font-size:.78rem;outline:none}.ml-chat-input:focus{border-color:#48f}.ml-chat-input::placeholder{color:#666}.ml-rare-notifications{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.ml-rare-notif{background:linear-gradient(135deg,#1a0a2e,#2a1040);border:2px solid #ffcc00;border-radius:8px;padding:16px 32px;text-align:center;animation:ml-notif-in .5s ease-out;box-shadow:0 0 40px #ffcc004d}.ml-rare-notif.exiting{animation:ml-notif-out .5s ease-in forwards}.ml-rare-notif-title{font-size:1.4rem;font-weight:800;color:#fc0;text-shadow:0 0 20px rgba(255,204,0,.5);margin-bottom:4px}.ml-rare-notif-name{font-size:1.1rem;font-weight:600;color:#fff;margin-bottom:4px}.ml-rare-notif-by{font-size:.75rem;color:#888}.ml-rare-notif-char{font-size:1rem;font-weight:700;color:#fc0}@keyframes ml-notif-in{0%{transform:translateY(-40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes ml-notif-out{to{transform:translateY(-60px);opacity:0}}.ml-fireworks{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:99998}.ml-firework-particle{position:absolute;width:6px;height:6px;border-radius:50%;animation:ml-particle 2s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes ml-particle{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}@media(max-width:768px){.ml-layout{flex-direction:column}.ml-sidebar{width:100%;min-width:100%;max-height:40vh;border-right:none;border-bottom:2px solid #333}.ml-map-container{min-height:60vh}} diff --git a/static/v2/assets/index-ahPE6Fpe.js b/static/v2/assets/index-ahPE6Fpe.js new file mode 100644 index 00000000..f7efebc8 --- /dev/null +++ b/static/v2/assets/index-ahPE6Fpe.js @@ -0,0 +1,34 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StatsWindow-BvEd94FW.js","assets/react-DlyoauG8.js","assets/CharacterWindow-DHhMuitc.js","assets/InventoryWindow-CHG3Ftlg.js","assets/RadarWindow-D_o-FWZR.js","assets/CombatStatsWindow-Js_v2JL3.js","assets/CombatPickerWindow-CWXujjNT.js","assets/IssuesWindow-BeCdzqJV.js","assets/VitalSharingWindow-0C98e7ZG.js","assets/DashboardView-B8znzNXc.js"])))=>i.map(i=>d[i]); +import{r as _m,g as er,a as ur}from"./react-DlyoauG8.js";(function(){const x=document.createElement("link").relList;if(x&&x.supports&&x.supports("modulepreload"))return;for(const U of document.querySelectorAll('link[rel="modulepreload"]'))d(U);new MutationObserver(U=>{for(const O of U)if(O.type==="childList")for(const N of O.addedNodes)N.tagName==="LINK"&&N.rel==="modulepreload"&&d(N)}).observe(document,{childList:!0,subtree:!0});function _(U){const O={};return U.integrity&&(O.integrity=U.integrity),U.referrerPolicy&&(O.referrerPolicy=U.referrerPolicy),U.crossOrigin==="use-credentials"?O.credentials="include":U.crossOrigin==="anonymous"?O.credentials="omit":O.credentials="same-origin",O}function d(U){if(U.ep)return;U.ep=!0;const O=_(U);fetch(U.href,O)}})();var sf={exports:{}},gu={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ym;function nr(){if(ym)return gu;ym=1;var o=Symbol.for("react.transitional.element"),x=Symbol.for("react.fragment");function _(d,U,O){var N=null;if(O!==void 0&&(N=""+O),U.key!==void 0&&(N=""+U.key),"key"in U){O={};for(var T in U)T!=="key"&&(O[T]=U[T])}else O=U;return U=O.ref,{$$typeof:o,type:d,key:N,ref:U!==void 0?U:null,props:O}}return gu.Fragment=x,gu.jsx=_,gu.jsxs=_,gu}var gm;function cr(){return gm||(gm=1,sf.exports=nr()),sf.exports}var y=cr(),E=_m();const bu=er(E);var of={exports:{}},Su={},df={exports:{}},mf={};/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Sm;function ir(){return Sm||(Sm=1,(function(o){function x(b,C){var V=b.length;b.push(C);l:for(;0>>1,gl=b[yl];if(0>>1;ylU(sl,V))RlU(At,sl)?(b[yl]=At,b[Rl]=V,yl=Rl):(b[yl]=sl,b[Tl]=V,yl=Tl);else if(RlU(At,V))b[yl]=At,b[Rl]=V,yl=Rl;else break l}}return C}function U(b,C){var V=b.sortIndex-C.sortIndex;return V!==0?V:b.id-C.id}if(o.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var O=performance;o.unstable_now=function(){return O.now()}}else{var N=Date,T=N.now();o.unstable_now=function(){return N.now()-T}}var M=[],D=[],H=1,z=null,j=3,Q=!1,X=!1,W=!1,Ul=!1,Bl=typeof setTimeout=="function"?setTimeout:null,$=typeof clearTimeout=="function"?clearTimeout:null,tl=typeof setImmediate<"u"?setImmediate:null;function Vl(b){for(var C=_(D);C!==null;){if(C.callback===null)d(D);else if(C.startTime<=b)d(D),C.sortIndex=C.expirationTime,x(M,C);else break;C=_(D)}}function jl(b){if(W=!1,Vl(b),!X)if(_(M)!==null)X=!0,I||(I=!0,B());else{var C=_(D);C!==null&&st(jl,C.startTime-b)}}var I=!1,F=-1,ul=5,k=-1;function R(){return Ul?!0:!(o.unstable_now()-kb&&R());){var yl=z.callback;if(typeof yl=="function"){z.callback=null,j=z.priorityLevel;var gl=yl(z.expirationTime<=b);if(b=o.unstable_now(),typeof gl=="function"){z.callback=gl,Vl(b),C=!0;break t}z===_(M)&&d(M),Vl(b)}else d(M);z=_(M)}if(z!==null)C=!0;else{var Ll=_(D);Ll!==null&&st(jl,Ll.startTime-b),C=!1}}break l}finally{z=null,j=V,Q=!1}C=void 0}}finally{C?B():I=!1}}}var B;if(typeof tl=="function")B=function(){tl(J)};else if(typeof MessageChannel<"u"){var L=new MessageChannel,pl=L.port2;L.port1.onmessage=J,B=function(){pl.postMessage(null)}}else B=function(){Bl(J,0)};function st(b,C){F=Bl(function(){b(o.unstable_now())},C)}o.unstable_IdlePriority=5,o.unstable_ImmediatePriority=1,o.unstable_LowPriority=4,o.unstable_NormalPriority=3,o.unstable_Profiling=null,o.unstable_UserBlockingPriority=2,o.unstable_cancelCallback=function(b){b.callback=null},o.unstable_forceFrameRate=function(b){0>b||125yl?(b.sortIndex=V,x(D,b),_(M)===null&&b===_(D)&&(W?($(F),F=-1):W=!0,st(jl,V-yl))):(b.sortIndex=gl,x(M,b),X||Q||(X=!0,I||(I=!0,B()))),b},o.unstable_shouldYield=R,o.unstable_wrapCallback=function(b){var C=j;return function(){var V=j;j=C;try{return b.apply(this,arguments)}finally{j=V}}}})(mf)),mf}var bm;function fr(){return bm||(bm=1,df.exports=ir()),df.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var zm;function sr(){if(zm)return Su;zm=1;var o=fr(),x=_m(),_=ur();function d(l){var t="https://react.dev/errors/"+l;if(1gl||(l.current=yl[gl],yl[gl]=null,gl--)}function sl(l,t){gl++,yl[gl]=l.current,l.current=t}var Rl=Ll(null),At=Ll(null),kt=Ll(null),Tu=Ll(null);function Eu(l,t){switch(sl(kt,t),sl(At,l),sl(Rl,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Xd(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Xd(t),l=Gd(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}Tl(Rl),sl(Rl,l)}function Ga(){Tl(Rl),Tl(At),Tl(kt)}function Vn(l){l.memoizedState!==null&&sl(Tu,l);var t=Rl.current,a=Gd(t,l.type);t!==a&&(sl(At,l),sl(Rl,a))}function Au(l){At.current===l&&(Tl(Rl),Tl(At)),Tu.current===l&&(Tl(Tu),hu._currentValue=V)}var Ln,rf;function pa(l){if(Ln===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);Ln=t&&t[1]||"",rf=-1)":-1u||f[e]!==r[u]){var S=` +`+f[e].replace(" at new "," at ");return l.displayName&&S.includes("")&&(S=S.replace("",l.displayName)),S}while(1<=e&&0<=u);break}}}finally{Kn=!1,Error.prepareStackTrace=a}return(a=l?l.displayName||l.name:"")?pa(a):""}function Rm(l,t){switch(l.tag){case 26:case 27:case 5:return pa(l.type);case 16:return pa("Lazy");case 13:return l.child!==t&&t!==null?pa("Suspense Fallback"):pa("Suspense");case 19:return pa("SuspenseList");case 0:case 15:return Jn(l.type,!1);case 11:return Jn(l.type.render,!1);case 1:return Jn(l.type,!0);case 31:return pa("Activity");default:return""}}function vf(l){try{var t="",a=null;do t+=Rm(l,a),a=l,l=l.return;while(l);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var wn=Object.prototype.hasOwnProperty,kn=o.unstable_scheduleCallback,Wn=o.unstable_cancelCallback,Hm=o.unstable_shouldYield,qm=o.unstable_requestPaint,Pl=o.unstable_now,Bm=o.unstable_getCurrentPriorityLevel,yf=o.unstable_ImmediatePriority,gf=o.unstable_UserBlockingPriority,Mu=o.unstable_NormalPriority,Ym=o.unstable_LowPriority,Sf=o.unstable_IdlePriority,Xm=o.log,Gm=o.unstable_setDisableYieldValue,Me=null,lt=null;function Wt(l){if(typeof Xm=="function"&&Gm(l),lt&&typeof lt.setStrictMode=="function")try{lt.setStrictMode(Me,l)}catch{}}var tt=Math.clz32?Math.clz32:Vm,Qm=Math.log,Zm=Math.LN2;function Vm(l){return l>>>=0,l===0?32:31-(Qm(l)/Zm|0)|0}var _u=256,xu=262144,Du=4194304;function Ta(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Ou(l,t,a){var e=l.pendingLanes;if(e===0)return 0;var u=0,n=l.suspendedLanes,c=l.pingedLanes;l=l.warmLanes;var i=e&134217727;return i!==0?(e=i&~n,e!==0?u=Ta(e):(c&=i,c!==0?u=Ta(c):a||(a=i&~l,a!==0&&(u=Ta(a))))):(i=e&~n,i!==0?u=Ta(i):c!==0?u=Ta(c):a||(a=e&~l,a!==0&&(u=Ta(a)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,a=t&-t,n>=a||n===32&&(a&4194048)!==0)?t:u}function _e(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function Lm(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function bf(){var l=Du;return Du<<=1,(Du&62914560)===0&&(Du=4194304),l}function Fn(l){for(var t=[],a=0;31>a;a++)t.push(l);return t}function xe(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Km(l,t,a,e,u,n){var c=l.pendingLanes;l.pendingLanes=a,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=a,l.entangledLanes&=a,l.errorRecoveryDisabledLanes&=a,l.shellSuspendCounter=0;var i=l.entanglements,f=l.expirationTimes,r=l.hiddenUpdates;for(a=c&~a;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var $m=/[\n"\\]/g;function dt(l){return l.replace($m,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function ac(l,t,a,e,u,n,c,i){l.name="",c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.type=c:l.removeAttribute("type"),t!=null?c==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+ot(t)):l.value!==""+ot(t)&&(l.value=""+ot(t)):c!=="submit"&&c!=="reset"||l.removeAttribute("value"),t!=null?ec(l,c,ot(t)):a!=null?ec(l,c,ot(a)):e!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.name=""+ot(i):l.removeAttribute("name")}function jf(l,t,a,e,u,n,c,i){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||a!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){tc(l);return}a=a!=null?""+ot(a):"",t=t!=null?""+ot(t):a,i||t===l.value||(l.value=t),l.defaultValue=t}e=e??u,e=typeof e!="function"&&typeof e!="symbol"&&!!e,l.checked=i?l.checked:!!e,l.defaultChecked=!!e,c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(l.name=c),tc(l)}function ec(l,t,a){t==="number"&&ju(l.ownerDocument)===l||l.defaultValue===""+a||(l.defaultValue=""+a)}function Ja(l,t,a,e){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),fc=!1;if(Ut)try{var Ue={};Object.defineProperty(Ue,"passive",{get:function(){fc=!0}}),window.addEventListener("test",Ue,Ue),window.removeEventListener("test",Ue,Ue)}catch{fc=!1}var $t=null,sc=null,Ru=null;function Xf(){if(Ru)return Ru;var l,t=sc,a=t.length,e,u="value"in $t?$t.value:$t.textContent,n=u.length;for(l=0;l=Re),Kf=" ",Jf=!1;function wf(l,t){switch(l){case"keyup":return M0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kf(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Fa=!1;function x0(l,t){switch(l){case"compositionend":return kf(t);case"keypress":return t.which!==32?null:(Jf=!0,Kf);case"textInput":return l=t.data,l===Kf&&Jf?null:l;default:return null}}function D0(l,t){if(Fa)return l==="compositionend"||!rc&&wf(l,t)?(l=Xf(),Ru=sc=$t=null,Fa=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-l};l=e}l:{for(;a;){if(a.nextSibling){a=a.nextSibling;break l}a=a.parentNode}a=void 0}a=as(a)}}function us(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?us(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function ns(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=ju(l.document);t instanceof l.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)l=t.contentWindow;else break;t=ju(l.document)}return t}function gc(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var q0=Ut&&"documentMode"in document&&11>=document.documentMode,$a=null,Sc=null,Ye=null,bc=!1;function cs(l,t,a){var e=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;bc||$a==null||$a!==ju(e)||(e=$a,"selectionStart"in e&&gc(e)?e={start:e.selectionStart,end:e.selectionEnd}:(e=(e.ownerDocument&&e.ownerDocument.defaultView||window).getSelection(),e={anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}),Ye&&Be(Ye,e)||(Ye=e,e=Dn(Sc,"onSelect"),0>=c,u-=c,Mt=1<<32-tt(t)+u|a<w?(el=Y,Y=null):el=Y.sibling;var il=v(m,Y,h[w],p);if(il===null){Y===null&&(Y=el);break}l&&Y&&il.alternate===null&&t(m,Y),s=n(il,s,w),cl===null?G=il:cl.sibling=il,cl=il,Y=el}if(w===h.length)return a(m,Y),nl&&Ct(m,w),G;if(Y===null){for(;ww?(el=Y,Y=null):el=Y.sibling;var ba=v(m,Y,il.value,p);if(ba===null){Y===null&&(Y=el);break}l&&Y&&ba.alternate===null&&t(m,Y),s=n(ba,s,w),cl===null?G=ba:cl.sibling=ba,cl=ba,Y=el}if(il.done)return a(m,Y),nl&&Ct(m,w),G;if(Y===null){for(;!il.done;w++,il=h.next())il=A(m,il.value,p),il!==null&&(s=n(il,s,w),cl===null?G=il:cl.sibling=il,cl=il);return nl&&Ct(m,w),G}for(Y=e(Y);!il.done;w++,il=h.next())il=g(Y,m,w,il.value,p),il!==null&&(l&&il.alternate!==null&&Y.delete(il.key===null?w:il.key),s=n(il,s,w),cl===null?G=il:cl.sibling=il,cl=il);return l&&Y.forEach(function(ar){return t(m,ar)}),nl&&Ct(m,w),G}function rl(m,s,h,p){if(typeof h=="object"&&h!==null&&h.type===W&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case Q:l:{for(var G=h.key;s!==null;){if(s.key===G){if(G=h.type,G===W){if(s.tag===7){a(m,s.sibling),p=u(s,h.props.children),p.return=m,m=p;break l}}else if(s.elementType===G||typeof G=="object"&&G!==null&&G.$$typeof===ul&&Ca(G)===s.type){a(m,s.sibling),p=u(s,h.props),Le(p,h),p.return=m,m=p;break l}a(m,s);break}else t(m,s);s=s.sibling}h.type===W?(p=Da(h.props.children,m.mode,p,h.key),p.return=m,m=p):(p=Lu(h.type,h.key,h.props,null,m.mode,p),Le(p,h),p.return=m,m=p)}return c(m);case X:l:{for(G=h.key;s!==null;){if(s.key===G)if(s.tag===4&&s.stateNode.containerInfo===h.containerInfo&&s.stateNode.implementation===h.implementation){a(m,s.sibling),p=u(s,h.children||[]),p.return=m,m=p;break l}else{a(m,s);break}else t(m,s);s=s.sibling}p=_c(h,m.mode,p),p.return=m,m=p}return c(m);case ul:return h=Ca(h),rl(m,s,h,p)}if(st(h))return q(m,s,h,p);if(B(h)){if(G=B(h),typeof G!="function")throw Error(d(150));return h=G.call(h),Z(m,s,h,p)}if(typeof h.then=="function")return rl(m,s,$u(h),p);if(h.$$typeof===tl)return rl(m,s,wu(m,h),p);Iu(m,h)}return typeof h=="string"&&h!==""||typeof h=="number"||typeof h=="bigint"?(h=""+h,s!==null&&s.tag===6?(a(m,s.sibling),p=u(s,h),p.return=m,m=p):(a(m,s),p=Mc(h,m.mode,p),p.return=m,m=p),c(m)):a(m,s)}return function(m,s,h,p){try{Ve=0;var G=rl(m,s,h,p);return fe=null,G}catch(Y){if(Y===ie||Y===Wu)throw Y;var cl=et(29,Y,null,m.mode);return cl.lanes=p,cl.return=m,cl}finally{}}}var Ha=Os(!0),Ns=Os(!1),aa=!1;function Yc(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Xc(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ea(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function ua(l,t,a){var e=l.updateQueue;if(e===null)return null;if(e=e.shared,(fl&2)!==0){var u=e.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),e.pending=t,t=Vu(l),hs(l,null,a),t}return Zu(l,e,t,a),Vu(l)}function Ke(l,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var e=t.lanes;e&=l.pendingLanes,a|=e,t.lanes=a,pf(l,a)}}function Gc(l,t){var a=l.updateQueue,e=l.alternate;if(e!==null&&(e=e.updateQueue,a===e)){var u=null,n=null;if(a=a.firstBaseUpdate,a!==null){do{var c={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};n===null?u=n=c:n=n.next=c,a=a.next}while(a!==null);n===null?u=n=t:n=n.next=t}else u=n=t;a={baseState:e.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:e.shared,callbacks:e.callbacks},l.updateQueue=a;return}l=a.lastBaseUpdate,l===null?a.firstBaseUpdate=t:l.next=t,a.lastBaseUpdate=t}var Qc=!1;function Je(){if(Qc){var l=ce;if(l!==null)throw l}}function we(l,t,a,e){Qc=!1;var u=l.updateQueue;aa=!1;var n=u.firstBaseUpdate,c=u.lastBaseUpdate,i=u.shared.pending;if(i!==null){u.shared.pending=null;var f=i,r=f.next;f.next=null,c===null?n=r:c.next=r,c=f;var S=l.alternate;S!==null&&(S=S.updateQueue,i=S.lastBaseUpdate,i!==c&&(i===null?S.firstBaseUpdate=r:i.next=r,S.lastBaseUpdate=f))}if(n!==null){var A=u.baseState;c=0,S=r=f=null,i=n;do{var v=i.lane&-536870913,g=v!==i.lane;if(g?(al&v)===v:(e&v)===v){v!==0&&v===ne&&(Qc=!0),S!==null&&(S=S.next={lane:0,tag:i.tag,payload:i.payload,callback:null,next:null});l:{var q=l,Z=i;v=t;var rl=a;switch(Z.tag){case 1:if(q=Z.payload,typeof q=="function"){A=q.call(rl,A,v);break l}A=q;break l;case 3:q.flags=q.flags&-65537|128;case 0:if(q=Z.payload,v=typeof q=="function"?q.call(rl,A,v):q,v==null)break l;A=z({},A,v);break l;case 2:aa=!0}}v=i.callback,v!==null&&(l.flags|=64,g&&(l.flags|=8192),g=u.callbacks,g===null?u.callbacks=[v]:g.push(v))}else g={lane:v,tag:i.tag,payload:i.payload,callback:i.callback,next:null},S===null?(r=S=g,f=A):S=S.next=g,c|=v;if(i=i.next,i===null){if(i=u.shared.pending,i===null)break;g=i,i=g.next,g.next=null,u.lastBaseUpdate=g,u.shared.pending=null}}while(!0);S===null&&(f=A),u.baseState=f,u.firstBaseUpdate=r,u.lastBaseUpdate=S,n===null&&(u.shared.lanes=0),sa|=c,l.lanes=c,l.memoizedState=A}}function Us(l,t){if(typeof l!="function")throw Error(d(191,l));l.call(t)}function js(l,t){var a=l.callbacks;if(a!==null)for(l.callbacks=null,l=0;ln?n:8;var c=b.T,i={};b.T=i,ci(l,!1,t,a);try{var f=u(),r=b.S;if(r!==null&&r(i,f),f!==null&&typeof f=="object"&&typeof f.then=="function"){var S=K0(f,e);Fe(l,t,S,ft(l))}else Fe(l,t,e,ft(l))}catch(A){Fe(l,t,{then:function(){},status:"rejected",reason:A},ft())}finally{C.p=n,c!==null&&i.types!==null&&(c.types=i.types),b.T=c}}function $0(){}function ui(l,t,a,e){if(l.tag!==5)throw Error(d(476));var u=oo(l).queue;so(l,u,t,V,a===null?$0:function(){return mo(l),a(e)})}function oo(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:V,baseState:V,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Bt,lastRenderedState:V},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Bt,lastRenderedState:a},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function mo(l){var t=oo(l);t.next===null&&(t=l.alternate.memoizedState),Fe(l,t.next.queue,{},ft())}function ni(){return Gl(hu)}function ho(){return _l().memoizedState}function ro(){return _l().memoizedState}function I0(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var a=ft();l=ea(a);var e=ua(t,l,a);e!==null&&(Il(e,t,a),Ke(e,t,a)),t={cache:Rc()},l.payload=t;return}t=t.return}}function P0(l,t,a){var e=ft();a={lane:e,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},sn(l)?yo(t,a):(a=Ec(l,t,a,e),a!==null&&(Il(a,l,e),go(a,t,e)))}function vo(l,t,a){var e=ft();Fe(l,t,a,e)}function Fe(l,t,a,e){var u={lane:e,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(sn(l))yo(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var c=t.lastRenderedState,i=n(c,a);if(u.hasEagerState=!0,u.eagerState=i,at(i,c))return Zu(l,t,u,0),vl===null&&Qu(),!1}catch{}finally{}if(a=Ec(l,t,u,e),a!==null)return Il(a,l,e),go(a,t,e),!0}return!1}function ci(l,t,a,e){if(e={lane:2,revertLane:Yi(),gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},sn(l)){if(t)throw Error(d(479))}else t=Ec(l,a,e,2),t!==null&&Il(t,l,2)}function sn(l){var t=l.alternate;return l===K||t!==null&&t===K}function yo(l,t){oe=tn=!0;var a=l.pending;a===null?t.next=t:(t.next=a.next,a.next=t),l.pending=t}function go(l,t,a){if((a&4194048)!==0){var e=t.lanes;e&=l.pendingLanes,a|=e,t.lanes=a,pf(l,a)}}var $e={readContext:Gl,use:un,useCallback:El,useContext:El,useEffect:El,useImperativeHandle:El,useLayoutEffect:El,useInsertionEffect:El,useMemo:El,useReducer:El,useRef:El,useState:El,useDebugValue:El,useDeferredValue:El,useTransition:El,useSyncExternalStore:El,useId:El,useHostTransitionStatus:El,useFormState:El,useActionState:El,useOptimistic:El,useMemoCache:El,useCacheRefresh:El};$e.useEffectEvent=El;var So={readContext:Gl,use:un,useCallback:function(l,t){return Kl().memoizedState=[l,t===void 0?null:t],l},useContext:Gl,useEffect:lo,useImperativeHandle:function(l,t,a){a=a!=null?a.concat([l]):null,cn(4194308,4,uo.bind(null,t,l),a)},useLayoutEffect:function(l,t){return cn(4194308,4,l,t)},useInsertionEffect:function(l,t){cn(4,2,l,t)},useMemo:function(l,t){var a=Kl();t=t===void 0?null:t;var e=l();if(qa){Wt(!0);try{l()}finally{Wt(!1)}}return a.memoizedState=[e,t],e},useReducer:function(l,t,a){var e=Kl();if(a!==void 0){var u=a(t);if(qa){Wt(!0);try{a(t)}finally{Wt(!1)}}}else u=t;return e.memoizedState=e.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},e.queue=l,l=l.dispatch=P0.bind(null,K,l),[e.memoizedState,l]},useRef:function(l){var t=Kl();return l={current:l},t.memoizedState=l},useState:function(l){l=Pc(l);var t=l.queue,a=vo.bind(null,K,t);return t.dispatch=a,[l.memoizedState,a]},useDebugValue:ai,useDeferredValue:function(l,t){var a=Kl();return ei(a,l,t)},useTransition:function(){var l=Pc(!1);return l=so.bind(null,K,l.queue,!0,!1),Kl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,a){var e=K,u=Kl();if(nl){if(a===void 0)throw Error(d(407));a=a()}else{if(a=t(),vl===null)throw Error(d(349));(al&127)!==0||Ys(e,t,a)}u.memoizedState=a;var n={value:a,getSnapshot:t};return u.queue=n,lo(Gs.bind(null,e,n,l),[l]),e.flags|=2048,me(9,{destroy:void 0},Xs.bind(null,e,n,a,t),null),a},useId:function(){var l=Kl(),t=vl.identifierPrefix;if(nl){var a=_t,e=Mt;a=(e&~(1<<32-tt(e)-1)).toString(32)+a,t="_"+t+"R_"+a,a=an++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof e.is=="string"?c.createElement("select",{is:e.is}):c.createElement("select"),e.multiple?n.multiple=!0:e.size&&(n.size=e.size);break;default:n=typeof e.is=="string"?c.createElement(u,{is:e.is}):c.createElement(u)}}n[Yl]=t,n[Jl]=e;l:for(c=t.child;c!==null;){if(c.tag===5||c.tag===6)n.appendChild(c.stateNode);else if(c.tag!==4&&c.tag!==27&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===t)break l;for(;c.sibling===null;){if(c.return===null||c.return===t)break l;c=c.return}c.sibling.return=c.return,c=c.sibling}t.stateNode=n;l:switch(Zl(n,u,e),u){case"button":case"input":case"select":case"textarea":e=!!e.autoFocus;break l;case"img":e=!0;break l;default:e=!1}e&&Xt(t)}}return bl(t),zi(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,a),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==e&&Xt(t);else{if(typeof e!="string"&&t.stateNode===null)throw Error(d(166));if(l=kt.current,ee(t)){if(l=t.stateNode,a=t.memoizedProps,e=null,u=Xl,u!==null)switch(u.tag){case 27:case 5:e=u.memoizedProps}l[Yl]=t,l=!!(l.nodeValue===a||e!==null&&e.suppressHydrationWarning===!0||Bd(l.nodeValue,a)),l||la(t,!0)}else l=On(l).createTextNode(e),l[Yl]=t,t.stateNode=l}return bl(t),null;case 31:if(a=t.memoizedState,l===null||l.memoizedState!==null){if(e=ee(t),a!==null){if(l===null){if(!e)throw Error(d(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(d(557));l[Yl]=t}else Oa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;bl(t),l=!1}else a=Nc(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=a),l=!0;if(!l)return t.flags&256?(nt(t),t):(nt(t),null);if((t.flags&128)!==0)throw Error(d(558))}return bl(t),null;case 13:if(e=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=ee(t),e!==null&&e.dehydrated!==null){if(l===null){if(!u)throw Error(d(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(d(317));u[Yl]=t}else Oa(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;bl(t),u=!1}else u=Nc(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(nt(t),t):(nt(t),null)}return nt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=e!==null,l=l!==null&&l.memoizedState!==null,a&&(e=t.child,u=null,e.alternate!==null&&e.alternate.memoizedState!==null&&e.alternate.memoizedState.cachePool!==null&&(u=e.alternate.memoizedState.cachePool.pool),n=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),n!==u&&(e.flags|=2048)),a!==l&&a&&(t.child.flags|=8192),rn(t,t.updateQueue),bl(t),null);case 4:return Ga(),l===null&&Zi(t.stateNode.containerInfo),bl(t),null;case 10:return Ht(t.type),bl(t),null;case 19:if(Tl(Ml),e=t.memoizedState,e===null)return bl(t),null;if(u=(t.flags&128)!==0,n=e.rendering,n===null)if(u)Pe(e,!1);else{if(Al!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=ln(l),n!==null){for(t.flags|=128,Pe(e,!1),l=n.updateQueue,t.updateQueue=l,rn(t,l),t.subtreeFlags=0,l=a,a=t.child;a!==null;)rs(a,l),a=a.sibling;return sl(Ml,Ml.current&1|2),nl&&Ct(t,e.treeForkCount),t.child}l=l.sibling}e.tail!==null&&Pl()>bn&&(t.flags|=128,u=!0,Pe(e,!1),t.lanes=4194304)}else{if(!u)if(l=ln(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,rn(t,l),Pe(e,!0),e.tail===null&&e.tailMode==="hidden"&&!n.alternate&&!nl)return bl(t),null}else 2*Pl()-e.renderingStartTime>bn&&a!==536870912&&(t.flags|=128,u=!0,Pe(e,!1),t.lanes=4194304);e.isBackwards?(n.sibling=t.child,t.child=n):(l=e.last,l!==null?l.sibling=n:t.child=n,e.last=n)}return e.tail!==null?(l=e.tail,e.rendering=l,e.tail=l.sibling,e.renderingStartTime=Pl(),l.sibling=null,a=Ml.current,sl(Ml,u?a&1|2:a&1),nl&&Ct(t,e.treeForkCount),l):(bl(t),null);case 22:case 23:return nt(t),Vc(),e=t.memoizedState!==null,l!==null?l.memoizedState!==null!==e&&(t.flags|=8192):e&&(t.flags|=8192),e?(a&536870912)!==0&&(t.flags&128)===0&&(bl(t),t.subtreeFlags&6&&(t.flags|=8192)):bl(t),a=t.updateQueue,a!==null&&rn(t,a.retryQueue),a=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(a=l.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==a&&(t.flags|=2048),l!==null&&Tl(ja),null;case 24:return a=null,l!==null&&(a=l.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Ht(xl),bl(t),null;case 25:return null;case 30:return null}throw Error(d(156,t.tag))}function uh(l,t){switch(Dc(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Ht(xl),Ga(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return Au(t),null;case 31:if(t.memoizedState!==null){if(nt(t),t.alternate===null)throw Error(d(340));Oa()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(nt(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(d(340));Oa()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return Tl(Ml),null;case 4:return Ga(),null;case 10:return Ht(t.type),null;case 22:case 23:return nt(t),Vc(),l!==null&&Tl(ja),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Ht(xl),null;case 25:return null;default:return null}}function Zo(l,t){switch(Dc(t),t.tag){case 3:Ht(xl),Ga();break;case 26:case 27:case 5:Au(t);break;case 4:Ga();break;case 31:t.memoizedState!==null&&nt(t);break;case 13:nt(t);break;case 19:Tl(Ml);break;case 10:Ht(t.type);break;case 22:case 23:nt(t),Vc(),l!==null&&Tl(ja);break;case 24:Ht(xl)}}function lu(l,t){try{var a=t.updateQueue,e=a!==null?a.lastEffect:null;if(e!==null){var u=e.next;a=u;do{if((a.tag&l)===l){e=void 0;var n=a.create,c=a.inst;e=n(),c.destroy=e}a=a.next}while(a!==u)}}catch(i){dl(t,t.return,i)}}function ia(l,t,a){try{var e=t.updateQueue,u=e!==null?e.lastEffect:null;if(u!==null){var n=u.next;e=n;do{if((e.tag&l)===l){var c=e.inst,i=c.destroy;if(i!==void 0){c.destroy=void 0,u=t;var f=a,r=i;try{r()}catch(S){dl(u,f,S)}}}e=e.next}while(e!==n)}}catch(S){dl(t,t.return,S)}}function Vo(l){var t=l.updateQueue;if(t!==null){var a=l.stateNode;try{js(t,a)}catch(e){dl(l,l.return,e)}}}function Lo(l,t,a){a.props=Ba(l.type,l.memoizedProps),a.state=l.memoizedState;try{a.componentWillUnmount()}catch(e){dl(l,t,e)}}function tu(l,t){try{var a=l.ref;if(a!==null){switch(l.tag){case 26:case 27:case 5:var e=l.stateNode;break;case 30:e=l.stateNode;break;default:e=l.stateNode}typeof a=="function"?l.refCleanup=a(e):a.current=e}}catch(u){dl(l,t,u)}}function xt(l,t){var a=l.ref,e=l.refCleanup;if(a!==null)if(typeof e=="function")try{e()}catch(u){dl(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(u){dl(l,t,u)}else a.current=null}function Ko(l){var t=l.type,a=l.memoizedProps,e=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&e.focus();break l;case"img":a.src?e.src=a.src:a.srcSet&&(e.srcset=a.srcSet)}}catch(u){dl(l,l.return,u)}}function pi(l,t,a){try{var e=l.stateNode;_h(e,l.type,a,t),e[Jl]=t}catch(u){dl(l,l.return,u)}}function Jo(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&ra(l.type)||l.tag===4}function Ti(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||Jo(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&ra(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Ei(l,t,a){var e=l.tag;if(e===5||e===6)l=l.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(l,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(l),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=Nt));else if(e!==4&&(e===27&&ra(l.type)&&(a=l.stateNode,t=null),l=l.child,l!==null))for(Ei(l,t,a),l=l.sibling;l!==null;)Ei(l,t,a),l=l.sibling}function vn(l,t,a){var e=l.tag;if(e===5||e===6)l=l.stateNode,t?a.insertBefore(l,t):a.appendChild(l);else if(e!==4&&(e===27&&ra(l.type)&&(a=l.stateNode),l=l.child,l!==null))for(vn(l,t,a),l=l.sibling;l!==null;)vn(l,t,a),l=l.sibling}function wo(l){var t=l.stateNode,a=l.memoizedProps;try{for(var e=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Zl(t,e,a),t[Yl]=l,t[Jl]=a}catch(n){dl(l,l.return,n)}}var Gt=!1,Nl=!1,Ai=!1,ko=typeof WeakSet=="function"?WeakSet:Set,ql=null;function nh(l,t){if(l=l.containerInfo,Ki=qn,l=ns(l),gc(l)){if("selectionStart"in l)var a={start:l.selectionStart,end:l.selectionEnd};else l:{a=(a=l.ownerDocument)&&a.defaultView||window;var e=a.getSelection&&a.getSelection();if(e&&e.rangeCount!==0){a=e.anchorNode;var u=e.anchorOffset,n=e.focusNode;e=e.focusOffset;try{a.nodeType,n.nodeType}catch{a=null;break l}var c=0,i=-1,f=-1,r=0,S=0,A=l,v=null;t:for(;;){for(var g;A!==a||u!==0&&A.nodeType!==3||(i=c+u),A!==n||e!==0&&A.nodeType!==3||(f=c+e),A.nodeType===3&&(c+=A.nodeValue.length),(g=A.firstChild)!==null;)v=A,A=g;for(;;){if(A===l)break t;if(v===a&&++r===u&&(i=c),v===n&&++S===e&&(f=c),(g=A.nextSibling)!==null)break;A=v,v=A.parentNode}A=g}a=i===-1||f===-1?null:{start:i,end:f}}else a=null}a=a||{start:0,end:0}}else a=null;for(Ji={focusedElem:l,selectionRange:a},qn=!1,ql=t;ql!==null;)if(t=ql,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,ql=l;else for(;ql!==null;){switch(t=ql,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(a=0;a title"))),Zl(n,e,a),n[Yl]=l,Hl(n),e=n;break l;case"link":var c=lm("link","href",u).get(e+(a.href||""));if(c){for(var i=0;irl&&(c=rl,rl=Z,Z=c);var m=es(i,Z),s=es(i,rl);if(m&&s&&(g.rangeCount!==1||g.anchorNode!==m.node||g.anchorOffset!==m.offset||g.focusNode!==s.node||g.focusOffset!==s.offset)){var h=A.createRange();h.setStart(m.node,m.offset),g.removeAllRanges(),Z>rl?(g.addRange(h),g.extend(s.node,s.offset)):(h.setEnd(s.node,s.offset),g.addRange(h))}}}}for(A=[],g=i;g=g.parentNode;)g.nodeType===1&&A.push({element:g,left:g.scrollLeft,top:g.scrollTop});for(typeof i.focus=="function"&&i.focus(),i=0;ia?32:a,b.T=null,a=Ui,Ui=null;var n=da,c=Kt;if(Cl=0,ge=da=null,Kt=0,(fl&6)!==0)throw Error(d(331));var i=fl;if(fl|=4,nd(n.current),ad(n,n.current,c,a),fl=i,iu(0,!1),lt&&typeof lt.onPostCommitFiberRoot=="function")try{lt.onPostCommitFiberRoot(Me,n)}catch{}return!0}finally{C.p=u,b.T=e,Ed(l,t)}}function Md(l,t,a){t=ht(a,t),t=oi(l.stateNode,t,2),l=ua(l,t,2),l!==null&&(xe(l,2),Dt(l))}function dl(l,t,a){if(l.tag===3)Md(l,l,a);else for(;t!==null;){if(t.tag===3){Md(t,l,a);break}else if(t.tag===1){var e=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof e.componentDidCatch=="function"&&(oa===null||!oa.has(e))){l=ht(a,l),a=_o(2),e=ua(t,a,2),e!==null&&(xo(a,e,t,l),xe(e,2),Dt(e));break}}t=t.return}}function Hi(l,t,a){var e=l.pingCache;if(e===null){e=l.pingCache=new fh;var u=new Set;e.set(t,u)}else u=e.get(t),u===void 0&&(u=new Set,e.set(t,u));u.has(a)||(xi=!0,u.add(a),l=hh.bind(null,l,t,a),t.then(l,l))}function hh(l,t,a){var e=l.pingCache;e!==null&&e.delete(t),l.pingedLanes|=l.suspendedLanes&a,l.warmLanes&=~a,vl===l&&(al&a)===a&&(Al===4||Al===3&&(al&62914560)===al&&300>Pl()-Sn?(fl&2)===0&&Se(l,0):Di|=a,ye===al&&(ye=0)),Dt(l)}function _d(l,t){t===0&&(t=bf()),l=xa(l,t),l!==null&&(xe(l,t),Dt(l))}function rh(l){var t=l.memoizedState,a=0;t!==null&&(a=t.retryLane),_d(l,a)}function vh(l,t){var a=0;switch(l.tag){case 31:case 13:var e=l.stateNode,u=l.memoizedState;u!==null&&(a=u.retryLane);break;case 19:e=l.stateNode;break;case 22:e=l.stateNode._retryCache;break;default:throw Error(d(314))}e!==null&&e.delete(t),_d(l,a)}function yh(l,t){return kn(l,t)}var Mn=null,ze=null,qi=!1,_n=!1,Bi=!1,ha=0;function Dt(l){l!==ze&&l.next===null&&(ze===null?Mn=ze=l:ze=ze.next=l),_n=!0,qi||(qi=!0,Sh())}function iu(l,t){if(!Bi&&_n){Bi=!0;do for(var a=!1,e=Mn;e!==null;){if(l!==0){var u=e.pendingLanes;if(u===0)var n=0;else{var c=e.suspendedLanes,i=e.pingedLanes;n=(1<<31-tt(42|l)+1)-1,n&=u&~(c&~i),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(a=!0,Nd(e,n))}else n=al,n=Ou(e,e===vl?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),(n&3)===0||_e(e,n)||(a=!0,Nd(e,n));e=e.next}while(a);Bi=!1}}function gh(){xd()}function xd(){_n=qi=!1;var l=0;ha!==0&&Dh()&&(l=ha);for(var t=Pl(),a=null,e=Mn;e!==null;){var u=e.next,n=Dd(e,t);n===0?(e.next=null,a===null?Mn=u:a.next=u,u===null&&(ze=a)):(a=e,(l!==0||(n&3)!==0)&&(_n=!0)),e=u}Cl!==0&&Cl!==5||iu(l),ha!==0&&(ha=0)}function Dd(l,t){for(var a=l.suspendedLanes,e=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0i)break;var S=f.transferSize,A=f.initiatorType;S&&Yd(A)&&(f=f.responseEnd,c+=S*(f"u"?null:document;function Fd(l,t,a){var e=pe;if(e&&typeof t=="string"&&t){var u=dt(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),Wd.has(u)||(Wd.add(u),l={rel:l,crossOrigin:a,href:t},e.querySelector(u)===null&&(t=e.createElement("link"),Zl(t,"link",l),Hl(t),e.head.appendChild(t)))}}function Bh(l){Jt.D(l),Fd("dns-prefetch",l,null)}function Yh(l,t){Jt.C(l,t),Fd("preconnect",l,t)}function Xh(l,t,a){Jt.L(l,t,a);var e=pe;if(e&&l&&t){var u='link[rel="preload"][as="'+dt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+dt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+dt(a.imageSizes)+'"]')):u+='[href="'+dt(l)+'"]';var n=u;switch(t){case"style":n=Te(l);break;case"script":n=Ee(l)}bt.has(n)||(l=z({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:l,as:t},a),bt.set(n,l),e.querySelector(u)!==null||t==="style"&&e.querySelector(du(n))||t==="script"&&e.querySelector(mu(n))||(t=e.createElement("link"),Zl(t,"link",l),Hl(t),e.head.appendChild(t)))}}function Gh(l,t){Jt.m(l,t);var a=pe;if(a&&l){var e=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+dt(e)+'"][href="'+dt(l)+'"]',n=u;switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ee(l)}if(!bt.has(n)&&(l=z({rel:"modulepreload",href:l},t),bt.set(n,l),a.querySelector(u)===null)){switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(mu(n)))return}e=a.createElement("link"),Zl(e,"link",l),Hl(e),a.head.appendChild(e)}}}function Qh(l,t,a){Jt.S(l,t,a);var e=pe;if(e&&l){var u=La(e).hoistableStyles,n=Te(l);t=t||"default";var c=u.get(n);if(!c){var i={loading:0,preload:null};if(c=e.querySelector(du(n)))i.loading=5;else{l=z({rel:"stylesheet",href:l,"data-precedence":t},a),(a=bt.get(n))&&Pi(l,a);var f=c=e.createElement("link");Hl(f),Zl(f,"link",l),f._p=new Promise(function(r,S){f.onload=r,f.onerror=S}),f.addEventListener("load",function(){i.loading|=1}),f.addEventListener("error",function(){i.loading|=2}),i.loading|=4,Un(c,t,e)}c={type:"stylesheet",instance:c,count:1,state:i},u.set(n,c)}}}function Zh(l,t){Jt.X(l,t);var a=pe;if(a&&l){var e=La(a).hoistableScripts,u=Ee(l),n=e.get(u);n||(n=a.querySelector(mu(u)),n||(l=z({src:l,async:!0},t),(t=bt.get(u))&&lf(l,t),n=a.createElement("script"),Hl(n),Zl(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function Vh(l,t){Jt.M(l,t);var a=pe;if(a&&l){var e=La(a).hoistableScripts,u=Ee(l),n=e.get(u);n||(n=a.querySelector(mu(u)),n||(l=z({src:l,async:!0,type:"module"},t),(t=bt.get(u))&&lf(l,t),n=a.createElement("script"),Hl(n),Zl(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function $d(l,t,a,e){var u=(u=kt.current)?Nn(u):null;if(!u)throw Error(d(446));switch(l){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Te(a.href),a=La(u).hoistableStyles,e=a.get(t),e||(e={type:"style",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){l=Te(a.href);var n=La(u).hoistableStyles,c=n.get(l);if(c||(u=u.ownerDocument||u,c={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,c),(n=u.querySelector(du(l)))&&!n._p&&(c.instance=n,c.state.loading=5),bt.has(l)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},bt.set(l,a),n||Lh(u,l,a,c.state))),t&&e===null)throw Error(d(528,""));return c}if(t&&e!==null)throw Error(d(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ee(a),a=La(u).hoistableScripts,e=a.get(t),e||(e={type:"script",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};default:throw Error(d(444,l))}}function Te(l){return'href="'+dt(l)+'"'}function du(l){return'link[rel="stylesheet"]['+l+"]"}function Id(l){return z({},l,{"data-precedence":l.precedence,precedence:null})}function Lh(l,t,a,e){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?e.loading=1:(t=l.createElement("link"),e.preload=t,t.addEventListener("load",function(){return e.loading|=1}),t.addEventListener("error",function(){return e.loading|=2}),Zl(t,"link",a),Hl(t),l.head.appendChild(t))}function Ee(l){return'[src="'+dt(l)+'"]'}function mu(l){return"script[async]"+l}function Pd(l,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var e=l.querySelector('style[data-href~="'+dt(a.href)+'"]');if(e)return t.instance=e,Hl(e),e;var u=z({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return e=(l.ownerDocument||l).createElement("style"),Hl(e),Zl(e,"style",u),Un(e,a.precedence,l),t.instance=e;case"stylesheet":u=Te(a.href);var n=l.querySelector(du(u));if(n)return t.state.loading|=4,t.instance=n,Hl(n),n;e=Id(a),(u=bt.get(u))&&Pi(e,u),n=(l.ownerDocument||l).createElement("link"),Hl(n);var c=n;return c._p=new Promise(function(i,f){c.onload=i,c.onerror=f}),Zl(n,"link",e),t.state.loading|=4,Un(n,a.precedence,l),t.instance=n;case"script":return n=Ee(a.src),(u=l.querySelector(mu(n)))?(t.instance=u,Hl(u),u):(e=a,(u=bt.get(n))&&(e=z({},a),lf(e,u)),l=l.ownerDocument||l,u=l.createElement("script"),Hl(u),Zl(u,"link",e),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(d(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(e=t.instance,t.state.loading|=4,Un(e,a.precedence,l));return t.instance}function Un(l,t,a){for(var e=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=e.length?e[e.length-1]:null,n=u,c=0;c title"):null)}function Kh(l,t,a){if(a===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function am(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Jh(l,t,a,e){if(a.type==="stylesheet"&&(typeof e.media!="string"||matchMedia(e.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var u=Te(e.href),n=t.querySelector(du(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Cn.bind(l),t.then(l,l)),a.state.loading|=4,a.instance=n,Hl(n);return}n=t.ownerDocument||t,e=Id(e),(u=bt.get(u))&&Pi(e,u),n=n.createElement("link"),Hl(n);var c=n;c._p=new Promise(function(i,f){c.onload=i,c.onerror=f}),Zl(n,"link",e),a.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(l.count++,a=Cn.bind(l),t.addEventListener("load",a),t.addEventListener("error",a))}}var tf=0;function wh(l,t){return l.stylesheets&&l.count===0&&Hn(l,l.stylesheets),0tf?50:800)+t);return l.unsuspend=a,function(){l.unsuspend=null,clearTimeout(e),clearTimeout(u)}}:null}function Cn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Hn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Rn=null;function Hn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Rn=new Map,t.forEach(kh,l),Rn=null,Cn.call(l))}function kh(l,t){if(!(t.state.loading&4)){var a=Rn.get(l);if(a)var e=a.get(null);else{a=new Map,Rn.set(l,a);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(x){console.error(x)}}return o(),of.exports=sr(),of.exports}var dr=or();const mr="modulepreload",hr=function(o){return"/"+o},Tm={},wt=function(x,_,d){let U=Promise.resolve();if(_&&_.length>0){let N=function(D){return Promise.all(D.map(H=>Promise.resolve(H).then(z=>({status:"fulfilled",value:z}),z=>({status:"rejected",reason:z}))))};document.getElementsByTagName("link");const T=document.querySelector("meta[property=csp-nonce]"),M=(T==null?void 0:T.nonce)||(T==null?void 0:T.getAttribute("nonce"));U=N(_.map(D=>{if(D=hr(D),D in Tm)return;Tm[D]=!0;const H=D.endsWith(".css"),z=H?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${D}"]${z}`))return;const j=document.createElement("link");if(j.rel=H?"stylesheet":mr,H||(j.as="script"),j.crossOrigin="",j.href=D,M&&j.setAttribute("nonce",M),document.head.appendChild(j),H)return new Promise((Q,X)=>{j.addEventListener("load",Q),j.addEventListener("error",()=>X(new Error(`Unable to preload CSS for ${D}`)))})}))}function O(N){const T=new Event("vite:preloadError",{cancelable:!0});if(T.payload=N,window.dispatchEvent(T),!T.defaultPrevented)throw N}return U.then(N=>{for(const T of N||[])T.status==="rejected"&&O(T.reason);return x().catch(O)})},xm=E.createContext({windows:[],openWindow:()=>{},closeWindow:()=>{},bringToFront:()=>{}}),rr=({children:o})=>{const[x,_]=E.useState([]),d=E.useRef(1e4),U=E.useCallback((T,M,D)=>{_(H=>H.find(j=>j.id===T)?H.map(j=>j.id===T?{...j,zIndex:++d.current}:j):[...H,{id:T,title:M,charName:D,zIndex:++d.current}])},[]),O=E.useCallback(T=>{_(M=>M.filter(D=>D.id!==T))},[]),N=E.useCallback(T=>{_(M=>M.map(D=>D.id===T?{...D,zIndex:++d.current}:D))},[]);return y.jsx(xm.Provider,{value:{windows:x,openWindow:U,closeWindow:O,bringToFront:N},children:o})},zu=()=>E.useContext(xm),zt={west:-102.1,east:102.1,north:102.1,south:-102.1};function pu(o,x,_,d){const U=(o-zt.west)/(zt.east-zt.west)*_,O=(zt.north-x)/(zt.north-zt.south)*d;return{x:U,y:O}}function vr(o,x,_,d,U,O,N){const T=(o-d)/_,M=(x-U)/_,D=zt.west+T/O*(zt.east-zt.west),H=zt.north-M/N*(zt.north-zt.south);return{ew:D,ns:H}}function hf(o,x){const _=o>=0?"N":"S",d=x>=0?"E":"W";return`${Math.abs(o).toFixed(1)}${_}, ${Math.abs(x).toFixed(1)}${d}`}const Dm=bu.memo(({players:o,imgW:x,imgH:_,getColor:d,onHover:U,onSelect:O,selectedPlayer:N})=>{const{openWindow:T}=zu(),[M,D]=E.useState(null);E.useEffect(()=>{const z=()=>D(null);return M&&window.addEventListener("click",z),()=>window.removeEventListener("click",z)},[M]);const H=E.useMemo(()=>o.filter(z=>z.ew!==void 0&&z.ns!==void 0).map(z=>({...z,pos:pu(z.ew,z.ns,x,_),color:d(z.character_name)})),[o,x,_,d]);return y.jsxs("div",{className:"ml-dots-layer",children:[H.map(z=>y.jsx("div",{className:`ml-dot ${N===z.character_name?"ml-dot-selected":""}`,style:{left:z.pos.x,top:z.pos.y,backgroundColor:z.color},onMouseEnter:j=>{var X;const Q=(X=j.currentTarget.closest(".ml-map-container"))==null?void 0:X.getBoundingClientRect();Q&&U(z,j.clientX-Q.left,j.clientY-Q.top)},onMouseLeave:()=>U(null,0,0),onClick:()=>O(z.character_name),onDoubleClick:()=>T(`chat-${z.character_name}`,`Chat: ${z.character_name}`,z.character_name),onContextMenu:j=>{var Bl;j.preventDefault();const Q=z.character_name,X=(Bl=j.currentTarget.closest(".ml-map-container"))==null?void 0:Bl.getBoundingClientRect(),W=X?j.clientX-X.left:j.clientX,Ul=X?j.clientY-X.top:j.clientY;D({name:Q,x:W,y:Ul})}},z.character_name)),M&&y.jsx("div",{style:{position:"fixed",left:M.x+410,top:M.y,background:"#1a1a1a",border:"1px solid #444",borderRadius:4,zIndex:9999,padding:"2px 0",fontSize:"0.75rem",boxShadow:"0 4px 12px rgba(0,0,0,0.5)",minWidth:120},children:[{label:"Chat",id:"chat"},{label:"Stats",id:"stats"},{label:"Inventory",id:"inv"},{label:"Character",id:"char"},{label:"Combat",id:"combat"},{label:"Radar",id:"radar"}].map(z=>y.jsx("div",{onClick:()=>{T(`${z.id}-${M.name}`,`${z.label}: ${M.name}`,M.name),D(null)},style:{padding:"4px 12px",cursor:"pointer",color:"#ccc"},onMouseEnter:j=>j.currentTarget.style.background="#333",onMouseLeave:j=>j.currentTarget.style.background="",children:z.label},z.id))})]})});Dm.displayName="PlayerDots";const yr="/api";async function za(o){const x=await fetch(`${yr}${o}`,{credentials:"include"});if(!x.ok)throw new Error(`API ${o}: ${x.status}`);return x.json()}function gr(){return`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}/api/ws/live`}const Om=bu.memo(({imgW:o,imgH:x,getColor:_})=>{const[d,U]=E.useState([]);E.useEffect(()=>{const N=async()=>{try{const M=await za("/trails/?seconds=600");U(M.trails??[])}catch{}};N();const T=setInterval(N,2e3);return()=>clearInterval(T)},[]);const O=E.useMemo(()=>{const N={};for(const T of d){const{x:M,y:D}=pu(T.ew,T.ns,o,x);N[T.character_name]||(N[T.character_name]=[]),N[T.character_name].push(`${M},${D}`)}return Object.entries(N).filter(([,T])=>T.length>=2).map(([T,M])=>({name:T,points:M.join(" ")}))},[d,o,x]);return y.jsx("svg",{className:"ml-trails-svg",viewBox:`0 0 ${o} ${x}`,preserveAspectRatio:"none",children:O.map(N=>y.jsx("polyline",{points:N.points,stroke:_(N.name),fill:"none",strokeWidth:2,strokeOpacity:.7,strokeLinecap:"round",strokeLinejoin:"round"},N.name))})});Om.displayName="TrailsSVG";const Sr=({imgW:o,imgH:x,enabled:_})=>{const d=E.useRef(null),[U,O]=E.useState([]);return E.useEffect(()=>{if(!_)return;(async()=>{try{const T=await za("/spawns/heatmap?hours=24&limit=50000");O(T.spawn_points??[])}catch{}})()},[_]),E.useEffect(()=>{const N=d.current;if(!N||!_||U.length===0||o===0)return;N.width=o,N.height=x;const T=N.getContext("2d");if(T){T.clearRect(0,0,o,x);for(const M of U){const{x:D,y:H}=pu(M.ew,M.ns,o,x),z=Math.max(5,Math.min(12,5+Math.sqrt(M.intensity*.5))),j=T.createRadialGradient(D,H,0,D,H,z);j.addColorStop(0,`rgba(255, 0, 0, ${Math.min(.9,M.intensity/40)})`),j.addColorStop(.6,`rgba(255, 100, 0, ${Math.min(.4,M.intensity/120)})`),j.addColorStop(1,"rgba(255, 150, 0, 0)"),T.fillStyle=j,T.fillRect(D-z,H-z,z*2,z*2)}}},[U,o,x,_]),_?y.jsx("canvas",{ref:d,className:"ml-heatmap-canvas"}):null},br=({imgW:o,imgH:x,enabled:_})=>{const[d,U]=E.useState([]);E.useEffect(()=>{if(!_)return;const N=async()=>{try{const M=await za("/portals");U(M.portals??[])}catch{}};N();const T=setInterval(N,6e4);return()=>clearInterval(T)},[_]);const O=E.useMemo(()=>d.map(N=>({...N,pos:pu(N.coordinates.ew,N.coordinates.ns,o,x)})),[d,o,x]);return!_||O.length===0?null:y.jsx("div",{className:"ml-portals-layer",children:O.map((N,T)=>y.jsx("div",{className:"ml-portal-icon",style:{left:N.pos.x,top:N.pos.y},title:`${N.portal_name} (by ${N.discovered_by})`},T))})},Em=20,Am=.3,zr=({players:o,getColor:x,onSelectPlayer:_,showHeatmap:d,showPortals:U,selectedPlayer:O})=>{var jl;const N=E.useRef(null),T=E.useRef(null),[M,D]=E.useState({w:0,h:0}),[H,z]=E.useState(null),j=E.useRef(null),Q=E.useRef({scale:1,offX:0,offY:0}),X=E.useRef({dragging:!1,sx:0,sy:0,startOffX:0,startOffY:0}),W=E.useCallback(()=>{if(T.current){const{scale:I,offX:F,offY:ul}=Q.current;T.current.style.transform=`translate(${F}px, ${ul}px) scale(${I})`}},[]),Ul=E.useCallback(I=>{const F=I.currentTarget;if(D({w:F.naturalWidth,h:F.naturalHeight}),N.current){const ul=N.current.clientWidth,k=N.current.clientHeight,R=Math.min(ul/F.naturalWidth,k/F.naturalHeight);Q.current={scale:R,offX:(ul-F.naturalWidth*R)/2,offY:(k-F.naturalHeight*R)/2},W()}},[W]),Bl=E.useCallback(I=>{var pl;I.preventDefault();const F=(pl=N.current)==null?void 0:pl.getBoundingClientRect();if(!F)return;const ul=Q.current,k=I.deltaY<0?1.1:.9,R=Math.min(Em,Math.max(Am,ul.scale*k)),J=R/ul.scale,B=I.clientX-F.left,L=I.clientY-F.top;Q.current={scale:R,offX:B-(B-ul.offX)*J,offY:L-(L-ul.offY)*J},W()},[W]),$=E.useCallback(I=>{if(I.button!==0)return;const F=Q.current;X.current={dragging:!0,sx:I.clientX,sy:I.clientY,startOffX:F.offX,startOffY:F.offY}},[]);E.useEffect(()=>{const I=ul=>{const k=X.current;if(k.dragging&&(Q.current.offX=k.startOffX+(ul.clientX-k.sx),Q.current.offY=k.startOffY+(ul.clientY-k.sy),W()),N.current&&M.w>0&&j.current){const R=N.current.getBoundingClientRect(),J=Q.current,B=vr(ul.clientX-R.left,ul.clientY-R.top,J.scale,J.offX,J.offY,M.w,M.h);j.current.textContent=hf(B.ns,B.ew)}},F=()=>{X.current.dragging=!1};return window.addEventListener("mousemove",I),window.addEventListener("mouseup",F),()=>{window.removeEventListener("mousemove",I),window.removeEventListener("mouseup",F)}},[W,M.w,M.h]);const tl=E.useRef(null);E.useEffect(()=>{if(!O||M.w===0||!N.current||tl.current===O)return;const I=o.find(J=>J.character_name===O);if(!I)return;tl.current=O;const{x:F,y:ul}=pu(I.ew,I.ns,M.w,M.h),k=N.current.getBoundingClientRect(),R=3;Q.current={scale:Math.min(Em,Math.max(Am,R)),offX:k.width/2-F*R,offY:k.height/2-ul*R},W()},[O,o,M.w,M.h,W]),E.useEffect(()=>{O||(tl.current=null)},[O]);const Vl=E.useCallback((I,F,ul)=>{z(I?{x:F,y:ul,player:I}:null)},[]);return y.jsxs("div",{className:"ml-map-container",ref:N,onWheel:Bl,onMouseDown:$,children:[y.jsxs("div",{ref:T,className:"ml-map-group",children:[y.jsx("img",{src:"/dereth.png",alt:"Dereth",className:"ml-map-img",onLoad:Ul,draggable:!1}),M.w>0&&y.jsxs(y.Fragment,{children:[y.jsx(Sr,{imgW:M.w,imgH:M.h,enabled:d}),y.jsx(Om,{imgW:M.w,imgH:M.h,getColor:x}),y.jsx(Dm,{players:o,imgW:M.w,imgH:M.h,getColor:x,onHover:Vl,onSelect:_,selectedPlayer:O}),y.jsx(br,{imgW:M.w,imgH:M.h,enabled:U})]})]}),H&&y.jsxs("div",{className:"ml-tooltip",style:{left:H.x+12,top:H.y-10},children:[y.jsx("strong",{children:H.player.character_name}),y.jsx("br",{}),hf(H.player.ns,H.player.ew),y.jsx("br",{}),H.player.kills_per_hour," kph · ",(jl=H.player.kills)==null?void 0:jl.toLocaleString()," kills"]}),y.jsx("div",{className:"ml-coords",ref:j})]})},Nm=bu.memo(({player:o,vitals:x,color:_,onSelect:d,isSelected:U})=>{var H,z;const{openWindow:O}=zu(),N=(o.vt_state||"idle").toLowerCase(),T=N==="combat"||N==="hunt",M=(o.total_rares??0)>0?Math.round((o.total_kills??0)/(o.total_rares??1)).toLocaleString():null,D=o.character_name;return y.jsxs("li",{className:`ml-player-row ${U?"ml-player-selected":""}`,style:{borderLeftColor:_},children:[y.jsxs("div",{className:"ml-pr-header",onClick:d,children:[y.jsx("span",{className:"ml-pr-name",children:D}),y.jsx("span",{className:"ml-pr-coords",children:hf(o.ns,o.ew)})]}),y.jsxs("div",{className:"ml-pr-vitals",children:[y.jsx("div",{className:"ml-vital-bar hp",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.health_percentage)??0}%`}})}),y.jsx("div",{className:"ml-vital-bar sta",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.stamina_percentage)??0}%`}})}),y.jsx("div",{className:"ml-vital-bar mana",children:y.jsx("div",{className:"ml-vital-fill",style:{width:`${(x==null?void 0:x.mana_percentage)??0}%`}})})]}),y.jsxs("div",{className:"ml-pr-grid",children:[y.jsxs("span",{className:"ml-gs",title:"Session kills",children:["⚔️ ",((H=o.kills)==null?void 0:H.toLocaleString())??0]}),y.jsxs("span",{className:"ml-gs",title:"Total kills",children:["🏆 ",(o.total_kills??0).toLocaleString()]}),y.jsxs("span",{className:"ml-gs",title:"Kills per hour",children:[o.kills_per_hour??"0"," ",y.jsx("span",{className:"ml-suffix",children:"KPH"})]}),y.jsxs("span",{className:"ml-gs",title:"Rares (session / total)",children:["💎 ",o.session_rares??0," / ",o.total_rares??0]}),y.jsx("span",{className:"ml-gs",title:"Kills per rare",children:M?y.jsxs(y.Fragment,{children:["📊 ",M," ",y.jsx("span",{className:"ml-suffix",children:"KPR"})]}):""}),y.jsx("span",{className:`ml-meta-pill ${T?"active":N!=="idle"&&N!=="default"&&N!==""?"other":""}`,children:o.vt_state||"idle"}),y.jsxs("span",{className:"ml-gs",title:"Online time",children:["🕐 ",((z=o.onlinetime)==null?void 0:z.replace(/^00\./,""))??"--"]}),y.jsxs("span",{className:"ml-gs",title:"Deaths",children:["☠️ ",o.deaths??"0"]}),y.jsxs("span",{className:"ml-gs",title:"Prismatic tapers",children:[y.jsx("img",{src:"/prismatic-taper-icon.png",className:"ml-taper-icon",alt:""}),o.prismatic_taper_count??"0"]})]}),y.jsxs("div",{className:"ml-pr-buttons",children:[y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`chat-${D}`,`Chat: ${D}`,D),children:"Chat"}),y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`stats-${D}`,`Stats: ${D}`,D),children:"Stats"}),y.jsx("button",{className:"ml-btn accent",onClick:()=>O(`inv-${D}`,`Inventory: ${D}`,D),children:"Inv"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`char-${D}`,`Character: ${D}`,D),children:"Char"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`combat-${D}`,`Combat: ${D}`,D),children:"Combat"}),y.jsx("button",{className:"ml-btn",onClick:()=>O(`radar-${D}`,`Radar: ${D}`,D),children:"Radar"})]})]})});Nm.displayName="PlayerRow";const pr=({players:o,vitals:x,getColor:_,onSelect:d,selectedPlayer:U})=>{const O=E.useRef(null),[N,T]=E.useState(!1),M=E.useCallback(()=>{O.current&&T(O.current.scrollTop>200)},[]);return y.jsxs("div",{style:{position:"relative",flex:1,minHeight:0},children:[y.jsx("ul",{className:"ml-player-list",ref:O,onScroll:M,children:o.map(D=>y.jsx(Nm,{player:D,vitals:x.get(D.character_name)??null,color:_(D.character_name),onSelect:()=>d(D.character_name),isSelected:U===D.character_name},D.character_name))}),N&&y.jsx("button",{onClick:()=>{var D;(D=O.current)==null||D.scrollTo({top:0,behavior:"smooth"})},style:{position:"absolute",bottom:8,right:8,width:28,height:28,borderRadius:"50%",background:"rgba(68,136,255,0.2)",border:"1px solid rgba(68,136,255,0.4)",color:"#6af",cursor:"pointer",fontSize:"0.8rem",display:"flex",alignItems:"center",justifyContent:"center"},children:"▲"})]})},Tr=[{key:"name",label:"Name"},{key:"kph",label:"KPH"},{key:"skills",label:"S.Kills"},{key:"srares",label:"S.Rares"},{key:"tkills",label:"T.Kills"},{key:"kpr",label:"KPR"}],Er=({value:o,onChange:x})=>y.jsx("div",{className:"ml-sort-buttons",children:Tr.map(_=>y.jsx("button",{className:`ml-sort-btn ${o===_.key?"active":""}`,onClick:()=>x(_.key),children:_.label},_.key))}),Ar=()=>{const{openWindow:o}=zu();return y.jsxs("div",{className:"ml-tool-links",children:[y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("issues","Issues Board"),children:"📋 Issues"}),y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("vitalsharing","Vital Sharing"),children:"🤝 Vitals"}),y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:()=>o("combatpicker","Combat Stats"),children:"⚔️ Combat"})]})},Mr=({players:o,vitals:x,serverHealth:_,totalRares:d,totalKills:U,getColor:O,onSelectPlayer:N,onViewToggle:T,showHeatmap:M,showPortals:D,onToggleHeatmap:H,onTogglePortals:z,version:j,selectedPlayer:Q})=>{var F,ul;const[X,W]=E.useState("name"),[Ul,Bl]=E.useState(""),$=E.useMemo(()=>o.reduce((k,R)=>k+(parseInt(R.kills_per_hour)||0),0),[o]),tl=((F=_==null?void 0:_.status)==null?void 0:F.toLowerCase())==="online"||((ul=_==null?void 0:_.status)==null?void 0:ul.toLowerCase())==="up",Vl=E.useDeferredValue(o),jl=E.useDeferredValue(x),I=E.useMemo(()=>{let k=[...Vl];switch(Ul&&(k=k.filter(R=>R.character_name.toLowerCase().startsWith(Ul.toLowerCase()))),X){case"kph":k.sort((R,J)=>(parseInt(J.kills_per_hour)||0)-(parseInt(R.kills_per_hour)||0));break;case"skills":k.sort((R,J)=>(J.kills||0)-(R.kills||0));break;case"srares":k.sort((R,J)=>(J.session_rares??0)-(R.session_rares??0));break;case"tkills":k.sort((R,J)=>(J.total_kills??0)-(R.total_kills??0));break;case"kpr":k.sort((R,J)=>{const B=(R.total_kills??0)/Math.max(1,R.total_rares??1),L=(J.total_kills??0)/Math.max(1,J.total_rares??1);return B-L});break;default:k.sort((R,J)=>R.character_name.localeCompare(J.character_name))}return k},[Vl,X,Ul]);return y.jsxs("div",{className:"ml-sidebar",children:[j&&y.jsxs("div",{className:"ml-version",children:["v",j]}),y.jsx("div",{className:"ml-sidebar-header",children:y.jsxs("span",{className:"ml-sidebar-title",children:["Active Mosswart Enjoyers (",o.length,")"]})}),y.jsxs("div",{className:"ml-server-status",children:[y.jsx("span",{className:`ml-status-dot ${tl?"online":"offline"}`}),y.jsxs("span",{className:"ml-status-text",children:["Coldeve ",tl?"Online":"Offline"]}),(_==null?void 0:_.player_count)!=null&&y.jsxs("span",{className:"ml-status-detail",children:["👥 ",_.player_count]}),(_==null?void 0:_.latency_ms)!=null&&y.jsxs("span",{className:"ml-status-detail",children:[Math.round(_.latency_ms),"ms"]}),(_==null?void 0:_.uptime_seconds)!=null&&y.jsxs("span",{className:"ml-status-detail",children:["Up: ",Math.floor(_.uptime_seconds/3600),"h"]})]}),y.jsxs("div",{className:"ml-counters",children:[y.jsxs("div",{className:"ml-counter rares",children:[y.jsx("span",{className:"ml-counter-val",children:d}),y.jsx("span",{className:"ml-counter-lbl",children:"Rares"})]}),y.jsxs("div",{className:`ml-counter kph ${$>5e3?"ultra":""}`,children:[y.jsx("span",{className:"ml-counter-val",children:$.toLocaleString()}),y.jsx("span",{className:"ml-counter-lbl",children:"Server KPH"})]}),y.jsxs("div",{className:"ml-counter kills",children:[y.jsx("span",{className:"ml-counter-val",children:U.toLocaleString()}),y.jsx("span",{className:"ml-counter-lbl",children:"Kills"})]})]}),y.jsxs("div",{className:"ml-tool-links",children:[y.jsx("span",{className:"ml-tool-link",style:{cursor:"pointer"},onClick:T,children:"📊 Dashboard"}),y.jsx("a",{href:"/inventory.html",target:"_blank",className:"ml-tool-link",children:"🔍 Inv Search"}),y.jsx("a",{href:"/suitbuilder.html",target:"_blank",className:"ml-tool-link",children:"🛡️ Suitbuilder"}),y.jsx("a",{href:"/debug.html",target:"_blank",className:"ml-tool-link",children:"🐛 Debug"}),y.jsx("a",{href:"/quest-status.html",target:"_blank",className:"ml-tool-link",children:"📜 Quests"})]}),y.jsx(Ar,{}),y.jsxs("div",{className:"ml-toggles",children:[y.jsxs("label",{className:"ml-toggle-label",children:[y.jsx("input",{type:"checkbox",checked:M,onChange:k=>H(k.target.checked)}),y.jsx("span",{children:"Spawn Heatmap"})]}),y.jsxs("label",{className:"ml-toggle-label",children:[y.jsx("input",{type:"checkbox",checked:D,onChange:k=>z(k.target.checked)}),y.jsx("span",{children:"Portals"})]})]}),y.jsx("div",{style:{borderTop:"1px solid #333",marginTop:4,paddingTop:4}}),y.jsx(Er,{value:X,onChange:W}),y.jsx("input",{className:"ml-filter",type:"text",placeholder:"Filter players...",value:Ul,onChange:k=>Bl(k.target.value)}),y.jsx(pr,{players:I,vitals:jl,getColor:O,onSelect:N,selectedPlayer:Q})]})},_r=({id:o,title:x,zIndex:_,width:d=700,height:U=340,children:O})=>{const{closeWindow:N,bringToFront:T}=zu(),M=E.useRef(null),D=E.useRef({dragging:!1,sx:0,sy:0,ox:0,oy:0}),H=E.useRef({x:420,y:10+Math.random()*40}),z=E.useCallback(j=>{var X;j.preventDefault(),T(o);const Q=(X=M.current)==null?void 0:X.getBoundingClientRect();Q&&(D.current={dragging:!0,sx:j.clientX,sy:j.clientY,ox:Q.left,oy:Q.top})},[o,T]);return E.useEffect(()=>{const j=X=>{const W=D.current;!W.dragging||!M.current||(H.current.x=W.ox+(X.clientX-W.sx),H.current.y=W.oy+(X.clientY-W.sy),M.current.style.left=`${H.current.x}px`,M.current.style.top=`${H.current.y}px`)},Q=()=>{D.current.dragging=!1};return window.addEventListener("mousemove",j),window.addEventListener("mouseup",Q),()=>{window.removeEventListener("mousemove",j),window.removeEventListener("mouseup",Q)}},[]),y.jsxs("div",{ref:M,className:"ml-window",style:{zIndex:_,width:d,height:U,left:H.current.x,top:H.current.y},onMouseDown:()=>T(o),children:[y.jsxs("div",{className:"ml-window-header",onMouseDown:z,children:[y.jsx("span",{className:"ml-window-title",children:x}),y.jsx("button",{className:"ml-window-close",onClick:()=>N(o),children:"×"})]}),y.jsx("div",{className:"ml-window-content",children:O})]})},xr={0:"#00FF00",2:"#FFFFFF",3:"#FF0000",4:"#FFFFFF",5:"#33CCFF",6:"#CCFF99",7:"#00FFFF",14:"#FFD700",15:"#FF69B4",17:"#AAAAFF",18:"#88FF88",21:"#FF8888",22:"#FFAA66"},Um=50,jm=o=>`mo-chat-history-${o}`;function Dr(o){try{const x=localStorage.getItem(jm(o));return x?JSON.parse(x):[]}catch{return[]}}function Or(o,x){try{localStorage.setItem(jm(o),JSON.stringify(x.slice(-Um)))}catch{}}const Nr=({id:o,charName:x,zIndex:_,messages:d,socket:U})=>{const O=E.useRef(null),[N,T]=E.useState(""),[M,D]=E.useState(!1),H=E.useRef(Dr(x)),z=E.useRef(-1),j=E.useRef(""),Q=E.useRef(!1);E.useEffect(()=>{const $=O.current;$&&(Q.current?D(!0):($.scrollTop=$.scrollHeight,D(!1)))},[d.length]);const X=E.useCallback(()=>{const $=O.current;if(!$)return;const tl=$.scrollHeight-$.scrollTop-$.clientHeight<30;Q.current=!tl,tl&&D(!1)},[]),W=E.useCallback(()=>{const $=O.current;$&&($.scrollTop=$.scrollHeight,Q.current=!1,D(!1))},[]),Ul=E.useCallback($=>{$.preventDefault();const tl=N.trim();!tl||!U||U.readyState!==WebSocket.OPEN||(U.send(JSON.stringify({player_name:x,command:tl})),H.current.push(tl),H.current.length>Um&&H.current.shift(),Or(x,H.current),z.current=-1,j.current="",T(""),Q.current=!1)},[N,U,x]),Bl=E.useCallback($=>{const tl=H.current;if(tl.length!==0){if($.key==="ArrowUp")$.preventDefault(),z.current===-1?(j.current=N,z.current=tl.length-1):z.current>0&&z.current--,T(tl[z.current]);else if($.key==="ArrowDown"){if($.preventDefault(),z.current===-1)return;z.currenty.jsx("div",{className:"ml-chat-line",style:{color:xr[$.color??2]??"#ddd"},children:$.text},tl))}),M&&y.jsx("div",{onClick:W,style:{padding:"3px 0",textAlign:"center",fontSize:"0.65rem",color:"#6af",background:"#1a2a3a",cursor:"pointer",borderTop:"1px solid #334"},children:"▼ New messages below"}),y.jsx("form",{className:"ml-chat-form",onSubmit:Ul,children:y.jsx("input",{className:"ml-chat-input",value:N,onChange:$=>T($.target.value),onKeyDown:Bl,placeholder:"Enter chat..."})})]})},Ur=E.lazy(()=>wt(()=>import("./StatsWindow-BvEd94FW.js"),__vite__mapDeps([0,1])).then(o=>({default:o.StatsWindow}))),jr=E.lazy(()=>wt(()=>import("./CharacterWindow-DHhMuitc.js"),__vite__mapDeps([2,1])).then(o=>({default:o.CharacterWindow}))),Cr=E.lazy(()=>wt(()=>import("./InventoryWindow-CHG3Ftlg.js"),__vite__mapDeps([3,1])).then(o=>({default:o.InventoryWindow}))),Rr=E.lazy(()=>wt(()=>import("./RadarWindow-D_o-FWZR.js"),__vite__mapDeps([4,1])).then(o=>({default:o.RadarWindow}))),Hr=E.lazy(()=>wt(()=>import("./CombatStatsWindow-Js_v2JL3.js"),__vite__mapDeps([5,1])).then(o=>({default:o.CombatStatsWindow}))),qr=E.lazy(()=>wt(()=>import("./CombatPickerWindow-CWXujjNT.js"),__vite__mapDeps([6,1])).then(o=>({default:o.CombatPickerWindow}))),Br=E.lazy(()=>wt(()=>import("./IssuesWindow-BeCdzqJV.js"),__vite__mapDeps([7,1])).then(o=>({default:o.IssuesWindow}))),Yr=E.lazy(()=>wt(()=>import("./VitalSharingWindow-0C98e7ZG.js"),__vite__mapDeps([8,1])).then(o=>({default:o.VitalSharingWindow}))),Cm=bu.memo(({characters:o,chatMessages:x,nearbyObjects:_,inventoryVersion:d,equipmentCantrips:U,socket:O})=>{const{windows:N}=zu();return y.jsx(E.Suspense,{fallback:null,children:N.map(T=>{var H;const M=T.charName??"";switch(T.id.split("-")[0]){case"chat":return y.jsx(Nr,{id:T.id,charName:M,zIndex:T.zIndex,messages:x.get(M)??[],socket:O},T.id);case"stats":return y.jsx(Ur,{id:T.id,charName:M,zIndex:T.zIndex},T.id);case"char":return y.jsx(jr,{id:T.id,charName:M,zIndex:T.zIndex,vitals:((H=o.get(M))==null?void 0:H.vitals)??void 0},T.id);case"inv":return y.jsx(Cr,{id:T.id,charName:M,zIndex:T.zIndex,inventoryVersion:d,equipmentCantrips:U.get(M)},T.id);case"radar":return y.jsx(Rr,{id:T.id,charName:M,zIndex:T.zIndex,socket:O,radarData:_.get(M)??null},T.id);case"combat":return y.jsx(Hr,{id:T.id,charName:M,zIndex:T.zIndex},T.id);case"combatpicker":return y.jsx(qr,{id:T.id,zIndex:T.zIndex,characters:o},T.id);case"issues":return y.jsx(Br,{id:T.id,zIndex:T.zIndex},T.id);case"vitalsharing":return y.jsx(Yr,{id:T.id,zIndex:T.zIndex},T.id);default:return null}})})});Cm.displayName="WindowRenderer";let Xr=0;const Gr=({recentRares:o})=>{const[x,_]=E.useState([]),[d,U]=E.useState(0),[O,N]=E.useState([]);E.useEffect(()=>{if(o.length>d&&d>0){const M=o.slice(0,o.length-d);for(const D of M){const H=++Xr;_(z=>[...z,{key:H,charName:D.character_name,rareName:D.name,exiting:!1}]),T();try{const z=new AudioContext,j=z.createOscillator(),Q=z.createGain();j.connect(Q),Q.connect(z.destination),j.frequency.value=880,j.type="sine",Q.gain.value=.3,j.start(),Q.gain.exponentialRampToValueAtTime(.001,z.currentTime+.5),j.stop(z.currentTime+.5)}catch{}setTimeout(()=>{_(z=>z.map(j=>j.key===H?{...j,exiting:!0}:j)),setTimeout(()=>{_(z=>z.filter(j=>j.key!==H))},500)},6e3)}}U(o.length)},[o.length]);const T=E.useCallback(()=>{const M=Date.now(),D=["#FFD700","#FF4444","#FF8800","#AA44FF","#4488FF"],H=Array.from({length:30},(z,j)=>{const Q=Math.PI*2*j/30+(Math.random()-.5)*.5,X=100+Math.random()*200;return{dx:Math.cos(Q)*X,dy:Math.sin(Q)*X-50,color:D[Math.floor(Math.random()*D.length)]}});N(z=>[...z,{id:M,particles:H}]),setTimeout(()=>N(z=>z.filter(j=>j.id!==M)),2200)},[]);return y.jsxs(y.Fragment,{children:[y.jsx("div",{className:"ml-rare-notifications",children:x.map(M=>y.jsxs("div",{className:`ml-rare-notif ${M.exiting?"exiting":""}`,children:[y.jsx("div",{className:"ml-rare-notif-title",children:"🎆 LEGENDARY RARE! 🎆"}),y.jsx("div",{className:"ml-rare-notif-name",children:M.rareName}),y.jsx("div",{className:"ml-rare-notif-by",children:"found by"}),y.jsx("div",{className:"ml-rare-notif-char",children:M.charName})]},M.key))}),y.jsx("div",{className:"ml-fireworks",children:O.map(M=>y.jsx(bu.Fragment,{children:M.particles.map((D,H)=>y.jsx("div",{className:"ml-firework-particle",style:{left:"50%",top:"30%",backgroundColor:D.color,"--dx":`${D.dx}px`,"--dy":`${D.dy+200}px`}},H))},M.id))})]})},Mm=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf","#ff4444","#44ff44","#4444ff","#ffff44","#ff44ff","#44ffff","#ff8844","#88ff44","#4488ff","#ff4488","#cc3333","#33cc33","#3333cc","#cccc33","#cc33cc","#33cccc","#cc6633","#66cc33","#3366cc","#cc3366","#ff6666","#66ff66","#6666ff","#ffff66","#ff66ff","#66ffff","#ffaa66","#aaff66","#66aaff","#ff66aa","#990099","#009900","#000099","#990000","#009999","#999900","#aa5500","#55aa00","#0055aa","#aa0055","#ffaaaa","#aaffaa","#aaaaff","#ffffaa","#ffaaff","#aaffff","#ffccaa","#ccffaa","#aaccff","#ffaacc"];function Qr(o){let x=0;for(let _=0;_{let U=o.current.get(d);return U||(U=x.current{const _=Zr(),[d,U]=E.useState(!1),[O,N]=E.useState(!1),[T,M]=E.useState(null),D=E.useMemo(()=>Array.from(o.characters.values()).filter(X=>X.telemetry).map(X=>X.telemetry),[o.characters]),H=E.useMemo(()=>new Map(Array.from(o.characters.values()).filter(X=>X.vitals).map(X=>[X.name,X.vitals])),[o.characters]),[z,j]=E.useState("");E.useEffect(()=>{fetch("/api/api-version",{credentials:"include"}).then(X=>X.json()).then(X=>j(X.version??"")).catch(()=>{})},[]);const Q=E.useCallback(X=>{M(W=>W===X?null:X)},[]);return y.jsx(rr,{children:y.jsxs("div",{className:"ml-layout",children:[y.jsx(Mr,{players:D,vitals:H,serverHealth:o.serverHealth,totalRares:o.totalRares,totalKills:o.totalKills,getColor:_,onSelectPlayer:Q,onViewToggle:x,showHeatmap:d,showPortals:O,onToggleHeatmap:U,onTogglePortals:N,version:z,selectedPlayer:T}),y.jsx(zr,{players:D,getColor:_,onSelectPlayer:Q,showHeatmap:d,showPortals:O,selectedPlayer:T}),y.jsx(Cm,{characters:o.characters,chatMessages:o.chatMessages,nearbyObjects:o.nearbyObjects,inventoryVersion:o.inventoryVersion,equipmentCantrips:o.equipmentCantrips,socket:o.socketRef.current}),y.jsx(Gr,{recentRares:o.recentRares})]})})};function Lr(o){const x=E.useRef(null),_=E.useRef(0),d=E.useRef(o);d.current=o;const U=E.useCallback(()=>{var N;if(((N=x.current)==null?void 0:N.readyState)===WebSocket.OPEN)return;const O=new WebSocket(gr());x.current=O,O.addEventListener("message",T=>{try{const M=JSON.parse(T.data);d.current(M)}catch{}}),O.addEventListener("close",()=>{x.current=null,_.current=window.setTimeout(U,2e3)}),O.addEventListener("error",()=>{O.close()})},[]);return E.useEffect(()=>(U(),()=>{var O;clearTimeout(_.current),(O=x.current)==null||O.close(),x.current=null}),[U]),x}const Kr=()=>za("/live"),Jr=()=>za("/combat-stats"),wr=()=>za("/server-health"),kr=()=>za("/total-rares"),Wr=()=>za("/total-kills");function Fr(){const[o,x]=E.useState(new Map),[_,d]=E.useState(null),[U,O]=E.useState(0),[N,T]=E.useState(0),[M,D]=E.useState([]),H=E.useRef(new Map),[z,j]=E.useState(0),[Q,X]=E.useState(0),W=E.useRef(new Map),[Ul,Bl]=E.useState(0),[$,tl]=E.useState(new Map),Vl=E.useRef(o);Vl.current=o;const jl=E.useCallback((R,J)=>{x(B=>{const L=new Map(B),pl=L.get(R)??{name:R,telemetry:null,vitals:null,combat:null,lastUpdate:0};return L.set(R,J(pl)),L})},[]),I=E.useCallback(R=>{var J;if(R.type){if(R.type==="telemetry"){const B=R;jl(B.character_name,L=>({...L,telemetry:B,lastUpdate:Date.now()}))}else if(R.type==="vitals"){const B=R;jl(B.character_name,L=>({...L,vitals:B,lastUpdate:Date.now()}))}else if(R.type==="combat_stats"){const B=R;jl(B.character_name,L=>({...L,combat:B,lastUpdate:Date.now()}))}else if(R.type==="rare"){const B=R;D(L=>[B,...L].slice(0,50))}else if(R.type==="inventory_delta")X(B=>B+1);else if(R.type==="equipment_cantrip_state"){const B=R;W.current.set(B.character_name,B),Bl(L=>L+1)}else if(R.type==="dungeon_map"){const B=R;B.landblock&&(window.__dungeonMapCache||(window.__dungeonMapCache={}),window.__dungeonMapCache[B.landblock]=B)}else if(R.type==="nearby_objects"){const B=R;if(tl(L=>{const pl=new Map(L);return pl.set(B.character_name,B),pl}),B.is_dungeon&&B.landblock&&!((J=window.__dungeonMapCache)!=null&&J[B.landblock])){const L=F.current;(L==null?void 0:L.readyState)===WebSocket.OPEN&&L.send(JSON.stringify({type:"request_dungeon_map",landblock:B.landblock}))}}else if(R.type==="chat"){const B=R,L=H.current.get(B.character_name)??[];L.push({text:B.text,color:B.color,timestamp:B.timestamp}),L.length>1e3&&L.splice(0,L.length-1e3),H.current.set(B.character_name,L),j(pl=>pl+1)}}},[jl]),F=Lr(I);E.useEffect(()=>{const R=async()=>{try{const B=await Kr();x(L=>{var st;const pl=new Map(L);for(const b of B.players??[]){const C=pl.get(b.character_name);pl.set(b.character_name,{name:b.character_name,telemetry:b,vitals:(C==null?void 0:C.vitals)??null,combat:(C==null?void 0:C.combat)??null,lastUpdate:Date.now()})}for(const b of pl.keys())(st=B.players)!=null&&st.some(C=>C.character_name===b)||pl.delete(b);return pl})}catch{}};R();const J=setInterval(R,5e3);return()=>clearInterval(J)},[]),E.useEffect(()=>{const R=async()=>{try{const B=await Jr();for(const L of B.stats??[])jl(L.character_name,pl=>({...pl,combat:{...L,type:"combat_stats"}}))}catch{}};R();const J=setInterval(R,3e4);return()=>clearInterval(J)},[jl]),E.useEffect(()=>{const R=async()=>{try{d(await wr())}catch{}};R();const J=setInterval(R,3e4);return()=>clearInterval(J)},[]),E.useEffect(()=>{const R=async()=>{try{const[B,L]=await Promise.all([kr(),Wr()]);O(B.all_time??0),T(L.total??0)}catch{}};R();const J=setInterval(R,3e5);return()=>clearInterval(J)},[]);const ul=E.useMemo(()=>H.current,[z]),k=E.useMemo(()=>W.current,[Ul]);return{characters:o,serverHealth:_,totalRares:U,totalKills:N,recentRares:M,chatMessages:ul,nearbyObjects:$,inventoryVersion:Q,equipmentCantrips:k,socketRef:F}}const $r=E.lazy(()=>wt(()=>import("./DashboardView-B8znzNXc.js"),__vite__mapDeps([9,1])));function Ir(){const[o,x]=E.useState(()=>localStorage.getItem("v2-view")||"map"),_=Fr();E.useEffect(()=>{const U=O=>{O.ctrlKey&&O.key==="d"&&(O.preventDefault(),d())};return window.addEventListener("keydown",U),()=>window.removeEventListener("keydown",U)});const d=()=>{const U=o==="map"?"dashboard":"map";x(U),localStorage.setItem("v2-view",U)};return o==="map"?y.jsx(Vr,{data:_,onViewToggle:d}):y.jsx(E.Suspense,{fallback:y.jsx("div",{style:{background:"#0d0d0d",color:"#888",padding:40,textAlign:"center"},children:"Loading dashboard..."}),children:y.jsx($r,{data:_,onViewToggle:d})})}dr.createRoot(document.getElementById("root")).render(y.jsx(E.StrictMode,{children:y.jsx(Ir,{})}));"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").catch(()=>{});export{_r as D,bu as R,za as a,y as j,E as r,zu as u}; diff --git a/static/v2/index.html b/static/v2/index.html index 9ee76966..a35ea1ce 100644 --- a/static/v2/index.html +++ b/static/v2/index.html @@ -8,9 +8,9 @@ - + - +