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 • 36.6 kB
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{B as t,C as n,D as r,E as i,S as a,T as o,V as s,X as c,Y as l,Z as u,c as d,h as f,i as p,k as m,lt as h,t as g,w as _,y as v}from"./Box-DSXpVc0K.js";import{n as y,o as b}from"./i18n.store-ZJjZbIIr.js";import{c as x,d as S,n as C,p as w,r as T,t as E}from"./KeyboardArrowDown-D_jWdzEv.js";import{T as D,n as O,r as k,v as A,w as j}from"./TextField-CfzwSAUF.js";import{a as M,i as N,n as ee,t as te}from"./Delete-XFKHCDuD.js";import{l as ne,n as re,o as ie,t as P}from"./esm-C-0NgAla.js";import{t as F}from"./createSimplePaletteValueFilter-Bt9IjErz.js";import{t as I}from"./Save-BjXEBpbN.js";import{t as ae}from"./DeleteSweep-zecgmp20.js";import{i as oe,n as se,r as ce,t as le}from"./SkipPrevious-D216pu4I.js";import{t as ue}from"./KeyboardArrowUp-xCWEyXLK.js";import{t as L}from"./Refresh-DX5rG8wz.js";import{i as R,n as de,r as z,t as B}from"./redis-state.store-C55NDKx3.js";import{B as fe,P as V,R as H,V as U,_ as pe,b as me,c as W,d as G,g as he,h as ge,i as _e,j as K,k as ve,m as ye,s as be,x as xe,z as q}from"./index-O55eiSgD.js";import{t as Se}from"./TreeSettingsDialog-DlIJjZCZ.js";function Ce(e){return c(`MuiRadio`,e)}var we=l(`MuiRadio`,[`root`,`checked`,`disabled`,`colorPrimary`,`colorSecondary`,`sizeSmall`]),Te=A;function Ee(e){return c(`MuiFormGroup`,e)}l(`MuiFormGroup`,[`root`,`row`,`error`]);var J=e(b(),1),Y=h(),De=e=>{let{classes:t,row:n,error:r}=e;return s({root:[`root`,n&&`row`,r&&`error`]},Ee,t)},X=i(`div`,{name:`MuiFormGroup`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.row&&t.row]}})({display:`flex`,flexDirection:`column`,flexWrap:`wrap`,variants:[{props:{row:!0},style:{flexDirection:`row`}}]}),Oe=J.forwardRef(function(e,t){let n=_({props:e,name:`MuiFormGroup`}),{className:r,row:i=!1,...a}=n,[o]=D({props:n,states:[`error`]}),s={...n,row:i,error:o.error},c=De(s);return(0,Y.jsx)(X,{className:u(c.root,r),ownerState:s,ref:t,...a})}),ke=f((0,Y.jsx)(`path`,{d:`M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z`}),`RadioButtonUnchecked`),Ae=f((0,Y.jsx)(`path`,{d:`M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z`}),`RadioButtonChecked`),je=i(`span`,{name:`MuiRadioButtonIcon`,shouldForwardProp:r})({position:`relative`,display:`flex`}),Me=i(ke,{name:`MuiRadioButtonIcon`})({transform:`scale(1)`}),Ne=i(Ae,{name:`MuiRadioButtonIcon`})(o(({theme:e})=>({left:0,position:`absolute`,transform:`scale(0)`,...v(e,`transform`,{easing:e.transitions.easing.easeIn,duration:e.transitions.duration.shortest}),variants:[{props:{checked:!0},style:{transform:`scale(1)`,...v(e,`transform`,{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.shortest})}}]})));function Pe(e){let{checked:t=!1,classes:n={},fontSize:r}=e,i={...e,checked:t};return(0,Y.jsxs)(je,{className:n.root,ownerState:i,children:[(0,Y.jsx)(Me,{fontSize:r,className:n.background,ownerState:i}),(0,Y.jsx)(Ne,{fontSize:r,className:n.dot,ownerState:i})]})}var Fe=J.createContext(void 0);function Ie(){return J.useContext(Fe)}var Le=e=>{let{classes:t,color:r,size:i}=e,a={root:[`root`,`color${n(r)}`,i!==`medium`&&`size${n(i)}`]};return{...t,...s(a,Ce,t)}},Re=i(M,{shouldForwardProp:e=>r(e)||e===`classes`,name:`MuiRadio`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:r}=e;return[t.root,r.size!==`medium`&&t[`size${n(r.size)}`],t[`color${n(r.color)}`]]}})(o(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.focusVisible&&{[`&.${p.focusVisible} svg:first-of-type`]:{...t,borderRadius:99,...e.focusVisible}},[`&.${we.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{color:`default`,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(F()).map(([t])=>({props:{color:t,disabled:!1,disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(F()).map(([t])=>({props:{color:t,disabled:!1},style:{[`&.${we.checked}`]:{color:(e.vars||e).palette[t].main}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:`transparent`}}}}]})));function ze(e,t){return typeof t==`object`&&t?e===t:String(e)===String(t)}var Be=(0,Y.jsx)(Pe,{checked:!0}),Ve=(0,Y.jsx)(Pe,{}),He=J.forwardRef(function(e,t){let n=_({props:e,name:`MuiRadio`}),{checked:r,checkedIcon:i=Be,color:a=`primary`,icon:o=Ve,name:s,onChange:c,size:l=`medium`,className:f,disabled:p,disableRipple:m=!1,slots:h={},slotProps:g={},...v}=n,y=j(),b=p;y&&b===void 0&&(b=y.disabled),b??=!1;let x={...n,disabled:b,disableRipple:m,color:a,size:l},S=Le(x),C=Ie(),w=r,T=Te(c,C&&C.onChange),E=s;C&&(w===void 0&&(w=ze(C.value,n.value)),E===void 0&&(E=C.name));let D=g.input,[O,k]=d(`root`,{ref:t,elementType:Re,className:u(S.root,f),shouldForwardComponentProp:!0,externalForwardedProps:{slots:h,slotProps:g,...v},getSlotProps:e=>({...e,onChange:(t,...n)=>{e.onChange?.(t,...n),T(t,...n)}}),ownerState:x,additionalProps:{type:`radio`,icon:J.cloneElement(o,{fontSize:o.props.fontSize??l}),checkedIcon:J.cloneElement(i,{fontSize:i.props.fontSize??l}),disabled:b,name:E,checked:w,disableRipple:n.disableRipple,slots:h,slotProps:{input:typeof D==`function`?D(x):D}}});return(0,Y.jsx)(O,{...k,classes:S})});function Ue(e){return c(`MuiRadioGroup`,e)}l(`MuiRadioGroup`,[`root`,`row`,`error`]);var We=e=>{let{classes:t,row:n,error:r}=e;return s({root:[`root`,n&&`row`,r&&`error`]},Ue,t)},Ge=J.forwardRef(function(e,t){let{actions:n,children:r,className:i,defaultValue:o,name:s,onChange:c,value:l,...d}=e,f=J.useRef(null),p=We(e),[m,h]=S({controlled:l,default:o,name:`RadioGroup`});J.useImperativeHandle(n,()=>({focus:()=>{let e=f.current.querySelector(`input:not(:disabled):checked`);e||=f.current.querySelector(`input:not(:disabled)`),e&&e.focus()}}),[]);let g=a(t,f),_=w(s),v=J.useMemo(()=>({name:_,onChange(e){h(e.target.value),c&&c(e,e.target.value)},value:m}),[_,c,h,m]);return(0,Y.jsx)(Fe.Provider,{value:v,children:(0,Y.jsx)(Oe,{role:`radiogroup`,ref:g,className:u(p.root,i),...d,children:r})})}),Ke=f((0,Y.jsx)(`path`,{d:`m7 10 5 5 5-5z`}),`ArrowDropDown`),qe=f((0,Y.jsx)(`path`,{d:`M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`}),`Clear`),Je=f((0,Y.jsx)(`path`,{d:`M19 9h-4V3H9v6H5l7 7zM5 18v2h14v-2z`}),`FileDownload`),Ye=f((0,Y.jsx)(`path`,{d:`M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z`}),`FileUpload`),Xe=f((0,Y.jsx)(`path`,{d:`M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2`}),`MoreVert`),Ze=f((0,Y.jsx)(`path`,{d:`M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5m0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8`}),`RadioButtonChecked`),Qe=f((0,Y.jsx)(`path`,{d:`M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8`}),`RadioButtonUnchecked`),$e=f((0,Y.jsx)(`path`,{d:`m3.5 18.49 6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z`}),`ShowChart`);function et(){let e=y(e=>e.strings),t=z(e=>e.connection),n=z(e=>e.currentDatabase),r=z(e=>e.databaseIndexes),i=z(e=>e.info),{selectDatabase:a,save:o,statistics:s,refresh:c}=W(),l=m(),u=H(`(max-width: 599px)`),d=H(`(min-width: 720px)`),f=t?.readonly===!0,p=t?.cluster===!0,h=!!t,_=i?.keyspaceDatabases||{},v=e=>!!_[e];return h?(0,Y.jsx)(C,{variant:`dense`,disableGutters:!0,sx:{minHeight:`48px !important`,height:48,maxHeight:48,px:`8px`,pl:`16px`,bgcolor:l.p3xr.accordionBg,color:l.p3xr.accordionColor,borderRadius:`4px 4px 0 0`},children:(0,Y.jsxs)(g,{sx:{display:`flex`,alignItems:`center`,width:`100%`,height:48},children:[!u&&(0,Y.jsx)(g,{component:`h2`,onClick:()=>s(),sx:{flex:1,fontSize:20,fontWeight:400,m:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,cursor:`pointer`,textDecoration:`none`,color:`inherit`},children:e?.intention?.main}),!p&&r.length>0&&(0,Y.jsxs)(g,{sx:{display:`flex`,alignItems:`center`,mr:1},children:[(0,Y.jsx)(g,{component:`span`,sx:{fontSize:14,fontWeight:`bold`,mr:`2px`},children:`DB:`}),(0,Y.jsx)(O,{size:`small`,value:n??0,onChange:e=>a(Number(e.target.value)),variant:`standard`,disableUnderline:!0,sx:{width:80,fontSize:14,color:`inherit`,"& .MuiSelect-select":{display:`flex`,alignItems:`center`,gap:`4px`,py:0,background:`transparent`},"& .MuiSelect-icon":{color:`inherit`}},renderValue:e=>(0,Y.jsxs)(g,{sx:{display:`flex`,alignItems:`center`,gap:`4px`},children:[v(e)?(0,Y.jsx)(Ze,{sx:{fontSize:18}}):(0,Y.jsx)(Qe,{sx:{fontSize:18}}),e]}),children:r.map(e=>(0,Y.jsxs)(q,{value:e,sx:{display:`flex`,alignItems:`center`,gap:`4px`},children:[v(e)?(0,Y.jsx)(Ze,{sx:{fontSize:18}}):(0,Y.jsx)(Qe,{sx:{fontSize:18}}),e]},e))})]}),!f&&(d?(0,Y.jsxs)(U,{sx:{color:`inherit`},onClick:()=>o(),children:[(0,Y.jsx)(I,{sx:{mr:`4px`},fontSize:`small`}),(0,Y.jsx)(`span`,{children:e?.intention?.save})]}):(0,Y.jsx)(T,{title:e?.intention?.save,placement:`below`,children:(0,Y.jsx)(x,{sx:{color:`inherit`},onClick:()=>o(),children:(0,Y.jsx)(I,{fontSize:`small`})})})),d?(0,Y.jsxs)(U,{sx:{color:`inherit`},onClick:()=>s(),children:[(0,Y.jsx)($e,{sx:{mr:`4px`},fontSize:`small`}),(0,Y.jsx)(`span`,{children:e?.intention?.statistics})]}):(0,Y.jsx)(T,{title:e?.intention?.statistics,placement:`below`,children:(0,Y.jsx)(x,{sx:{color:`inherit`},onClick:()=>s(),children:(0,Y.jsx)($e,{fontSize:`small`})})}),d?(0,Y.jsxs)(U,{sx:{color:`inherit`},onClick:()=>c(),children:[(0,Y.jsx)(L,{sx:{mr:`4px`},fontSize:`small`}),(0,Y.jsx)(`span`,{children:e?.intention?.refresh})]}):(0,Y.jsx)(T,{title:e?.intention?.refresh,placement:`below`,children:(0,Y.jsx)(x,{sx:{color:`inherit`},onClick:()=>c(),children:(0,Y.jsx)(L,{fontSize:`small`})})})]})}):null}function tt({keys:e}){let t=y(e=>e.strings),n=m(),r=(0,J.useRef)(null),i=P({count:e.length,getScrollElement:()=>r.current,estimateSize:()=>40,overscan:10});return(0,Y.jsx)(g,{ref:r,sx:{height:300,overflow:`auto`},children:(0,Y.jsx)(g,{sx:{height:i.getTotalSize(),width:`100%`,position:`relative`},children:i.getVirtualItems().map(r=>{let i=e[r.index];return(0,Y.jsxs)(g,{sx:{position:`absolute`,top:0,left:0,width:`100%`,height:40,transform:`translateY(${r.start}px)`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:1,px:2,boxSizing:`border-box`,borderBottom:`1px solid`,borderColor:n.palette.mode===`dark`?`rgba(255,255,255,0.05)`:`rgba(0,0,0,0.12)`},children:[(0,Y.jsx)(g,{sx:{flex:1,minWidth:0,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontFamily:`'Roboto Mono', monospace`,fontSize:13},children:i.key}),(0,Y.jsx)(g,{component:`kbd`,sx:{fontFamily:`'Roboto Mono', monospace`,fontSize:11,border:1,borderColor:`divider`,borderRadius:`4px`,px:1,py:.25,bgcolor:`action.hover`,display:`inline-block`},children:t?.redisTypes?.[i.type]??i.type})]},r.index)})})})}function nt({open:e,data:t,onClose:n}){let r=y(e=>e.strings),i=H(`(min-width: 600px)`),[a,o]=(0,J.useState)(`overwrite`);if(!e||!t)return null;let s=t.keys??[];return(0,Y.jsxs)(_e,{open:!0,onClose:()=>n(null),title:r?.intention?.importKeys,actions:(0,Y.jsxs)(Y.Fragment,{children:[i?(0,Y.jsxs)(U,{variant:`contained`,color:`error`,size:`small`,onClick:()=>n(null),children:[(0,Y.jsx)(ve,{fontSize:`small`}),(0,Y.jsx)(`span`,{style:{marginLeft:3},children:r?.intention?.cancel})]}):(0,Y.jsx)(T,{title:r?.intention?.cancel,placement:`top`,children:(0,Y.jsx)(U,{variant:`contained`,color:`error`,size:`small`,onClick:()=>n(null),sx:{minWidth:40,width:40,height:36,p:0},children:(0,Y.jsx)(ve,{fontSize:`small`})})}),(0,Y.jsxs)(U,{variant:`contained`,color:`primary`,size:`small`,onClick:()=>n({pending:!0,keys:s,conflictMode:a}),children:[(0,Y.jsx)(Ye,{fontSize:`small`}),(0,Y.jsx)(`span`,{style:{marginLeft:3},children:r?.intention?.importKeys})]})]}),children:[(0,Y.jsxs)(g,{sx:{mb:2},children:[(0,Y.jsx)(`strong`,{children:r?.label?.importPreview}),(0,Y.jsxs)(g,{component:`span`,sx:{opacity:.7,ml:1},children:[`(`,s.length,`)`]})]}),(0,Y.jsx)(tt,{keys:s}),(0,Y.jsxs)(g,{sx:{mt:2},children:[(0,Y.jsx)(g,{sx:{mb:1,fontWeight:500},children:r?.label?.importConflict}),(0,Y.jsxs)(Ge,{row:!0,value:a,onChange:(e,t)=>o(t),children:[(0,Y.jsx)(N,{value:`overwrite`,control:(0,Y.jsx)(He,{}),label:r?.label?.importOverwrite}),(0,Y.jsx)(N,{value:`skip`,control:(0,Y.jsx)(He,{}),label:r?.label?.importSkip})]})]})]})}var rt={p:0,width:24,height:24,minWidth:24,minHeight:24,borderRadius:`50%`};function it(){let e=y(e=>e.strings),t=z(e=>e.keysRaw),n=z(e=>e.search),r=z(e=>e.page),i=z(e=>e.cfg),a=z(e=>e.connection),o=R(e=>e.redisTreeDivider),s=R(e=>e.searchClientSide);R(e=>e.pageCount);let{toast:c,generalHandleError:l}=pe(),{refresh:u,addKey:d}=W(),f=ye(),p=m(),h={...rt,color:p.p3xr.treecontrolIconColor},_={...rt,color:p.palette.primary.main},v={boxSizing:`border-box`,borderStyle:`solid`,borderWidth:2,margin:1,borderColor:p.p3xr.inputBorderColor,background:p.p3xr.inputBg,color:p.p3xr.inputColor,outline:`none`,fontFamily:`'Roboto Mono', monospace`,fontSize:12},b={...v,padding:0},S={...v,padding:3},C=a?.readonly===!0,w=Array.isArray(t)?t.length:0,D=Array.isArray(i?.treeDividers)?i.treeDividers:[],O=B(),[A,j]=(0,J.useState)(n||``),[M,N]=(0,J.useState)(o||`:`),[te,ne]=(0,J.useState)(r||1),re=(0,J.useRef)(null);(0,J.useEffect)(()=>{j(n||``)},[n]),(0,J.useEffect)(()=>{N(o||`:`)},[o]),(0,J.useEffect)(()=>{ne(r||1)},[r]);let[ie,P]=(0,J.useState)(null),[F,I]=(0,J.useState)(null),[de,V]=(0,J.useState)(null),[H,U]=(0,J.useState)(!1),[he,_e]=(0,J.useState)(!1),[K,ve]=(0,J.useState)(null),be=(0,J.useMemo)(()=>{let t=e?.status?.keyCount;return typeof t==`function`?t({keyCount:w}):String(w)},[e,w]),Ce=(0,J.useMemo)(()=>{let t=e?.page?.treeControls?.search;return s?t?.placeholderClient:t?.placeholderServer},[e,s]),we=(0,J.useCallback)(async()=>{z.setState({search:A,page:1}),s&&z.setState({redisChanged:!0}),await u()},[A,s,u]),Te=(0,J.useCallback)(async()=>{j(``),z.setState({search:``,page:1}),s&&z.setState({redisChanged:!0}),await u()},[s,u]),Ee=(0,J.useCallback)(e=>{N(e),R.getState().setSetting(`p3xr-main-treecontrol-divider`,e),clearTimeout(re.current),re.current=setTimeout(()=>{z.setState({redisChanged:!0})},666)},[]),De=(0,J.useCallback)(e=>{N(e),R.getState().setSetting(`p3xr-main-treecontrol-divider`,e),z.setState({redisChanged:!0}),I(null)},[]),X=(0,J.useCallback)(e=>{let t=z.getState().page??1,n=B(),r=t;switch(e){case`first`:r=1;break;case`prev`:r=Math.max(1,t-1);break;case`next`:r=Math.min(n,t+1);break;case`last`:r=n}ne(r),z.setState({page:r,redisChanged:!0})},[]),Oe=(0,J.useCallback)(e=>{let t=parseInt(e.target.value,10),n=B(),r=isNaN(t)?1:Math.max(1,Math.min(n,t));ne(r),z.setState({page:r,redisChanged:!0})},[]),ke=(0,J.useCallback)(e=>{P(null),setTimeout(()=>ge(`expand-level-`+e))},[]),Ae=(0,J.useCallback)(()=>{ge(`expand-all`),P(null)},[]),je=(0,J.useCallback)(()=>{ge(`collapse-all`)},[]),Me=(0,J.useCallback)(async()=>{if(V(null),!Array.isArray(t)||t.length===0){c(e?.label?.noKeysToExport);return}try{f.show({message:e?.label?.exportProgress});let n=await G({action:`key/export`,payload:{keys:t}}),r=JSON.stringify(n.data,null,2),i=new Blob([r],{type:`application/json`}),o=URL.createObjectURL(i),s=document.createElement(`a`);s.href=o,s.download=`${a?.name||`redis`}-db${z.getState().currentDatabase??0}-export.json`,s.click(),URL.revokeObjectURL(o),c(e?.status?.exportDone)}catch(e){l(e)}finally{f.hide()}},[t,a,e,c,l,f]),Ne=(0,J.useCallback)(()=>{V(null);let t=document.createElement(`input`);t.type=`file`,t.accept=`.json`,t.onchange=()=>{let n=t.files?.[0];if(!n)return;let r=new FileReader;r.onload=t=>{try{let n=JSON.parse(t.target.result);if(!n?.keys||!Array.isArray(n.keys)||n.keys.length===0){c(e?.label?.importNoKeys);return}ve(n),_e(!0)}catch(e){e!=null&&l(e)}},r.readAsText(n)},t.click()},[e,c,l]),Pe=(0,J.useCallback)(async t=>{if(_e(!1),ve(null),t?.pending)try{f.show({message:e?.label?.importProgress});let n=(await G({action:`key/import`,payload:{keys:t.keys,conflictMode:t.conflictMode}})).data,r=e?.status?.importDone,i=typeof r==`function`?r(n):`Import complete: ${n.created} created, ${n.skipped} skipped, ${n.errors} errors`;c(i),await u()}catch(e){e!=null&&l(e)}finally{f.hide()}},[e,c,u,l,f]),Fe=(0,J.useMemo)(()=>{if(A.length>0){let t=e?.intention?.deleteSearchKeys;return typeof t==`function`?t({count:w}):`Delete ${w} matching keys`}let t=e?.intention?.deleteAllKeysMenu;return typeof t==`function`?t({count:w}):`Delete all ${w} keys`},[e,A,w]),Ie=(0,J.useMemo)(()=>{if(A.length>0){let t=e?.intention?.exportSearchResults;return typeof t==`function`?t({count:w}):`Export ${w} results`}let t=e?.intention?.exportAllKeys;return typeof t==`function`?t({count:w}):`Export all ${w} keys`},[e,A,w]),Le=(0,J.useCallback)(async()=>{V(null);let t=R.getState().searchStartsWith,n;n=A.length>0?t?A+`*`:`*`+A+`*`:`*`;try{let t=e?.confirm?.deleteSearchKeys,r=typeof t==`function`?t({count:w,pattern:n}):`Are you sure to delete all keys matching "${n}"? Found ${w} keys.`;await pe.getState().confirm({message:r}),f.show({message:e?.label?.deletingSearchKeys});let i=(await G({action:`key/delete-search-keys`,payload:{match:n}})).deletedCount||0,a=e?.status?.deletedSearchKeys,o=typeof a==`function`?a({count:i}):`Deleted ${i} keys`;c(o),await u()}catch(e){e!=null&&l(e)}finally{f.hide()}},[A,w,e,c,u,l,f]);return(0,Y.jsxs)(g,{sx:{minHeight:24},children:[(0,Y.jsxs)(g,{sx:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,minHeight:31},children:[(0,Y.jsx)(T,{title:e?.intention?.extend,placement:`top`,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:_,onClick:e=>P(e.currentTarget),children:(0,Y.jsx)(E,{fontSize:`small`})})}),(0,Y.jsxs)(k,{anchorEl:ie,open:!!ie,onClose:()=>P(null),children:[[1,2,3,4,5].map(t=>(0,Y.jsxs)(q,{onClick:()=>ke(t),children:[e?.page?.treeControls?.level,` `,t]},t)),(0,Y.jsx)(fe,{}),(0,Y.jsx)(q,{onClick:Ae,children:e?.page?.treeControls?.expandAll})]}),(0,Y.jsx)(T,{title:e?.page?.treeControls?.collapseAll,placement:`top`,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:h,onClick:je,children:(0,Y.jsx)(ue,{fontSize:`small`})})}),(0,Y.jsx)(T,{title:e?.intention?.refresh,placement:`top`,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:h,onClick:()=>u(),children:(0,Y.jsx)(L,{fontSize:`small`})})}),(0,Y.jsx)(T,{title:e?.form?.treeSettings?.label?.formName,placement:`top`,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:h,onClick:()=>U(!0),children:(0,Y.jsx)(me,{fontSize:`small`})})}),(0,Y.jsx)(Se,{open:H,onClose:()=>U(!1)}),(0,Y.jsx)(nt,{open:he,data:K,onClose:Pe}),(0,Y.jsx)(T,{title:e?.form?.treeSettings?.field?.treeSeparator,placement:`top`,enterDelay:300,children:(0,Y.jsx)(`input`,{value:M,onChange:e=>Ee(e.target.value),style:{...b,width:23,fontFamily:`'Roboto Mono', monospace`,fontSize:14,fontWeight:500,textAlign:`center`,verticalAlign:`middle`}})}),D.length>0&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(T,{title:e?.form?.treeSettings?.field?.treeSeparatorSelector,placement:`top`,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:{...h,width:14},onClick:e=>I(e.currentTarget),children:(0,Y.jsx)(Ke,{sx:{fontSize:18}})})}),(0,Y.jsx)(k,{anchorEl:F,open:!!F,onClose:()=>I(null),slotProps:{paper:{sx:{minWidth:`20px !important`,maxWidth:`40px !important`,transform:`translateX(-23px) !important`,marginTop:`4px`}},list:{sx:{p:0}}},children:D.map(e=>(0,Y.jsx)(q,{onClick:()=>De(e),sx:{minHeight:28,height:28,p:`0 !important`,minWidth:0,textAlign:`center`,justifyContent:`center`,fontFamily:`'Roboto Mono', monospace`,fontWeight:500,fontSize:14},children:e===``?`(empty)`:e},e))})]}),O>1?(0,Y.jsx)(T,{title:be,placement:`top`,enterDelay:300,children:(0,Y.jsxs)(g,{component:`span`,sx:{display:`inline-flex`,alignItems:`center`,whiteSpace:`nowrap`,ml:`2px`},children:[(0,Y.jsx)(T,{title:e?.page?.treeControls?.pager?.first,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:_,onClick:()=>X(`first`),children:(0,Y.jsx)(le,{sx:{fontSize:18}})})}),(0,Y.jsx)(T,{title:e?.page?.treeControls?.pager?.prev,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:h,onClick:()=>X(`prev`),children:(0,Y.jsx)(oe,{sx:{fontSize:18}})})}),(0,Y.jsx)(`input`,{type:`number`,step:1,min:1,max:O,value:te,onChange:Oe,className:`p3xr-pager-input`,style:{...b,width:32,height:20,textAlign:`center`,MozAppearance:`textfield`}}),(0,Y.jsxs)(`span`,{style:{fontSize:12,fontFamily:`'Roboto Mono', monospace`},children:[`/ `,O]}),(0,Y.jsx)(T,{title:e?.page?.treeControls?.pager?.next,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:h,onClick:()=>X(`next`),children:(0,Y.jsx)(ce,{sx:{fontSize:18}})})}),(0,Y.jsx)(T,{title:e?.page?.treeControls?.pager?.last,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:_,onClick:()=>X(`last`),children:(0,Y.jsx)(se,{sx:{fontSize:18}})})})]})}):(0,Y.jsxs)(g,{component:`span`,sx:{ml:`auto`,opacity:.5,fontSize:12},children:[be,`\xA0`]})]}),(0,Y.jsxs)(g,{sx:{clear:`both`,p:`5px`,textAlign:`left`,lineHeight:`24px`,display:`flex`,alignItems:`center`,gap:.5},children:[(0,Y.jsx)(`input`,{placeholder:Ce,value:A,onChange:e=>j(e.target.value),onKeyDown:e=>{e.key===`Enter`&&we()},style:{...S,flex:1,minWidth:0,verticalAlign:`middle`}}),(0,Y.jsx)(T,{title:e?.page?.treeControls?.search?.search,placement:`top`,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:_,onClick:we,children:(0,Y.jsx)(xe,{fontSize:`small`})})}),A.length>0&&(0,Y.jsx)(T,{title:e?.page?.treeControls?.search?.clear,placement:`top`,enterDelay:300,children:(0,Y.jsx)(x,{size:`small`,sx:_,onClick:Te,children:(0,Y.jsx)(qe,{fontSize:`small`})})}),!C&&(0,Y.jsx)(T,{title:e?.intention?.addKeyRoot,placement:`top`,enterDelay:300,children:(0,Y.jsx)(ee,{onClick:e=>d({event:e.nativeEvent}),sx:{fontSize:24,cursor:`pointer`,color:p.p3xr.commonWarnColor}})}),(0,Y.jsx)(x,{size:`small`,sx:h,onClick:e=>V(e.currentTarget),children:(0,Y.jsx)(Xe,{fontSize:`small`})}),(0,Y.jsxs)(k,{anchorEl:de,open:!!de,onClose:()=>V(null),children:[(0,Y.jsxs)(q,{onClick:Me,children:[(0,Y.jsx)(Je,{sx:{mr:1},fontSize:`small`}),Ie]}),A.length>0&&(0,Y.jsx)(g,{sx:{px:2,pb:1,fontSize:11,opacity:.5,fontStyle:`italic`,pointerEvents:`none`,lineHeight:1.3},children:e?.label?.exportSearchHint}),!C&&(0,Y.jsxs)(q,{onClick:Ne,children:[(0,Y.jsx)(Ye,{sx:{mr:1},fontSize:`small`}),e?.intention?.importKeys]}),!C&&A.length>0&&(0,Y.jsx)(g,{sx:{px:2,pb:1,fontSize:11,opacity:.5,fontStyle:`italic`,pointerEvents:`none`,lineHeight:1.3},children:e?.label?.importSearchHint}),!C&&(0,Y.jsx)(fe,{}),!C&&(0,Y.jsxs)(q,{onClick:Le,children:[(0,Y.jsx)(ae,{sx:{mr:1,color:`warning.main`},fontSize:`small`}),Fe]}),!C&&A.length>0&&(0,Y.jsx)(g,{sx:{px:2,pb:1,fontSize:11,opacity:.5,fontStyle:`italic`,pointerEvents:`none`,lineHeight:1.3},children:e?.label?.deleteSearchHint})]})]})]})}var Z=null,at=0,ot=new Map;function st(){try{let e=new Blob([`(${lt.toString()})()`],{type:`application/javascript`});Z=new Worker(URL.createObjectURL(e)),Z.onmessage=e=>{let{_requestId:t,...n}=e.data,r=ot.get(t);r&&(ot.delete(t),r(n))},Z.onerror=()=>{Z=null}}catch{Z=null}}st();function ct(e){if(Z){let t=++at;return new Promise(n=>{ot.set(t,n),Z.postMessage({_requestId:t,action:`buildTree`,keys:e.keys,divider:e.divider,keysInfo:e.keysInfo,savedExpandedNodes:e.savedExpandedNodes??[]})})}return Promise.resolve(ut(e))}function lt(){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 ut(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 dt=e(ie()),Q=28,ft=20,pt={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`};function mt({resizeSignal:e}){let t=y(e=>e.strings),n=z(e=>e.keysRaw),r=z(e=>e.keysInfo),i=z(e=>e.page),a=z(e=>e.search),o=z(e=>e.connection),s=R(e=>e.redisTreeDivider),c=m(),{confirm:l,toast:u,generalHandleError:d}=pe(),{refresh:f}=W(),p=o?.readonly===!0,h=s||`:`,_=()=>`p3xr-tree-expanded-${o?.id||`none`}-${z.getState().currentDatabase??0}`,[v,b]=(0,J.useState)(()=>{try{let e=sessionStorage.getItem(_());return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),[x,S]=(0,J.useState)(!1),[C,w]=(0,J.useState)(null),[E,D]=(0,J.useState)([]),[,O]=(0,J.useState)(0),k=(0,J.useRef)(null);(0,J.useEffect)(()=>{try{sessionStorage.setItem(_(),JSON.stringify([...v]))}catch{}},[v]);let A=z(e=>e.currentDatabase);(0,J.useEffect)(()=>{try{let e=sessionStorage.getItem(_());b(e?new Set(JSON.parse(e)):new Set)}catch{b(new Set)}},[o?.id,A]),(0,J.useEffect)(()=>{ct({keys:de(),divider:h,keysInfo:r??{}}).then(({nodes:e})=>{D(e)})},[n,r,h,i,a]);let j=(0,J.useMemo)(()=>{let e=[],t=(n,r)=>{for(let i of n)e.push({label:i.label,key:i.key,level:r,expandable:i.type===`folder`,type:i.type,childCount:i.childCount??0,keysInfo:i.keysInfo,_sourceNode:i}),i.type===`folder`&&v.has(i.key)&&i.children?.length>0&&t(i.children,r+1)};return t(E,0),e},[E,v]),M=P({count:j.length,getScrollElement:()=>k.current,estimateSize:()=>Q,overscan:10});(0,J.useEffect)(()=>{M.measure()},[e]);let N=(0,J.useCallback)(e=>{b(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ie=(0,J.useCallback)(e=>{K(`database.key`,{key:e.key})},[]);(0,J.useEffect)(()=>be(`key-new`,e=>{w({type:`add`,node:e?.node}),S(!0)}),[]);let F=(0,J.useCallback)(async e=>{S(!1),w(null),e?.key&&(await W.getState().refresh({withoutParent:!1,force:!0}),K(`database.key`,{key:e.key}))},[]);(0,J.useEffect)(()=>{let e=[he(`expand-all`,()=>{let e=new Set,t=n=>{for(let r of n)r.type===`folder`&&(e.add(r.key),t(r.children??[]))};t(E),b(e)}),he(`collapse-all`,()=>{b(new Set)}),...[1,2,3,4,5].map(e=>he(`expand-level-${e}`,()=>{let t=new Set,n=(r,i)=>{for(let a of r)a.type===`folder`&&(i<e&&t.add(a.key),n(a.children??[],i+1))};n(E,0),b(t)}))];return()=>e.forEach(e=>e())},[E]),(0,J.useEffect)(()=>{let e,t=()=>{let n=1/0,r=!1,i=z.getState().keysInfoFetchedAt??Date.now(),a=Date.now();for(let e of j){if(e.type===`folder`)continue;let t=e.keysInfo?.ttl;if(!t||t<=0)continue;let o=t-Math.floor((a-i)/1e3);o<=0?r=!0:o<n&&(n=o)}if(r){f(),e=setTimeout(t,3e3);return}O(e=>e+1);let o;o=n<=30?1e3:n<=300?5e3:3e4,e=setTimeout(t,o)};return e=setTimeout(t,1e3),()=>clearTimeout(e)},[j]);let I=(0,J.useCallback)(e=>{let t=e.keysInfo?.ttl;if(!t||t<=0)return-1;let n=z.getState().keysInfoFetchedAt??Date.now(),r=t-Math.floor((Date.now()-n)/1e3);return r>0?r:-1},[]),ae=(0,J.useCallback)(e=>{if(e<=0)return``;let t=R.getState().getHumanizeDurationOptions();return(0,dt.default)(e*1e3,{...t,largest:2,round:!0,delimiter:` `})},[]),oe=(0,J.useCallback)(e=>e<=0?``:e<300?`#f44336`:e<3600?`#ff9800`:`#4caf50`,[]),se=(0,J.useCallback)(e=>e>0&&e<30,[]),ce=(0,J.useCallback)(async(e,n)=>{e.preventDefault(),e.stopPropagation();try{await l({message:t?.confirm?.deleteKey}),await G({action:`key/delete`,payload:{key:n}}),K(`database.statistics`),u(typeof t?.status?.deletedKey==`function`?t.status.deletedKey({key:n}):``),await f()}catch(e){d(e)}},[t,l,u,f,d]),le=(0,J.useCallback)(async(e,n)=>{e.stopPropagation();try{let e=typeof t?.confirm?.deleteAllKeys==`function`?t.confirm.deleteAllKeys({key:n.key}):``;await l({message:e}),await G({action:`key/del-tree`,payload:{key:n.key,redisTreeDivider:h}});let r=typeof t?.status?.treeDeleted==`function`?t.status.treeDeleted({key:n.key}):``;u(r),await f()}catch(e){d(e)}},[t,h,l,u,f,d]),ue=(0,J.useCallback)((e,t)=>{e.stopPropagation(),W.getState().addKey({event:e.nativeEvent,node:t._sourceNode??{key:t.key}})},[]),L=(0,J.useCallback)(e=>e.type!==`folder`&&e.keysInfo?(t?.redisTypes?.[e.keysInfo.type]??e.keysInfo.type)+` - `+e.key:e.key,[t]),B=(0,Y.jsx)(re,{open:x,data:C,onClose:F});return j.length===0?(0,Y.jsxs)(g,{sx:{p:1,opacity:.5,fontSize:13},children:[t?.label?.noKeys,B]}):(0,Y.jsxs)(g,{ref:k,sx:{height:`100%`,width:`100%`,overflow:`auto`},children:[(0,Y.jsx)(g,{sx:{height:M.getTotalSize(),width:`100%`,position:`relative`},children:M.getVirtualItems().map(e=>{let n=j[e.index],r=I(n),i=oe(r),a=se(r);return(0,Y.jsxs)(g,{"data-p3xr-tree-key":n.type===`folder`?``:n.key,sx:{position:`absolute`,top:0,left:0,width:`100%`,height:Q,transform:`translateY(${e.start}px)`,display:`flex`,alignItems:`center`,whiteSpace:`nowrap`,cursor:`default`,pl:`${n.level*ft+4}px`,"&:hover .tree-actions":{visibility:`visible`},"&:hover .p3xr-database-tree-node-label":{backgroundColor:`action.hover`}},children:[n.expandable&&(0,Y.jsx)(g,{component:`span`,onClick:e=>{e.stopPropagation(),N(n.key)},sx:{display:`inline-block`,fontFamily:`'Font Awesome 5 Free'`,fontWeight:900,fontSize:24,lineHeight:`28px`,width:28,textAlign:`center`,mr:`4px`,cursor:`pointer`,color:c.p3xr.treeBranchColor,"&::before":{content:v.has(n.key)?`"\\f07c"`:`"\\f07b"`}}}),(0,Y.jsx)(T,{title:L(n),placement:`right`,enterDelay:500,slotProps:{popper:{sx:{ml:`36px !important`}}},children:(0,Y.jsxs)(g,{component:`label`,className:`p3xr-database-tree-node`,onClick:()=>n.expandable?N(n.key):ie(n),sx:{cursor:`pointer`,display:`inline-flex`,alignItems:`center`,height:Q,whiteSpace:`nowrap`},children:[n.type!==`folder`&&n.keysInfo&&pt[n.keysInfo.type]&&(0,Y.jsx)(`i`,{className:pt[n.keysInfo.type],"aria-hidden":`true`,style:{display:`inline-block`,width:28,textAlign:`center`,marginRight:4,fontSize:14}}),(0,Y.jsx)(`span`,{className:`p3xr-database-tree-node-label`,children:n.label}),n.type===`folder`&&(0,Y.jsxs)(`span`,{style:{opacity:.5,marginLeft:4},children:[h,`* `,(0,Y.jsxs)(`span`,{children:[`(`,n.childCount,`)`]})]}),n.type!==`folder`&&n.keysInfo?.type!==`string`&&n.keysInfo?.type!==`json`&&n.keysInfo&&(0,Y.jsxs)(`span`,{style:{opacity:.5,marginLeft:4},children:[`(`,n.keysInfo.length,`)`]})]})}),n.type!==`folder`&&r>0&&(0,Y.jsx)(T,{title:`TTL: ${ae(r)}`,placement:`right`,enterDelay:300,slotProps:{popper:{sx:{ml:`36px !important`}}},children:(0,Y.jsx)(g,{component:`span`,sx:{display:`inline-flex`,alignItems:`center`,ml:`4px`,animation:a?`p3xr-ttl-pulse 1s infinite`:`none`,"@keyframes p3xr-ttl-pulse":{"0%, 100%":{opacity:.7},"50%":{opacity:1}}},children:(0,Y.jsx)(ne,{sx:{fontSize:16,color:i}})})}),!p&&(0,Y.jsxs)(g,{component:`span`,className:`tree-actions`,sx:{display:`inline-flex`,alignItems:`center`,visibility:`hidden`,height:Q,position:`relative`,top:-1},children:[n.type===`folder`?(0,Y.jsx)(T,{title:typeof t?.confirm?.deleteAllKeys==`function`?t.confirm.deleteAllKeys({key:n.key}):``,placement:`right`,enterDelay:300,slotProps:{popper:{sx:{ml:`36px !important`}}},children:(0,Y.jsx)(te,{onClick:e=>le(e,n),sx:{fontSize:`18px !important`,width:18,height:18,cursor:`pointer`,color:`error.main`}})}):(0,Y.jsx)(T,{title:t?.intention?.delete,placement:`right`,enterDelay:300,slotProps:{popper:{sx:{ml:`36px !important`}}},children:(0,Y.jsx)(te,{onClick:e=>ce(e,n.key),sx:{fontSize:`18px !important`,width:18,height:18,cursor:`pointer`,color:`error.main`}})}),(0,Y.jsx)(T,{title:t?.intention?.addKey,placement:`right`,enterDelay:300,slotProps:{popper:{sx:{ml:`36px !important`}}},children:(0,Y.jsx)(ee,{onClick:e=>ue(e,n),sx:{fontSize:`18px !important`,width:18,height:18,cursor:`pointer`,color:c.p3xr.commonWarnColor}})})]})]},`${n.type}-${n.key}`)})}),B]})}var $=315,ht=`p3xr-database-panel-width`;function gt(){let e=z(e=>e.connection),t=z(e=>e.setCurrentPage),n=m(),r=H(`(max-width: 599px)`),i=!!e,[a,o]=(0,J.useState)(()=>{let e=localStorage.getItem(ht);if(e){let t=parseInt(e,10);if(!isNaN(t)&&t>=$)return t}return $}),[s,c]=(0,J.useState)(!1),[l,u]=(0,J.useState)(!1),d=(0,J.useRef)(null),f=(0,J.useRef)(null),p=(0,J.useCallback)(e=>{let t=f.current;t||(t=document.createElement(`style`),t.setAttribute(`data-p3xr-database-drag`,``),document.head.appendChild(t),f.current=t),t.textContent=`*, *::before, *::after { cursor: ${e} !important; }`},[]),h=(0,J.useCallback)(()=>{f.current?.remove(),f.current=null},[]);(0,J.useEffect)(()=>{t(`database`)},[t]),(0,J.useEffect)(()=>{if(!e)return;let t=location.pathname.replace(/^\/react/,``);(t===`/database`||t===`/database/`)&&K(`database.statistics`)},[e]);let _=(0,J.useCallback)(e=>{e.preventDefault(),c(!0),p(`ew-resize`),document.body.classList.add(`p3xr-not-selectable`)},[p]);(0,J.useEffect)(()=>{if(!s)return;let e=$,t=t=>{let n=d.current;if(!n)return;let r=n.getBoundingClientRect(),i=t.clientX-r.left;if(i<$||i>r.width-$){p(`not-allowed`);return}p(`ew-resize`),e=i,o(i)},n=()=>{c(!1),h(),document.body.classList.remove(`p3xr-not-selectable`),e>=$&&localStorage.setItem(ht,String(e))};return document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n),()=>{document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)}},[s,p,h]);let v=n.palette.mode===`dark`,y=s?v?`brightness(1.6)`:`brightness(0.7)`:l?v?`brightness(1.3)`:`brightness(0.85)`:`none`;return(0,Y.jsxs)(g,{sx:{borderRadius:`4px`,border:`1px solid`,borderColor:n.p3xr?.accordionBg,overflow:`hidden`,flex:1,minHeight:0,display:`flex`,flexDirection:`column`},children:[(0,Y.jsx)(et,{}),(0,Y.jsx)(g,{sx:{flex:1,minHeight:0,bgcolor:`background.paper`,color:`text.primary`,overflow:`hidden`,position:`relative`,display:`flex`,flexDirection:`column`},children:i&&(r?(0,Y.jsxs)(g,{sx:{display:`flex`,flexDirection:`column`,minHeight:`100%`,overflowX:`hidden`},children:[(0,Y.jsx)(g,{sx:{flex:1},children:(0,Y.jsx)(it,{})}),(0,Y.jsx)(g,{sx:{flex:`1 1 auto`,minHeight:100,height:`20vh`,overflowY:`auto`,overflowX:`auto`},children:(0,Y.jsx)(mt,{})}),(0,Y.jsx)(g,{sx:{flex:1},children:(0,Y.jsx)(V,{})})]}):(0,Y.jsx)(g,{ref:d,sx:{display:`flex`,flexDirection:`column`,flex:1,minHeight:0,userSelect:s?`none`:void 0},children:(0,Y.jsxs)(g,{sx:{display:`flex`,flex:1,minHeight:0,overflow:`hidden`},children:[(0,Y.jsxs)(g,{sx:{width:a,minWidth:$,flexShrink:0,display:`flex`,flexDirection:`column`,overflow:`hidden`},children:[(0,Y.jsx)(it,{}),(0,Y.jsx)(g,{sx:{flex:1,minHeight:0,overflow:`hidden`},children:(0,Y.jsx)(mt,{})})]}),(0,Y.jsx)(g,{onMouseDown:_,onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),sx:{width:5,flexShrink:0,cursor:`ew-resize`,bgcolor:n.p3xr?.accordionBg,filter:y,transition:`filter 0.15s ease`,zIndex:8}}),(0,Y.jsx)(g,{sx:{flex:1,overflow:`auto`},children:(0,Y.jsx)(V,{})})]})}))})]})}export{gt as default};