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
1 lines • 7.72 kB
JavaScript
import{o as e}from"./chunk-zsgVPwQN.js";import{A as t,C as n,Ct as r,D as i,E as a,G as o,J as s,K as c,M as l,R as u,T as d,Wt as ee,X as te,Yt as f,ht as p,it as m,k as h,nt as ne,o as re,t as ie,w as g,y as _}from"./i18n.store-Bbsc3Bab.js";import{t as v,x as y}from"./_plugin-vue_export-helper-D1H5elb2.js";import{t as b}from"./VTooltip-Cv2PsKY_.js";import{n as ae}from"./theme-CuJUeSHe.js";import{n as oe,t as se}from"./redis-state.store-Bg6EmgAE.js";import"./redis-state-DodmMOrr.js";import"./main-command-DtN7VEUA.js";import{t as ce}from"./common.store-Cvd7gD49.js";import"./common-DKIejnu1.js";import{i as x}from"./socket.service-uJHysVIS.js";import{t as S}from"./humanize-duration-RJgmuULu.js";import{t as le}from"./TtlDialog-CYJm-C1J.js";import{a as ue,d as C,n as de,o as fe,p as w,r as pe,s as me,u as he}from"./key-type-base-CMdmuQhl.js";import{t as ge}from"./JsonViewDialog-BzjsQO41.js";import{t as _e}from"./KeyNewOrSetDialog-CONL1dyc.js";import{t as ve}from"./HexMonitor-DXtHaVJJ.js";import{t as ye}from"./KeyPagerInline-ClmcJidI.js";import{t as be}from"./redis-version-Di-SKPyT.js";var xe=e(S()),Se={class:`p3xr-hash-header`},Ce={style:{flex:`20%`}},we={style:{flex:`60%`}},Te={style:{flex:`20%`,"text-align":`right`,display:`flex`,"justify-content":`flex-end`,"align-items":`center`}},Ee=[`onClick`],T=[`onClick`],E={key:0,style:{opacity:`0.5`}},D={class:`p3xr-hash-actions`},O=v(l({__name:`KeyHash`,props:{response:{},value:{},valueBuffer:{},keyName:{},valueFormat:{}},emits:[`refresh`],setup(e,{emit:l}){let v=e,S=l,O=ie(),k=se(),De=oe(),A=ce(),{themeKey:Oe}=re(ae()),j=n(()=>O.strings),M=n(()=>k.connection?.readonly===!0);n(()=>[`dark`,`darkNeu`,`darkoBluo`,`matrix`].includes(Oe.value));let N=n(()=>be(k.info?.server?.redis_version).isAtLeast(8,0)),P=p(pe(0)),F=p([]),I=p(!1),L=p(null),R=p(!1),z=p(``),B=p(!1),V=p(``),H=p(-1),U=p({}),W=0,G=null,K=p(0);function q(){return!v.value||typeof v.value!=`object`?[]:Object.keys(v.value)}function J(e){P.value=e;let t=q().slice(e.startIndex,e.endIndex).map(e=>({key:e,value:v.value[e]}));F.value=t,Y(t)}ne(()=>v.value,()=>{let e=q();J(he(P.value,e.length))},{immediate:!0});async function Y(e){if(!v.value||!N.value)return;let t=(e||F.value).map(e=>e.key);if(t.length!==0)try{U.value=(await x({action:`hash-field/ttls`,payload:{key:v.keyName,fields:t}})).fieldTtls||{},W=Date.now(),ke()}catch{U.value={}}}function ke(){G&&clearInterval(G),Object.values(U.value).some(e=>e>0)&&(G=setInterval(()=>{let e=Math.floor((Date.now()-W)/1e3);if(Object.values(U.value).some(t=>t>0&&t-e<=0)){clearInterval(G),G=null,S(`refresh`);return}K.value++},1e3))}c(()=>{G&&clearInterval(G)}),o(()=>{if(document.getElementById(`p3xr-hash-ttl-pulse-css`))return;let e=document.createElement(`style`);e.id=`p3xr-hash-ttl-pulse-css`,e.textContent=`@keyframes p3xr-hash-ttl-pulse { 0%, 100% { opacity: 0.3; } 50% { opacity: 1; } }`,document.head.appendChild(e)});function X(e){K.value;let t=U.value[e];if(!t||t<=0)return-1;let n=t-Math.floor((Date.now()-W)/1e3);return n>0?n:-1}function Ae(e){let t=X(e);return t<=0?``:t<300?`#f44336`:t<3600?`#ff9800`:`#4caf50`}function je(e){return X(e)>0&&X(e)<30}function Z(e){return X(e)>0}function Q(e){let t=X(e);if(t<=0)return``;let n=De.getHumanizeDurationOptions();return(0,xe.default)(t*1e3,{...n,largest:2,round:!0,delimiter:` `})}function Me(){L.value={type:`append`,model:{type:`hash`,key:v.keyName}},I.value=!0}function $(e,t){L.value={type:`edit`,model:{type:`hash`,key:v.keyName,hashKey:e,value:t}},I.value=!0}function Ne(e){I.value=!1,L.value=null,e&&S(`refresh`)}async function Pe(e){try{await A.confirm({message:C(j.value?.confirm?.deleteHashKey)}),await x({action:`key/hash-delete-field`,payload:{key:v.keyName,hashKey:e}}),A.toast(C(j.value?.status?.deletedHashKey)),S(`refresh`)}catch(e){e!==void 0&&A.generalHandleError(e)}}async function Fe(e){try{let t=await x({action:`hash-field/ttl-get`,payload:{key:v.keyName,field:e}});V.value=e,H.value=t.ttl??-1,B.value=!0}catch(e){A.generalHandleError(e)}}async function Ie(e){if(B.value=!1,e)try{await x({action:`hash-field/ttl`,payload:{key:v.keyName,field:V.value,ttl:e.model.ttl}}),A.toast(`${V.value}: TTL ${e.model.ttl===-1?`removed`:e.model.ttl+`s`}`),Y()}catch(e){A.generalHandleError(e)}}function Le(e){z.value=String(e??``),R.value=!0}function Re(e){de(String(e??``))}function ze(e){ue(v.valueBuffer?.[e],v.keyName,`${v.keyName}-${e}`)}return(n,o)=>(s(),i(`div`,null,[t(ye,{paging:P.value,onPageChanged:J},null,8,[`paging`]),g(`div`,Se,[g(`span`,Ce,f(r(C)(j.value?.page?.key?.hash?.table?.hashkey)),1),g(`span`,we,f(r(C)(j.value?.page?.key?.hash?.table?.value)),1),g(`span`,Te,[M.value?a(``,!0):(s(),d(b,{key:0,text:r(C)(j.value?.intention?.add),location:`top`},{activator:m(({props:e})=>[t(y,u(e,{style:{cursor:`pointer`,color:`inherit`},onClick:Me}),{default:m(()=>[...o[1]||=[h(`mdi-plus`,-1)]]),_:1},16)]),_:1},8,[`text`]))])]),(s(!0),i(_,null,te(F.value,(n,c)=>(s(),i(`div`,{key:n.key,class:ee([`p3xr-hash-row`,{"p3xr-hash-odd":c%2==0}])},[g(`span`,{class:`p3xr-hash-field`,onClick:e=>!M.value&&$(n.key,n.value)},f(n.key),9,Ee),g(`span`,{class:`p3xr-hash-value`,onClick:e=>!M.value&&$(n.key,n.value)},[e.valueFormat===`hex`?(s(),d(ve,{key:0,value:r(w)(n.value)},null,8,[`value`])):(s(),i(_,{key:1},[h(f(r(w)(r(fe)(n.value,e.valueFormat))),1),r(me)(n.value)?(s(),i(`span`,E,`...`)):a(``,!0)],64))],8,T),g(`span`,D,[!M.value&&N.value?(s(),d(b,{key:0,text:Z(n.key)?`TTL: ${Q(n.key)}`:r(C)(j.value?.intention?.ttl),location:`top`},{activator:m(({props:e})=>[t(y,u({ref_for:!0},e,{size:`24`,style:{cursor:`pointer`,margin:`0 2px`,color:Ae(n.key)||void 0,opacity:Z(n.key)?.7:.3,animation:je(n.key)?`p3xr-hash-ttl-pulse 1s infinite`:`none`},onClick:e=>Fe(n.key)}),{default:m(()=>[...o[2]||=[h(`mdi-clock-outline`,-1)]]),_:1},16,[`style`,`onClick`])]),_:2},1032,[`text`])):a(``,!0),M.value?a(``,!0):(s(),d(b,{key:1,text:r(C)(j.value?.intention?.delete),location:`top`},{activator:m(({props:e})=>[t(y,u({ref_for:!0},e,{size:`24`,class:`p3xr-hash-icon`,style:{color:`rgb(var(--v-theme-error))`},onClick:e=>Pe(n.key)}),{default:m(()=>[...o[3]||=[h(`mdi-delete`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`])),t(b,{text:r(C)(j.value?.intention?.jsonViewShow),location:`top`},{activator:m(({props:e})=>[t(y,u({ref_for:!0},e,{size:`24`,class:`p3xr-hash-icon`,style:{color:`rgb(var(--v-theme-secondary))`},onClick:e=>Le(n.value)}),{default:m(()=>[...o[4]||=[h(`mdi-file-tree`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`]),t(b,{text:r(C)(j.value?.intention?.copy),location:`top`},{activator:m(({props:e})=>[t(y,u({ref_for:!0},e,{size:`24`,class:`p3xr-hash-icon`,style:{color:`rgb(var(--v-theme-secondary))`},onClick:e=>Re(n.value)}),{default:m(()=>[...o[5]||=[h(`mdi-content-copy`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`]),t(b,{text:r(C)(j.value?.intention?.downloadBuffer),location:`top`},{activator:m(({props:e})=>[t(y,u({ref_for:!0},e,{size:`24`,class:`p3xr-hash-icon`,style:{color:`rgb(var(--v-theme-secondary))`},onClick:e=>ze(n.key)}),{default:m(()=>[...o[6]||=[h(`mdi-download`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`]),M.value?a(``,!0):(s(),d(b,{key:2,text:r(C)(j.value?.intention?.edit),location:`top`},{activator:m(({props:e})=>[t(y,u({ref_for:!0},e,{size:`24`,class:`p3xr-hash-icon`,style:{color:`rgb(var(--v-theme-primary))`},onClick:e=>$(n.key,n.value)}),{default:m(()=>[...o[7]||=[h(`mdi-pencil`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`]))])],2))),128)),t(_e,{open:I.value,data:L.value,onClose:Ne},null,8,[`open`,`data`]),t(ge,{open:R.value,value:z.value,onClose:o[0]||=e=>R.value=!1},null,8,[`open`,`value`]),t(le,{open:B.value,ttl:H.value,onClose:Ie},null,8,[`open`,`ttl`])]))}}),[[`__scopeId`,`data-v-1c1f5657`]]);export{O as default};