p3x-redis-ui-material
Version:
💿 P3X Redis UI triple frontend — Angular + React/MUI + Vue/Vuetify with 54 languages, 7 themes, Socket.IO, desktop notifications, and full feature parity
13 lines • 38.2 kB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jszip.min-f9GEFGFs.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/monitoring-data.store-i1uZ54EG.js","assets/i18n.store-ZJjZbIIr.js","assets/preload-helper-9s1cLCyo.js","assets/index-O55eiSgD.js","assets/Box-DSXpVc0K.js","assets/extends-CvVTau-c.js","assets/KeyboardArrowDown-D_jWdzEv.js","assets/createSimplePaletteValueFilter-Bt9IjErz.js","assets/TextField-CfzwSAUF.js","assets/useRovingTabIndex-DogldBjs.js","assets/List-DUtnswD8.js","assets/redis-state.store-C55NDKx3.js","assets/index-DKMc78Qb.css","assets/jspdf.es.min-lmikBqi4.js"])))=>i.map(i=>d[i]);
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{h as t,k as n,lt as r,t as i}from"./Box-DSXpVc0K.js";import{n as a,o}from"./i18n.store-ZJjZbIIr.js";import{r as s}from"./KeyboardArrowDown-D_jWdzEv.js";import{t as c}from"./ListItem-DNQFRYWX.js";import{t as l}from"./List-DUtnswD8.js";import{t as u}from"./preload-helper-9s1cLCyo.js";import{t as d}from"./DeleteSweep-zecgmp20.js";import{t as f}from"./Download-CNMK0XxJ.js";import{n as p,t as m}from"./PlayArrow-cnJ5_FPn.js";import{t as h}from"./Refresh-DX5rG8wz.js";import{r as g}from"./redis-state.store-C55NDKx3.js";import{B as _,D as v,E as ee,O as y,_ as te,d as b,r as x}from"./index-O55eiSgD.js";import{t as ne}from"./redis-version-D5h1AGvN.js";/* empty css */import{t as S}from"./P3xrAccordion-D_hsG8TZ.js";var C=r(),re=t((0,C.jsx)(`path`,{d:`m20.54 5.23-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27M12 17.5 6.5 12H10v-2h4v2h3.5zM5.12 5l.81-1h12l.94 1z`}),`Archive`),ie=t((0,C.jsx)(`path`,{d:`M6 19h4V5H6zm8-14v14h4V5z`}),`Pause`),w=e(o()),ae=120,oe=e=>new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});function T(e){return e<1024?e+` B`:e<1048576?(e/1024).toFixed(1)+` KB`:(e/1048576).toFixed(1)+` MB`}function se(e){let t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60);return t>0?`${t}d ${n}h ${r}m`:n>0?`${n}h ${r}m`:`${r}m`}function E(e,t){let n=new Blob([e],{type:`text/plain`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=t,i.click(),URL.revokeObjectURL(r)}function D(){let t=a(e=>e.strings),r=a(e=>e.currentLang),o=g(e=>e.connection),D=g(e=>e.info),ce=g(e=>e.modules),{toast:le,confirm:ue,generalHandleError:O}=te(),k=n(),A=k.palette.mode===`dark`,de=o?.readonly===!0,j=o?.name,[M,fe]=(0,w.useState)(null),[pe,me]=(0,w.useState)(!1),[N,he]=(0,w.useState)([]),[P,ge]=(0,w.useState)([]),[_e,ve]=(0,w.useState)([]),[F,ye]=(0,w.useState)(`KEY-COUNT`),[be,xe]=(0,w.useState)(!1),[Se,Ce]=(0,w.useState)(!1),[we,Te]=(0,w.useState)(!1),[Ee,De]=(0,w.useState)(()=>localStorage.getItem(`p3xr-monitor-auto-clients`)===`true`),[Oe,ke]=(0,w.useState)(()=>localStorage.getItem(`p3xr-monitor-auto-topkeys`)===`true`),I=(0,w.useRef)([]),L=(0,w.useRef)(null),R=(0,w.useRef)(!1),Ae=(0,w.useRef)(null),je=(0,w.useRef)(null),Me=(0,w.useRef)(null),Ne=(0,w.useRef)(null),Pe=(0,w.useRef)(null),Fe=(0,w.useRef)(null),Ie=(0,w.useRef)(null),Le=(0,w.useRef)(null),z=(0,w.useRef)(null),Re=(0,w.useRef)(!1),ze=(0,w.useRef)(Ee),Be=(0,w.useRef)(Oe);Re.current=pe,ze.current=Ee,Be.current=Oe;let B=(0,w.useRef)({primary:k.palette.primary.main,accent:k.palette.secondary.main,warn:k.palette.error.main,text:A?`rgba(255,255,255,0.87)`:`rgba(0,0,0,0.87)`,grid:A?`rgba(255,255,255,0.08)`:`rgba(0,0,0,0.08)`});B.current={primary:k.palette.primary.main,accent:k.palette.secondary.main,warn:k.palette.error.main,text:A?`rgba(255,255,255,0.87)`:`rgba(0,0,0,0.87)`,grid:A?`rgba(255,255,255,0.08)`:`rgba(0,0,0,0.08)`};let V=(0,w.useCallback)(()=>{let e=I.current;return{timestamps:e.map(e=>e.timestamp/1e3),memUsed:e.map(e=>e.memory.used/1048576),memRss:e.map(e=>e.memory.rss/1048576),ops:e.map(e=>e.stats.opsPerSec),connected:e.map(e=>e.clients.connected),blocked:e.map(e=>e.clients.blocked),netIn:e.map(e=>e.stats.inputKbps),netOut:e.map(e=>e.stats.outputKbps)}},[]),H=(0,w.useRef)(t);H.current=t;let U=(0,w.useCallback)((e,t)=>{let n=B.current;return{width:e,height:180,cursor:{show:!0,drag:{x:!1,y:!1}},legend:{show:!0,live:!1},scales:{x:{time:!0}},axes:[{stroke:n.text,grid:{stroke:n.grid,width:1},ticks:{stroke:n.grid},font:`11px Roboto`,values:(e,t)=>t.map(e=>oe(e*1e3))},{stroke:n.text,grid:{stroke:n.grid,width:1},ticks:{stroke:n.grid},font:`11px Roboto Mono`,size:55}],series:[{label:H.current?.label?.time,value:(e,t)=>t?oe(t*1e3):``},...t]}},[]),Ve=(0,w.useCallback)(()=>{z.current?.disconnect(),z.current=null,Pe.current?.destroy(),Pe.current=null,Fe.current?.destroy(),Fe.current=null,Ie.current?.destroy(),Ie.current=null,Le.current?.destroy(),Le.current=null,R.current=!1},[]),He=(0,w.useCallback)(()=>{if(!L.current||R.current)return;let e=Ae.current,t=je.current,n=Me.current,r=Ne.current;if(!e||!t||!n||!r)return;let i=V();if(i.timestamps.length<2)return;let a=B.current,o=H.current?.page?.monitor||{};Pe.current=new L.current(U(e.offsetWidth||500,[{label:o.memory,stroke:a.primary,width:2,fill:a.primary+`15`},{label:`RSS`,stroke:a.accent,width:2}]),[i.timestamps,i.memUsed,i.memRss],e),Fe.current=new L.current(U(t.offsetWidth||500,[{label:o.opsPerSec,stroke:a.primary,width:2,fill:a.primary+`20`}]),[i.timestamps,i.ops],t),Ie.current=new L.current(U(n.offsetWidth||500,[{label:o.clients,stroke:a.primary,width:2},{label:o.blocked,stroke:a.warn,width:2}]),[i.timestamps,i.connected,i.blocked],n),Le.current=new L.current(U(r.offsetWidth||500,[{label:`↓ In`,stroke:a.primary,width:2,fill:a.primary+`15`},{label:`↑ Out`,stroke:a.accent,width:2}]),[i.timestamps,i.netIn,i.netOut],r),R.current=!0;let s;z.current=new ResizeObserver(()=>{clearTimeout(s),s=setTimeout(()=>{e.offsetWidth>0&&Pe.current?.setSize({width:e.offsetWidth,height:180}),t.offsetWidth>0&&Fe.current?.setSize({width:t.offsetWidth,height:180}),n.offsetWidth>0&&Ie.current?.setSize({width:n.offsetWidth,height:180}),r.offsetWidth>0&&Le.current?.setSize({width:r.offsetWidth,height:180})},50)}),z.current.observe(e),z.current.observe(t),z.current.observe(n),z.current.observe(r)},[V,U,Ve]),Ue=(0,w.useCallback)(()=>{if(!R.current)return;let e=V();Pe.current?.setData([e.timestamps,e.memUsed,e.memRss]),Fe.current?.setData([e.timestamps,e.ops]),Ie.current?.setData([e.timestamps,e.connected,e.blocked]),Le.current?.setData([e.timestamps,e.netIn,e.netOut])},[V]),We=(0,w.useCallback)(async()=>{try{let e=(await b({action:`monitor/info`,payload:{}})).data;fe(e),I.current.push(e),I.current.length>ae&&I.current.shift(),R.current?Ue():L.current&&I.current.length>=2&&He()}catch{}},[Ue,He]),W=(0,w.useCallback)(async()=>{try{let e=await b({action:`client/list`,payload:{}});he(e.data),Ce(!0)}catch{Ce(!0)}},[]),Ge=(0,w.useCallback)(async()=>{try{let e=await b({action:`memory/top-keys`,payload:{topN:20}});ge(e.data),Te(!0)}catch{Te(!0)}},[]),Ke=(0,w.useCallback)(async e=>{try{let t=await b({action:`cluster/slot-stats`,payload:{metric:e||F,limit:20}});ve(t.slots||[]),xe(!0)}catch{xe(!0),ve([])}},[F]),qe=g.getState().connection?.cluster===!0,Je=ne(g.getState().info?.server?.redis_version),[G,Ye]=(0,w.useState)(null),[Xe,Ze]=(0,w.useState)(()=>localStorage.getItem(`p3xr-monitor-auto-shards`)===`true`),Qe=(0,w.useRef)(null),K=(0,w.useCallback)(async()=>{try{let e=await b({action:`cluster/shards`});Ye(e.data.shards)}catch(e){O(e)}},[O]),$e=(0,w.useCallback)(()=>{Ze(e=>{let t=!e;return localStorage.setItem(`p3xr-monitor-auto-shards`,String(t)),t&&K(),t})},[K]);(0,w.useEffect)(()=>(Xe?Qe.current=setInterval(()=>K(),2e3):clearInterval(Qe.current),()=>clearInterval(Qe.current)),[Xe,K]);let et=e=>e.slotRanges.reduce((e,[t,n])=>e+(n-t+1),0),tt=(0,w.useCallback)(()=>{G&&E(G.map(e=>{let t=e.slotRanges.map(([e,t])=>`${e}-${t}`).join(`, `),n=et(e),r=e.replicas.map(e=>`${e.host}:${e.port}`).join(`, `);return`${e.master.host}:${e.master.port} | ${t} | ${n} slots | replicas: ${r}`}).join(`
`),`${j}-cluster-slots.txt`)},[G,j]);(0,w.useEffect)(()=>{We(),W(),Ge(),qe&&Je.isAtLeast(8,2)&&Ke(),u(()=>import(`./uPlot.esm-C4ecZUO0.js`).then(e=>{L.current=e.default,I.current.length>=2&&setTimeout(()=>He(),300)}),[]);let e=setInterval(()=>{Re.current||(We(),ze.current&&W(),Be.current&&Ge())},2e3);return()=>{clearInterval(e),Ve()}},[]),(0,w.useEffect)(()=>{o&&(I.current=[],Ve(),fe(null),he([]),ge([]),Ce(!1),Te(!1),We(),W(),Ge())},[o]);let nt=k.palette.primary.main;(0,w.useEffect)(()=>{if(!L.current||I.current.length<2)return;Ve();let e=setTimeout(()=>He(),150);return()=>clearTimeout(e)},[A,r,nt]);let rt=(0,w.useCallback)(async e=>{try{await ue({message:t?.page?.monitor?.confirmKillClient}),await b({action:`client/kill`,payload:{id:e}}),le(t?.page?.monitor?.clientKilled),W()}catch(e){e!==void 0&&O(e)}},[t,ue,le,W,O]),it=()=>{let e=!Ee;De(e);try{localStorage.setItem(`p3xr-monitor-auto-clients`,String(e))}catch{}},at=()=>{let e=!Oe;ke(e);try{localStorage.setItem(`p3xr-monitor-auto-topkeys`,String(e))}catch{}},ot=(0,w.useCallback)(()=>{if(!M)return;let e=M,n=t?.page?.monitor||{};E([`${n.memory}: ${e.memory.usedHuman}`,`${n.rss}: ${e.memory.rssHuman}`,`${n.peak}: ${e.memory.peakHuman}`,`${n.fragmentation}: ${e.memory.fragRatio}x`,`${n.opsPerSec}: ${e.stats.opsPerSec}`,`${n.totalCommands}: ${e.stats.totalCommands}`,`${n.clients}: ${e.clients.connected}`,`${n.blocked}: ${e.clients.blocked}`,`${n.hitsMisses}: ${e.stats.hitRate}%`,`${n.hitsAndMisses}: ${e.stats.hits} / ${e.stats.misses}`,`${n.networkIo}: ${e.stats.inputKbps.toFixed(1)} / ${e.stats.outputKbps.toFixed(1)} KB/s`,`${n.expired}: ${e.stats.expiredKeys}`,`${n.evicted}: ${e.stats.evictedKeys}`].join(`
`),`${j}-overview.txt`)},[M,t,j]),st=(0,w.useCallback)((e,t)=>{let n=e.current?.querySelector(`canvas`);if(!n)return;let r=document.createElement(`canvas`);r.width=n.width,r.height=n.height;let i=r.getContext(`2d`);i.fillStyle=A?`#1e1e1e`:`#ffffff`,i.fillRect(0,0,r.width,r.height),i.drawImage(n,0,0);let a=document.createElement(`a`);a.href=r.toDataURL(`image/png`),a.download=`${j}-${t}.png`,a.click()},[j,A]),ct=(0,w.useCallback)(async()=>{try{let e=H.current?.page?.monitor||{};await ue({message:e.confirmSlowLogReset}),await b({action:`monitor/slowlog-reset`}),le({message:e.slowLogResetDone})}catch{}},[ue,le]),lt=(0,w.useCallback)(()=>{M&&E(M.slowlog.map(e=>`${e.duration}\u00B5s ${e.command}`).join(`
`),`${j}-slowlog.txt`)},[M,j]),ut=(0,w.useCallback)(()=>{E(N.map(e=>`${e.addr} ${e.name} db${e.db} ${e.cmd} idle:${e.idle}s`).join(`
`),`${j}-clients.txt`)},[N,j]),dt=(0,w.useCallback)(()=>{E(P.map((e,t)=>`#${t+1} ${e.key} ${T(e.bytes)}`).join(`
`),`${j}-topkeys.txt`)},[P,j]);function ft(){return getComputedStyle(document.body).getPropertyValue(`--p3xr-body-bg`).trim()||(A?`#1e1e1e`:`#ffffff`)}function pt(){let e;if(I.current.length>=2)e=V();else if(M){let t=M,n=Date.now()/1e3;e={timestamps:[n-1,n],memUsed:[t.memory.used/1048576,t.memory.used/1048576],memRss:[t.memory.rss/1048576,t.memory.rss/1048576],ops:[t.stats.opsPerSec,t.stats.opsPerSec],connected:[t.clients.connected,t.clients.connected],blocked:[t.clients.blocked,t.clients.blocked],netIn:[t.stats.inputKbps,t.stats.inputKbps],netOut:[t.stats.outputKbps,t.stats.outputKbps]}}else return[];let t=B.current,n=H.current?.page?.monitor||{};return[{label:`${n.memory} (MB)`,series:[{label:n.memory,color:t.primary,values:e.memUsed,fill:!0},{label:`RSS`,color:t.accent,values:e.memRss}]},{label:n.opsPerSec,series:[{label:n.opsPerSec,color:t.primary,values:e.ops,fill:!0}]},{label:n.clients,series:[{label:n.clients,color:t.primary,values:e.connected},{label:n.blocked,color:t.warn,values:e.blocked}]},{label:`${n.networkIo} (KB/s)`,series:[{label:`↓ In`,color:t.primary,values:e.netIn,fill:!0},{label:`↑ Out`,color:t.accent,values:e.netOut}]}].map(n=>({label:n.label,canvas:mt(e.timestamps,n.series,t)}))}function mt(e,t,n){let r=document.createElement(`canvas`);r.width=1800,r.height=520;let i=r.getContext(`2d`);i.scale(2,2),i.fillStyle=ft(),i.fillRect(0,0,900,260);let a=e.length;if(a<2)return r;let o=1/0,s=-1/0;for(let e of t)for(let t of e.values)t<o&&(o=t),t>s&&(s=t);o===s&&(--o,s+=1);let c=s-o,l=e[0],u=e[a-1]-l||1,d=e=>60+(e-l)/u*824,f=e=>200-(e-o)/c*168;i.strokeStyle=n.grid,i.lineWidth=1;for(let e=0;e<=5;e++){let t=32+168/5*e;i.beginPath(),i.moveTo(60,t),i.lineTo(884,t),i.stroke();let r=s-c/5*e;i.fillStyle=n.text,i.font=`10px Roboto Mono, monospace`,i.textAlign=`right`,i.textBaseline=`middle`,i.fillText(r>=1e3?`${(r/1e3).toFixed(1)}k`:r.toFixed(1),54,t)}let p=Math.min(6,a);i.font=`10px Roboto, sans-serif`,i.textAlign=`center`,i.textBaseline=`top`,i.fillStyle=n.text;for(let t=0;t<p;t++){let n=e[Math.round(t/(p-1)*(a-1))],r=new Date(n*1e3),o=`${String(r.getHours()).padStart(2,`0`)}:${String(r.getMinutes()).padStart(2,`0`)}:${String(r.getSeconds()).padStart(2,`0`)}`;i.fillText(o,d(n),206)}for(let n of t){i.strokeStyle=n.color,i.lineWidth=2,i.lineJoin=`round`,i.beginPath();for(let t=0;t<a;t++){let r=d(e[t]),a=f(n.values[t]);t===0?i.moveTo(r,a):i.lineTo(r,a)}if(i.stroke(),n.fill){i.fillStyle=`${n.color}20`,i.beginPath(),i.moveTo(d(e[0]),f(n.values[0]));for(let t=1;t<a;t++)i.lineTo(d(e[t]),f(n.values[t]));i.lineTo(d(e[a-1]),200),i.lineTo(d(e[0]),200),i.closePath(),i.fill()}}let m=60;i.font=`11px Roboto, sans-serif`,i.textAlign=`left`,i.textBaseline=`middle`;for(let e of t)i.fillStyle=e.color,i.fillRect(m,240,12,8),i.fillStyle=n.text,i.fillText(e.label,m+16,244),m+=i.measureText(e.label).width+32;return r}let ht=(0,w.useCallback)(async()=>{if(M)try{let t=(await u(async()=>{let{default:t}=await import(`./jszip.min-f9GEFGFs.js`).then(t=>e(t.default));return{default:t}},__vite__mapDeps([0,1]))).default,n=new t,r=M,i=[],a=H.current?.page?.monitor||{},o=H.current?.page?.analysis||{},s=e=>e.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]/g,``);i.push(`============================`,` PULSE`,`============================`,``,`--- ${a.title} ---`,`Redis ${r.server.version} \u00B7 ${r.server.mode} \u00B7 Uptime: ${se(r.server.uptime)}`,`${a.memory}: ${r.memory.usedHuman}`,`${a.rss}: ${r.memory.rssHuman}`,`${a.peak}: ${r.memory.peakHuman}`,`${a.fragmentation}: ${r.memory.fragRatio}x`,`${a.opsPerSec}: ${r.stats.opsPerSec}`,`${a.totalCommands}: ${r.stats.totalCommands}`,`${a.clients}: ${r.clients.connected}`,`${a.blocked}: ${r.clients.blocked}`,`${a.hitsMisses}: ${r.stats.hitRate}%`,`${a.hitsAndMisses}: ${r.stats.hits} / ${r.stats.misses}`,`${a.networkIo}: ${r.stats.inputKbps.toFixed(1)} / ${r.stats.outputKbps.toFixed(1)} KB/s`,`${a.expired}: ${r.stats.expiredKeys}`,`${a.evicted}: ${r.stats.evictedKeys}`);let c=g.getState().info,l=g.getState().modules||[];if(c?.server){let e=c.server,t=c.cpu||{};i.push(``,`--- ${a.serverInfo} ---`),i.push(`${a.os}: ${e.os}`,`${a.port}: ${e.tcp_port}`,`${a.pid}: ${e.process_id}`),e.config_file&&i.push(`${a.configFile}: ${e.config_file}`),i.push(`${a.cpuSys} CPU: ${t.used_cpu_sys}`,`${a.cpuUser} CPU: ${t.used_cpu_user}`)}if(c?.persistence){let e=c.persistence,t=parseInt(e.rdb_last_save_time,10),n=t?new Date(t*1e3).toLocaleString():`N/A`;i.push(``,`--- ${a.persistence} ---`),i.push(`${a.rdbLastSave}: ${n}`,`${a.rdbStatus}: ${e.rdb_last_bgsave_status}`),i.push(`${a.rdbChanges}: ${e.rdb_changes_since_last_save??`N/A`}`,`${a.aofEnabled}: ${e.aof_enabled===`1`?`Yes`:`No`}`),e.aof_enabled===`1`&&i.push(`${a.aofSize}: ${T(parseInt(e.aof_current_size,10)||0)}`)}if(c?.replication){let e=c.replication;i.push(``,`--- ${a.replication} ---`,`${a.role}: ${e.role}`),e.role===`master`&&i.push(`${a.replicas}: ${e.connected_slaves??`0`}`),e.role===`slave`&&(e.master_host&&i.push(`${a.masterHost}: ${e.master_host}:${e.master_port}`),e.master_link_status&&i.push(`${a.linkStatus}: ${e.master_link_status}`))}if(c?.keyspace){let e=Object.keys(c.keyspace).filter(e=>e.startsWith(`db`)).sort((e,t)=>parseInt(e.slice(2),10)-parseInt(t.slice(2),10));e.length>0&&(i.push(``,`--- ${a.keyspace} ---`),i.push(...e.map(e=>{let t=c.keyspace[e];return`${e}: ${a.keys}: ${typeof t==`object`?t.keys:`0`}, ${a.expires}: ${typeof t==`object`?t.expires:`0`}`})))}l.length>0?(i.push(``,`--- ${a.modules} ---`),i.push(...l.map(e=>`${e.name} v${e.ver??e.version??``}`))):i.push(``,`--- ${a.modules} ---`,a.noModules),r.slowlog.length>0&&(i.push(``,`--- ${a.slowLog} ---`),i.push(...r.slowlog.map(e=>`${e.duration}\u00B5s ${e.command}`))),N.length>0&&(i.push(``,`--- ${a.clientList} ---`),i.push(...N.map(e=>`${e.addr} ${e.name} db${e.db} ${e.cmd} idle:${e.idle}s`))),P.length>0&&(i.push(``,`--- ${a.topKeys} ---`),i.push(...P.map((e,t)=>`#${t+1} ${e.key} ${T(e.bytes)}`)));let d=[];try{let e=(await b({action:`memory/analysis`,payload:{topN:20,maxScanKeys:5e3}})).data;if(e){let t=e.memoryInfo,n=e.expirationOverview,r=Object.keys(e.typeDistribution||{}).map(t=>({type:t,count:e.typeDistribution[t],bytes:e.typeMemory?.[t]||0})).sort((e,t)=>t.bytes-e.bytes);i.push(``,``,`============================`,` ANALYSIS`,`============================`),i.push(``,`--- ${o.keysScanned} ---`,`${o.keysScanned}: ${e.totalScanned} / ${e.dbSize}`),i.push(``,`--- ${o.memoryBreakdown} ---`),i.push(`${o.totalMemory}: ${t.usedHuman}`,`${o.rssMemory}: ${t.rssHuman}`,`${o.peakMemory}: ${t.peakHuman}`),i.push(`${o.overheadMemory}: ${T(t.overhead)}`,`${o.datasetMemory}: ${T(t.dataset)}`),i.push(`${o.luaMemory}: ${T(t.lua)}`,`${o.fragmentation}: ${t.fragRatio}x`,`${o.allocator}: ${t.allocator}`),i.push(``,`--- ${o.typeDistribution} ---`),i.push(...r.map(e=>`${e.type}: ${e.count} keys, ${T(e.bytes)}`)),e.prefixMemory?.length>0&&(i.push(``,`--- ${o.prefixMemory} ---`),i.push(...e.prefixMemory.map((e,t)=>`#${t+1} ${e.prefix} \u2014 ${e.keyCount} keys, ${T(e.totalBytes)}`))),i.push(``,`--- ${o.expirationOverview} ---`),i.push(`${o.withTTL}: ${n.withTTL}`,`${o.persistent}: ${n.persistent}`,`${o.avgTTL}: ${n.avgTTL}s`),d.push({name:o.typeDistribution,items:r.map(e=>({label:e.type,value:e.bytes}))},{name:o.prefixMemory,items:(e.prefixMemory||[]).slice(0,20).map(e=>({label:e.prefix,value:e.totalBytes}))})}}catch{}let f=[],{useMonitoringDataStore:p}=await u(async()=>{let{useMonitoringDataStore:e}=await import(`./monitoring-data.store-i1uZ54EG.js`);return{useMonitoringDataStore:e}},__vite__mapDeps([2,3,1,4,5,6,7,8,9,10,11,12,13,14])),m=p.getState();m.profilerEntries.length>0&&(f.push(``,``,`============================`,` PROFILER`,`============================`,``),f.push(...m.profilerEntries.map(e=>s(`${e.fullTimestamp} [${e.database} ${e.source}] ${e.command}`)))),m.pubsubEntries.length>0&&(f.push(``,``,`============================`,` PUBSUB`,`============================`,``),f.push(...m.pubsubEntries.map(e=>s(`${e.fullTimestamp} ${e.channel} ${e.message}`))));let h=[...i,...f].join(`
`),_=new TextEncoder().encode(h),v=new Uint8Array([239,187,191]),ee=new Uint8Array(v.length+_.length);ee.set(v),ee.set(_,v.length),n.file(`monitoring.txt`,ee);let y=[];y.push(...pt());for(let e of d){if(e.items.length===0)continue;let t=gt(e.items);t&&y.push({label:e.name,canvas:t})}if(y.length>0){let e=await _t(y);e&&n.file(`charts.png`,e)}try{let e=await vt(i,y,f);e&&n.file(`monitoring.pdf`,e)}catch{}let te=await n.generateAsync({type:`blob`}),x=URL.createObjectURL(te),ne=document.createElement(`a`);ne.href=x,ne.download=`${j}-monitoring.zip`,ne.click(),URL.revokeObjectURL(x)}catch(e){O(e)}},[M,N,P,j,A,O]);function gt(e){if(e.length===0)return null;let t=B.current,n=[t.primary,t.accent,t.warn,A?`#ffb74d`:`#ff9800`,A?`#81c784`:`#4caf50`,A?`#4dd0e1`:`#00bcd4`,A?`#a1887f`:`#795548`,A?`#90a4ae`:`#607d8b`],r=8+e.length*28+8,i=document.createElement(`canvas`);i.width=1600,i.height=r*2;let a=i.getContext(`2d`);a.scale(2,2),a.fillStyle=ft(),a.fillRect(0,0,800,r);let o=Math.max(...e.map(e=>e.value),1);return e.forEach((e,r)=>{let i=8+r*28;a.fillStyle=t.text,a.font=`12px Roboto, sans-serif`,a.textAlign=`right`,a.textBaseline=`middle`,a.fillText(e.label.length>15?e.label.substring(0,14)+`…`:e.label,120,i+12),a.fillStyle=t.grid,a.fillRect(128,i,584,24),a.fillStyle=n[r%n.length],a.fillRect(128,i,e.value/o*584,24),a.fillStyle=t.text,a.font=`11px Roboto Mono, monospace`,a.textAlign=`left`,a.fillText(T(e.value),720,i+12)}),i}async function _t(e){let t=Math.max(2400,...e.map(e=>e.canvas.width)),n=32;for(let r of e)n+=60+r.canvas.height*(t/r.canvas.width)+40;n+=32;let r=document.createElement(`canvas`);r.width=t,r.height=n;let i=r.getContext(`2d`),a=B.current;i.fillStyle=ft(),i.fillRect(0,0,t,n);let o=32;for(let n of e){i.fillStyle=a.text,i.font=`bold 28px Roboto, sans-serif`,i.textAlign=`left`,i.textBaseline=`top`,i.fillText(n.label,32,o),o+=60;let e=t-64,r=n.canvas.height*(e/n.canvas.width);i.drawImage(n.canvas,32,o,e,r),o+=r+40}return new Promise(e=>r.toBlob(t=>e(t),`image/png`))}async function vt(e,t,n){let{jsPDF:r}=await u(async()=>{let{jsPDF:e}=await import(`./jspdf.es.min-lmikBqi4.js`);return{jsPDF:e}},__vite__mapDeps([15,1,4])),i=ft(),a=A?`#e0e0e0`:`#212121`,o=A?`#90caf9`:`#1565c0`,s=new r({orientation:`portrait`,unit:`mm`,format:`a4`}),c=s.internal.pageSize.getWidth(),l=s.internal.pageSize.getHeight(),d=c-24,f=12,p=()=>{s.setFillColor(i),s.rect(0,0,c,l,`F`)};p();let m=e=>{f+e>l-12&&(s.addPage(),p(),f=12)};for(let t of e)if(!t.startsWith(`====`)){if([`PULSE`,`PROFILER`,`PUBSUB`,`ANALYSIS`].includes(t.trim())){m(14),f+=4,s.setFontSize(14),s.setTextColor(o),s.text(t.trim(),12,f),f+=8;continue}if(t.startsWith(`---`)&&t.endsWith(`---`)){m(8),f+=2,s.setFontSize(10),s.setTextColor(o),s.text(t.replace(/^-+\s*/,``).replace(/\s*-+$/,``),12,f),f+=5;continue}if(t===``){f+=2;continue}m(4),s.setTextColor(a),s.setFontSize(8);for(let e of s.splitTextToSize(t,d))m(4),s.text(e,12,f),f+=3.5}for(let e of t){s.addPage(),p(),f=12,s.setFontSize(12),s.setTextColor(o),s.text(e.label,12,f),f+=8;let t=e.canvas.toDataURL(`image/png`),n=e.canvas.height/e.canvas.width,r=l-f-12,i=d,a=i*n;if(a>r){let e=r,i=e/n;s.addImage(t,`PNG`,12,f,i,e),f+=e}else s.addImage(t,`PNG`,12,f,i,a),f+=a}n.length>0&&t.length>0&&(s.addPage(),p(),f=12);for(let e of n)if(!e.startsWith(`====`)){if([`PROFILER`,`PUBSUB`].includes(e.trim())){m(14),f+=4,s.setFontSize(14),s.setTextColor(o),s.text(e.trim(),12,f),f+=8;continue}if(e===``){f+=2;continue}m(4),s.setTextColor(a),s.setFontSize(8);for(let t of s.splitTextToSize(e,d))m(4),s.text(t,12,f),f+=3.5}return s.output(`blob`)}let q=D?(()=>{let e=D.server||{},t=D.cpu||{};return{os:e.os,port:e.tcp_port,pid:e.process_id,configFile:e.config_file,cpuSys:t.used_cpu_sys,cpuUser:t.used_cpu_user}})():null,J=D?.persistence?(()=>{let e=D.persistence,t=parseInt(e.rdb_last_save_time,10);return{rdbLastSave:t?new Date(t*1e3).toLocaleString():`N/A`,rdbStatus:e.rdb_last_bgsave_status,rdbChanges:e.rdb_changes_since_last_save??`N/A`,aofEnabled:e.aof_enabled===`1`?`Yes`:`No`,aofSize:e.aof_enabled===`1`?T(parseInt(e.aof_current_size,10)||0):``}})():null,Y=D?.replication?(()=>{let e=D.replication,t={role:e.role};return e.role===`master`?t.replicas=e.connected_slaves??`0`:e.role===`slave`&&(t.masterHost=e.master_host,t.masterPort=e.master_port,t.linkStatus=e.master_link_status),t})():null,X=D?.keyspace?Object.keys(D.keyspace).filter(e=>e.startsWith(`db`)).sort((e,t)=>parseInt(e.slice(2),10)-parseInt(t.slice(2),10)).map(e=>{let t=D.keyspace[e];return{db:e,keys:typeof t==`object`&&t.keys||`0`,expires:typeof t==`object`&&t.expires||`0`}}):[],Z=(ce||[]).map(e=>({name:e.name||`unknown`,ver:String(e.ver??e.version??``)})),yt=(0,w.useCallback)(()=>{if(!q)return;let e=q,t=H.current?.page?.monitor||{},n=[`${t.os}: ${e.os}`,`${t.port}: ${e.port}`,`${t.pid}: ${e.pid}`];e.configFile&&n.push(`${t.configFile}: ${e.configFile}`),n.push(`${t.cpuSys} CPU: ${e.cpuSys}`,`${t.cpuUser} CPU: ${e.cpuUser}`),E(n.join(`
`),`${j}-server-info.txt`)},[j,q]),bt=(0,w.useCallback)(()=>{if(!J)return;let e=J,t=H.current?.page?.monitor||{},n=[`${t.rdbLastSave}: ${e.rdbLastSave}`,`${t.rdbStatus}: ${e.rdbStatus}`,`${t.rdbChanges}: ${e.rdbChanges}`,`${t.aofEnabled}: ${e.aofEnabled}`];e.aofSize&&n.push(`${t.aofSize}: ${e.aofSize}`),E(n.join(`
`),`${j}-persistence.txt`)},[j,J]),xt=(0,w.useCallback)(()=>{if(!Y)return;let e=Y,t=H.current?.page?.monitor||{},n=[`${t.role}: ${e.role}`];e.replicas!==void 0&&n.push(`${t.replicas}: ${e.replicas}`),e.masterHost&&n.push(`${t.masterHost}: ${e.masterHost}:${e.masterPort}`),e.linkStatus&&n.push(`${t.linkStatus}: ${e.linkStatus}`),E(n.join(`
`),`${j}-replication.txt`)},[j,Y]),St=(0,w.useCallback)(()=>{if(X.length===0)return;let e=H.current?.page?.monitor||{};E(X.map(t=>`${t.db}: ${e.keys}: ${t.keys}, ${e.expires}: ${t.expires}`).join(`
`),`${j}-keyspace.txt`)},[j,X]),Ct=(0,w.useCallback)(()=>{let e=H.current?.page?.monitor||{};if(Z.length===0){E(e.noModules,`${j}-modules.txt`);return}E(Z.map(e=>`${e.name} v${e.ver}`).join(`
`),`${j}-modules.txt`)},[j,Z]),Q=({label:e,value:t})=>(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(c,{sx:{px:2,py:1},children:(0,C.jsxs)(i,{sx:{display:`flex`,width:`100%`},children:[(0,C.jsx)(i,{sx:{flex:1},children:e}),(0,C.jsx)(i,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:t})]})}),(0,C.jsx)(_,{})]});if(!M)return(0,C.jsxs)(i,{sx:{display:`flex`,alignItems:`center`,justifyContent:`center`,gap:1,p:4,opacity:.5},children:[(0,C.jsx)(p,{}),` `,t?.label?.loading]});let $=t?.page?.monitor||{};return(0,C.jsxs)(i,{children:[(0,C.jsx)(S,{title:$.title,accordionKey:`monitor-overview`,actions:(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(x,{icon:pe?(0,C.jsx)(m,{sx:{fontSize:18}}):(0,C.jsx)(ie,{sx:{fontSize:18}}),label:pe?t?.intention?.resume:t?.intention?.pause,color:`inherit`,onClick:e=>{e.stopPropagation(),me(e=>!e)}}),(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),ot()}}),(0,C.jsx)(x,{icon:(0,C.jsx)(re,{sx:{fontSize:18}}),label:t?.page?.analysis?.exportAll,color:`inherit`,onClick:e=>{e.stopPropagation(),ht()}})]}),children:(0,C.jsxs)(l,{disablePadding:!0,children:[(0,C.jsx)(Q,{label:`Redis ${M.server.version} \u00B7 ${M.server.mode}`,value:se(M.server.uptime)}),(0,C.jsx)(Q,{label:$.memory,value:M.memory.usedHuman}),(0,C.jsx)(Q,{label:$.rss,value:M.memory.rssHuman}),(0,C.jsx)(Q,{label:$.peak,value:M.memory.peakHuman}),(0,C.jsx)(Q,{label:$.fragmentation,value:`${M.memory.fragRatio}x`}),(0,C.jsx)(Q,{label:$.opsPerSec,value:M.stats.opsPerSec}),(0,C.jsx)(Q,{label:$.totalCommands,value:M.stats.totalCommands}),(0,C.jsx)(Q,{label:$.clients,value:M.clients.connected}),(0,C.jsx)(Q,{label:$.blocked,value:M.clients.blocked}),(0,C.jsx)(Q,{label:$.hitsMisses,value:`${M.stats.hitRate}%`}),(0,C.jsx)(Q,{label:$.hitsAndMisses,value:`${M.stats.hits} / ${M.stats.misses}`}),(0,C.jsx)(Q,{label:$.networkIo,value:`${M.stats.inputKbps.toFixed(1)} / ${M.stats.outputKbps.toFixed(1)} KB/s`}),(0,C.jsx)(Q,{label:$.expired,value:M.stats.expiredKeys}),(0,C.jsx)(Q,{label:$.evicted,value:M.stats.evictedKeys})]})}),q&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:$.serverInfo,accordionKey:`monitor-server-info`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),yt()}}),children:(0,C.jsxs)(l,{disablePadding:!0,children:[q.os&&(0,C.jsx)(Q,{label:$.os,value:q.os}),q.port&&(0,C.jsx)(Q,{label:$.port,value:q.port}),q.pid&&(0,C.jsx)(Q,{label:$.pid,value:q.pid}),q.configFile&&(0,C.jsx)(Q,{label:$.configFile,value:q.configFile}),(0,C.jsx)(Q,{label:`${$.cpuSys} CPU`,value:q.cpuSys}),(0,C.jsx)(Q,{label:`${$.cpuUser} CPU`,value:q.cpuUser})]})})]}),J&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:$.persistence,accordionKey:`monitor-persistence`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),bt()}}),children:(0,C.jsxs)(l,{disablePadding:!0,children:[(0,C.jsx)(Q,{label:$.rdbLastSave,value:J.rdbLastSave}),(0,C.jsx)(Q,{label:$.rdbStatus,value:J.rdbStatus}),(0,C.jsx)(Q,{label:$.rdbChanges,value:J.rdbChanges}),(0,C.jsx)(Q,{label:$.aofEnabled,value:J.aofEnabled}),J.aofSize&&(0,C.jsx)(Q,{label:$.aofSize,value:J.aofSize})]})})]}),Y&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:$.replication,accordionKey:`monitor-replication`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),xt()}}),children:(0,C.jsxs)(l,{disablePadding:!0,children:[(0,C.jsx)(Q,{label:$.role,value:Y.role}),Y.replicas!==void 0&&(0,C.jsx)(Q,{label:$.replicas,value:Y.replicas}),Y.masterHost&&(0,C.jsx)(Q,{label:$.masterHost,value:`${Y.masterHost}:${Y.masterPort}`}),Y.linkStatus&&(0,C.jsx)(Q,{label:$.linkStatus,value:Y.linkStatus})]})})]}),X.length>0&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:$.keyspace,accordionKey:`monitor-keyspace`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),St()}}),children:(0,C.jsx)(l,{disablePadding:!0,children:X.map((e,t)=>(0,C.jsxs)(i,{children:[(0,C.jsx)(c,{sx:{px:2,py:1},children:(0,C.jsxs)(i,{sx:{display:`flex`,width:`100%`},children:[(0,C.jsx)(i,{sx:{flex:1},children:e.db}),(0,C.jsxs)(i,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[$.keys,`: `,e.keys,` `,`·`,` `,$.expires,`: `,e.expires]})]})}),t<X.length-1&&(0,C.jsx)(_,{})]},e.db))})})]}),(0,C.jsx)(`br`,{}),(0,C.jsxs)(S,{title:$.modules,accordionKey:`monitor-modules`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),Ct()}}),children:[Z.length===0&&(0,C.jsx)(i,{sx:{p:2,opacity:.5},children:$.noModules}),Z.length>0&&(0,C.jsx)(l,{disablePadding:!0,children:Z.map((e,t)=>(0,C.jsxs)(i,{children:[(0,C.jsx)(c,{sx:{px:2,py:1},children:(0,C.jsxs)(i,{sx:{display:`flex`,width:`100%`},children:[(0,C.jsx)(i,{sx:{flex:1},children:e.name}),(0,C.jsxs)(i,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[`v`,e.ver]})]})}),t<Z.length-1&&(0,C.jsx)(_,{})]},e.name))})]}),(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:`${$.memory} (MB)`,accordionKey:`monitor-chart-memory`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),st(Ae,`memory`)}}),children:(0,C.jsx)(i,{ref:Ae,sx:{minHeight:180,width:`100%`,overflow:`hidden`}})}),(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:$.opsPerSec,accordionKey:`monitor-chart-ops`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),st(je,`ops`)}}),children:(0,C.jsx)(i,{ref:je,sx:{minHeight:180,width:`100%`,overflow:`hidden`}})}),(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:$.clients,accordionKey:`monitor-chart-clients`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),st(Me,`clients`)}}),children:(0,C.jsx)(i,{ref:Me,sx:{minHeight:180,width:`100%`,overflow:`hidden`}})}),(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:`${$.networkIo} (KB/s)`,accordionKey:`monitor-chart-network`,actions:(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),st(Ne,`network`)}}),children:(0,C.jsx)(i,{ref:Ne,sx:{minHeight:180,width:`100%`,overflow:`hidden`}})}),(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:$.slowLog,accordionKey:`monitor-slowlog`,actions:(0,C.jsxs)(C.Fragment,{children:[!de&&(0,C.jsx)(x,{icon:(0,C.jsx)(d,{sx:{fontSize:18}}),label:`Reset`,color:`inherit`,onClick:e=>{e.stopPropagation(),ct()}}),(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),lt()}})]}),children:M.slowlog.length===0?(0,C.jsx)(i,{sx:{p:2,opacity:.6},children:$.noSlowQueries}):(0,C.jsx)(l,{disablePadding:!0,children:M.slowlog.map(e=>(0,C.jsxs)(i,{children:[(0,C.jsx)(c,{sx:{px:2,py:1},children:(0,C.jsxs)(i,{sx:{display:`flex`,alignItems:`center`,gap:1,width:`100%`},children:[(0,C.jsxs)(i,{component:`kbd`,sx:{px:`6px`,py:`2px`,borderRadius:`4px`,fontSize:11,bgcolor:A?`rgba(255,255,255,0.1)`:`rgba(0,0,0,0.08)`,fontFamily:`'Roboto Mono', monospace`,whiteSpace:`nowrap`},children:[e.duration,`µ`,`s`]}),(0,C.jsx)(i,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13,wordBreak:`break-all`},children:e.command})]})}),(0,C.jsx)(_,{})]},e.id))})}),(0,C.jsx)(`br`,{}),(0,C.jsxs)(S,{title:$.clientList,accordionKey:`monitor-clients-list`,actions:(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(x,{icon:Ee?(0,C.jsx)(y,{sx:{fontSize:18}}):(0,C.jsx)(v,{sx:{fontSize:18}}),label:t?.label?.autoRefresh,color:`inherit`,onClick:e=>{e.stopPropagation(),it()}}),!Ee&&(0,C.jsx)(x,{icon:(0,C.jsx)(h,{sx:{fontSize:18}}),label:t?.intention?.refresh,color:`inherit`,onClick:e=>{e.stopPropagation(),W()}}),(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),ut()}})]}),children:[N.length===0&&(0,C.jsx)(i,{sx:{p:2,opacity:.5},children:Se?$.noClients:t?.label?.loading}),N.length>0&&(0,C.jsx)(l,{disablePadding:!0,children:N.map(e=>(0,C.jsxs)(i,{children:[(0,C.jsx)(c,{sx:{px:2,py:1},children:(0,C.jsxs)(i,{sx:{display:`flex`,alignItems:`center`,gap:1,width:`100%`},children:[(0,C.jsx)(i,{component:`span`,sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13,fontWeight:700,minWidth:150},children:e.addr}),e.name&&(0,C.jsxs)(i,{component:`span`,sx:{opacity:.5,fontSize:12},children:[`(`,e.name,`)`]}),(0,C.jsxs)(i,{component:`span`,sx:{flex:1,textAlign:`right`,fontFamily:`'Roboto Mono', monospace`,fontSize:12,opacity:.6},children:[`db`,e.db,` `,`·`,` `,e.cmd,` `,`·`,` `,e.idle,`s`]}),!de&&(0,C.jsx)(s,{title:$.killClient,children:(0,C.jsx)(ee,{sx:{fontSize:18,width:18,height:18,cursor:`pointer`,color:`error.main`,"&:hover":{opacity:1}},onClick:()=>rt(e.id)})})]})}),(0,C.jsx)(_,{})]},e.id))})]}),(0,C.jsx)(`br`,{}),(0,C.jsxs)(S,{title:$.topKeys,accordionKey:`monitor-top-keys`,actions:(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(x,{icon:Oe?(0,C.jsx)(y,{sx:{fontSize:18}}):(0,C.jsx)(v,{sx:{fontSize:18}}),label:t?.label?.autoRefresh,color:`inherit`,onClick:e=>{e.stopPropagation(),at()}}),!Oe&&(0,C.jsx)(x,{icon:(0,C.jsx)(h,{sx:{fontSize:18}}),label:t?.intention?.refresh,color:`inherit`,onClick:e=>{e.stopPropagation(),Ge()}}),(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),dt()}})]}),children:[P.length===0&&(0,C.jsx)(i,{sx:{p:2,opacity:.5},children:we?$.noKeys:t?.label?.loading}),P.length>0&&(0,C.jsx)(l,{disablePadding:!0,children:P.map((e,t)=>(0,C.jsxs)(i,{children:[(0,C.jsx)(c,{sx:{px:2,py:1},children:(0,C.jsxs)(i,{sx:{display:`flex`,width:`100%`},children:[(0,C.jsxs)(i,{sx:{flex:1},children:[(0,C.jsxs)(i,{component:`span`,sx:{opacity:.4,mr:1},children:[`#`,t+1]}),(0,C.jsx)(i,{component:`span`,sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:e.key})]}),(0,C.jsx)(i,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:T(e.bytes)})]})}),(0,C.jsx)(_,{})]},e.key))})]}),qe&&Je.isAtLeast(8,2)&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`br`,{}),(0,C.jsxs)(S,{title:$.slotStats,accordionKey:`monitor-slot-stats`,actions:(0,C.jsx)(C.Fragment,{children:(0,C.jsx)(x,{icon:(0,C.jsx)(h,{fontSize:`small`}),label:t?.intention?.refresh,onClick:e=>{e.stopPropagation(),Ke()}})}),children:[(0,C.jsx)(i,{sx:{px:2,py:1,display:`flex`,gap:1,alignItems:`center`},children:(0,C.jsxs)(`select`,{value:F,onChange:e=>{ye(e.target.value),Ke(e.target.value)},style:{padding:`6px 8px`,borderRadius:4,border:`1px solid rgba(128,128,128,0.3)`,background:`transparent`,color:`inherit`,fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[(0,C.jsx)(`option`,{value:`KEY-COUNT`,children:`Key Count`}),(0,C.jsx)(`option`,{value:`CPU-USEC`,children:`CPU (μs)`}),(0,C.jsx)(`option`,{value:`MEMORY-BYTES`,children:`Memory (bytes)`})]})}),_e.length===0&&(0,C.jsx)(i,{sx:{p:2,opacity:.5},children:be?`No slot data`:t?.label?.loading}),_e.length>0&&(0,C.jsx)(l,{disablePadding:!0,children:_e.map((e,t)=>(0,C.jsxs)(i,{children:[(0,C.jsx)(c,{sx:{px:2,py:1},children:(0,C.jsxs)(i,{sx:{display:`flex`,width:`100%`},children:[(0,C.jsxs)(i,{sx:{flex:1},children:[(0,C.jsxs)(i,{component:`span`,sx:{opacity:.4,mr:1},children:[`#`,t+1]}),(0,C.jsxs)(i,{component:`span`,sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[`Slot `,e.slot]})]}),(0,C.jsxs)(i,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[F===`KEY-COUNT`&&`${e[`key-count`]} keys`,F===`CPU-USEC`&&`${e[`cpu-usec`]} μs`,F===`MEMORY-BYTES`&&T(e[`memory-bytes`])]})]})}),(0,C.jsx)(_,{})]},e.slot))})]})]}),qe&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`br`,{}),(0,C.jsx)(S,{title:$.clusterSlotMap,accordionKey:`monitor-cluster-slots`,actions:(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(x,{icon:Xe?(0,C.jsx)(y,{sx:{fontSize:18}}):(0,C.jsx)(v,{sx:{fontSize:18}}),label:t?.label?.autoRefresh,color:`inherit`,onClick:e=>{e.stopPropagation(),$e()}}),!Xe&&(0,C.jsx)(x,{icon:(0,C.jsx)(h,{sx:{fontSize:18}}),label:t?.intention?.refresh,color:`inherit`,onClick:e=>{e.stopPropagation(),K()}}),(0,C.jsx)(x,{icon:(0,C.jsx)(f,{sx:{fontSize:18}}),label:t?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),tt()}})]}),children:G?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(l,{disablePadding:!0,children:G.map(e=>(0,C.jsxs)(i,{children:[(0,C.jsx)(c,{sx:{px:2,py:1},children:(0,C.jsxs)(i,{sx:{display:`flex`,width:`100%`,justifyContent:`space-between`,flexWrap:`wrap`},children:[(0,C.jsxs)(i,{children:[(0,C.jsxs)(i,{component:`span`,sx:{fontWeight:500},children:[e.master.host,`:`,e.master.port]}),(0,C.jsx)(i,{component:`span`,sx:{ml:1,opacity:.5,fontSize:12},children:e.slotRanges.map(([e,t])=>`${e}-${t}`).join(`, `)})]}),(0,C.jsxs)(i,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[et(e),` slots`,e.replicas.length>0&&(0,C.jsxs)(i,{component:`span`,sx:{opacity:.5,ml:1},children:[`(`,e.replicas.map(e=>`${e.host}:${e.port}`).join(`, `),`)`]})]})]})}),(0,C.jsx)(_,{})]},e.master.id))}),(0,C.jsxs)(i,{sx:{p:1,px:2,opacity:.6,fontSize:12},children:[`16384 slots across `,G.length,` masters`]})]}):(0,C.jsx)(i,{sx:{p:2,opacity:.6},children:$.noClusterData})})]})]})}export{D as default};