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.1 kB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jszip.min-C7RAEEX9.js","assets/chunk-DseTPa7n.js","assets/monitoring-data.store-BmHf63-V.js","assets/socket.service-Bvd4M0Ji.js","assets/i18n.store-fGbhAfs-.js","assets/preload-helper-CyM22wVb.js","assets/redis-state.store-DtknZjXV.js","assets/jspdf.es.min-NEuC_w8L.js","assets/typeof-CZCzuX07.js"])))=>i.map(i=>d[i]);
import{i as e}from"./chunk-DseTPa7n.js";import{D as t,Q as n,t as r,y as i}from"./Box-CXFf6N2h.js";import{n as a,o}from"./i18n.store-fGbhAfs-.js";import{r as s}from"./KeyboardArrowDown-Bd9MEjfK.js";import{t as c}from"./Divider-B-lgo4nA.js";import{t as l}from"./P3xrButton-De81XLvk.js";import{t as u}from"./List-C08Y9n9o.js";import{t as d}from"./ListItem-BVfb-I0T.js";import{t as f}from"./preload-helper-CyM22wVb.js";import{n as p,t as m}from"./CheckBoxOutlineBlank-BnFYgZ47.js";import{t as ee}from"./Close-ChCm9mL2.js";import{t as te}from"./DeleteSweep-DiL-xP00.js";import{t as h}from"./Download-DT0KMSJC.js";import{n as ne,t as g}from"./PlayArrow-DQTZsekD.js";import{t as _}from"./Refresh-CL2VjXTi.js";import{r as v}from"./redis-state.store-DtknZjXV.js";import{r as re}from"./common.store-BMIRIqfN.js";import{r as y}from"./socket.service-Bvd4M0Ji.js";import{t as ie}from"./redis-version-DTo3THXP.js";/* empty css */import{t as b}from"./P3xrAccordion-mbxcxWWs.js";var x=n(),ae=i((0,x.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`),oe=i((0,x.jsx)(`path`,{d:`M6 19h4V5H6zm8-14v14h4V5z`}),`Pause`),S=e(o()),se=120,ce=e=>new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});function C(e){return e<1024?e+` B`:e<1024*1024?(e/1024).toFixed(1)+` KB`:(e/(1024*1024)).toFixed(1)+` MB`}function le(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 w(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 T(){let n=a(e=>e.strings),i=a(e=>e.currentLang),o=v(e=>e.connection),T=v(e=>e.info),ue=v(e=>e.modules),{toast:de,confirm:fe,generalHandleError:E}=re(),D=t(),O=D.palette.mode===`dark`,pe=o?.readonly===!0,k=o?.name,[A,me]=(0,S.useState)(null),[he,ge]=(0,S.useState)(!1),[j,_e]=(0,S.useState)([]),[M,ve]=(0,S.useState)([]),[ye,be]=(0,S.useState)([]),[N,xe]=(0,S.useState)(`KEY-COUNT`),[Se,Ce]=(0,S.useState)(!1),[we,Te]=(0,S.useState)(!1),[Ee,De]=(0,S.useState)(!1),[P,Oe]=(0,S.useState)(()=>localStorage.getItem(`p3xr-monitor-auto-clients`)===`true`),[F,ke]=(0,S.useState)(()=>localStorage.getItem(`p3xr-monitor-auto-topkeys`)===`true`),I=(0,S.useRef)([]),L=(0,S.useRef)(null),R=(0,S.useRef)(!1),Ae=(0,S.useRef)(null),je=(0,S.useRef)(null),Me=(0,S.useRef)(null),Ne=(0,S.useRef)(null),z=(0,S.useRef)(null),B=(0,S.useRef)(null),V=(0,S.useRef)(null),Pe=(0,S.useRef)(null),H=(0,S.useRef)(null),Fe=(0,S.useRef)(!1),Ie=(0,S.useRef)(P),Le=(0,S.useRef)(F);Fe.current=he,Ie.current=P,Le.current=F;let U=(0,S.useRef)({primary:D.palette.primary.main,accent:D.palette.secondary.main,warn:D.palette.error.main,text:O?`rgba(255,255,255,0.87)`:`rgba(0,0,0,0.87)`,grid:O?`rgba(255,255,255,0.08)`:`rgba(0,0,0,0.08)`});U.current={primary:D.palette.primary.main,accent:D.palette.secondary.main,warn:D.palette.error.main,text:O?`rgba(255,255,255,0.87)`:`rgba(0,0,0,0.87)`,grid:O?`rgba(255,255,255,0.08)`:`rgba(0,0,0,0.08)`};let Re=(0,S.useCallback)(()=>{let e=I.current;return{timestamps:e.map(e=>e.timestamp/1e3),memUsed:e.map(e=>e.memory.used/(1024*1024)),memRss:e.map(e=>e.memory.rss/(1024*1024)),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)}},[]),W=(0,S.useRef)(n);W.current=n;let ze=(0,S.useCallback)((e,t)=>{let n=U.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=>ce(e*1e3))},{stroke:n.text,grid:{stroke:n.grid,width:1},ticks:{stroke:n.grid},font:`11px Roboto Mono`,size:55}],series:[{label:W.current?.label?.time,value:(e,t)=>t?ce(t*1e3):``},...t]}},[]),Be=(0,S.useCallback)(()=>{H.current?.disconnect(),H.current=null,z.current?.destroy(),z.current=null,B.current?.destroy(),B.current=null,V.current?.destroy(),V.current=null,Pe.current?.destroy(),Pe.current=null,R.current=!1},[]),Ve=(0,S.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=Re();if(i.timestamps.length<2)return;let a=U.current,o=W.current?.page?.monitor||{};z.current=new L.current(ze(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),B.current=new L.current(ze(t.offsetWidth||500,[{label:o.opsPerSec,stroke:a.primary,width:2,fill:a.primary+`20`}]),[i.timestamps,i.ops],t),V.current=new L.current(ze(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),Pe.current=new L.current(ze(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;H.current=new ResizeObserver(()=>{clearTimeout(s),s=setTimeout(()=>{e.offsetWidth>0&&z.current?.setSize({width:e.offsetWidth,height:180}),t.offsetWidth>0&&B.current?.setSize({width:t.offsetWidth,height:180}),n.offsetWidth>0&&V.current?.setSize({width:n.offsetWidth,height:180}),r.offsetWidth>0&&Pe.current?.setSize({width:r.offsetWidth,height:180})},50)}),H.current.observe(e),H.current.observe(t),H.current.observe(n),H.current.observe(r)},[Re,ze,Be]),He=(0,S.useCallback)(()=>{if(!R.current)return;let e=Re();z.current?.setData([e.timestamps,e.memUsed,e.memRss]),B.current?.setData([e.timestamps,e.ops]),V.current?.setData([e.timestamps,e.connected,e.blocked]),Pe.current?.setData([e.timestamps,e.netIn,e.netOut])},[Re]),Ue=(0,S.useCallback)(async()=>{try{let e=(await y({action:`monitor/info`,payload:{}})).data;me(e),I.current.push(e),I.current.length>se&&I.current.shift(),R.current?He():L.current&&I.current.length>=2&&Ve()}catch{}},[He,Ve]),G=(0,S.useCallback)(async()=>{try{_e((await y({action:`client/list`,payload:{}})).data),Te(!0)}catch{Te(!0)}},[]),We=(0,S.useCallback)(async()=>{try{ve((await y({action:`memory/top-keys`,payload:{topN:20}})).data),De(!0)}catch{De(!0)}},[]),Ge=(0,S.useCallback)(async e=>{try{be((await y({action:`cluster/slot-stats`,payload:{metric:e||N,limit:20}})).slots||[]),Ce(!0)}catch{Ce(!0),be([])}},[N]),Ke=v.getState().connection?.cluster===!0,qe=ie(v.getState().info?.server?.redis_version),[K,Je]=(0,S.useState)(null),[Ye,Xe]=(0,S.useState)(()=>localStorage.getItem(`p3xr-monitor-auto-shards`)===`true`),Ze=(0,S.useRef)(null),Qe=(0,S.useCallback)(async()=>{try{Je((await y({action:`cluster/shards`})).data.shards)}catch(e){E(e)}},[E]),$e=(0,S.useCallback)(()=>{Xe(e=>{let t=!e;return localStorage.setItem(`p3xr-monitor-auto-shards`,String(t)),t&&Qe(),t})},[Qe]);(0,S.useEffect)(()=>(Ye?Ze.current=setInterval(()=>Qe(),2e3):clearInterval(Ze.current),()=>clearInterval(Ze.current)),[Ye,Qe]);let et=e=>e.slotRanges.reduce((e,[t,n])=>e+(n-t+1),0),tt=(0,S.useCallback)(()=>{K&&w(K.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(`
`),`${k}-cluster-slots.txt`)},[K,k]);(0,S.useEffect)(()=>{Ue(),G(),We(),Ke&&qe.isAtLeast(8,2)&&Ge(),f(()=>import(`./uPlot.esm-DFZcsTVG.js`).then(e=>{L.current=e.default,I.current.length>=2&&setTimeout(()=>Ve(),300)}),[]);let e=setInterval(()=>{Fe.current||(Ue(),Ie.current&&G(),Le.current&&We())},2e3);return()=>{clearInterval(e),Be()}},[]),(0,S.useEffect)(()=>{o&&(I.current=[],Be(),me(null),_e([]),ve([]),Te(!1),De(!1),Ue(),G(),We())},[o]);let nt=D.palette.primary.main;(0,S.useEffect)(()=>{if(!L.current||I.current.length<2)return;Be();let e=setTimeout(()=>Ve(),150);return()=>clearTimeout(e)},[O,i,nt]);let rt=(0,S.useCallback)(async e=>{try{await fe({message:n?.page?.monitor?.confirmKillClient}),await y({action:`client/kill`,payload:{id:e}}),de(n?.page?.monitor?.clientKilled),G()}catch(e){e!==void 0&&E(e)}},[n,fe,de,G,E]),it=()=>{let e=!P;Oe(e);try{localStorage.setItem(`p3xr-monitor-auto-clients`,String(e))}catch{}},at=()=>{let e=!F;ke(e);try{localStorage.setItem(`p3xr-monitor-auto-topkeys`,String(e))}catch{}},ot=(0,S.useCallback)(()=>{if(!A)return;let e=A,t=n?.page?.monitor||{};w([`${t.memory}: ${e.memory.usedHuman}`,`${t.rss}: ${e.memory.rssHuman}`,`${t.peak}: ${e.memory.peakHuman}`,`${t.fragmentation}: ${e.memory.fragRatio}x`,`${t.opsPerSec}: ${e.stats.opsPerSec}`,`${t.totalCommands}: ${e.stats.totalCommands}`,`${t.clients}: ${e.clients.connected}`,`${t.blocked}: ${e.clients.blocked}`,`${t.hitsMisses}: ${e.stats.hitRate}%`,`${t.hitsAndMisses}: ${e.stats.hits} / ${e.stats.misses}`,`${t.networkIo}: ${e.stats.inputKbps.toFixed(1)} / ${e.stats.outputKbps.toFixed(1)} KB/s`,`${t.expired}: ${e.stats.expiredKeys}`,`${t.evicted}: ${e.stats.evictedKeys}`].join(`
`),`${k}-overview.txt`)},[A,n,k]),st=(0,S.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=O?`#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=`${k}-${t}.png`,a.click()},[k,O]),ct=(0,S.useCallback)(async()=>{try{let e=W.current?.page?.monitor||{};await fe({message:e.confirmSlowLogReset}),await y({action:`monitor/slowlog-reset`}),de({message:e.slowLogResetDone})}catch{}},[fe,de]),lt=(0,S.useCallback)(()=>{A&&w(A.slowlog.map(e=>`${e.duration}\u00B5s ${e.command}`).join(`
`),`${k}-slowlog.txt`)},[A,k]),ut=(0,S.useCallback)(()=>{w(j.map(e=>`${e.addr} ${e.name} db${e.db} ${e.cmd} idle:${e.idle}s`).join(`
`),`${k}-clients.txt`)},[j,k]),dt=(0,S.useCallback)(()=>{w(M.map((e,t)=>`#${t+1} ${e.key} ${C(e.bytes)}`).join(`
`),`${k}-topkeys.txt`)},[M,k]);function ft(){return getComputedStyle(document.body).getPropertyValue(`--p3xr-body-bg`).trim()||(O?`#1e1e1e`:`#ffffff`)}function pt(){let e;if(I.current.length>=2)e=Re();else if(A){let t=A,n=Date.now()/1e3;e={timestamps:[n-1,n],memUsed:[t.memory.used/(1024*1024),t.memory.used/(1024*1024)],memRss:[t.memory.rss/(1024*1024),t.memory.rss/(1024*1024)],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=U.current,n=W.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=900*2,r.height=260*2;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,S.useCallback)(async()=>{if(A)try{let t=(await f(async()=>{let{default:t}=await import(`./jszip.min-C7RAEEX9.js`).then(t=>e(t.default));return{default:t}},__vite__mapDeps([0,1]))).default,n=new t,r=A,i=[],a=W.current?.page?.monitor||{},o=W.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: ${le(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=v.getState().info,l=v.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}: ${C(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}`))),j.length>0&&(i.push(``,`--- ${a.clientList} ---`),i.push(...j.map(e=>`${e.addr} ${e.name} db${e.db} ${e.cmd} idle:${e.idle}s`))),M.length>0&&(i.push(``,`--- ${a.topKeys} ---`),i.push(...M.map((e,t)=>`#${t+1} ${e.key} ${C(e.bytes)}`)));let u=[];try{let e=(await y({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}: ${C(t.overhead)}`,`${o.datasetMemory}: ${C(t.dataset)}`),i.push(`${o.luaMemory}: ${C(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, ${C(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, ${C(e.totalBytes)}`))),i.push(``,`--- ${o.expirationOverview} ---`),i.push(`${o.withTTL}: ${n.withTTL}`,`${o.persistent}: ${n.persistent}`,`${o.avgTTL}: ${n.avgTTL}s`),u.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 d=[],{useMonitoringDataStore:p}=await f(async()=>{let{useMonitoringDataStore:e}=await import(`./monitoring-data.store-BmHf63-V.js`);return{useMonitoringDataStore:e}},__vite__mapDeps([2,3,1,4,5,6])),m=p.getState();m.profilerEntries.length>0&&(d.push(``,``,`============================`,` PROFILER`,`============================`,``),d.push(...m.profilerEntries.map(e=>s(`${e.fullTimestamp} [${e.database} ${e.source}] ${e.command}`)))),m.pubsubEntries.length>0&&(d.push(``,``,`============================`,` PUBSUB`,`============================`,``),d.push(...m.pubsubEntries.map(e=>s(`${e.fullTimestamp} ${e.channel} ${e.message}`))));let ee=[...i,...d].join(`
`),te=new TextEncoder().encode(ee),h=new Uint8Array([239,187,191]),ne=new Uint8Array(h.length+te.length);ne.set(h),ne.set(te,h.length),n.file(`monitoring.txt`,ne);let g=[];g.push(...pt());for(let e of u){if(e.items.length===0)continue;let t=gt(e.items);t&&g.push({label:e.name,canvas:t})}if(g.length>0){let e=await _t(g);e&&n.file(`charts.png`,e)}try{let e=await vt(i,g,d);e&&n.file(`monitoring.pdf`,e)}catch{}let _=await n.generateAsync({type:`blob`}),re=URL.createObjectURL(_),ie=document.createElement(`a`);ie.href=re,ie.download=`${k}-monitoring.zip`,ie.click(),URL.revokeObjectURL(re)}catch(e){E(e)}},[A,j,M,k,O,E]);function gt(e){if(e.length===0)return null;let t=U.current,n=[t.primary,t.accent,t.warn,O?`#ffb74d`:`#ff9800`,O?`#81c784`:`#4caf50`,O?`#4dd0e1`:`#00bcd4`,O?`#a1887f`:`#795548`,O?`#90a4ae`:`#607d8b`],r=8+e.length*28+8,i=document.createElement(`canvas`);i.width=800*2,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+24/2),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(C(e.value),720,i+24/2)}),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=U.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 f(async()=>{let{jsPDF:e}=await import(`./jspdf.es.min-NEuC_w8L.js`);return{jsPDF:e}},__vite__mapDeps([7,1,5,8])),i=ft(),a=O?`#e0e0e0`:`#212121`,o=O?`#90caf9`:`#1565c0`,s=new r({orientation:`portrait`,unit:`mm`,format:`a4`}),c=s.internal.pageSize.getWidth(),l=s.internal.pageSize.getHeight(),u=c-24,d=12,p=()=>{s.setFillColor(i),s.rect(0,0,c,l,`F`)};p();let m=e=>{d+e>l-12&&(s.addPage(),p(),d=12)};for(let t of e)if(!t.startsWith(`====`)){if([`PULSE`,`PROFILER`,`PUBSUB`,`ANALYSIS`].includes(t.trim())){m(14),d+=4,s.setFontSize(14),s.setTextColor(o),s.text(t.trim(),12,d),d+=8;continue}if(t.startsWith(`---`)&&t.endsWith(`---`)){m(8),d+=2,s.setFontSize(10),s.setTextColor(o),s.text(t.replace(/^-+\s*/,``).replace(/\s*-+$/,``),12,d),d+=5;continue}if(t===``){d+=2;continue}m(4),s.setTextColor(a),s.setFontSize(8);for(let e of s.splitTextToSize(t,u))m(4),s.text(e,12,d),d+=3.5}for(let e of t){s.addPage(),p(),d=12,s.setFontSize(12),s.setTextColor(o),s.text(e.label,12,d),d+=8;let t=e.canvas.toDataURL(`image/png`),n=e.canvas.height/e.canvas.width,r=l-d-12,i=u,a=i*n;if(a>r){let e=r,i=e/n;s.addImage(t,`PNG`,12,d,i,e),d+=e}else s.addImage(t,`PNG`,12,d,i,a),d+=a}n.length>0&&t.length>0&&(s.addPage(),p(),d=12);for(let e of n)if(!e.startsWith(`====`)){if([`PROFILER`,`PUBSUB`].includes(e.trim())){m(14),d+=4,s.setFontSize(14),s.setTextColor(o),s.text(e.trim(),12,d),d+=8;continue}if(e===``){d+=2;continue}m(4),s.setTextColor(a),s.setFontSize(8);for(let t of s.splitTextToSize(e,u))m(4),s.text(t,12,d),d+=3.5}return s.output(`blob`)}let q=T?(()=>{let e=T.server||{},t=T.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=T?.persistence?(()=>{let e=T.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`?C(parseInt(e.aof_current_size,10)||0):``}})():null,Y=T?.replication?(()=>{let e=T.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=T?.keyspace?Object.keys(T.keyspace).filter(e=>e.startsWith(`db`)).sort((e,t)=>parseInt(e.slice(2),10)-parseInt(t.slice(2),10)).map(e=>{let t=T.keyspace[e];return{db:e,keys:typeof t==`object`&&t.keys||`0`,expires:typeof t==`object`&&t.expires||`0`}}):[],Z=(ue||[]).map(e=>({name:e.name||`unknown`,ver:String(e.ver??e.version??``)})),yt=(0,S.useCallback)(()=>{if(!q)return;let e=q,t=W.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}`),w(n.join(`
`),`${k}-server-info.txt`)},[k,q]),bt=(0,S.useCallback)(()=>{if(!J)return;let e=J,t=W.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}`),w(n.join(`
`),`${k}-persistence.txt`)},[k,J]),xt=(0,S.useCallback)(()=>{if(!Y)return;let e=Y,t=W.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}`),w(n.join(`
`),`${k}-replication.txt`)},[k,Y]),St=(0,S.useCallback)(()=>{if(X.length===0)return;let e=W.current?.page?.monitor||{};w(X.map(t=>`${t.db}: ${e.keys}: ${t.keys}, ${e.expires}: ${t.expires}`).join(`
`),`${k}-keyspace.txt`)},[k,X]),Ct=(0,S.useCallback)(()=>{let e=W.current?.page?.monitor||{};if(Z.length===0){w(e.noModules,`${k}-modules.txt`);return}w(Z.map(e=>`${e.name} v${e.ver}`).join(`
`),`${k}-modules.txt`)},[k,Z]),Q=({label:e,value:t})=>(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(d,{sx:{px:2,py:1},children:(0,x.jsxs)(r,{sx:{display:`flex`,width:`100%`},children:[(0,x.jsx)(r,{sx:{flex:1},children:e}),(0,x.jsx)(r,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:t})]})}),(0,x.jsx)(c,{})]});if(!A)return(0,x.jsxs)(r,{sx:{display:`flex`,alignItems:`center`,justifyContent:`center`,gap:1,p:4,opacity:.5},children:[(0,x.jsx)(ne,{}),` `,n?.label?.loading]});let $=n?.page?.monitor||{};return(0,x.jsxs)(r,{children:[(0,x.jsx)(b,{title:$.title,accordionKey:`monitor-overview`,actions:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(l,{icon:he?(0,x.jsx)(g,{sx:{fontSize:18}}):(0,x.jsx)(oe,{sx:{fontSize:18}}),label:he?n?.intention?.resume:n?.intention?.pause,color:`inherit`,onClick:e=>{e.stopPropagation(),ge(e=>!e)}}),(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),ot()}}),(0,x.jsx)(l,{icon:(0,x.jsx)(ae,{sx:{fontSize:18}}),label:n?.page?.analysis?.exportAll,color:`inherit`,onClick:e=>{e.stopPropagation(),ht()}})]}),children:(0,x.jsxs)(u,{disablePadding:!0,children:[(0,x.jsx)(Q,{label:`Redis ${A.server.version} \u00B7 ${A.server.mode}`,value:le(A.server.uptime)}),(0,x.jsx)(Q,{label:$.memory,value:A.memory.usedHuman}),(0,x.jsx)(Q,{label:$.rss,value:A.memory.rssHuman}),(0,x.jsx)(Q,{label:$.peak,value:A.memory.peakHuman}),(0,x.jsx)(Q,{label:$.fragmentation,value:`${A.memory.fragRatio}x`}),(0,x.jsx)(Q,{label:$.opsPerSec,value:A.stats.opsPerSec}),(0,x.jsx)(Q,{label:$.totalCommands,value:A.stats.totalCommands}),(0,x.jsx)(Q,{label:$.clients,value:A.clients.connected}),(0,x.jsx)(Q,{label:$.blocked,value:A.clients.blocked}),(0,x.jsx)(Q,{label:$.hitsMisses,value:`${A.stats.hitRate}%`}),(0,x.jsx)(Q,{label:$.hitsAndMisses,value:`${A.stats.hits} / ${A.stats.misses}`}),(0,x.jsx)(Q,{label:$.networkIo,value:`${A.stats.inputKbps.toFixed(1)} / ${A.stats.outputKbps.toFixed(1)} KB/s`}),(0,x.jsx)(Q,{label:$.expired,value:A.stats.expiredKeys}),(0,x.jsx)(Q,{label:$.evicted,value:A.stats.evictedKeys})]})}),q&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:$.serverInfo,accordionKey:`monitor-server-info`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),yt()}}),children:(0,x.jsxs)(u,{disablePadding:!0,children:[q.os&&(0,x.jsx)(Q,{label:$.os,value:q.os}),q.port&&(0,x.jsx)(Q,{label:$.port,value:q.port}),q.pid&&(0,x.jsx)(Q,{label:$.pid,value:q.pid}),q.configFile&&(0,x.jsx)(Q,{label:$.configFile,value:q.configFile}),(0,x.jsx)(Q,{label:`${$.cpuSys} CPU`,value:q.cpuSys}),(0,x.jsx)(Q,{label:`${$.cpuUser} CPU`,value:q.cpuUser})]})})]}),J&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:$.persistence,accordionKey:`monitor-persistence`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),bt()}}),children:(0,x.jsxs)(u,{disablePadding:!0,children:[(0,x.jsx)(Q,{label:$.rdbLastSave,value:J.rdbLastSave}),(0,x.jsx)(Q,{label:$.rdbStatus,value:J.rdbStatus}),(0,x.jsx)(Q,{label:$.rdbChanges,value:J.rdbChanges}),(0,x.jsx)(Q,{label:$.aofEnabled,value:J.aofEnabled}),J.aofSize&&(0,x.jsx)(Q,{label:$.aofSize,value:J.aofSize})]})})]}),Y&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:$.replication,accordionKey:`monitor-replication`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),xt()}}),children:(0,x.jsxs)(u,{disablePadding:!0,children:[(0,x.jsx)(Q,{label:$.role,value:Y.role}),Y.replicas!==void 0&&(0,x.jsx)(Q,{label:$.replicas,value:Y.replicas}),Y.masterHost&&(0,x.jsx)(Q,{label:$.masterHost,value:`${Y.masterHost}:${Y.masterPort}`}),Y.linkStatus&&(0,x.jsx)(Q,{label:$.linkStatus,value:Y.linkStatus})]})})]}),X.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:$.keyspace,accordionKey:`monitor-keyspace`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),St()}}),children:(0,x.jsx)(u,{disablePadding:!0,children:X.map((e,t)=>(0,x.jsxs)(r,{children:[(0,x.jsx)(d,{sx:{px:2,py:1},children:(0,x.jsxs)(r,{sx:{display:`flex`,width:`100%`},children:[(0,x.jsx)(r,{sx:{flex:1},children:e.db}),(0,x.jsxs)(r,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[$.keys,`: `,e.keys,` `,`·`,` `,$.expires,`: `,e.expires]})]})}),t<X.length-1&&(0,x.jsx)(c,{})]},e.db))})})]}),(0,x.jsx)(`br`,{}),(0,x.jsxs)(b,{title:$.modules,accordionKey:`monitor-modules`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),Ct()}}),children:[Z.length===0&&(0,x.jsx)(r,{sx:{p:2,opacity:.5},children:$.noModules}),Z.length>0&&(0,x.jsx)(u,{disablePadding:!0,children:Z.map((e,t)=>(0,x.jsxs)(r,{children:[(0,x.jsx)(d,{sx:{px:2,py:1},children:(0,x.jsxs)(r,{sx:{display:`flex`,width:`100%`},children:[(0,x.jsx)(r,{sx:{flex:1},children:e.name}),(0,x.jsxs)(r,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[`v`,e.ver]})]})}),t<Z.length-1&&(0,x.jsx)(c,{})]},e.name))})]}),(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:`${$.memory} (MB)`,accordionKey:`monitor-chart-memory`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),st(Ae,`memory`)}}),children:(0,x.jsx)(r,{ref:Ae,sx:{minHeight:180,width:`100%`,overflow:`hidden`}})}),(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:$.opsPerSec,accordionKey:`monitor-chart-ops`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),st(je,`ops`)}}),children:(0,x.jsx)(r,{ref:je,sx:{minHeight:180,width:`100%`,overflow:`hidden`}})}),(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:$.clients,accordionKey:`monitor-chart-clients`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),st(Me,`clients`)}}),children:(0,x.jsx)(r,{ref:Me,sx:{minHeight:180,width:`100%`,overflow:`hidden`}})}),(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:`${$.networkIo} (KB/s)`,accordionKey:`monitor-chart-network`,actions:(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),st(Ne,`network`)}}),children:(0,x.jsx)(r,{ref:Ne,sx:{minHeight:180,width:`100%`,overflow:`hidden`}})}),(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:$.slowLog,accordionKey:`monitor-slowlog`,actions:(0,x.jsxs)(x.Fragment,{children:[!pe&&(0,x.jsx)(l,{icon:(0,x.jsx)(te,{sx:{fontSize:18}}),label:`Reset`,color:`inherit`,onClick:e=>{e.stopPropagation(),ct()}}),(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),lt()}})]}),children:A.slowlog.length===0?(0,x.jsx)(r,{sx:{p:2,opacity:.6},children:$.noSlowQueries}):(0,x.jsx)(u,{disablePadding:!0,children:A.slowlog.map(e=>(0,x.jsxs)(r,{children:[(0,x.jsx)(d,{sx:{px:2,py:1},children:(0,x.jsxs)(r,{sx:{display:`flex`,alignItems:`center`,gap:1,width:`100%`},children:[(0,x.jsxs)(r,{component:`kbd`,sx:{px:`6px`,py:`2px`,borderRadius:`4px`,fontSize:11,bgcolor:O?`rgba(255,255,255,0.1)`:`rgba(0,0,0,0.08)`,fontFamily:`'Roboto Mono', monospace`,whiteSpace:`nowrap`},children:[e.duration,`µ`,`s`]}),(0,x.jsx)(r,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13,wordBreak:`break-all`},children:e.command})]})}),(0,x.jsx)(c,{})]},e.id))})}),(0,x.jsx)(`br`,{}),(0,x.jsxs)(b,{title:$.clientList,accordionKey:`monitor-clients-list`,actions:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(l,{icon:P?(0,x.jsx)(p,{sx:{fontSize:18}}):(0,x.jsx)(m,{sx:{fontSize:18}}),label:n?.label?.autoRefresh,color:`inherit`,onClick:e=>{e.stopPropagation(),it()}}),!P&&(0,x.jsx)(l,{icon:(0,x.jsx)(_,{sx:{fontSize:18}}),label:n?.intention?.refresh,color:`inherit`,onClick:e=>{e.stopPropagation(),G()}}),(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),ut()}})]}),children:[j.length===0&&(0,x.jsx)(r,{sx:{p:2,opacity:.5},children:we?$.noClients:n?.label?.loading}),j.length>0&&(0,x.jsx)(u,{disablePadding:!0,children:j.map(e=>(0,x.jsxs)(r,{children:[(0,x.jsx)(d,{sx:{px:2,py:1},children:(0,x.jsxs)(r,{sx:{display:`flex`,alignItems:`center`,gap:1,width:`100%`},children:[(0,x.jsx)(r,{component:`span`,sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13,fontWeight:700,minWidth:150},children:e.addr}),e.name&&(0,x.jsxs)(r,{component:`span`,sx:{opacity:.5,fontSize:12},children:[`(`,e.name,`)`]}),(0,x.jsxs)(r,{component:`span`,sx:{flex:1,textAlign:`right`,fontFamily:`'Roboto Mono', monospace`,fontSize:12,opacity:.6},children:[`db`,e.db,` `,`·`,` `,e.cmd,` `,`·`,` `,e.idle,`s`]}),!pe&&(0,x.jsx)(s,{title:$.killClient,children:(0,x.jsx)(ee,{sx:{fontSize:18,width:18,height:18,cursor:`pointer`,color:`error.main`,"&:hover":{opacity:1}},onClick:()=>rt(e.id)})})]})}),(0,x.jsx)(c,{})]},e.id))})]}),(0,x.jsx)(`br`,{}),(0,x.jsxs)(b,{title:$.topKeys,accordionKey:`monitor-top-keys`,actions:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(l,{icon:F?(0,x.jsx)(p,{sx:{fontSize:18}}):(0,x.jsx)(m,{sx:{fontSize:18}}),label:n?.label?.autoRefresh,color:`inherit`,onClick:e=>{e.stopPropagation(),at()}}),!F&&(0,x.jsx)(l,{icon:(0,x.jsx)(_,{sx:{fontSize:18}}),label:n?.intention?.refresh,color:`inherit`,onClick:e=>{e.stopPropagation(),We()}}),(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),dt()}})]}),children:[M.length===0&&(0,x.jsx)(r,{sx:{p:2,opacity:.5},children:Ee?$.noKeys:n?.label?.loading}),M.length>0&&(0,x.jsx)(u,{disablePadding:!0,children:M.map((e,t)=>(0,x.jsxs)(r,{children:[(0,x.jsx)(d,{sx:{px:2,py:1},children:(0,x.jsxs)(r,{sx:{display:`flex`,width:`100%`},children:[(0,x.jsxs)(r,{sx:{flex:1},children:[(0,x.jsxs)(r,{component:`span`,sx:{opacity:.4,mr:1},children:[`#`,t+1]}),(0,x.jsx)(r,{component:`span`,sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:e.key})]}),(0,x.jsx)(r,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:C(e.bytes)})]})}),(0,x.jsx)(c,{})]},e.key))})]}),Ke&&qe.isAtLeast(8,2)&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`br`,{}),(0,x.jsxs)(b,{title:$.slotStats,accordionKey:`monitor-slot-stats`,actions:(0,x.jsx)(x.Fragment,{children:(0,x.jsx)(l,{icon:(0,x.jsx)(_,{fontSize:`small`}),label:n?.intention?.refresh,onClick:e=>{e.stopPropagation(),Ge()}})}),children:[(0,x.jsx)(r,{sx:{px:2,py:1,display:`flex`,gap:1,alignItems:`center`},children:(0,x.jsxs)(`select`,{value:N,onChange:e=>{xe(e.target.value),Ge(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,x.jsx)(`option`,{value:`KEY-COUNT`,children:`Key Count`}),(0,x.jsx)(`option`,{value:`CPU-USEC`,children:`CPU (μs)`}),(0,x.jsx)(`option`,{value:`MEMORY-BYTES`,children:`Memory (bytes)`})]})}),ye.length===0&&(0,x.jsx)(r,{sx:{p:2,opacity:.5},children:Se?`No slot data`:n?.label?.loading}),ye.length>0&&(0,x.jsx)(u,{disablePadding:!0,children:ye.map((e,t)=>(0,x.jsxs)(r,{children:[(0,x.jsx)(d,{sx:{px:2,py:1},children:(0,x.jsxs)(r,{sx:{display:`flex`,width:`100%`},children:[(0,x.jsxs)(r,{sx:{flex:1},children:[(0,x.jsxs)(r,{component:`span`,sx:{opacity:.4,mr:1},children:[`#`,t+1]}),(0,x.jsxs)(r,{component:`span`,sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[`Slot `,e.slot]})]}),(0,x.jsxs)(r,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[N===`KEY-COUNT`&&`${e[`key-count`]} keys`,N===`CPU-USEC`&&`${e[`cpu-usec`]} μs`,N===`MEMORY-BYTES`&&C(e[`memory-bytes`])]})]})}),(0,x.jsx)(c,{})]},e.slot))})]})]}),Ke&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`br`,{}),(0,x.jsx)(b,{title:$.clusterSlotMap,accordionKey:`monitor-cluster-slots`,actions:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(l,{icon:Ye?(0,x.jsx)(p,{sx:{fontSize:18}}):(0,x.jsx)(m,{sx:{fontSize:18}}),label:n?.label?.autoRefresh,color:`inherit`,onClick:e=>{e.stopPropagation(),$e()}}),!Ye&&(0,x.jsx)(l,{icon:(0,x.jsx)(_,{sx:{fontSize:18}}),label:n?.intention?.refresh,color:`inherit`,onClick:e=>{e.stopPropagation(),Qe()}}),(0,x.jsx)(l,{icon:(0,x.jsx)(h,{sx:{fontSize:18}}),label:n?.intention?.export,color:`inherit`,onClick:e=>{e.stopPropagation(),tt()}})]}),children:K?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(u,{disablePadding:!0,children:K.map(e=>(0,x.jsxs)(r,{children:[(0,x.jsx)(d,{sx:{px:2,py:1},children:(0,x.jsxs)(r,{sx:{display:`flex`,width:`100%`,justifyContent:`space-between`,flexWrap:`wrap`},children:[(0,x.jsxs)(r,{children:[(0,x.jsxs)(r,{component:`span`,sx:{fontWeight:500},children:[e.master.host,`:`,e.master.port]}),(0,x.jsx)(r,{component:`span`,sx:{ml:1,opacity:.5,fontSize:12},children:e.slotRanges.map(([e,t])=>`${e}-${t}`).join(`, `)})]}),(0,x.jsxs)(r,{sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:[et(e),` slots`,e.replicas.length>0&&(0,x.jsxs)(r,{component:`span`,sx:{opacity:.5,ml:1},children:[`(`,e.replicas.map(e=>`${e.host}:${e.port}`).join(`, `),`)`]})]})]})}),(0,x.jsx)(c,{})]},e.master.id))}),(0,x.jsxs)(r,{sx:{p:1,px:2,opacity:.6,fontSize:12},children:[`16384 slots across `,K.length,` masters`]})]}):(0,x.jsx)(r,{sx:{p:2,opacity:.6},children:$.noClusterData})})]})]})}export{T as default};