UNPKG

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 • 32.8 kB
import{o as e}from"./chunk-jRWAZmH_.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-B4krJCIS.js";import{lt as k,o as A,t as j,x as M}from"./_plugin-vue_export-helper-67n0yneU.js";import{c as N,d as P,m as F,t as ne,u as I}from"./VList-CldQCa9W.js";import{t as L}from"./VTooltip-UUcBbF8q.js";import{n as re,t as ie}from"./redis-state.store-DPDs81ZS.js";import{t as ae}from"./common.store-C_dWn4yG.js";import{t as R}from"./overlay.store-CDszzlsU.js";import{i as z}from"./socket.service-B85kYQEM.js";import{i as B,n as V,r as oe,t as se}from"./main-command.store-8Rm0brAR.js";import{b as H,d as U,f as W,g as ce,i as G,o as le,r as K,x as q}from"./index-CBO402jT.js";import{t as J}from"./humanize-duration-DOAUYqNt.js";import{t as ue}from"./KeyNewOrSetDialog-ea4_RQ1e.js";import{t as de}from"./TreeSettingsDialog-D82Ys6Af.js";import{t as fe}from"./esm-BVDWg050.js";var pe={class:`p3xr-database-header-inner`},me=j(u({__name:`DatabaseHeader`,setup(e){let o=te(),c=ie(),u=oe(),{themeKey:d}=w(le()),{width:m}=k(),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`},j={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)`},P=n(()=>E[d.value]),F=n(()=>j[d.value]);return(e,n)=>S.value?(s(),i(`div`,{key:0,class:`p3xr-database-header`,style:l({backgroundColor:P.value,color:F.value})},[D(`div`,pe,[_.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(ce,{key:1,location:`bottom start`},{activator:b(({props:e})=>[t(A,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(M,{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(M,{size:`18`,style:{"margin-left":`2px`}},{default:b(()=>[...n[4]||=[x(`mdi-menu-down`,-1)]]),_:1})]),_:1},16)]),default:b(()=>[t(ne,{density:`compact`},{default:b(()=>[(s(!0),i(O,null,ee(r(c).databaseIndexes,e=>(s(),p(N,{key:e,active:(r(c).currentDatabase??0)===e,onClick:t=>r(u).selectDatabase(e)},{prepend:b(()=>[t(M,{size:`18`},{default:b(()=>[x(h(T(e)?`mdi-radiobox-marked`:`mdi-radiobox-blank`),1)]),_:2},1024)]),default:b(()=>[t(I,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=j(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}=k(),_=n(()=>g.value>=600),v=y(`overwrite`),S=n(()=>c.data?.keys||[]),C=y(null),w=fe(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(K,{key:0,open:!0,title:f.value?.intention?.importKeys,onClose:o[3]||=e=>T()},{actions:b(()=>[t(A,{variant:`flat`,color:`warning`,onClick:o[1]||=e=>T()},{default:b(()=>[t(M,{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(L,{key:1,activator:`parent`,location:`top`},{default:b(()=>[x(h(f.value?.intention?.cancel),1)]),_:1}))]),_:1}),t(A,{variant:`flat`,color:`primary`,onClick:o[2]||=e=>E()},{default:b(()=>[t(M,{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(U,{modelValue:v.value,"onUpdate:modelValue":o[0]||=e=>v.value=e,inline:``,"hide-details":``},{default:b(()=>[t(W,{value:`overwrite`,label:f.value?.label?.importOverwrite},null,8,[`label`]),t(W,{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=j(u({__name:`DatabaseTreeControls`,setup(e){let o=te(),c=ie(),u=re(),d=ae(),m=oe(),g=R(),{themeKey:E}=w(le()),k=n(()=>o.strings),j=n(()=>c.connection?.readonly===!0),B=n(()=>c.pages),V=y(c.search||``),H=y(u.redisTreeDivider),U=y(c.page||1);C(()=>c.search,e=>{V.value=e||``}),C(()=>u.redisTreeDivider,e=>{H.value=e}),C(()=>c.page,e=>{U.value=e||1});let W=y(!1),G=y(!1),K=y(!1),q=y(!1),J=y(!1),ue=y(null),fe={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)`},pe={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)`},me={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(()=>fe[E.value]),_e=n(()=>pe[E.value]),ve=n(()=>me[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(()=>V.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=V.value,c.page=1,m.refresh({force:!0})}function Fe(){V.value=``,c.search=``,c.page=1,m.refresh({force:!0})}function Ie(e){let t=B.value;if(t<=1)return;let n=U.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),U.value=n,c.page=n}function Le(){let e=U.value;e<1&&(e=1),e>B.value&&(e=B.value),U.value=e,c.page=e}let Re=null;function ze(){clearTimeout(Re),Re=setTimeout(()=>{u.setSetting(`p3xr-main-treecontrol-divider`,H.value)},666)}function Be(e){H.value=e,u.setSetting(`p3xr-main-treecontrol-divider`,e),G.value=!1}function Ve(){se(`expand-all`),W.value=!1}function He(){se(`collapse-all`)}function Ue(e){se(`expand-level-${e}`),W.value=!1}function We(e){m.addKey({event:e})}async function Ge(){K.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 z({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(){K.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}ue.value=t,J.value=!0}catch(e){e!=null&&d.generalHandleError(e)}},n.readAsText(t)},e.click()}async function qe(e){if(J.value=!1,ue.value=null,e?.pending)try{g.show({message:Z(k.value?.label?.importProgress)});let t=await z({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(){K.value=!1;let e=V.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 z({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(ce,{modelValue:W.value,"onUpdate:modelValue":n[1]||=e=>W.value=e,location:`bottom start`},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`}),{default:b(()=>[t(M,null,{default:b(()=>[...n[25]||=[x(`mdi-chevron-down`,-1)]]),_:1})]),_:1},16)]),default:b(()=>[t(ne,{density:`compact`},{default:b(()=>[(s(),i(O,null,ee(5,e=>t(N,{key:e,onClick:t=>Ue(e)},{default:b(()=>[x(h(k.value?.page?.treeControls?.level)+` `+h(e),1)]),_:2},1032,[`onClick`])),64)),t(F),t(N,{onClick:n[0]||=e=>Ve()},{default:b(()=>[x(h(k.value?.page?.treeControls?.expandAll),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`]),t(L,{text:k.value?.page?.treeControls?.collapseAll,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},onClick:n[2]||=e=>He()}),{default:b(()=>[t(M,null,{default:b(()=>[...n[26]||=[x(`mdi-chevron-up`,-1)]]),_:1})]),_:1},16,[`style`])]),_:1},8,[`text`]),t(L,{text:k.value?.intention?.refresh,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,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(M,null,{default:b(()=>[...n[27]||=[x(`mdi-refresh`,-1)]]),_:1})]),_:1},16,[`style`])]),_:1},8,[`text`]),t(L,{text:k.value?.form?.treeSettings?.label?.formName,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},onClick:n[4]||=e=>q.value=!0}),{default:b(()=>[t(M,null,{default:b(()=>[...n[28]||=[x(`mdi-cog`,-1)]]),_:1})]),_:1},16,[`style`])]),_:1},8,[`text`]),t(L,{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=>H.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,H.value]])]),_:1},8,[`text`]),X.value.length>0?(s(),p(ce,{key:0,modelValue:G.value,"onUpdate:modelValue":n[7]||=e=>G.value=e,location:`bottom start`,offset:[0,4]},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-narrow`,style:{color:Y.value}}),{default:b(()=>[t(M,{size:`18`},{default:b(()=>[...n[29]||=[x(`mdi-menu-down`,-1)]]),_:1})]),_:1},16,[`style`])]),default:b(()=>[t(ne,{density:`compact`,class:`p3xr-tc-divider-menu`},{default:b(()=>[(s(!0),i(O,null,ee(X.value,e=>(s(),p(N,{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),B.value>1?(s(),i(`span`,Ce,[t(L,{text:k.value?.page?.treeControls?.pager?.first,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`,disabled:U.value<=1,onClick:n[8]||=e=>Ie(`first`)}),{default:b(()=>[t(M,{size:`18`},{default:b(()=>[...n[30]||=[x(`mdi-skip-previous`,-1)]]),_:1})]),_:1},16,[`disabled`])]),_:1},8,[`text`]),t(L,{text:k.value?.page?.treeControls?.pager?.prev,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},disabled:U.value<=1,onClick:n[9]||=e=>Ie(`prev`)}),{default:b(()=>[t(M,{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=>U.value=e,type:`number`,class:`p3xr-tc-page-input`,style:l({backgroundColor:_e.value,color:ve.value,borderColor:ye.value}),min:`1`,max:B.value,onChange:n[11]||=e=>Le(),onInput:n[12]||=e=>Le()},null,44,we),[[S,U.value,void 0,{number:!0}]]),D(`span`,Te,`/ `+h(B.value),1),t(L,{text:k.value?.page?.treeControls?.pager?.next,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value},disabled:U.value>=B.value,onClick:n[13]||=e=>Ie(`next`)}),{default:b(()=>[t(M,{size:`18`},{default:b(()=>[...n[32]||=[x(`mdi-chevron-right`,-1)]]),_:1})]),_:1},16,[`style`,`disabled`])]),_:1},8,[`text`]),t(L,{text:k.value?.page?.treeControls?.pager?.last,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`,disabled:U.value>=B.value,onClick:n[14]||=e=>Ie(`last`)}),{default:b(()=>[t(M,{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=>V.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,V.value]]),t(L,{text:k.value?.page?.treeControls?.search?.search,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`,onClick:n[17]||=e=>Pe()}),{default:b(()=>[t(M,null,{default:b(()=>[...n[35]||=[x(`mdi-magnify`,-1)]]),_:1})]),_:1},16)]),_:1},8,[`text`]),V.value?(s(),p(L,{key:0,text:k.value?.page?.treeControls?.search?.clear,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn-primary`,onClick:n[18]||=e=>Fe()}),{default:b(()=>[t(M,null,{default:b(()=>[...n[36]||=[x(`mdi-close`,-1)]]),_:1})]),_:1},16)]),_:1},8,[`text`])):a(``,!0),j.value?a(``,!0):(s(),p(L,{key:1,text:k.value?.intention?.addKeyRoot,location:`top`,"open-delay":300},{activator:b(({props:e})=>[t(M,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(ce,{modelValue:K.value,"onUpdate:modelValue":n[23]||=e=>K.value=e,location:`bottom end`},{activator:b(({props:e})=>[t(A,f(e,{icon:``,variant:`text`,class:`p3xr-tc-btn`,style:{color:Y.value}}),{default:b(()=>[t(M,null,{default:b(()=>[...n[38]||=[x(`mdi-dots-vertical`,-1)]]),_:1})]),_:1},16,[`style`])]),default:b(()=>[t(ne,{density:`compact`,style:{"min-width":`280px`}},{default:b(()=>[t(N,{onClick:n[20]||=e=>Ge()},{prepend:b(()=>[t(M,{size:`18`,style:{"margin-right":`8px`}},{default:b(()=>[...n[39]||=[x(`mdi-download`,-1)]]),_:1})]),default:b(()=>[t(I,null,{default:b(()=>[x(h(je.value),1)]),_:1}),Q.value?(s(),p(P,{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}),j.value?a(``,!0):(s(),p(N,{key:0,onClick:n[21]||=e=>Ke()},{prepend:b(()=>[t(M,{size:`18`,style:{"margin-right":`8px`}},{default:b(()=>[...n[40]||=[x(`mdi-upload`,-1)]]),_:1})]),default:b(()=>[t(I,null,{default:b(()=>[x(h(Z(k.value?.intention?.importKeys)),1)]),_:1}),Q.value?(s(),p(P,{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})),j.value?a(``,!0):(s(),i(O,{key:1},[t(F),t(N,{onClick:n[22]||=e=>Je()},{prepend:b(()=>[t(M,{size:`18`,color:`error`,style:{"margin-right":`8px`}},{default:b(()=>[...n[41]||=[x(`mdi-delete-sweep`,-1)]]),_:1})]),default:b(()=>[t(I,null,{default:b(()=>[x(h(Me.value),1)]),_:1}),Q.value?(s(),p(P,{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(de,{open:q.value,onClose:n[24]||=e=>q.value=!1},null,8,[`open`]),t(be,{open:J.value,data:ue.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(J()),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=j(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=ie(),T=re(),k=ae(),A=oe(),{themeKey:j}=w(le()),N=n(()=>v.strings),P=n(()=>S.connection?.readonly===!0),F=n(()=>T.redisTreeDivider),ne=n(()=>d[j.value]),I=n(()=>_[j.value]),R=y(new Set),H=y([]),U=y(null),W=y(0);function ce(){return`p3xr-tree-expanded-${S.connection?.id||`none`}-${S.currentDatabase??0}`}function G(){try{sessionStorage.setItem(ce(),JSON.stringify([...R.value]))}catch{}}function K(){try{let e=sessionStorage.getItem(ce());e&&(R.value=new Set(JSON.parse(e)))}catch{}}async function q(){let e=E(S.paginatedKeys),t=E(S.keysInfo);if(!e||e.length===0){H.value=[];return}let n=t?JSON.parse(JSON.stringify(t)):void 0,r=await je({keys:[...e],divider:F.value,keysInfo:n,savedExpandedNodes:[...R.value].map(e=>({key:e}))});H.value=r.nodes||[],r.expandedNodes?.length>0&&(R.value=new Set(r.expandedNodes.map(e=>e.key||e)))}let J=n(()=>{W.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`&&R.value.has(i.key)&&i.children?.length>0&&t(i.children,r+1)}};return t(H.value,0),e}),ue=fe(n(()=>({count:J.value.length,getScrollElement:()=>U.value,estimateSize:()=>We,overscan:10})));function de(e){let t=new Set(R.value);t.has(e.key)?t.delete(e.key):t.add(e.key),R.value=t,G()}function pe(e){B(`database.key`,{key:e.key})}function me(e,t){return typeof e==`function`?e(t):e||``}async function he(e,t){e.preventDefault(),e.stopPropagation();try{let e=me(N.value?.confirm?.deleteKey,{key:t});await k.confirm({message:e}),await z({action:`key/delete`,payload:{key:t}}),B(`database.statistics`);let n=me(N.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=me(N.value?.confirm?.deleteTree,{key:t.key});await k.confirm({message:e}),await z({action:`key/del-tree`,payload:{key:t.key,redisTreeDivider:F.value}});let n=me(N.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(),se(`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 J.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}W.value++;let r;r=t<=30?1e3:t<=300?5e3:3e4,Se=setTimeout(e,r)};Se=setTimeout(e,1e3)}let we=[];return o(()=>{K(),q(),Ce(),we.push(V(`tree-refresh`,()=>q())),we.push(V(`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(H.value),R.value=e,G()})),we.push(V(`collapse-all`,()=>{R.value=new Set,G()}));for(let e=1;e<=5;e++){let t=e;we.push(V(`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(H.value,0),R.value=e,G()}))}}),c(()=>{Se&&clearTimeout(Se),we.forEach(e=>e())}),C(()=>[S.paginatedKeys,S.keysInfo,F.value,S.page],()=>q(),{deep:!0}),C(()=>[S.connection?.id,S.currentDatabase],()=>{R.value=new Set,K(),q()}),(e,n)=>J.value.length===0?(s(),i(`div`,Fe,h(N.value?.label?.noKeys),1)):(s(),i(`div`,{key:1,ref_key:`parentRef`,ref:U,class:`p3xr-tree-viewport`},[D(`div`,{style:l({height:r(ue).getTotalSize()+`px`,width:`100%`,position:`relative`})},[(s(!0),i(O,null,ee(r(ue).getVirtualItems(),e=>(s(),i(`div`,{key:J.value[e.index].type+`-`+J.value[e.index].key,"data-p3xr-tree-key":J.value[e.index].type===`folder`?``:J.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:J.value[e.index].level*Ge+4+`px`})},[J.value[e.index].expandable?(s(),i(`span`,{key:0,class:m([`p3xr-tree-branch`,{"p3xr-tree-branch-expanded":R.value.has(J.value[e.index].key)}]),style:l({color:ne.value}),onClick:g(t=>de(J.value[e.index]),[`stop`])},null,14,Le)):a(``,!0),D(`span`,{"data-p3xr-tree-key":J.value[e.index].type===`folder`?``:J.value[e.index].key,style:{display:`inline-flex`,"align-items":`center`,height:`28px`}},[t(L,{text:J.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=>J.value[e.index].expandable?de(J.value[e.index]):pe(J.value[e.index])}),[J.value[e.index].type!==`folder`&&J.value[e.index].keysInfo?(s(),i(`i`,{key:0,class:m([u[J.value[e.index].keysInfo.type]||`fas fa-question`,`p3xr-tree-type-icon`]),"aria-hidden":`true`},null,2)):a(``,!0),D(`span`,Be,h(J.value[e.index].label),1),J.value[e.index].type===`folder`?(s(),i(`span`,Ve,h(F.value)+`* (`+h(J.value[e.index].childCount)+`) `,1)):a(``,!0),J.value[e.index].type!==`folder`&&J.value[e.index].keysInfo?.type!==`string`&&J.value[e.index].keysInfo?.type!==`json`&&J.value[e.index].keysInfo?.length?(s(),i(`span`,He,`(`+h(J.value[e.index].keysInfo.length)+`)`,1)):a(``,!0)],16,ze)]),_:2},1032,[`text`]),J.value[e.index].type!==`folder`&&(J.value[e.index]._remaining??0)>0?(s(),p(L,{key:0,text:`TTL: `+J.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":J.value[e.index]._pulsing}],style:{color:J.value[e.index]._ttlColor}}),[t(M,{size:`16`},{default:b(()=>[...n[0]||=[x(`mdi-clock-outline`,-1)]]),_:1})],16)]),_:2},1032,[`text`])):a(``,!0)],8,Re),P.value?a(``,!0):(s(),i(`span`,Ue,[J.value[e.index].type===`folder`?(s(),p(L,{key:0,text:typeof N.value?.confirm?.deleteAllKeys==`function`?N.value.confirm.deleteAllKeys({key:J.value[e.index].key}):N.value?.confirm?.deleteAllKeys,location:`right`,"open-delay":300,offset:36},{activator:b(({props:r})=>[t(M,f({ref_for:!0},r,{class:`p3xr-tree-action-delete`,onClick:t=>ge(t,J.value[e.index])}),{default:b(()=>[...n[1]||=[x(`mdi-delete`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`])):(s(),p(L,{key:1,text:N.value?.intention?.delete,location:`right`,"open-delay":300,offset:36},{activator:b(({props:r})=>[t(M,f({ref_for:!0},r,{class:`p3xr-tree-action-delete`,onClick:t=>he(t,J.value[e.index].key)}),{default:b(()=>[...n[2]||=[x(`mdi-delete`,-1)]]),_:1},16,[`onClick`])]),_:2},1032,[`text`])),t(L,{text:N.value?.intention?.addKey,location:`right`,"open-delay":300,offset:36},{activator:b(({props:r})=>[t(M,f({ref_for:!0},r,{class:`p3xr-tree-action-add`,style:{color:I.value},onClick:t=>Y(t,J.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=j(u({__name:`DatabasePage`,setup(e){q();let r=H(),u=te(),f=ie(),{themeKey:p}=w(le()),{width:ee}=k();n(()=>u.strings);let h=n(()=>ee.value<600),g=oe(),_=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()),A=y(!1),j=y(!1),M=y(),N={enterprise:`#9e9e9e`,light:`#b0bec5`,redis:`#ef9a9a`,dark:`#9e9e9e`,darkNeu:`#90a4ae`,darkoBluo:`#3f51b5`,matrix:`#76ff03`},P=n(()=>N[p.value]),F=n(()=>document.body.classList.contains(`p3xr-theme-dark`)),ne=n(()=>A.value?F.value?`brightness(1.6)`:`brightness(0.7)`:j.value?F.value?`brightness(1.3)`:`brightness(0.85)`:`none`);o(()=>{if(f.currentPage=`database`,f.connection){let e=r.path;(e===`/database`||e===`/database/`)&&B(`database.statistics`)}x.push(V(`key-new`,e=>S(e)))});let I=null;function L(e){I||(I=document.createElement(`style`),I.setAttribute(`data-p3xr-database-drag`,``),document.head.appendChild(I)),I.textContent=`*, *::before, *::after { cursor: ${e} !important; }`}function re(){I?.remove(),I=null}function ae(e){e.preventDefault(),A.value=!0,L(`ew-resize`),document.body.classList.add(`p3xr-not-selectable`)}let R=$;function z(e){if(!A.value)return;let t=M.value;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX-n.left;if(r<$||r>n.width-$){L(`not-allowed`);return}L(`ew-resize`),R=r,E.value=r}function se(){A.value&&(A.value=!1,re(),document.body.classList.remove(`p3xr-not-selectable`),R>=$&&localStorage.setItem(tt,String(R)))}return o(()=>{document.addEventListener(`mousemove`,z),document.addEventListener(`mouseup`,se)}),c(()=>{document.removeEventListener(`mousemove`,z),document.removeEventListener(`mouseup`,se),re(),x.forEach(e=>e())}),(e,n)=>{let r=d(`router-view`);return s(),i(`div`,{class:`p3xr-database-root`,style:l({borderColor:P.value})},[t(me),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:M,class:m([`p3xr-database-desktop`,{"p3xr-not-selectable":A.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:P.value,filter:ne.value}),onMousedown:ae,onMouseenter:n[0]||=e=>j.value=!0,onMouseleave:n[1]||=e=>j.value=!1},null,36),D(`div`,et,[t(r)])])],2))],64)):a(``,!0)]),t(ue,{open:v.value,data:b.value,onClose:C},null,8,[`open`,`data`])],4)}}}),[[`__scopeId`,`data-v-93b6585e`]]);export{nt as default};