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