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