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 • 33.1 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,Kt as l,M as u,Q as d,R as f,T as p,Wt as m,X as ee,Yt as h,_ as g,at as _,g as v,ht as y,it as b,k as x,m as S,nt as C,o as w,p as T,t as te,vt as E,w as D,y as O}from"./i18n.store-Bbsc3Bab.js";import{i as k,r as A}from"./vue-router-DGa7LmVO.js";import{lt as j,o as M,t as N,x as P}from"./_plugin-vue_export-helper-D1H5elb2.js";import{c as F,d as I,m as ne,t as L,u as R}from"./VList-v6BtQFeD.js";import{t as z}from"./VMenu-C1yL2dQE.js";import{t as B}from"./P3xrDialog-Dn_--W-S.js";import{n as V,t as H}from"./VRadioGroup-B5kZjnm9.js";import{t as U}from"./VTooltip-Cv2PsKY_.js";import{n as re}from"./theme-CuJUeSHe.js";import{n as ie,t as ae}from"./redis-state.store-Bg6EmgAE.js";import"./redis-state-DodmMOrr.js";import"./main-command-DtN7VEUA.js";import{t as oe}from"./common.store-Cvd7gD49.js";import"./common-DKIejnu1.js";import{t as se}from"./overlay.store-FZPs6Gvj.js";import"./overlay-DOSGwXRT.js";import{i as ce}from"./socket.service-uJHysVIS.js";import{i as le,n as W,r as ue,t as de}from"./main-command.store-DDvuCXE0.js";import{t as G}from"./P3xrButton-ChR905DO.js";import{t as K}from"./humanize-duration-RJgmuULu.js";import{t as q}from"./KeyNewOrSetDialog-CONL1dyc.js";import{t as fe}from"./TreeSettingsDialog-BO26hSrz.js";import{t as pe}from"./esm-fva3bRfm.js";var me={class:`p3xr-database-header-inner`},J=N(u({__name:`DatabaseHeader`,setup(e){let o=te(),c=ae(),u=ue(),{themeKey:d}=w(re()),{width:m}=j(),g=n(()=>o.strings),_=n(()=>m.value<600);n(()=>m.value>=720);let v=n(()=>c.connection?.readonly===!0),y=n(()=>c.connection?.cluster===!0),S=n(()=>!!c.connection),C=n(()=>c.info?.keyspaceDatabases||{}),T=e=>!!C.value[e],E={enterprise:`#9e9e9e`,light:`#b0bec5`,redis:`#ef9a9a`,dark:`#9e9e9e`,darkNeu:`#90a4ae`,darkoBluo:`#3f51b5`,matrix:`#76ff03`},k={enterprise:`rgba(0,0,0,0.87)`,light:`rgba(0,0,0,0.87)`,redis:`rgba(0,0,0,0.87)`,dark:`rgba(0,0,0,0.87)`,darkNeu:`rgba(0,0,0,0.87)`,darkoBluo:`#fff`,matrix:`rgba(0,0,0,0.87)`},A=n(()=>E[d.value]),N=n(()=>k[d.value]);return(e,n)=>S.value?(s(),i(`div`,{key:0,class:`p3xr-database-header`,style:l({backgroundColor:A.value,color:N.value})},[D(`div`,me,[_.value?a(``,!0):(s(),i(`span`,{key:0,class:`p3xr-database-header-title`,onClick:n[0]||=e=>r(u).statistics()},h(g.value?.intention?.main),1)),!y.value&&r(c).databaseIndexes.length>0?(s(),p(z,{key:1,location:`bottom start`},{activator:b(({props:e})=>[t(M,f(e,{variant:`text`,style:{color:`inherit`,"text-transform":`none`,"font-size":`14px`,"min-width":`auto`,padding:`0 8px`}}),{default:b(()=>[n[5]||=D(`span`,{style:{"font-weight":`bold`,"margin-right":`4px`}},`DB:`,-1),t(P,{size:`16`,style:{"margin-right":`2px`}},{default:b(()=>[x(h(T(r(c).currentDatabase??0)?`mdi-radiobox-marked`:`mdi-radiobox-blank`),1)]),_:1}),D(`span`,null,h(r(c).currentDatabase??0),1),t(P,{size:`18`,style:{"margin-left":`2px`}},{default:b(()=>[...n[4]||=[x(`mdi-menu-down`,-1)]]),_:1})]),_:1},16)]),default:b(()=>[t(L,{density:`compact`},{default:b(()=>[(s(!0),i(O,null,ee(r(c).databaseIndexes,e=>(s(),p(F,{key:e,active:(r(c).currentDatabase??0)===e,onClick:t=>r(u).selectDatabase(e)},{prepend:b(()=>[t(P,{size:`18`},{default:b(()=>[x(h(T(e)?`mdi-radiobox-marked`:`mdi-radiobox-blank`),1)]),_:2},1024)]),default:b(()=>[t(R,null,{default:b(()=>[x(h(e),1)]),_:2},1024)]),_:2},1032,[`active`,`onClick`]))),128))]),_:1})]),_:1})):a(``,!0),v.value?a(``,!0):(s(),p(G,{key:2,onClick:n[1]||=e=>r(u).save(),label:g.value?.intention?.save,icon:`mdi-content-save`},null,8,[`label`])),t(G,{onClick:n[2]||=e=>r(u).statistics(),label:g.value?.intention?.statistics,icon:`mdi-chart-line`},null,8,[`label`]),t(G,{onClick:n[3]||=e=>r(u).refresh(),label:g.value?.intention?.refresh,icon:`mdi-refresh`},null,8,[`label`])])],4)):a(``,!0)}}),[[`__scopeId`,`data-v-f5513eeb`]]),he={style:{"margin-bottom":`8px`,"font-size":`13px`,opacity:`0.7`}},ge={class:`p3xr-import-key-name`},Y={key:0,class:`p3xr-import-key-type`},_e={style:{"margin-top":`12px`}},ve={key:0},ye=40,be=N(u({__name:`KeyImportDialog`,props:{open:{type:Boolean},data:{}},emits:[`close`],setup(e,{emit:o}){let c=e,u=o,d=te(),f=n(()=>d.strings),{width:g}=j(),_=n(()=>g.value>=600),v=y(`overwrite`),S=n(()=>c.data?.keys||[]),C=y(null),w=pe(n(()=>({count:S.value.length,getScrollElement:()=>C.value,estimateSize:()=>ye,overscan:10})));function T(){u(`close`,null)}function E(){u(`close`,{pending:!0,keys:S.value,conflictMode:v.value})}return(n,o)=>e.open&&S.value.length>0?(s(),p(B,{key:0,open:!0,title:f.value?.intention?.importKeys,onClose:o[3]||=e=>T()},{actions:b(()=>[t(M,{variant:`flat`,color:`warning`,onClick:o[1]||=e=>T()},{default:b(()=>[t(P,{class:m({"mr-1":_.value})},{default:b(()=>[...o[4]||=[x(`mdi-close-circle`,-1)]]),_:1},8,[`class`]),_.value?(s(),i(`span`,ve,h(f.value?.intention?.cancel),1)):a(``,!0),_.value?a(``,!0):(s(),p(U,{key:1,activator:`parent`,location:`top`},{default:b(()=>[x(h(f.value?.intention?.cancel),1)]),_:1}))]),_:1}),t(M,{variant:`flat`,color:`primary`,onClick:o[2]||=e=>E()},{default:b(()=>[t(P,{class:`mr-1`},{default:b(()=>[...o[5]||=[x(`mdi-upload`,-1)]]),_:1}),D(`span`,null,h(f.value?.intention?.import),1)]),_:1})]),default:b(()=>[D(`div`,he,h(S.value.length)+` `+h(f.value?.label?.keysToImport),1),D(`div`,{ref_key:`parentRef`,ref:C,class:`p3xr-import-preview-list`},[D(`div`,{style:l({height:r(w).getTotalSize()+`px`,width:`100%`,position:`relative`})},[(s(!0),i(O,null,ee(r(w).getVirtualItems(),e=>(s(),i(`div`,{key:S.value[e.index].key,class:`p3xr-import-preview-row`,style:l({position:`absolute`,top:0,left:0,width:`100%`,height:ye+`px`,transform:`translateY(`+e.start+`px)`})},[D(`span`,ge,h(S.value[e.index].key),1),S.value[e.index].type?(s(),i(`kbd`,Y,h(S.value[e.index].type),1)):a(``,!0)],4))),128))],4)],512),D(`div`,_e,[t(H,{modelValue:v.value,"onUpdate:modelValue":o[0]||=e=>v.value=e,inline:``,"hide-details":``},{default:b(()=>[t(V,{value:`overwrite`,label:f.value?.label?.importOverwrite},null,8,[`label`]),t(V,{value:`skip`,label:f.value?.label?.importSkip},null,8,[`label`])]),_:1},8,[`modelValue`])])]),_:1},8,[`title`])):a(``,!0)}}),[[`__scopeId`,`data-v-909836b1`]]),xe={class:`p3xr-tree-controls`},Se={class:`p3xr-tree-controls-row`},Ce={key:1,style:{display:`inline-flex`,"align-items":`center`,"white-space":`nowrap`,"margin-left":`2px`}},we=[`max`],Te={style:{opacity:`0.6`,"font-family":`'Roboto Mono', monospace`,"font-size":`12px`,margin:`0 2px`}},Ee={key:2,style:{"margin-left":`auto`,opacity:`0.5`,"font-size":`12px`}},De={class:`p3xr-tree-controls-search`},Oe=[`placeholder`],ke=N(u({__name:`DatabaseTreeControls`,setup(e){let o=te(),c=ae(),u=ie(),d=oe(),m=ue(),g=se(),{themeKey:E}=w(re()),k=n(()=>o.strings),A=n(()=>c.connection?.readonly===!0),j=n(()=>c.pages),N=y(c.search||``),B=y(u.redisTreeDivider),V=y(c.page||1);C(()=>c.search,e=>{N.value=e||``}),C(()=>u.redisTreeDivider,e=>{B.value=e}),C(()=>c.page,e=>{V.value=e||1});let H=y(!1),le=y(!1),W=y(!1),G=y(!1),K=y(!1),q=y(null),pe={enterprise:`rgba(0,0,0,0.87)`,light:`rgba(0,0,0,0.87)`,redis:`rgba(0,0,0,0.87)`,dark:`rgba(255,255,255,0.7)`,darkNeu:`rgba(255,255,255,0.7)`,darkoBluo:`rgba(255,255,255,0.7)`,matrix:`rgba(255,255,255,0.7)`},me={enterprise:`white`,light:`white`,redis:`white`,dark:`rgba(64,64,64,1)`,darkNeu:`rgba(64,64,64,1)`,darkoBluo:`rgba(64,64,64,1)`,matrix:`rgba(64,64,64,1)`},J={enterprise:`black`,light:`black`,redis:`black`,dark:`white`,darkNeu:`white`,darkoBluo:`white`,matrix:`white`},he={enterprise:`#9e9e9e`,light:`#b0bec5`,redis:`#ef9a9a`,dark:`#9e9e9e`,darkNeu:`#90a4ae`,darkoBluo:`#3f51b5`,matrix:`#76ff03`},ge={enterprise:`#03a9f4`,light:`#607d8b`,redis:`#f44336`,dark:`#9fa8da`,darkNeu:`#2196f3`,darkoBluo:`#03a9f4`,matrix:`#4caf50`},Y=n(()=>pe[E.value]),_e=n(()=>me[E.value]),ve=n(()=>J[E.value]),ye=n(()=>he[E.value]),ke=n(()=>ge[E.value]),X=n(()=>c.cfg?.treeDividers||[`:`,`/`,`-`,`.`,`_`,`|`]);function Z(e,t){return typeof e==`function`?e(t):e||``}let Q=n(()=>N.value.length>0),Ae=n(()=>c.keysRaw?.length??0),je=n(()=>Q.value?Z(k.value?.intention?.exportSearchResults,{count:Ae.value}):Z(k.value?.intention?.exportAllKeys,{count:Ae.value})),Me=n(()=>Q.value?Z(k.value?.intention?.deleteSearchKeys,{count:Ae.value}):Z(k.value?.intention?.deleteAllKeysMenu,{count:Ae.value})),Ne=n(()=>{let e=k.value?.label?.keysCount,t=c.keysRaw?.length??0;return typeof e==`function`?e({count:t}):`${t} keys`});function Pe(){c.search=N.value,c.page=1,m.refresh({force:!0})}function Fe(){N.value=``,c.search=``,c.page=1,m.refresh({force:!0})}function Ie(e){let t=j.value;if(t<=1)return;let n=V.value;e===`first`?n=1:e===`prev`?n=Math.max(1,n-1):e===`next`?n=Math.min(t,n+1):e===`last`&&(n=t),V.value=n,c.page=n}function Le(){let e=V.value;e<1&&(e=1),e>j.value&&(e=j.value),V.value=e,c.page=e}let Re=null;function ze(){clearTimeout(Re),Re=setTimeout(()=>{u.setSetting(`p3xr-main-treecontrol-divider`,B.value)},666)}function Be(e){B.value=e,u.setSetting(`p3xr-main-treecontrol-divider`,e),le.value=!1}function Ve(){de(`expand-all`),H.value=!1}function He(){de(`collapse-all`)}function Ue(e){de(`expand-level-${e}`),H.value=!1}function We(e){m.addKey({event:e})}async function Ge(){W.value=!1;let e=c.keysRaw;if(!Array.isArray(e)||e.length===0){d.toast(Z(k.value?.label?.noKeysToExport));return}try{g.show({message:Z(k.value?.label?.exportProgress)});let t=await ce({action:`key/export`,payload:{keys:e}}),n=JSON.stringify(t.data,null,2),r=new Blob([n],{type:`application/json`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`${c.connection?.name}-db${c.currentDatabase??0}-export.json`,a.click(),URL.revokeObjectURL(i),d.toast(Z(k.value?.status?.exportDone))}catch(e){d.generalHandleError(e)}finally{g.hide()}}function Ke(){W.value=!1;let e=document.createElement(`input`);e.type=`file`,e.accept=`.json`,e.onchange=()=>{let t=e.files?.[0];if(!t)return;let n=new FileReader;n.onload=e=>{try{let t=JSON.parse(e.target.result);if(!t?.keys||!Array.isArray(t.keys)||t.keys.length===0){d.toast(Z(k.value?.label?.importNoKeys));return}q.value=t,K.value=!0}catch(e){e!=null&&d.generalHandleError(e)}},n.readAsText(t)},e.click()}async function qe(e){if(K.value=!1,q.value=null,e?.pending)try{g.show({message:Z(k.value?.label?.importProgress)});let t=await ce({action:`key/import`,payload:{keys:e.keys,conflictMode:e.conflictMode}}),n=t.data||t,r=Z(k.value?.status?.importDone,n);d.toast(r),await m.refresh({force:!0})}catch(e){e!=null&&d.generalHandleError(e)}finally{g.hide()}}async function Je(){W.value=!1;let e=N.value,t;t=e.length>0?u.searchStartsWith?e+`*`:`*`+e+`*`:`*`;let n=c.keysRaw?.length??0;try{let e=Z(k.value?.confirm?.deleteSearchKeys,{count:n,pattern:t});await d.confirm({message:e}),g.show({message:Z(k.value?.label?.deletingSearchKeys)});let r=await ce({action:`key/delete-search-keys`,payload:{match:t}}),i=r.deletedCount||r.deleted||0,a=Z(k.value?.status?.deletedSearchKeys,{count:i});d.toast(a),await m.refresh({force:!0})}catch(e){e!==void 0&&d.generalHandleError(e)}finally{g.hide()}}return(e,n)=>(s(),i(O,null,[D(`div`,xe,[D(`div`,Se,[t(z,{modelValue:H.value,"onUpdate:modelValue":n[1]||=e=>H.value=e,location:`bottom start`},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`}),{default:b(()=>[t(P,null,{default:b(()=>[...n[25]||=[x(`mdi-chevron-down`,-1)]]),_:1})]),_:1},16)]),default:b(()=>[t(L,{density:`compact`},{default:b(()=>[(s(),i(O,null,ee(5,e=>t(F,{key:e,onClick:t=>Ue(e)},{default:b(()=>[x(h(k.value?.page?.treeControls?.level)+` `+h(e),1)]),_:2},1032,[`onClick`])),64)),t(ne),t(F,{onClick:n[0]||=e=>Ve()},{default:b(()=>[x(h(k.value?.page?.treeControls?.expandAll),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(U,{text:k.value?.page?.treeControls?.collapseAll,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},onClick:n[2]||=e=>He()}),{default:b(()=>[t(P,null,{default:b(()=>[...n[26]||=[x(`mdi-chevron-up`,-1)]]),_:1})]),_:1},16,[`style`])]),_:1},8,[`text`]),t(U,{text:k.value?.intention?.refresh,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},onClick:n[3]||=e=>r(m).refresh({force:!0})}),{default:b(()=>[t(P,null,{default:b(()=>[...n[27]||=[x(`mdi-refresh`,-1)]]),_:1})]),_:1},16,[`style`])]),_:1},8,[`text`]),t(U,{text:k.value?.form?.treeSettings?.label?.formName,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},onClick:n[4]||=e=>G.value=!0}),{default:b(()=>[t(P,null,{default:b(()=>[...n[28]||=[x(`mdi-cog`,-1)]]),_:1})]),_:1},16,[`style`])]),_:1},8,[`text`]),t(U,{text:k.value?.form?.treeSettings?.field?.treeSeparator,location:`top`,"open-delay":300},{activator:b(({props:e})=>[_(D(`input`,f(e,{"onUpdate:modelValue":n[5]||=e=>B.value=e,class:`p3xr-tc-divider-input`,style:{backgroundColor:_e.value,color:ve.value,borderColor:ye.value},maxlength:`3`,onInput:n[6]||=e=>ze()}),null,16),[[T,B.value]])]),_:1},8,[`text`]),X.value.length>0?(s(),p(z,{key:0,modelValue:le.value,"onUpdate:modelValue":n[7]||=e=>le.value=e,location:`bottom start`,offset:[0,4]},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-narrow`,style:{color:Y.value}}),{default:b(()=>[t(P,{size:`18`},{default:b(()=>[...n[29]||=[x(`mdi-menu-down`,-1)]]),_:1})]),_:1},16,[`style`])]),default:b(()=>[t(L,{density:`compact`,class:`p3xr-tc-divider-menu`},{default:b(()=>[(s(!0),i(O,null,ee(X.value,e=>(s(),p(F,{key:e,onClick:t=>Be(e),class:`p3xr-tc-divider-menu-item`},{default:b(()=>[x(h(e),1)]),_:2},1032,[`onClick`]))),128))]),_:1})]),_:1},8,[`modelValue`])):a(``,!0),n[34]||=D(`span`,{style:{flex:`1`}},null,-1),j.value>1?(s(),i(`span`,Ce,[t(U,{text:k.value?.page?.treeControls?.pager?.first,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`,disabled:V.value<=1,onClick:n[8]||=e=>Ie(`first`)}),{default:b(()=>[t(P,{size:`18`},{default:b(()=>[...n[30]||=[x(`mdi-skip-previous`,-1)]]),_:1})]),_:1},16,[`disabled`])]),_:1},8,[`text`]),t(U,{text:k.value?.page?.treeControls?.pager?.prev,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},disabled:V.value<=1,onClick:n[9]||=e=>Ie(`prev`)}),{default:b(()=>[t(P,{size:`18`},{default:b(()=>[...n[31]||=[x(`mdi-chevron-left`,-1)]]),_:1})]),_:1},16,[`style`,`disabled`])]),_:1},8,[`text`]),_(D(`input`,{"onUpdate:modelValue":n[10]||=e=>V.value=e,type:`number`,class:`p3xr-tc-page-input`,style:l({backgroundColor:_e.value,color:ve.value,borderColor:ye.value}),min:`1`,max:j.value,onChange:n[11]||=e=>Le(),onInput:n[12]||=e=>Le()},null,44,we),[[S,V.value,void 0,{number:!0}]]),D(`span`,Te,`/ `+h(j.value),1),t(U,{text:k.value?.page?.treeControls?.pager?.next,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},disabled:V.value>=j.value,onClick:n[13]||=e=>Ie(`next`)}),{default:b(()=>[t(P,{size:`18`},{default:b(()=>[...n[32]||=[x(`mdi-chevron-right`,-1)]]),_:1})]),_:1},16,[`style`,`disabled`])]),_:1},8,[`text`]),t(U,{text:k.value?.page?.treeControls?.pager?.last,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`,disabled:V.value>=j.value,onClick:n[14]||=e=>Ie(`last`)}),{default:b(()=>[t(P,{size:`18`},{default:b(()=>[...n[33]||=[x(`mdi-skip-next`,-1)]]),_:1})]),_:1},16,[`disabled`])]),_:1},8,[`text`])])):(s(),i(`span`,Ee,h(Ne.value)+`\xA0`,1))]),D(`div`,De,[_(D(`input`,{"onUpdate:modelValue":n[15]||=e=>N.value=e,class:`p3xr-tc-search-input`,style:l({backgroundColor:_e.value,color:ve.value,borderColor:ye.value}),placeholder:r(u).searchClientSide?k.value?.label?.searchKeys:k.value?.label?.searchKeysServer,onKeydown:n[16]||=v(e=>Pe(),[`enter`])},null,44,Oe),[[S,N.value]]),t(U,{text:k.value?.page?.treeControls?.search?.search,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`,onClick:n[17]||=e=>Pe()}),{default:b(()=>[t(P,null,{default:b(()=>[...n[35]||=[x(`mdi-magnify`,-1)]]),_:1})]),_:1},16)]),_:1},8,[`text`]),N.value?(s(),p(U,{key:0,text:k.value?.page?.treeControls?.search?.clear,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`,onClick:n[18]||=e=>Fe()}),{default:b(()=>[t(P,null,{default:b(()=>[...n[36]||=[x(`mdi-close`,-1)]]),_:1})]),_:1},16)]),_:1},8,[`text`])):a(``,!0),A.value?a(``,!0):(s(),p(U,{key:1,text:k.value?.intention?.addKeyRoot,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(P,f(e,{style:{fontSize:`24px`,cursor:`pointer`,color:ke.value},onClick:n[19]||=e=>We(e)}),{default:b(()=>[...n[37]||=[x(`mdi-plus`,-1)]]),_:1},16,[`style`])]),_:1},8,[`text`])),t(z,{modelValue:W.value,"onUpdate:modelValue":n[23]||=e=>W.value=e,location:`bottom end`},{activator:b(({props:e})=>[t(M,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value}}),{default:b(()=>[t(P,null,{default:b(()=>[...n[38]||=[x(`mdi-dots-vertical`,-1)]]),_:1})]),_:1},16,[`style`])]),default:b(()=>[t(L,{density:`compact`,style:{"min-width":`280px`}},{default:b(()=>[t(F,{onClick:n[20]||=e=>Ge()},{prepend:b(()=>[t(P,{size:`18`,style:{"margin-right":`8px`}},{default:b(()=>[...n[39]||=[x(`mdi-download`,-1)]]),_:1})]),default:b(()=>[t(R,null,{default:b(()=>[x(h(je.value),1)]),_:1}),Q.value?(s(),p(I,{key:0,style:{opacity:`0.5`,"font-size":`11px`,"font-style":`italic`,"white-space":`normal`}},{default:b(()=>[x(h(Z(k.value?.label?.exportSearchHint)),1)]),_:1})):a(``,!0)]),_:1}),A.value?a(``,!0):(s(),p(F,{key:0,onClick:n[21]||=e=>Ke()},{prepend:b(()=>[t(P,{size:`18`,style:{"margin-right":`8px`}},{default:b(()=>[...n[40]||=[x(`mdi-upload`,-1)]]),_:1})]),default:b(()=>[t(R,null,{default:b(()=>[x(h(Z(k.value?.intention?.importKeys)),1)]),_:1}),Q.value?(s(),p(I,{key:0,style:{opacity:`0.5`,"font-size":`11px`,"font-style":`italic`,"white-space":`normal`}},{default:b(()=>[x(h(Z(k.value?.label?.importSearchHint)),1)]),_:1})):a(``,!0)]),_:1})),A.value?a(``,!0):(s(),i(O,{key:1},[t(ne),t(F,{onClick:n[22]||=e=>Je()},{prepend:b(()=>[t(P,{size:`18`,color:`error`,style:{"margin-right":`8px`}},{default:b(()=>[...n[41]||=[x(`mdi-delete-sweep`,-1)]]),_:1})]),default:b(()=>[t(R,null,{default:b(()=>[x(h(Me.value),1)]),_:1}),Q.value?(s(),p(I,{key:0,style:{opacity:`0.5`,"font-size":`11px`,"font-style":`italic`,"white-space":`normal`}},{default:b(()=>[x(h(Z(k.value?.label?.deleteSearchHint)),1)]),_:1})):a(``,!0)]),_:1})],64))]),_:1})]),_:1},8,[`modelValue`])])]),t(fe,{open:G.value,onClose:n[24]||=e=>G.value=!1},null,8,[`open`]),t(be,{open:K.value,data:q.value,onClose:qe},null,8,[`open`,`data`])],64))}}),[[`__scopeId`,`data-v-fac10722`]]),X=null,Z=0,Q=new Map;function Ae(){try{let e=new Blob([`(${Me.toString()})()`],{type:`application/javascript`});X=new Worker(URL.createObjectURL(e)),X.onmessage=e=>{let{_requestId:t,...n}=e.data,r=Q.get(t);r&&(Q.delete(t),r(n))},X.onerror=()=>{X=null}}catch{X=null}}Ae();function je(e){if(X){let t=++Z;return new Promise(n=>{Q.set(t,n),X.postMessage({_requestId:t,action:`buildTree`,keys:e.keys,divider:e.divider,keysInfo:e.keysInfo,savedExpandedNodes:e.savedExpandedNodes??[]})})}return Promise.resolve(Ne(e))}function Me(){let e=()=>(e,t)=>{let n=/(\d+)|(\D+)/g,r=[],i=[];for(e.replace(n,(e,t,n)=>(r.push([t||1/0,n||``]),``)),t.replace(n,(e,t,n)=>(i.push([t||1/0,n||``]),``));r.length&&i.length;){let e=r.shift(),t=i.shift(),n=parseFloat(e[0])-parseFloat(t[0])||e[1].localeCompare(t[1]);if(n)return n}return r.length-i.length},t=(e,t,n,r)=>{let i=[],a=[],o=r||[],s=(e,r=0,c=i)=>{let l=!1;if(r+1<e.length){for(let t=0;t<c.length;t++)if(c[t].label===e[r]&&c[t].type===`folder`){l=c[t];break}}if(!l){let i={label:e[r],key:e.slice(0,r+1).join(t),children:[],childCount:0,type:r+1===e.length?`element`:`folder`};i.type===`element`&&n&&(i.keysInfo=n[i.key]),c.push(i),l=i;for(let e=0;e<o.length;e++)o[e].key===l.key&&a.push(l)}r+1<e.length&&s(e,r+1,l.children)};for(let n=0;n<e.length;n++)s(t===``?[e[n]]:e[n].split(t));let c=e=>{e.childCount=0;for(let t=0;t<e.children.length;t++)if(e.children[t].type===`element`){let n=e.children[t].keysInfo;n&&n.type!==`string`&&n.type!==`json`&&n.length!=null?e.childCount+=n.length:e.childCount++}for(let t=0;t<e.children.length;t++)c(e.children[t]),e.children[t].type===`folder`&&(e.childCount+=e.children[t].childCount)};for(let e=0;e<i.length;e++)c(i[e]);return{nodes:i,expandedNodes:a}};self.onmessage=function(n){let r=n.data,i=r._requestId;if(r.action===`sortKeys`){let t=r.keys.sort(e());self.postMessage({_requestId:i,keys:t})}else if(r.action===`buildTree`){let e=t(r.keys,r.divider,r.keysInfo,r.savedExpandedNodes);self.postMessage({_requestId:i,...e})}}}function Ne(e){let{keys:t,divider:n,keysInfo:r}=e,i=e.savedExpandedNodes??[],a=[],o=[],s=(e,t=0,c=a)=>{let l=!1;if(t+1<e.length){for(let n of c)if(n.label===e[t]&&n.type===`folder`){l=n;break}}if(!l){let a={label:e[t],key:e.slice(0,t+1).join(n),children:[],childCount:0,type:t+1===e.length?`element`:`folder`};a.type===`element`&&r&&(a.keysInfo=r[a.key]),c.push(a),l=a;for(let e of i)e.key===l.key&&o.push(l)}t+1<e.length&&s(e,t+1,l.children)};for(let e of t)s(n===``?[e]:e.split(n));let c=e=>{e.childCount=0;for(let t of e.children)if(t.type===`element`){let n=t.keysInfo;n&&n.type!==`string`&&n.type!==`json`&&n.length!=null?e.childCount+=n.length:e.childCount+=1}for(let t of e.children)c(t),t.type===`folder`&&(e.childCount+=t.childCount)};for(let e of a)c(e);return{nodes:a,expandedNodes:o}}var Pe=e(K()),Fe={key:0,style:{padding:`8px`,opacity:`0.5`,"font-size":`13px`}},Ie=[`data-p3xr-tree-key`],Le=[`onClick`],Re=[`data-p3xr-tree-key`],ze=[`onClick`],Be={class:`p3xr-database-tree-node-label`},Ve={key:1,style:{opacity:`0.5`,"margin-left":`4px`}},He={key:2,style:{opacity:`0.5`,"margin-left":`4px`}},Ue={key:1,class:`p3xr-tree-actions`},We=28,Ge=20,Ke=N(u({__name:`DatabaseTree`,setup(e){let u={hash:`fas fa-hashtag`,list:`fas fa-list-ol`,set:`fas fa-list`,string:`fas fa-ellipsis-h`,zset:`fas fa-chart-line`,stream:`fas fa-stream`,json:`fas fa-code`,timeseries:`fas fa-chart-area`,bloom:`fas fa-filter`,cuckoo:`fas fa-filter`,topk:`fas fa-trophy`,cms:`fas fa-chart-simple`,tdigest:`fas fa-chart-bar`,vectorset:`fas fa-brain`},d={enterprise:`#343dff`,light:`#a900a9`,redis:`#964900`,dark:`#bec2ff`,darkNeu:`#bec2ff`,darkoBluo:`#bec2ff`,matrix:`#76ff03`},_={enterprise:`#03a9f4`,light:`#607d8b`,redis:`#f44336`,dark:`#9fa8da`,darkNeu:`#2196f3`,darkoBluo:`#03a9f4`,matrix:`#4caf50`},v=te(),S=ae(),T=ie(),k=oe(),A=ue(),{themeKey:j}=w(re()),M=n(()=>v.strings),N=n(()=>S.connection?.readonly===!0),F=n(()=>T.redisTreeDivider),I=n(()=>d[j.value]),ne=n(()=>_[j.value]),L=y(new Set),R=y([]),z=y(null),B=y(0);function V(){return`p3xr-tree-expanded-${S.connection?.id||`none`}-${S.currentDatabase??0}`}function H(){try{sessionStorage.setItem(V(),JSON.stringify([...L.value]))}catch{}}function se(){try{let e=sessionStorage.getItem(V());e&&(L.value=new Set(JSON.parse(e)))}catch{}}async function G(){let e=E(S.paginatedKeys),t=E(S.keysInfo);if(!e||e.length===0){R.value=[];return}let n=t?JSON.parse(JSON.stringify(t)):void 0,r=await je({keys:[...e],divider:F.value,keysInfo:n,savedExpandedNodes:[...L.value].map(e=>({key:e}))});R.value=r.nodes||[],r.expandedNodes?.length>0&&(L.value=new Set(r.expandedNodes.map(e=>e.key||e)))}let K=n(()=>{B.value;let e=[],t=(n,r)=>{for(let i of n){let n={label:i.label,key:i.key,level:r,expandable:i.type===`folder`,type:i.type,childCount:i.childCount??0,keysInfo:i.keysInfo,_sourceNode:i},a=ve(n);n._remaining=a,n._ttlColor=be(a),n._pulsing=xe(a),n._formattedTtl=ye(a),n._tooltip=_e(n),e.push(n),i.type===`folder`&&L.value.has(i.key)&&i.children?.length>0&&t(i.children,r+1)}};return t(R.value,0),e}),q=pe(n(()=>({count:K.value.length,getScrollElement:()=>z.value,estimateSize:()=>We,overscan:10})));function fe(e){let t=new Set(L.value);t.has(e.key)?t.delete(e.key):t.add(e.key),L.value=t,H()}function me(e){le(`database.key`,{key:e.key})}function J(e,t){return typeof e==`function`?e(t):e||``}async function he(e,t){e.preventDefault(),e.stopPropagation();try{let e=J(M.value?.confirm?.deleteKey,{key:t});await k.confirm({message:e}),await ce({action:`key/delete`,payload:{key:t}}),le(`database.statistics`);let n=J(M.value?.status?.deletedKey,{key:t});k.toast(n),await A.refresh({force:!0})}catch(e){e!==void 0&&k.generalHandleError(e)}}async function ge(e,t){e.stopPropagation();try{let e=J(M.value?.confirm?.deleteTree,{key:t.key});await k.confirm({message:e}),await ce({action:`key/del-tree`,payload:{key:t.key,redisTreeDivider:F.value}});let n=J(M.value?.status?.deletedTree,{key:t.key});k.toast(n),await A.refresh({force:!0})}catch(e){e!==void 0&&k.generalHandleError(e)}}function Y(e,t){e.stopPropagation(),de(`key-new`,{event:e,node:t._sourceNode??{key:t.key}})}function _e(e){if(e.type===`folder`)return e.key;let t=e.keysInfo?.type||``;return t?`${t} - ${e.key}`:e.key}function ve(e){let t=e.keysInfo?.ttl;if(!t||t<=0)return-1;let n=S.keysInfoFetchedAt??Date.now(),r=t-Math.floor((Date.now()-n)/1e3);return r>0?r:-1}function ye(e){if(e<=0)return``;try{let t=T.getHumanizeDurationOptions();return(0,Pe.default)(e*1e3,{...t,largest:2,round:!0,delimiter:` `})}catch{return e<60?e+`s`:e<3600?Math.floor(e/60)+`m`:Math.floor(e/3600)+`h`}}function be(e){return e<=0?``:e<300?`#f44336`:e<3600?`#ff9800`:`#4caf50`}function xe(e){return e>0&&e<30}let Se=null;function Ce(){let e=()=>{let t=1/0,n=!1;for(let e of K.value){if(e.type===`folder`)continue;let r=ve(e);r!==-1&&(r<=0?n=!0:r<t&&(t=r))}if(n){A.refresh({force:!0}),Se=setTimeout(e,3e3);return}B.value++;let r;r=t<=30?1e3:t<=300?5e3:3e4,Se=setTimeout(e,r)};Se=setTimeout(e,1e3)}let we=[];return o(()=>{se(),G(),Ce(),we.push(W(`tree-refresh`,()=>G())),we.push(W(`expand-all`,()=>{let e=new Set,t=n=>{for(let r of n)r.type===`folder`&&(e.add(r.key),r.children&&t(r.children))};t(R.value),L.value=e,H()})),we.push(W(`collapse-all`,()=>{L.value=new Set,H()}));for(let e=1;e<=5;e++){let t=e;we.push(W(`expand-level-${t}`,()=>{let e=new Set,n=(r,i)=>{for(let a of r)a.type===`folder`&&i<t&&(e.add(a.key),a.children&&n(a.children,i+1))};n(R.value,0),L.value=e,H()}))}}),c(()=>{Se&&clearTimeout(Se),we.forEach(e=>e())}),C(()=>[S.paginatedKeys,S.keysInfo,F.value,S.page],()=>G(),{deep:!0}),C(()=>[S.connection?.id,S.currentDatabase],()=>{L.value=new Set,se(),G()}),(e,n)=>K.value.length===0?(s(),i(`div`,Fe,h(M.value?.label?.noKeys),1)):(s(),i(`div`,{key:1,ref_key:`parentRef`,ref:z,class:`p3xr-tree-viewport`},[D(`div`,{style:l({height:r(q).getTotalSize()+`px`,width:`100%`,position:`relative`})},[(s(!0),i(O,null,ee(r(q).getVirtualItems(),e=>(s(),i(`div`,{key:K.value[e.index].type+`-`+K.value[e.index].key,"data-p3xr-tree-key":K.value[e.index].type===`folder`?``:K.value[e.index].key,class:`p3xr-tree-row`,style:l({position:`absolute`,top:0,left:0,width:`100%`,height:We+`px`,transform:`translateY(`+e.start+`px)`,paddingLeft:K.value[e.index].level*Ge+4+`px`})},[K.value[e.index].expandable?(s(),i(`span`,{key:0,class:m([`p3xr-tree-branch`,{"p3xr-tree-branch-expanded":L.value.has(K.value[e.index].key)}]),style:l({color:I.value}),onClick:g(t=>fe(K.value[e.index]),[`stop`])},null,14,Le)):a(``,!0),D(`span`,{"data-p3xr-tree-key":K.value[e.index].type===`folder`?``:K.value[e.index].key,style:{display:`inline-flex`,"align-items":`center`,height:`28px`}},[t(U,{text:K.value[e.index]._tooltip,location:`right`,"open-delay":500,offset:36},{activator:b(({props:t})=>[D(`label`,f({ref_for:!0},t,{class:`p3xr-tree-node-label p3xr-database-tree-node`,onClick:t=>K.value[e.index].expandable?fe(K.value[e.index]):me(K.value[e.index])}),[K.value[e.index].type!==`folder`&&K.value[e.index].keysInfo?(s(),i(`i`,{key:0,class:m([u[K.value[e.index].keysInfo.type]||`fas fa-question`,`p3xr-tree-type-icon`]),"aria-hidden":`true`},null,2)):a(``,!0),D(`span`,Be,h(K.value[e.index].label),1),K.value[e.index].type===`folder`?(s(),i(`span`,Ve,h(F.value)+`* (`+h(K.value[e.index].childCount)+`) `,1)):a(``,!0),K.value[e.index].type!==`folder`&&K.value[e.index].keysInfo?.type!==`string`&&K.value[e.index].keysInfo?.type!==`json`&&K.value[e.index].keysInfo?.length?(s(),i(`span`,He,`(`+h(K.value[e.index].keysInfo.length)+`)`,1)):a(``,!0)],16,ze)]),_:2},1032,[`text`]),K.value[e.index].type!==`folder`&&(K.value[e.index]._remaining??0)>0?(s(),p(U,{key:0,text:`TTL: `+K.value[e.index]._formattedTtl,location:`right`,"open-delay":300,offset:36},{activator:b(({props:r})=>[D(`span`,f({ref_for:!0},r,{class:[`p3xr-tree-ttl`,{"p3xr-tree-ttl-pulse":K.value[e.index]._pulsing}],style:{color:K.value[e.index]._ttlColor}}),[t(P,{size:`16`},{default:b(()=>[...n[0]||=[x(`mdi-clock-outline`,-1)]]),_:1})],16)]),_:2},1032,[`text`])):a(``,!0)],8,Re),N.value?a(``,!0):(s(),i(`span`,Ue,[K.value[e.index].type===`folder`?(s(),p(U,{key:0,text:typeof M.value?.confirm?.deleteAllKeys==`function`?M.value.confirm.deleteAllKeys({key:K.value[e.index].key}):M.value?.confirm?.deleteAllKeys,location:`right`,"open-delay":300,offset:36},{activator:b(({props:r})=>[t(P,f({ref_for:!0},r,{class:`p3xr-tree-action-delete`,onClick:t=>ge(t,K.value[e.index])}),{default:b(()=>[...n[1]||=[x(`mdi-delete`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`])):(s(),p(U,{key:1,text:M.value?.intention?.delete,location:`right`,"open-delay":300,offset:36},{activator:b(({props:r})=>[t(P,f({ref_for:!0},r,{class:`p3xr-tree-action-delete`,onClick:t=>he(t,K.value[e.index].key)}),{default:b(()=>[...n[2]||=[x(`mdi-delete`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`])),t(U,{text:M.value?.intention?.addKey,location:`right`,"open-delay":300,offset:36},{activator:b(({props:r})=>[t(P,f({ref_for:!0},r,{class:`p3xr-tree-action-add`,style:{color:ne.value},onClick:t=>Y(t,K.value[e.index])}),{default:b(()=>[...n[3]||=[x(`mdi-plus`,-1)]]),_:1},16,[`style`,`onClick`])]),_:2},1032,[`text`])]))],12,Ie))),128))],4)],512))}}),[[`__scopeId`,`data-v-7ff4c9f4`]]),qe={class:`p3xr-database-body`},Je={key:0,class:`p3xr-database-mobile`},Ye={class:`p3xr-database-mobile-tree-controls`},Xe={class:`p3xr-database-mobile-tree`},Ze={class:`p3xr-database-mobile-content`},Qe={class:`p3xr-database-main`},$e={class:`p3xr-database-tree-area`},et={class:`p3xr-database-right`},$=315,tt=`p3xr-database-panel-width`,nt=N(u({__name:`DatabasePage`,setup(e){k();let r=A(),u=te(),f=ae(),{themeKey:p}=w(re()),{width:ee}=j();n(()=>u.strings);let h=n(()=>ee.value<600),g=ue(),_=n(()=>!!f.connection),v=y(!1),b=y(null),x=[];function S(e){b.value={type:e.type,node:e.node,model:e.model},v.value=!0}async function C(e){v.value=!1,b.value=null,e&&(f.redisChanged=!0,await g.refresh({force:!0}))}function T(){let e=localStorage.getItem(tt);if(e){let t=parseInt(e,10);if(!isNaN(t)&&t>=$)return t}return $}let E=y(T()),M=y(!1),N=y(!1),P=y(),F={enterprise:`#9e9e9e`,light:`#b0bec5`,redis:`#ef9a9a`,dark:`#9e9e9e`,darkNeu:`#90a4ae`,darkoBluo:`#3f51b5`,matrix:`#76ff03`},I=n(()=>F[p.value]),ne=n(()=>document.body.classList.contains(`p3xr-theme-dark`)),L=n(()=>M.value?ne.value?`brightness(1.6)`:`brightness(0.7)`:N.value?ne.value?`brightness(1.3)`:`brightness(0.85)`:`none`);o(()=>{if(f.currentPage=`database`,f.connection){let e=r.path;(e===`/database`||e===`/database/`)&&le(`database.statistics`)}x.push(W(`key-new`,e=>S(e)))});let R=null;function z(e){R||(R=document.createElement(`style`),R.setAttribute(`data-p3xr-database-drag`,``),document.head.appendChild(R)),R.textContent=`*, *::before, *::after { cursor: ${e} !important; }`}function B(){R?.remove(),R=null}function V(e){e.preventDefault(),M.value=!0,z(`ew-resize`),document.body.classList.add(`p3xr-not-selectable`)}let H=$;function U(e){if(!M.value)return;let t=P.value;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX-n.left;if(r<$||r>n.width-$){z(`not-allowed`);return}z(`ew-resize`),H=r,E.value=r}function ie(){M.value&&(M.value=!1,B(),document.body.classList.remove(`p3xr-not-selectable`),H>=$&&localStorage.setItem(tt,String(H)))}return o(()=>{document.addEventListener(`mousemove`,U),document.addEventListener(`mouseup`,ie)}),c(()=>{document.removeEventListener(`mousemove`,U),document.removeEventListener(`mouseup`,ie),B(),x.forEach(e=>e())}),(e,n)=>{let r=d(`router-view`);return s(),i(`div`,{class:`p3xr-database-root`,style:l({borderColor:I.value})},[t(J),D(`div`,qe,[_.value?(s(),i(O,{key:0},[h.value?(s(),i(`div`,Je,[D(`div`,Ye,[t(ke)]),D(`div`,Xe,[t(Ke)]),D(`div`,Ze,[t(r)])])):(s(),i(`div`,{key:1,ref_key:`containerEl`,ref:P,class:m([`p3xr-database-desktop`,{"p3xr-not-selectable":M.value}])},[D(`div`,Qe,[D(`div`,{class:`p3xr-database-left`,style:l({width:E.value+`px`,minWidth:$+`px`})},[t(ke),D(`div`,$e,[t(Ke)])],4),D(`div`,{class:`p3xr-database-resizer`,style:l({backgroundColor:I.value,filter:L.value}),onMousedown:V,onMouseenter:n[0]||=e=>N.value=!0,onMouseleave:n[1]||=e=>N.value=!1},null,36),D(`div`,et,[t(r)])])],2))],64)):a(``,!0)]),t(q,{open:v.value,data:b.value,onClose:C},null,8,[`open`,`data`])],4)}}}),[[`__scopeId`,`data-v-93b6585e`]]);export{nt as default};