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
2 lines • 5.39 kB
JavaScript
import {c as cn,k as ke,d as dn}from'./chunk-zfW9ETPx.js';import {b3 as sr,X as Xe,K as op,f as fQ,P,L as uc,Q,_ as _e,B as Ba,n as no,H as HT,v as vf,c as In,r as ro,U as UT,J as JT,p as pv,I as IS,R as Rv}from'./chunk-BwlFOdbx.js';import'./main-HNF44SV3.js';var _=(e,n)=>n.key;function M(e,n){if(e&1&&(Ba(0,"div",4)(1,"strong"),IS(2),vf(),Ba(3,"span"),IS(4),vf()()),e&2){let t=n.$implicit,i=JT(3);In(2),Rv(i.generateKey(t.key)),In(2),Rv(t.value);}}function H(e,n){if(e&1&&(Ba(0,"mat-tab",1)(1,"div",3),HT(2,M,5,2,"div",4,_),vf()()),e&2){let t=n.$implicit,i=JT(2);pv("label",t.key),In(2),UT(i.getKeyspaceItems(t.key));}}function R(e,n){if(e&1&&(Ba(0,"mat-tab",1)(1,"mat-tab-group",2),HT(2,H,4,1,"mat-tab",1,_),vf()()),e&2){let t=JT();pv("label",t.i18n.strings()?.title?.db??"DB"),In(2),UT(t.keyspaceDatabaseEntries);}}function w(e,n){if(e&1&&(Ba(0,"div",4)(1,"strong"),IS(2),vf(),Ba(3,"span"),IS(4),vf()()),e&2){let t=n.$implicit,i=JT(2);In(2),Rv(i.generateKey(t.key)),In(2),Rv(i.formatValue(t.value));}}function U(e,n){if(e&1&&(Ba(0,"mat-tab",1)(1,"div",3),HT(2,w,5,2,"div",4,_),vf()()),e&2){let t=n.$implicit,i=JT();pv("label",i.generateKey(t.key)),In(2),UT(t.items);}}var W=(()=>{class e{breakpointObserver;i18n;cmd;cdr;state;maxHeight="auto";hasDatabases=false;isCluster=false;keyspaceDatabaseEntries=[];keyspaceItems={};infoSections=[];unsubFns=[];static EXCLUDE=["in","run","per"];static INCLUDE=["sha1"];static REPLACE={perc:"percent",sec:"seconds"};constructor(t,i,a,o,y){this.breakpointObserver=t,this.i18n=i,this.cmd=a,this.cdr=o,this.state=y,sr(()=>{this.i18n.currentLang(),this.cdr.markForCheck();});}ngOnInit(){let t=this.state.info();this.state.redisChanged()&&(this.state.redisChanged.set(false),this.broadcastRefresh());let i=this.state.connection();if(this.isCluster=i?.cluster===true,t){let o=t.keyspaceDatabases??{};this.hasDatabases=Object.keys(o).length>0,this.keyspaceDatabaseEntries=Object.keys(o).map(s=>({key:s,value:o[s]}));for(let s of this.keyspaceDatabaseEntries){let c=t?.keyspace?.["db"+s.key];this.keyspaceItems[s.key]=c?Object.keys(c).map(p=>({key:p,value:c[p]})):[];}this.infoSections=Object.keys(t).filter(s=>s!=="keyspace"&&s!=="keyspaceDatabases").map(s=>({key:s,items:Object.keys(t[s]).map(c=>({key:c,value:t[s][c]}))}));let y=Array.isArray(this.state.modules())?this.state.modules():[];if(y.length>0){let s=y.map(p=>({key:p.name,value:`v${p.ver}`})),c=this.infoSections.findIndex(p=>p.key.toLowerCase()==="modules");c>=0?this.infoSections[c].items=s:this.infoSections.push({key:"modules",items:s});}this.infoSections=this.infoSections.filter(s=>s.items.length>0);}let a=this.breakpointObserver.observe("(max-width: 599px)").subscribe(o=>{this.recalcHeight(o.matches),this.cdr.markForCheck();});this.unsubFns.push(()=>a.unsubscribe());}ngOnDestroy(){this.unsubFns.forEach(t=>t());}getKeyspaceItems(t){return this.keyspaceItems[t]??[]}formatValue(t){return t==null?"":typeof t=="object"?JSON.stringify(t):String(t)}generateKey(t){let i=this.i18n.strings();return i?.title?.hasOwnProperty(t)?i.title[t]:t.split("_").map((a,o)=>(e.REPLACE.hasOwnProperty(a)&&(a=e.REPLACE[a]),e.INCLUDE.includes(a)||a.length<4&&!e.EXCLUDE.includes(a)?a.toUpperCase():o===0?a[0].toUpperCase()+a.substring(1):a)).join(" ")}recalcHeight(t){if(t)this.maxHeight="auto";else {let i=document.getElementById("p3xr-database-content-container");this.maxHeight=i?i.offsetHeight-50:"auto";}}broadcastRefresh(){this.cmd.treeRefresh$.next();}static \u0275fac=function(i){return new(i||e)(Xe(op),Xe(fQ),Xe(P),Xe(uc),Xe(Q))};static \u0275cmp=_e({type:e,selectors:[["p3xr-database-statistics"]],decls:4,vars:1,consts:[["dynamicHeight",""],[3,"label"],["dynamicHeight","",1,"p3xr-statistics-db-tabs"],[1,"p3xr-statistics-list"],[1,"p3xr-statistics-item"]],template:function(i,a){i&1&&(Ba(0,"mat-tab-group",0),no(1,R,4,1,"mat-tab",1),HT(2,U,4,1,"mat-tab",1,_),vf()),i&2&&(In(),ro(a.hasDatabases&&!a.isCluster?1:-1),In(),UT(a.infoSections));},dependencies:[cn,ke,dn],styles:[`p3xr-ng-main-statistics>:first-child>.mat-mdc-tab-header,p3xr-database-statistics>:first-child>.mat-mdc-tab-header{position:sticky!important;top:0!important;z-index:2!important;background-color:var(--p3xr-content-bg, #303030)!important}p3xr-ng-main-statistics .mat-mdc-tab .mdc-tab__text-label,p3xr-database-statistics .mat-mdc-tab .mdc-tab__text-label{text-transform:none!important}.p3xr-statistics-list{padding:8px 16px}.p3xr-statistics-item{display:flex;align-items:baseline;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.06)}.p3xr-statistics-item span{text-align:right}body.p3xr-theme-dark .p3xr-statistics-item{border-bottom-color:#ffffff0f}.p3xr-statistics-db-tabs .mat-mdc-tab-header{background-color:var(--p3xr-btn-primary-bg)!important}.p3xr-statistics-db-tabs .mat-mdc-tab:not(.mdc-tab--active) .mdc-tab__text-label{color:#ffffffb3!important}.p3xr-statistics-db-tabs .mat-mdc-tab.mdc-tab--active .mdc-tab__text-label{color:#fff!important}.p3xr-statistics-db-tabs .mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:#fff!important}body.p3xr-mat-theme-matrix .p3xr-statistics-db-tabs .mat-mdc-tab .mdc-tab__text-label{color:#000000de!important}body.p3xr-mat-theme-matrix .p3xr-statistics-db-tabs .mat-mdc-tab-header .mdc-tab-indicator__content--underline{border-color:#000000de!important}
`],encapsulation:2})}return e})();export{W as StatisticsComponent};