UNPKG

p3x-redis-ui-material

Version:

💿 The p3x-redis-ui-material web interface that connects to the p3x-redis-ui-server via http and socket.io

1 lines 76.9 kB
"use strict";(self.webpackChunkp3x_redis_ui_material=self.webpackChunkp3x_redis_ui_material||[]).push([[908],{48982(e,t,n){n.d(t,{f:()=>T});var s=n(11228),o=n(63924),i=n(30943),r=n(33825),a=n(46256),l=n(90870),c=n(51218),d=n(65209),u=n(34503);function p(e,t){if(1&e&&(c.j41(0,"mat-icon"),c.EFF(1),c.k0s()),2&e){const e=c.XpG(3);c.R7$(),c.JRh(e.mdIcon)}}function h(e,t){if(1&e&&c.nrm(0,"i"),2&e){const e=c.XpG(3);c.HbH(e.faIcon)}}function m(e,t){if(1&e&&(c.j41(0,"button",0),c.nVh(1,p,2,1,"mat-icon"),c.nVh(2,h,1,2,"i",2),c.j41(3,"span"),c.EFF(4),c.k0s()()),2&e){const e=c.XpG(2);c.Y8G("ngClass",e.classes)("disabled",e.disabled),c.R7$(),c.vxM(e.mdIcon?1:-1),c.R7$(),c.vxM(e.faIcon?2:-1),c.R7$(2),c.JRh(e.label)}}function b(e,t){if(1&e&&(c.j41(0,"mat-icon"),c.EFF(1),c.k0s()),2&e){const e=c.XpG(3);c.R7$(),c.JRh(e.mdIcon)}}function g(e,t){if(1&e&&c.nrm(0,"i"),2&e){const e=c.XpG(3);c.HbH(e.faIcon)}}function f(e,t){if(1&e&&(c.j41(0,"button",1),c.nVh(1,b,2,1,"mat-icon"),c.nVh(2,g,1,2,"i",2),c.k0s()),2&e){const e=c.XpG(2);c.Y8G("ngClass",e.classes)("disabled",e.disabled)("matTooltip",e.label)("matTooltipPosition",e.tooltipPosition)("matTooltipDisabled",!e.label),c.BMQ("aria-label",e.label||null),c.R7$(),c.vxM(e.mdIcon?1:-1),c.R7$(),c.vxM(e.faIcon?2:-1)}}function y(e,t){if(1&e&&c.nVh(0,m,5,5,"button",0)(1,f,3,8,"button",1),2&e){const e=c.XpG();c.vxM(e.isWide?0:1)}}function x(e,t){if(1&e&&(c.j41(0,"mat-icon"),c.EFF(1),c.k0s()),2&e){const e=c.XpG(3);c.R7$(),c.JRh(e.mdIcon)}}function k(e,t){if(1&e&&c.nrm(0,"i"),2&e){const e=c.XpG(3);c.HbH(e.faIcon)}}function v(e,t){if(1&e&&(c.j41(0,"button",3),c.nVh(1,x,2,1,"mat-icon"),c.nVh(2,k,1,2,"i",2),c.j41(3,"span"),c.EFF(4),c.k0s()()),2&e){const e=c.XpG(2);c.Y8G("ngClass",e.classes)("disabled",e.disabled),c.R7$(),c.vxM(e.mdIcon?1:-1),c.R7$(),c.vxM(e.faIcon?2:-1),c.R7$(2),c.JRh(e.label)}}function E(e,t){if(1&e&&(c.j41(0,"mat-icon"),c.EFF(1),c.k0s()),2&e){const e=c.XpG(3);c.R7$(),c.JRh(e.mdIcon)}}function C(e,t){if(1&e&&c.nrm(0,"i"),2&e){const e=c.XpG(3);c.HbH(e.faIcon)}}function R(e,t){if(1&e&&(c.j41(0,"button",4),c.nVh(1,E,2,1,"mat-icon"),c.nVh(2,C,1,2,"i",2),c.k0s()),2&e){const e=c.XpG(2);c.Y8G("ngClass",e.classes)("disabled",e.disabled)("matTooltip",e.label)("matTooltipPosition",e.tooltipPosition)("matTooltipDisabled",!e.label),c.BMQ("aria-label",e.label||null),c.R7$(),c.vxM(e.mdIcon?1:-1),c.R7$(),c.vxM(e.faIcon?2:-1)}}function w(e,t){if(1&e&&c.nVh(0,v,5,5,"button",3)(1,R,3,8,"button",4),2&e){const e=c.XpG();c.vxM(e.isWide?0:1)}}class T{breakpointObserver;cdr;label="";mdIcon;faIcon;tooltipDirection="above";classes="";disabled=!1;raised=!1;isWide=!0;constructor(e,t){this.breakpointObserver=e,this.cdr=t,this.breakpointObserver.observe("(min-width: 720px)").subscribe((e=>{this.isWide=e.matches,this.cdr.markForCheck()}))}get tooltipPosition(){switch(this.tooltipDirection){case"top":default:return"above";case"bottom":return"below";case"above":case"below":case"left":case"right":case"before":case"after":return this.tooltipDirection}}static ɵfac=function(e){return new(e||T)(c.rXU(l.Q),c.rXU(s.gRc))};static ɵcmp=c.VBU({type:T,selectors:[["p3xr-ng-button"]],inputs:{label:"label",mdIcon:"mdIcon",faIcon:"faIcon",tooltipDirection:"tooltipDirection",classes:"classes",disabled:"disabled",raised:"raised"},decls:2,vars:1,consts:[["mat-flat-button","",3,"ngClass","disabled"],["mat-mini-fab","",3,"ngClass","disabled","matTooltip","matTooltipPosition","matTooltipDisabled"],[3,"class"],["mat-button","",1,"md-button-dark-hover-fix",3,"ngClass","disabled"],["mat-icon-button","",1,"md-button-dark-hover-fix",3,"ngClass","disabled","matTooltip","matTooltipPosition","matTooltipDisabled"]],template:function(e,t){1&e&&c.nVh(0,y,2,1)(1,w,2,1),2&e&&c.vxM(t.raised?0:1)},dependencies:[o.MD,o.YU,i.Hl,i.$z,i.$0,d.iY,r.m_,r.An,a.uc,u.oV],styles:["[_nghost-%COMP%] { display: inline-block; }\n        [_nghost-%COMP%]   button[_ngcontent-%COMP%] { margin: 0 !important; }"]})}},45658(e,t,n){n.d(t,{p:()=>a});var s=n(24698),o=n(63924),i=n(71016),r=n(51218);class a{type="text";step;min;max;placeholder="";enterPressed=new s.bkB;value="";focused=!1;onChange=()=>{};onTouched=()=>{};onValueChange(e){this.value=e,this.onChange(e)}writeValue(e){this.value=e}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}onEnterPressed(e){e.preventDefault(),setTimeout((()=>this.enterPressed.emit()))}static ɵfac=function(e){return new(e||a)};static ɵcmp=r.VBU({type:a,selectors:[["p3xr-ng-input"]],inputs:{type:"type",step:"step",min:"min",max:"max",placeholder:"placeholder"},outputs:{enterPressed:"enterPressed"},features:[r.Jv_([{provide:i.kq,useExisting:(0,s.Rfq)((()=>a)),multi:!0}])],decls:1,vars:12,consts:[[1,"p3xr-input",3,"ngModelChange","focus","blur","keyup.enter","type","step","min","max","placeholder","ngModel"]],template:function(e,t){1&e&&(r.j41(0,"input",0),r.bIt("ngModelChange",(function(e){return t.onValueChange(e)}))("focus",(function(){return t.focused=!0}))("blur",(function(){return t.focused=!1,t.onTouched()}))("keyup.enter",(function(e){return t.onEnterPressed(e)})),r.k0s()),2&e&&(r.xc7("background","var(--p3xr-input-bg)")("color","var(--p3xr-input-color)")("border-color","var(--p3xr-input-border-color, var(--p3xr-border-color))"),r.Y8G("type",t.type)("step",t.step)("min",t.min)("max",t.max)("placeholder",t.placeholder)("ngModel",t.value))},dependencies:[o.MD,i.YN,i.me,i.BC,i.vS],styles:["[_nghost-%COMP%] {\n            display: inline-block;\n            vertical-align: top;\n        }\n\n        .p3xr-input[_ngcontent-%COMP%] {\n            box-sizing: border-box;\n            width: 100%;\n        }\n\n        .p3xr-input[_ngcontent-%COMP%] {\n            padding: 3px;\n            border-style: solid;\n            border-width: 2px;\n            margin: 1px;\n        }\n\n\n.p3xr-input[_ngcontent-%COMP%]:focus {\n    margin: 0px;\n    border-width: 3px;\n    outline: none;\n}"]})}},40761(e,t,n){n.d(t,{W:()=>r});var s=n(64961),o=n(24583),i=n(24698);class r{dialog;constructor(e){this.dialog=e}async show(e){const{KeyNewOrSetDialogComponent:t}=await Promise.all([n.e(8215),n.e(4363),n.e(1569)]).then(n.bind(n,57749)),s=this.dialog.open(t,(0,o.createDialogPopupSettings)({data:e,disableClose:!0,width:"75%",maxHeight:"90vh"}));return new Promise(((e,t)=>{s.afterClosed().subscribe((n=>{n?e(n):t()}))}))}static ɵfac=function(e){return new(e||r)(i.KVO(s.bZ))};static ɵprov=i.jDH({token:r,factory:r.ɵfac,providedIn:"root"})}},47183(e,t,n){n.d(t,{i:()=>r});var s=n(64961),o=n(24583),i=n(24698);class r{dialog;constructor(e){this.dialog=e}async show(e){const{TreecontrolSettingsDialogComponent:t}=await Promise.all([n.e(3761),n.e(4363),n.e(8763)]).then(n.bind(n,66583)),s=this.dialog.open(t,(0,o.createDialogPopupSettings)({width:"75vw",maxWidth:"75vw",panelClass:["fullscreen-dialog","p3xr-tree-settings-dialog-panel"]}));return new Promise((e=>{s.afterClosed().subscribe((()=>e()))}))}static ɵfac=function(e){return new(e||r)(i.KVO(s.bZ))};static ɵprov=i.jDH({token:r,factory:r.ɵfac,providedIn:"root"})}},19716(e,t,n){n.d(t,{DatabaseComponent:()=>tt});var s=n(24698),o=n(11228),i=n(63924),r=n(52680),a=n(90870),l=n(23232),c=n(66593),d=n(62922),u=n(26265),p=n(71016),h=n(66608),m=n(30943),b=n(33825),g=n(46256),f=n(18215),y=n(90918),x=n(51218),k=n(65209),v=n(34503),E=n(3735),C=n(79481),R=n(12027);function w(e,t){if(1&e){const e=x.RV6();x.j41(0,"h2",2)(1,"a",3),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.goStatistics())})),x.EFF(2),x.k0s()()}if(2&e){let e;const t=x.XpG();x.R7$(2),x.SpI(" ",(null==(e=t.strings().intention)?null:e.main)||"P3X Redis UI"," ")}}function T(e,t){if(1&e&&(x.j41(0,"mat-option",11)(1,"mat-icon",10),x.EFF(2),x.k0s(),x.EFF(3),x.k0s()),2&e){const e=t.$implicit,n=x.XpG(3);x.Y8G("value",e),x.R7$(2),x.JRh(n.hasKeys(e)?"radio_button_checked":"radio_button_unchecked"),x.R7$(),x.SpI(" ",e," ")}}function j(e,t){if(1&e){const e=x.RV6();x.j41(0,"div",4)(1,"span",7),x.EFF(2,"DB:"),x.k0s(),x.j41(3,"mat-form-field",8)(4,"mat-select",9),x.bIt("selectionChange",(function(t){s.eBV(e);const n=x.XpG(2);return s.Njj(n.selectDatabase(t.value))})),x.j41(5,"mat-select-trigger")(6,"mat-icon",10),x.EFF(7),x.k0s(),x.EFF(8),x.k0s(),x.Z7z(9,T,4,3,"mat-option",11,x.fX1),x.k0s()()()}if(2&e){let e;const t=x.XpG(2);x.R7$(4),x.Y8G("value",t.currentDatabase),x.BMQ("aria-label",(null==(e=t.strings().form)||null==e.main||null==e.main.label?null:e.main.label.database)||"Database"),x.R7$(3),x.JRh(t.hasKeys(t.currentDatabase)?"radio_button_checked":"radio_button_unchecked"),x.R7$(),x.SpI(" ",t.currentDatabase," "),x.R7$(),x.Dyx(t.databaseIndexes)}}function M(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",12),x.bIt("click",(function(){s.eBV(e);const t=x.XpG(3);return s.Njj(t.save())})),x.j41(1,"mat-icon"),x.EFF(2,"save"),x.k0s(),x.j41(3,"span"),x.EFF(4),x.k0s()()}if(2&e){let e;const t=x.XpG(3);x.R7$(4),x.JRh((null==(e=t.strings().intention)?null:e.save)||"Save")}}function $(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",13),x.bIt("click",(function(){s.eBV(e);const t=x.XpG(3);return s.Njj(t.save())})),x.j41(1,"mat-icon"),x.EFF(2,"save"),x.k0s()()}if(2&e){let e;const t=x.XpG(3);x.Y8G("matTooltip",(null==(e=t.strings().intention)?null:e.save)||"Save")}}function G(e,t){if(1&e&&x.nVh(0,M,5,1,"button",5)(1,$,3,1,"button",6),2&e){const e=x.XpG(2);x.vxM(e.isWide?0:1)}}function I(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",12),x.bIt("click",(function(){s.eBV(e);const t=x.XpG(2);return s.Njj(t.goStatistics())})),x.j41(1,"mat-icon"),x.EFF(2,"show_chart"),x.k0s(),x.j41(3,"span"),x.EFF(4),x.k0s()()}if(2&e){let e;const t=x.XpG(2);x.R7$(4),x.JRh((null==(e=t.strings().intention)?null:e.statistics)||"Statistics")}}function F(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",13),x.bIt("click",(function(){s.eBV(e);const t=x.XpG(2);return s.Njj(t.goStatistics())})),x.j41(1,"mat-icon"),x.EFF(2,"show_chart"),x.k0s()()}if(2&e){let e;const t=x.XpG(2);x.Y8G("matTooltip",(null==(e=t.strings().intention)?null:e.statistics)||"Statistics")}}function X(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",12),x.bIt("click",(function(){s.eBV(e);const t=x.XpG(2);return s.Njj(t.refresh())})),x.j41(1,"mat-icon"),x.EFF(2,"refresh"),x.k0s(),x.j41(3,"span"),x.EFF(4),x.k0s()()}if(2&e){let e;const t=x.XpG(2);x.R7$(4),x.JRh((null==(e=t.strings().intention)?null:e.refresh)||"Refresh")}}function z(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",13),x.bIt("click",(function(){s.eBV(e);const t=x.XpG(2);return s.Njj(t.refresh())})),x.j41(1,"mat-icon"),x.EFF(2,"refresh"),x.k0s()()}if(2&e){let e;const t=x.XpG(2);x.Y8G("matTooltip",(null==(e=t.strings().intention)?null:e.refresh)||"Refresh")}}function V(e,t){if(1&e&&(x.nVh(0,j,11,4,"div",4),x.nVh(1,G,2,1),x.nVh(2,I,5,1,"button",5)(3,F,3,1,"button",6),x.nVh(4,X,5,1,"button",5)(5,z,3,1,"button",6)),2&e){const e=x.XpG();x.vxM(e.isCluster?-1:0),x.R7$(),x.vxM(e.isReadonly?-1:1),x.R7$(),x.vxM(e.isWide?2:3),x.R7$(2),x.vxM(e.isWide?4:5)}}class D{breakpointObserver;i18n;cmd;socket;cdr;strings;isXs=!1;isWide=!0;hasConnection=!1;isCluster=!1;isReadonly=!1;currentDatabase=0;databaseIndexes=[];keyspaceDatabases={};unsubs=[];constructor(e,t,n,s,o){this.breakpointObserver=e,this.i18n=t,this.cmd=n,this.socket=s,this.cdr=o,this.strings=this.i18n.strings}ngOnInit(){this.syncFromGlobal();const e=this.socket.connections$.subscribe((()=>this.syncFromGlobal())),t=this.socket.redisDisconnected$.subscribe((()=>this.syncFromGlobal())),n=this.socket.licenseUpdate$.subscribe((()=>this.syncFromGlobal())),s=this.socket.stateChanged$.subscribe((()=>this.syncFromGlobal()));this.unsubs.push((()=>{e.unsubscribe(),t.unsubscribe(),n.unsubscribe(),s.unsubscribe()}));const o=this.breakpointObserver.observe("(max-width: 599px)").subscribe((e=>{this.isXs=e.matches,this.cdr.markForCheck()}));this.unsubs.push((()=>o.unsubscribe()));const i=this.breakpointObserver.observe("(min-width: 720px)").subscribe((e=>{this.isWide=e.matches,this.cdr.markForCheck()}));this.unsubs.push((()=>i.unsubscribe()))}ngOnDestroy(){this.unsubs.forEach((e=>e()))}hasKeys(e){return!!this.keyspaceDatabases[e]}selectDatabase(e){this.currentDatabase=e,this.cmd.selectDatabase(e).then((()=>{this.syncFromGlobal()})),setTimeout((()=>this.cdr.detectChanges()))}save(){this.cmd.save()}goStatistics(){this.cmd.statistics()}refresh(){this.cmd.refresh({withoutParent:!1})}syncFromGlobal(){const e=R?.state;this.hasConnection=void 0!==e?.connection,this.isCluster=!0===e?.connection?.cluster,this.isReadonly=!0===e?.connection?.readonly,this.databaseIndexes=e?.databaseIndexes??[],this.keyspaceDatabases=e?.info?.keyspaceDatabases??{},this.currentDatabase=this.cmd.currentDatabase,this.cdr.detectChanges()}static ɵfac=function(e){return new(e||D)(x.rXU(a.Q),x.rXU(l.W),x.rXU(c.y),x.rXU(u.L),x.rXU(o.gRc))};static ɵcmp=x.VBU({type:D,selectors:[["p3xr-database-header"]],decls:4,vars:2,consts:[["id","p3xr-database-header",1,"p3xr-accordion-toolbar","p3xr-database-header-toolbar"],[1,"p3xr-database-header-tools"],[1,"p3xr-database-header-title"],[1,"p3xr-database-header-link",3,"click"],[1,"p3xr-database-header-db-selector"],["mat-button",""],["mat-icon-button","","matTooltipPosition","below",3,"matTooltip"],[1,"p3xr-database-header-db-label"],["subscriptSizing","dynamic",1,"p3xr-database-header-db-field"],["panelClass","p3xr-database-db-select-container",3,"selectionChange","value"],[1,"p3xr-db-indicator"],[3,"value"],["mat-button","",3,"click"],["mat-icon-button","","matTooltipPosition","below",3,"click","matTooltip"]],template:function(e,t){1&e&&(x.j41(0,"mat-toolbar",0)(1,"div",1),x.nVh(2,w,3,1,"h2",2),x.nVh(3,V,6,4),x.k0s()()),2&e&&(x.R7$(2),x.vxM(t.isXs?-1:2),x.R7$(),x.vxM(t.hasConnection?3:-1))},dependencies:[i.MD,p.YN,h.s5,h.KQ,m.Hl,m.$z,k.iY,b.m_,b.An,g.uc,v.oV,f.Ve,E.rl,f.VO,f.$2,C.wT,y.RG],styles:["[_nghost-%COMP%] { display: block; }\n        .p3xr-database-header-toolbar[_ngcontent-%COMP%] {\n            height: 48px;\n            min-height: 48px;\n            max-height: 48px;\n            padding: 0 8px 0 16px;\n            border-radius: 4px 4px 0 0;\n        }\n        .p3xr-database-header-tools[_ngcontent-%COMP%] {\n            display: flex;\n            align-items: center;\n            width: 100%;\n            height: 48px;\n        }\n        .p3xr-database-header-title[_ngcontent-%COMP%] {\n            flex: 1;\n            font-size: 20px;\n            font-weight: 400;\n            margin: 0;\n            overflow: hidden;\n            text-overflow: ellipsis;\n            white-space: nowrap;\n        }\n        .p3xr-database-header-link[_ngcontent-%COMP%] {\n            cursor: pointer;\n            text-decoration: none;\n            color: inherit;\n        }\n        .p3xr-database-header-db-selector[_ngcontent-%COMP%] {\n            display: flex;\n            align-items: center;\n            margin: 0;\n            padding: 0;\n        }\n        .p3xr-database-header-db-label[_ngcontent-%COMP%] {\n            font-size: 14px;\n            font-weight: bold;\n            margin-right: 2px;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%] {\n            width: 80px;\n            position: relative;\n            top: 1px;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     .mdc-text-field {\n            background: transparent !important;\n            padding: 0 8px !important;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     .mat-mdc-form-field-subscript-wrapper {\n            display: none;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     .mdc-line-ripple {\n            display: none;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     .mat-mdc-select-arrow-wrapper {\n            padding-left: 0;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     .mat-mdc-select-trigger {\n            display: flex;\n            align-items: center;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     .mat-mdc-select-value {\n            display: flex;\n            align-items: center;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     .mat-mdc-select-value-text {\n            display: flex;\n            align-items: center;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     mat-select-trigger {\n            display: flex;\n            align-items: center;\n            gap: 4px;\n        }\n        .p3xr-database-header-db-field[_ngcontent-%COMP%]     mat-select-trigger .p3xr-db-indicator {\n            font-size: 18px !important;\n            width: 18px !important;\n            height: 18px !important;\n            line-height: 18px !important;\n            overflow: hidden;\n            flex-shrink: 0;\n        }"],changeDetection:0})}var S=n(47652),P=n(774),O=n(30372),N=n(90756),B=n(45658),A=n(77385),L=n(47183),H=n(64961),_=n(24583);class U{dialog;constructor(e){this.dialog=e}async show(e){const{KeyImportDialogComponent:t}=await n.e(7437).then(n.bind(n,3625)),s=this.dialog.open(t,(0,_.createDialogPopupSettings)({data:e.data,disableClose:!0,width:"700px",maxWidth:"95vw",maxHeight:"90vh"}));return new Promise(((e,t)=>{s.afterClosed().subscribe((n=>{n?e(n):t()}))}))}static ɵfac=function(e){return new(e||U)(s.KVO(H.bZ))};static ɵprov=s.jDH({token:U,factory:U.ɵfac,providedIn:"root"})}var Y=n(12027);function K(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",20),x.bIt("click",(function(){const t=s.eBV(e).$implicit,n=x.XpG(2);return s.Njj(n.setDivider(t))})),x.j41(1,"span",21),x.EFF(2),x.k0s()()}if(2&e){const e=t.$implicit;x.R7$(2),x.JRh(""===e?"(empty)":e)}}function q(e,t){if(1&e&&(x.j41(0,"button",17)(1,"span",4),x.EFF(2,"arrow_drop_down"),x.k0s()(),x.j41(3,"mat-menu",18,1),x.Z7z(5,K,3,1,"button",19,x.fX1),x.k0s()),2&e){let e;const t=x.sdS(4),n=x.XpG();x.Y8G("matMenuTriggerFor",t)("matTooltip",(null==(e=n.strings().form)||null==e.treeSettings||null==e.treeSettings.field?null:e.treeSettings.field.treeSeparatorSelector)||"Tree separator selector"),x.R7$(5),x.Dyx(n.treeDividers)}}function J(e,t){if(1&e){const e=x.RV6();x.j41(0,"span",8)(1,"button",22),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.pageAction("first"))})),x.j41(2,"span",4),x.EFF(3,"skip_previous"),x.k0s()(),x.j41(4,"button",23),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.pageAction("prev"))})),x.j41(5,"span",4),x.EFF(6,"keyboard_arrow_left"),x.k0s()(),x.j41(7,"p3xr-ng-input",24),x.bIt("ngModelChange",(function(t){s.eBV(e);const n=x.XpG();return s.Njj(n.onPageInputChange(t))})),x.k0s(),x.j41(8,"span",25),x.EFF(9),x.k0s(),x.j41(10,"button",23),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.pageAction("next"))})),x.j41(11,"span",4),x.EFF(12,"keyboard_arrow_right"),x.k0s()(),x.j41(13,"button",22),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.pageAction("last"))})),x.j41(14,"span",4),x.EFF(15,"skip_next"),x.k0s()()()}if(2&e){let e,t,n,s;const o=x.XpG();x.Y8G("matTooltip",o.keyCountText()),x.R7$(),x.Y8G("matTooltip",(null==(e=o.strings().page)||null==e.treeControls||null==e.treeControls.pager?null:e.treeControls.pager.first)||"First"),x.R7$(3),x.Y8G("matTooltip",(null==(t=o.strings().page)||null==t.treeControls||null==t.treeControls.pager?null:t.treeControls.pager.prev)||"Previous"),x.R7$(3),x.Y8G("max",""+o.pages)("ngModel",o.page),x.R7$(2),x.SpI("/ ",o.pages),x.R7$(),x.Y8G("matTooltip",(null==(n=o.strings().page)||null==n.treeControls||null==n.treeControls.pager?null:n.treeControls.pager.next)||"Next"),x.R7$(3),x.Y8G("matTooltip",(null==(s=o.strings().page)||null==s.treeControls||null==s.treeControls.pager?null:s.treeControls.pager.last)||"Last")}}function W(e,t){if(1&e&&(x.j41(0,"span",9),x.EFF(1),x.k0s()),2&e){const e=x.XpG();x.R7$(),x.SpI(" ",e.keyCountText(),"  ")}}function Z(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",3),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.clearSearch())})),x.j41(1,"span",4),x.EFF(2,"clear"),x.k0s()()}if(2&e){let e;const t=x.XpG();x.Y8G("matTooltip",(null==(e=t.strings().page)||null==e.treeControls||null==e.treeControls.search?null:e.treeControls.search.clear)||"Clear")}}function Q(e,t){if(1&e){const e=x.RV6();x.j41(0,"span",26),x.bIt("click",(function(t){s.eBV(e);const n=x.XpG();return s.Njj(n.addRootKey(t))})),x.EFF(1,"add"),x.k0s()}if(2&e){let e;const t=x.XpG();x.Y8G("matTooltip",(null==(e=t.strings().intention)?null:e.addKeyRoot)||"Add key")}}function ee(e,t){if(1&e&&(x.j41(0,"div",16),x.EFF(1),x.k0s()),2&e){let e;const t=x.XpG();x.R7$(),x.JRh((null==(e=t.strings().label)?null:e.exportSearchHint)||"Exporting only keys matching current search")}}function te(e,t){if(1&e&&(x.j41(0,"div",16),x.EFF(1),x.k0s()),2&e){let e;const t=x.XpG(2);x.R7$(),x.JRh((null==(e=t.strings().label)?null:e.importSearchHint)||"Import applies to the full database, not just search results")}}function ne(e,t){if(1&e){const e=x.RV6();x.j41(0,"button",15),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.importKeys())})),x.j41(1,"mat-icon"),x.EFF(2,"file_upload"),x.k0s(),x.j41(3,"span"),x.EFF(4),x.k0s()(),x.nVh(5,te,2,1,"div",16)}if(2&e){let e;const t=x.XpG();x.R7$(4),x.JRh((null==(e=t.strings().intention)?null:e.importKeys)||"Import keys"),x.R7$(),x.vxM(t.search.length>0?5:-1)}}n(4199);class se{ngZone;elementRef;i18n;common;cmd;treeSettingsDialog;keyImportDialog;socket;cdr;p3xrMainRef;page=1;pages=0;search="";keyCount=0;redisTreeDivider=":";treeDividers=[];searchClientSide=!1;isReadonly=!1;strings;unsubs=[];dividerChange$=new O.B;constructor(e,t,n,s,o,i,r,a,l){this.ngZone=e,this.elementRef=t,this.i18n=n,this.common=s,this.cmd=o,this.treeSettingsDialog=i,this.keyImportDialog=r,this.socket=a,this.cdr=l,this.strings=this.i18n.strings}ngOnInit(){this.syncFromGlobal(),this.search&&this.onSearchChange();const e=this.dividerChange$.pipe((0,N.B)(666)).subscribe((e=>{this.applyDivider(e)}));this.unsubs.push((()=>e.unsubscribe()));const t=this.cmd.treeRefresh$.subscribe((()=>{this.ngZone.run((()=>{this.syncFromGlobal(),this.requestViewRefresh()}))}));this.unsubs.push((()=>t.unsubscribe()))}ngOnDestroy(){this.unsubs.forEach((e=>e()))}keyCountText(){const e=this.strings()?.status?.keyCount;return"function"==typeof e?e({keyCount:this.keyCount}):String(this.keyCount)}searchPlaceholder(){const e=this.strings()?.page?.treeControls?.search;return this.searchClientSide?e?.placeholderClient||"Search keys":e?.placeholderServer||"Search keys on server"}treeExpandAll(){this.common.treeExpandAll$.next()}treeCollapseAll(){this.common.treeCollapseAll$.next()}async refreshTree(){await this.cmd.refresh(),this.ngZone.run((()=>{this.syncFromGlobal(),this.requestViewRefresh()}))}async openTreeSettingDialog(e){await this.treeSettingsDialog.show({$event:e}),this.syncFromGlobal(),this.requestViewRefresh()}onDividerInputChange(e){this.redisTreeDivider=e??"",Y?.settings&&(Y.settings.redisTreeDivider=this.redisTreeDivider),this.dividerChange$.next(this.redisTreeDivider)}setDivider(e){this.redisTreeDivider=e??"",this.applyDivider(this.redisTreeDivider)}applyDivider(e){Y?.settings&&(Y.settings.redisTreeDivider=e),Y?.state&&(Y.state.redisChanged=!0),this.cmd.treeRefresh$.next(),this.syncFromGlobal()}pageAction(e){const t=Y?.state;if(t){switch(e){case"prev":t.page-1>=1&&(t.page=t.page-1);break;case"next":t.page+1<=t.pages&&(t.page=t.page+1);break;case"last":t.page=t.pages;break;case"first":t.page=1}this.syncFromGlobal()}}onPageInputChange(e){const t=parseInt(e,10),n=Y?.state;n&&(n.page=isNaN(t)?1:t,this.pageChange())}pageChange(){const e=Y?.state;e&&(e.page<1?e.page=1:e.page>e.pages&&(e.page=e.pages),this.syncFromGlobal())}onSearchModelChange(e){this.search=e??"",Y?.state&&(Y.state.search=this.search)}async onSearchChange(){Y?.state&&(Y.state.search=this.search,Y.state.page=1,Y.settings?.searchClientSide&&(Y.state.redisChanged=!0),await this.cmd.refresh(),this.syncFromGlobal(),this.requestViewRefresh(),this.socket.tick())}async clearSearch(){this.search="",await this.onSearchChange()}async exportKeys(){const e=Y?.state?.keysRaw;if(Array.isArray(e)&&0!==e.length)try{Y?.ui?.overlay?.show({message:this.strings().label?.exportProgress||"Exporting keys..."});const t=await this.socket.request({action:"key-export",payload:{keys:e}}),n=JSON.stringify(t.data,null,2),s=new Blob([n],{type:"application/json"}),o=URL.createObjectURL(s),i=document.createElement("a");i.href=o;const r=Y?.state?.connection?.name||"redis",a=Y?.state?.currentDatabase??0;i.download=`${r}-db${a}-export.json`,i.click(),URL.revokeObjectURL(o),this.common.toast({message:this.strings().status?.exportDone||"Export complete"})}catch(e){this.common.generalHandleError(e)}finally{Y?.ui?.overlay?.hide()}else this.common.toast({message:this.strings().label?.noKeysToExport||"No keys to export"})}async importKeys(){const e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=async()=>{const t=e.files?.[0];if(!t)return;const n=new FileReader;n.onerror=()=>this.common.generalHandleError(n.error),n.onload=async e=>{try{const t=JSON.parse(e.target.result);if(!t?.keys||!Array.isArray(t.keys)||0===t.keys.length)return void this.common.toast({message:this.strings().label?.importNoKeys||"No keys found in file"});const n=await this.keyImportDialog.show({data:t});if(n?.pending){try{Y?.ui?.overlay?.show({message:this.strings().label?.importProgress||"Importing keys..."});const e=(await this.socket.request({action:"key-import",payload:{keys:n.keys,conflictMode:n.conflictMode}})).data,t=this.strings().status?.importDone,s="function"==typeof t?t(e):`Import complete: ${e.created} created, ${e.skipped} skipped, ${e.errors} errors`;this.common.toast({message:s})}finally{Y?.ui?.overlay?.hide()}await this.cmd.refresh(),this.ngZone.run((()=>{this.syncFromGlobal(),this.requestViewRefresh()}))}}catch(e){null!=e&&this.common.generalHandleError(e)}},n.readAsText(t)},e.click()}searchInputClass(){const e=this.search.length>0;return this.isReadonly?e?"search-readonly-clear":"search-readonly":e?"search-full-clear":"search-full"}exportLabel(){const e=this.strings();if(this.search.length>0){const t=e.intention?.exportSearchResults;return"function"==typeof t?t({count:this.keyCount}):`Export ${this.keyCount} results`}const t=e.intention?.exportAllKeys;return"function"==typeof t?t({count:this.keyCount}):`Export all ${this.keyCount} keys`}addRootKey(e){this.cmd.addKey({event:e})}syncFromGlobal(){this.page=Number(Y?.state?.page??1),this.pages=Number(Y?.state?.pages??0),this.search=Y?.state?.search??"",this.keyCount=Array.isArray(Y?.state?.keysRaw)?Y.state.keysRaw.length:0,this.redisTreeDivider=Y?.settings?.redisTreeDivider??":",this.treeDividers=Array.isArray(Y?.state?.cfg?.treeDividers)?Y.state.cfg.treeDividers.slice():[],this.searchClientSide=!!Y?.settings?.searchClientSide,this.isReadonly=!0===Y?.state?.connection?.readonly}requestViewRefresh(){setTimeout((()=>{try{this.cdr.detectChanges()}catch{}}))}static ɵfac=function(e){return new(e||se)(x.rXU(s.SKi),x.rXU(x.aKT),x.rXU(l.W),x.rXU(A.h),x.rXU(c.y),x.rXU(L.i),x.rXU(U),x.rXU(u.L),x.rXU(o.gRc))};static ɵcmp=x.VBU({type:se,selectors:[["p3xr-database-treecontrol-controls"]],inputs:{p3xrMainRef:"p3xrMainRef"},decls:36,vars:20,consts:[["actionsMenu","matMenu"],["dividerMenu","matMenu"],[1,"p3xr-database-treecontrol-controls-leading"],["type","button","matTooltipPosition","below",1,"p3xr-database-treecontrol-icon-button","p3xr-database-treecontrol-icon-primary",3,"click","matTooltip"],["aria-hidden","true",1,"material-icons"],["type","button","id","p3xr-database-treecontrol-controls-collapse-all","matTooltipPosition","below",1,"p3xr-database-treecontrol-icon-button",3,"click","matTooltip"],["type","button","matTooltipPosition","below",1,"p3xr-database-treecontrol-icon-button",3,"click","matTooltip"],["id","p3xr-database-treecontrol-controls-tree-divider-input","matTooltipPosition","below",1,"p3xr-database-treecontrol-divider-input",3,"ngModelChange","ngModel","matTooltip"],[1,"p3xr-database-treecontrol-controls-pager",3,"matTooltip"],[1,"p3xr-database-treecontrol-controls-keycount"],[1,"p3xr-database-treecontrol-controls-search"],["matTooltipPosition","right","matTooltipClass","p3xr-tree-node-tooltip",3,"ngModelChange","enterPressed","placeholder","ngModel","matTooltip"],["type","button","matTooltipPosition","below",1,"p3xr-database-treecontrol-icon-button","p3xr-database-treecontrol-icon-primary",3,"matTooltip"],["matTooltipPosition","below",1,"material-icons","p3xr-database-treecontrol-root-add",3,"matTooltip"],["type","button",1,"p3xr-database-treecontrol-icon-button",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],[1,"p3xr-menu-hint"],["type","button","matTooltipPosition","below",1,"p3xr-database-treecontrol-divider-trigger",3,"matMenuTriggerFor","matTooltip"],[1,"p3xr-divider-menu"],["mat-menu-item","","type","button"],["mat-menu-item","","type","button",3,"click"],[1,"p3xr-database-treecontrol-divider-menu-label"],["type","button",1,"p3xr-database-treecontrol-icon-button","p3xr-database-treecontrol-icon-primary",3,"click","matTooltip"],["type","button",1,"p3xr-database-treecontrol-icon-button",3,"click","matTooltip"],["type","number","step","1","min","1",1,"p3xr-database-treecontrol-page-input",3,"ngModelChange","max","ngModel"],[1,"p3xr-database-treecontrol-pager-text"],["matTooltipPosition","below",1,"material-icons","p3xr-database-treecontrol-root-add",3,"click","matTooltip"]],template:function(e,t){if(1&e&&(x.j41(0,"div",2)(1,"button",3),x.bIt("click",(function(){return t.treeExpandAll()})),x.j41(2,"span",4),x.EFF(3,"keyboard_arrow_down"),x.k0s()(),x.j41(4,"button",5),x.bIt("click",(function(){return t.treeCollapseAll()})),x.j41(5,"span",4),x.EFF(6,"keyboard_arrow_up"),x.k0s()(),x.j41(7,"button",6),x.bIt("click",(function(){return t.refreshTree()})),x.j41(8,"span",4),x.EFF(9,"refresh"),x.k0s()(),x.j41(10,"button",6),x.bIt("click",(function(e){return t.openTreeSettingDialog(e)})),x.j41(11,"span",4),x.EFF(12,"settings"),x.k0s()(),x.j41(13,"p3xr-ng-input",7),x.bIt("ngModelChange",(function(e){return t.onDividerInputChange(e)})),x.k0s(),x.nVh(14,q,7,2),x.k0s(),x.nVh(15,J,16,8,"span",8)(16,W,2,1,"span",9),x.j41(17,"div",10)(18,"p3xr-ng-input",11),x.bIt("ngModelChange",(function(e){return t.onSearchModelChange(e)}))("enterPressed",(function(){return t.onSearchChange()})),x.k0s(),x.j41(19,"button",3),x.bIt("click",(function(){return t.onSearchChange()})),x.j41(20,"span",4),x.EFF(21,"search"),x.k0s()(),x.nVh(22,Z,3,1,"button",12),x.nVh(23,Q,2,1,"span",13),x.j41(24,"button",14)(25,"span",4),x.EFF(26,"more_vert"),x.k0s()(),x.j41(27,"mat-menu",null,0)(29,"button",15),x.bIt("click",(function(){return t.exportKeys()})),x.j41(30,"mat-icon"),x.EFF(31,"file_download"),x.k0s(),x.j41(32,"span"),x.EFF(33),x.k0s()(),x.nVh(34,ee,2,1,"div",16),x.nVh(35,ne,6,2),x.k0s()()),2&e){let e,n,s,o,i,r,a;const l=x.sdS(28);x.R7$(),x.Y8G("matTooltip",(null==(e=t.strings().page)||null==e.treeControls?null:e.treeControls.expandAll)||"Expand all"),x.R7$(3),x.Y8G("matTooltip",(null==(n=t.strings().page)||null==n.treeControls?null:n.treeControls.collapseAll)||"Collapse all"),x.R7$(3),x.Y8G("matTooltip",(null==(s=t.strings().intention)?null:s.refresh)||"Refresh"),x.R7$(3),x.Y8G("matTooltip",(null==(o=t.strings().form)||null==o.treeSettings||null==o.treeSettings.label?null:o.treeSettings.label.formName)||"Tree settings"),x.R7$(3),x.Y8G("ngModel",t.redisTreeDivider)("matTooltip",(null==(i=t.strings().form)||null==i.treeSettings||null==i.treeSettings.field?null:i.treeSettings.field.treeSeparator)||"Tree separator"),x.R7$(),x.vxM(t.treeDividers.length>0?14:-1),x.R7$(),x.vxM(t.pages>1?15:16),x.R7$(3),x.HbH("p3xr-database-treecontrol-search-input "+t.searchInputClass()),x.Y8G("placeholder",t.searchPlaceholder())("ngModel",t.search)("matTooltip",(null==(r=t.strings().page)||null==r.treeControls||null==r.treeControls.search?null:r.treeControls.search.infoDetails)||"Search"),x.R7$(),x.Y8G("matTooltip",(null==(a=t.strings().page)||null==a.treeControls||null==a.treeControls.search?null:a.treeControls.search.search)||"Search"),x.R7$(3),x.vxM(t.search.length>0?22:-1),x.R7$(),x.vxM(t.isReadonly?-1:23),x.R7$(),x.Y8G("matMenuTriggerFor",l),x.R7$(9),x.JRh(t.exportLabel()),x.R7$(),x.vxM(t.search.length>0?34:-1),x.R7$(),x.vxM(t.isReadonly?-1:35)}},dependencies:[i.MD,p.YN,p.BC,p.vS,g.uc,v.oV,S.Cn,S.kk,S.fb,S.Cp,b.m_,b.An,P.w,B.p],encapsulation:2,changeDetection:0})}var oe=n(197),ie=n(95477),re=n(40761),ae=n(32766),le=n(12027);function ce(e,t){if(1&e){const e=x.RV6();x.j41(0,"span",9),x.bIt("click",(function(t){s.eBV(e);const n=x.XpG().$implicit;return x.XpG(2).toggleExpand(n),s.Njj(t.stopPropagation())})),x.k0s()}if(2&e){const e=x.XpG().$implicit,t=x.XpG(2);x.AVh("tree-expanded",t.isExpanded(e))("tree-collapsed",!t.isExpanded(e))}}function de(e,t){1&e&&x.nrm(0,"i",10)}function ue(e,t){1&e&&x.nrm(0,"i",11)}function pe(e,t){1&e&&x.nrm(0,"i",12)}function he(e,t){1&e&&x.nrm(0,"i",13)}function me(e,t){1&e&&x.nrm(0,"i",14)}function be(e,t){1&e&&x.nrm(0,"i",15)}function ge(e,t){1&e&&x.nrm(0,"i",16)}function fe(e,t){if(1&e&&x.nVh(0,de,1,0,"i",10)(1,ue,1,0,"i",11)(2,pe,1,0,"i",12)(3,he,1,0,"i",13)(4,me,1,0,"i",14)(5,be,1,0,"i",15)(6,ge,1,0,"i",16),2&e){let e;const t=x.XpG().$implicit;x.vxM("hash"===(e=t.keysInfo.type)?0:"list"===e?1:"set"===e?2:"string"===e?3:"zset"===e?4:"stream"===e?5:"json"===e?6:-1)}}function ye(e,t){if(1&e&&(x.j41(0,"span",7),x.EFF(1),x.j41(2,"span",17),x.EFF(3),x.k0s()()),2&e){const e=x.XpG().$implicit,t=x.XpG(2);x.R7$(),x.SpI("",t.divider,"* "),x.R7$(2),x.SpI("(",e.childCount,")")}}function xe(e,t){if(1&e&&(x.j41(0,"span",7),x.EFF(1),x.k0s()),2&e){const e=x.XpG().$implicit;x.R7$(),x.SpI("(",e.keysInfo.length,")")}}function ke(e,t){if(1&e){const e=x.RV6();x.j41(0,"span",18)(1,"span",20),x.bIt("click",(function(t){s.eBV(e);const n=x.XpG(2).$implicit,o=x.XpG(2);return s.Njj(o.deleteTree(t,n))})),x.EFF(2,"close"),x.k0s()()}if(2&e){const e=x.XpG(2).$implicit,t=x.XpG(2);x.Y8G("matTooltip",t.deleteTreeTooltip(e))}}function ve(e,t){if(1&e){const e=x.RV6();x.j41(0,"span",18)(1,"span",20),x.bIt("click",(function(t){s.eBV(e);const n=x.XpG(2).$implicit,o=x.XpG(2);return s.Njj(o.deleteKey(t,n.key))})),x.EFF(2,"close"),x.k0s()()}if(2&e){let e;const t=x.XpG(4);x.Y8G("matTooltip",null==(e=t.strings())||null==e.intention?null:e.intention.delete)}}function Ee(e,t){if(1&e){const e=x.RV6();x.j41(0,"span",8),x.nVh(1,ke,3,1,"span",18)(2,ve,3,1,"span",18),x.j41(3,"span",18)(4,"span",19),x.bIt("click",(function(t){s.eBV(e);const n=x.XpG().$implicit,o=x.XpG(2);return s.Njj(o.addKey(t,n))})),x.EFF(5,"add"),x.k0s()()()}if(2&e){let e;const t=x.XpG().$implicit,n=x.XpG(2);x.R7$(),x.vxM("folder"===t.type?1:2),x.R7$(2),x.Y8G("matTooltip",null==(e=n.strings())||null==e.intention?null:e.intention.addKey)}}function Ce(e,t){if(1&e){const e=x.RV6();x.j41(0,"div",3),x.nVh(1,ce,1,4,"span",4),x.j41(2,"span")(3,"label",5),x.bIt("click",(function(){const t=s.eBV(e).$implicit,n=x.XpG(2);return s.Njj(t.expandable?n.toggleExpand(t):n.selectNode(t))})),x.nVh(4,fe,7,1),x.j41(5,"span",6),x.EFF(6),x.k0s(),x.nVh(7,ye,4,2,"span",7),x.nVh(8,xe,2,1,"span",7),x.k0s()(),x.nVh(9,Ee,6,2,"span",8),x.k0s()}if(2&e){const e=t.$implicit,n=x.XpG(2);x.xc7("padding-left",20*e.level+4,"px"),x.R7$(),x.vxM(e.expandable?1:-1),x.R7$(),x.BMQ("data-p3xr-tree-key","folder"===e.type?"":e.key),x.R7$(),x.Y8G("matTooltip",n.extractNodeTooltip(e)),x.R7$(),x.vxM("folder"!==e.type&&e.keysInfo?4:-1),x.R7$(2),x.JRh(e.label),x.R7$(),x.vxM("folder"===e.type?7:-1),x.R7$(),x.vxM("folder"!==e.type&&"string"!==(null==e.keysInfo?null:e.keysInfo.type)&&"json"!==(null==e.keysInfo?null:e.keysInfo.type)&&e.keysInfo?8:-1),x.R7$(),x.vxM(n.isReadonly?-1:9)}}function Re(e,t){if(1&e&&(x.j41(0,"cdk-virtual-scroll-viewport",1),x.DNE(1,Ce,10,10,"div",2),x.k0s()),2&e){const e=x.XpG();x.Y8G("itemSize",28),x.R7$(),x.Y8G("cdkVirtualForOf",e.dataSource)("cdkVirtualForTrackBy",e.trackByKey)}}n(59237);class we{ngZone;elementRef;i18n;common;theme;socket;keyNewOrSetDialog;nav;cmd;cdr;treeBuilder;p3xrResize;p3xrMainRef;viewport;dataSource=[];isEnabled=!1;isReadonly=!1;divider=":";strings;expandedKeys=new Set;hierarchicalNodes=[];unsubs=[];constructor(e,t,n,o,i,r,a,l,c,d,u){this.ngZone=e,this.elementRef=t,this.i18n=n,this.common=o,this.theme=i,this.socket=r,this.keyNewOrSetDialog=a,this.nav=l,this.cmd=c,this.cdr=d,this.treeBuilder=u,this.strings=this.i18n.strings,(0,s.QZP)((()=>{this.i18n.currentLang(),this.cdr.markForCheck()}))}ngOnInit(){this.syncGlobalState(),this.attachWindowFocusListener(),this.startPolling();const e=this.cmd.keyDelete$.subscribe((e=>{this.ngZone.run((()=>this.deleteKey(e.event,e.key)))}));this.unsubs.push((()=>e.unsubscribe()));const t=this.cmd.keyRename$.subscribe((e=>{this.ngZone.run((()=>this.renameKey(e.event,e.key)))}));this.unsubs.push((()=>t.unsubscribe()));const n=this.cmd.keyNew$.subscribe((e=>{this.ngZone.run((()=>this.addKey(e.event,e.node?{...e,_sourceNode:e.node}:e)))}));this.unsubs.push((()=>n.unsubscribe()));const s=this.cmd.treeControlEnabled$.subscribe((e=>{this.ngZone.run((()=>{this.isEnabled=e}))}));this.unsubs.push((()=>s.unsubscribe()));const o=this.cmd.treeRefresh$.subscribe((()=>{this.ngZone.run((()=>{this.syncGlobalState(),this.rebuildTree()}))}));this.unsubs.push((()=>o.unsubscribe()));const i=this.common.treeExpandAll$.subscribe((()=>this.ngZone.run((()=>{const e=new Set,t=n=>{for(const s of n)"folder"===s.type&&(e.add(s.key),t(s.children??[]))};t(this.hierarchicalNodes),this.expandedKeys=e,this.flattenVisibleNodes(),this.syncExpandedNodesToGlobal(),this.cdr.markForCheck()}))));this.unsubs.push((()=>i.unsubscribe()));const r=this.common.treeCollapseAll$.subscribe((()=>this.ngZone.run((()=>{this.expandedKeys=new Set,this.flattenVisibleNodes(),this.syncExpandedNodesToGlobal(),this.cdr.markForCheck()}))));this.unsubs.push((()=>r.unsubscribe())),setTimeout((()=>{this.isEnabled=!0,this.cdr.markForCheck()}),50)}ngOnDestroy(){this.unsubs.forEach((e=>e()))}trackByKey(e,t){return t.key}isExpanded(e){return this.expandedKeys.has(e.key)}toggleExpand(e){this.expandedKeys.has(e.key)?this.expandedKeys.delete(e.key):this.expandedKeys.add(e.key),this.flattenVisibleNodes(),this.syncExpandedNodesToGlobal()}selectNode(e){this.navigateTo("database.key",{key:e.key})}async deleteKey(e,t){try{e.preventDefault(),e.stopPropagation(),await this.common.confirm({message:this.i18n.strings().confirm.deleteKey}),await this.socket.request({action:"delete",payload:{key:t}}),"function"==typeof window.gtag&&window.gtag("config",le.settings.googleAnalytics,{page_path:"/delete"}),this.navigateTo("database.statistics"),this.common.toast(this.i18n.strings().status.deletedKey({key:t})),await this.cmd.refresh(),this.rebuildTree()}catch(e){this.common.generalHandleError(e)}}async renameKey(e,t){try{e?.stopPropagation?.();const n=await this.common.prompt({title:this.i18n.strings().confirm.rename.title,placeholder:this.i18n.strings().confirm.rename.placeholder,initialValue:t,ok:this.i18n.strings().intention.rename,cancel:this.i18n.strings().intention.cancel});await this.socket.request({action:"rename",payload:{key:t,keyNew:n}}),"function"==typeof window.gtag&&window.gtag("config",le.settings.googleAnalytics,{page_path:"/rename"}),this.navigateTo("database.key",{key:n}),this.common.toast(this.i18n.strings().status.renamedKey),await this.cmd.refresh(),this.rebuildTree()}catch(e){this.common.generalHandleError(e)}}async deleteTree(e,t){try{e.stopPropagation(),await this.common.confirm({message:this.i18n.strings().confirm.deleteAllKeys({key:t.key})}),await this.socket.request({action:"key-del-tree",payload:{key:t.key,redisTreeDivider:le.settings.redisTreeDivider}}),this.common.toast(this.i18n.strings().status.treeDeleted({key:t.key}));const n=location.pathname;if(n.startsWith("/database/key/")){decodeURIComponent(n.slice(14).replace(/~/g,"%")).startsWith(t.key+le.settings.redisTreeDivider)&&this.navigateTo("database.statistics")}await this.cmd.refresh(),this.rebuildTree()}catch(e){this.common.generalHandleError(e)}}async addKey(e,t){try{e.stopPropagation();const n=await this.keyNewOrSetDialog.show({type:"add",$event:e,node:t._sourceNode??{key:t.key}});await this.cmd.refresh(),this.rebuildTree(),this.navigateTo("database.key",{key:n.key})}catch(e){this.common.generalHandleError(e)}}extractNodeTooltip(e){if("folder"!==e.type&&e.keysInfo){const t=this.i18n.strings();return le.ui.htmlEncode((t.redisTypes?.[e.keysInfo.type]??e.keysInfo.type)+" - "+e.key)}return le.ui.htmlEncode(e.key)}deleteTreeTooltip(e){return this.i18n.strings().confirm?.deleteAllKeys?.({key:e.key})??""}rebuildTree(){const e=le?.state;if(!e)return;this.divider=le.settings?.redisTreeDivider??":",this.isReadonly=!0===e.connection?.readonly;const t=e.keysRaw??[],n=e.keysInfo??{};this.treeBuilder.keysToTreeControl({keys:t,divider:this.divider,keysInfo:n}).then((({nodes:e})=>{this.hierarchicalNodes=e,this.flattenVisibleNodes(),this.requestViewRefresh()}))}flattenVisibleNodes(){const e=[],t=(n,s)=>{for(const o of n)e.push({label:o.label,key:o.key,level:s,expandable:"folder"===o.type,type:o.type,childCount:o.childCount??0,keysInfo:o.keysInfo,_sourceNode:o}),"folder"===o.type&&this.expandedKeys.has(o.key)&&o.children?.length>0&&t(o.children,s+1)};t(this.hierarchicalNodes,0),this.dataSource=e}syncExpandedNodesToGlobal(){const e=[],t=n=>{for(const s of n)"folder"===s.type&&this.expandedKeys.has(s.key)&&e.push(s),s.children?.length>0&&t(s.children)};t(this.hierarchicalNodes),le.state.expandedNodes=e}syncGlobalState(){this.divider=le?.settings?.redisTreeDivider??":",this.isReadonly=!0===le?.state?.connection?.readonly}startPolling(){let e="";const t=setInterval((()=>{const t=JSON.stringify({keysLength:le?.state?.keysRaw?.length,divider:le?.settings?.redisTreeDivider,readonly:le?.state?.connection?.readonly});t!==e&&(e=t,this.ngZone.run((()=>{this.syncGlobalState(),this.rebuildTree()})))}),300);this.unsubs.push((()=>clearInterval(t))),this.ngZone.run((()=>this.rebuildTree()))}attachWindowFocusListener(){const e=()=>{this.isEnabled&&this.ngZone.run((()=>{this.isEnabled=!1,setTimeout((()=>{this.isEnabled=!0,this.rebuildTree()}))}))};window.addEventListener("focus",e),this.unsubs.push((()=>window.removeEventListener("focus",e)))}navigateTo(e,t){this.nav.navigateTo(e,t)}requestViewRefresh(){setTimeout((()=>{try{this.cdr.detectChanges(),this.viewport?.checkViewportSize()}catch{}}))}static ɵfac=function(e){return new(e||we)(x.rXU(s.SKi),x.rXU(x.aKT),x.rXU(l.W),x.rXU(A.h),x.rXU(ie.F),x.rXU(u.L),x.rXU(re.W),x.rXU(d.o),x.rXU(c.y),x.rXU(o.gRc),x.rXU(ae.h))};static ɵcmp=x.VBU({type:we,selectors:[["p3xr-database-tree"]],viewQuery:function(e,t){if(1&e&&x.GBs(oe.d6,5),2&e){let e;x.mGM(e=x.lsd())&&(t.viewport=e.first)}},inputs:{p3xrResize:"p3xrResize",p3xrMainRef:"p3xrMainRef"},decls:1,vars:1,consts:[["class","p3xr-database-tree-viewport",3,"itemSize",4,"ngIf"],[1,"p3xr-database-tree-viewport",3,"itemSize"],["class","p3xr-database-tree-row",3,"padding-left",4,"cdkVirtualFor","cdkVirtualForOf","cdkVirtualForTrackBy"],[1,"p3xr-database-tree-row"],[1,"p3xr-tree-branch-head",3,"tree-expanded","tree-collapsed"],["matTooltipPosition","right","matTooltipClass","p3xr-tree-node-tooltip",1,"p3xr-database-tree-node",3,"click","matTooltip"],[1,"p3xr-database-tree-node-label"],[1,"p3xr-database-tree-node-count"],[1,"p3xr-database-tree-actions"],[1,"p3xr-tree-branch-head",3,"click"],["aria-hidden","true",1,"p3xr-database-treecontrol-node-icon","fas","fa-hashtag"],["aria-hidden","true",1,"p3xr-database-treecontrol-node-icon","fas","fa-list-ol"],["aria-hidden","true",1,"p3xr-database-treecontrol-node-icon","fas","fa-list"],["aria-hidden","true",1,"p3xr-database-treecontrol-node-icon","fas","fa-ellipsis-h"],["aria-hidden","true",1,"p3xr-database-treecontrol-node-icon","fas","fa-chart-line"],["aria-hidden","true",1,"p3xr-database-treecontrol-node-icon","fas","fa-stream"],["aria-hidden","true",1,"p3xr-database-treecontrol-node-icon","fas","fa-code"],[2,"opacity","0.5"],["matTooltipPosition","after","matTooltipClass","p3xr-tree-node-tooltip",3,"matTooltip"],[1,"material-icons","p3xr-database-treecontrol-folder-icon",3,"click"],[1,"material-icons","p3xr-database-treecontrol-delete-icon",3,"click"]],template:function(e,t){1&e&&x.DNE(0,Re,2,3,"cdk-virtual-scroll-viewport",0),2&e&&x.Y8G("ngIf",t.dataSource.length>0&&t.isEnabled)},dependencies:[i.MD,i.bT,oe.E9,oe.yg,oe.E$,oe.d6,g.uc,v.oV],encapsulation:2,changeDetection:0})}var Te=n(55408),je=n(50522),Me=n(73761),$e=n(48982),Ge=n(49645),Ie=n(12027);function Fe(e,t){if(1&e){const e=x.RV6();x.j41(0,"div",20)(1,"div",23)(2,"input",24),x.bIt("ngModelChange",(function(t){s.eBV(e);const n=x.XpG(2);return s.Njj(n.onMonitorPatternChange(t))})),x.k0s()()()}if(2&e){const e=x.XpG(2);x.R7$(2),x.xc7("background","var(--p3xr-input-bg)")("color","var(--p3xr-input-color)")("border-color","var(--p3xr-input-border-color, var(--p3xr-border-color))"),x.Y8G("ngModel",e.monitorPattern)}}function Xe(e,t){if(1&e){const e=x.RV6();x.j41(0,"span",13),x.EFF(1),x.k0s(),x.nrm(2,"span",14),x.j41(3,"span",15)(4,"span",16),x.bIt("mouseenter",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.onMonitorMouseEnter())}))("mouseleave",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.onMonitorMouseLeave())})),x.j41(5,"span",17),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.toggleMonitor())})),x.j41(6,"mat-checkbox",18),x.mxI("ngModelChange",(function(t){s.eBV(e);const n=x.XpG();return x.DH7(n.monitorEnabled,t)||(n.monitorEnabled=t),s.Njj(t)})),x.bIt("ngModelChange",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.setMonitorState())})),x.j41(7,"span",19),x.EFF(8),x.k0s()()(),x.nVh(9,Fe,3,7,"div",20),x.k0s(),x.j41(10,"p3xr-ng-button",21),x.bIt("click",(function(t){s.eBV(e);const n=x.XpG();return s.Njj(n.openCommands(t))})),x.k0s(),x.j41(11,"p3xr-ng-button",22),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.clearConsole())})),x.k0s()()}if(2&e){let e,t,n,s;const o=x.XpG();x.R7$(),x.JRh((null==(e=o.strings().label)?null:e.console)||"Console"),x.R7$(5),x.R50("ngModel",o.monitorEnabled),x.R7$(2),x.JRh((null==(t=o.strings().intention)?null:t.pubsubMonitor)||"PubSub Monitor"),x.R7$(),x.vxM(o.showMonitorPopup?9:-1),x.R7$(),x.Y8G("label",(null==(n=o.strings().label)?null:n.redisCommandsReference)||"Redis Commands"),x.R7$(),x.Y8G("label",(null==(s=o.strings().intention)?null:s.clear)||"Clear")}}function ze(e,t){if(1&e){const e=x.RV6();x.j41(0,"div",20)(1,"div",23)(2,"input",24),x.bIt("ngModelChange",(function(t){s.eBV(e);const n=x.XpG(2);return s.Njj(n.onMonitorPatternChange(t))})),x.k0s()()()}if(2&e){const e=x.XpG(2);x.R7$(2),x.xc7("background","var(--p3xr-input-bg)")("color","var(--p3xr-input-color)")("border-color","var(--p3xr-input-border-color, var(--p3xr-border-color))"),x.Y8G("ngModel",e.monitorPattern)}}function Ve(e,t){if(1&e){const e=x.RV6();x.j41(0,"p3xr-ng-button",26),x.bIt("click",(function(){s.eBV(e);const t=x.XpG(2);return s.Njj(t.closeConsole())})),x.k0s()}if(2&e){let e;const t=x.XpG(2);x.Y8G("label",(null==(e=t.strings().intention)?null:e.close)||"Close")}}function De(e,t){if(1&e){const e=x.RV6();x.j41(0,"span",13),x.EFF(1),x.k0s(),x.nrm(2,"span",14),x.j41(3,"span",15)(4,"span",16),x.bIt("mouseenter",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.onMonitorMouseEnter())}))("mouseleave",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.onMonitorMouseLeave())})),x.j41(5,"span",17),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.toggleMonitor())})),x.j41(6,"mat-checkbox",18),x.mxI("ngModelChange",(function(t){s.eBV(e);const n=x.XpG();return x.DH7(n.monitorEnabled,t)||(n.monitorEnabled=t),s.Njj(t)})),x.bIt("ngModelChange",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.setMonitorState())})),x.j41(7,"span",19),x.EFF(8),x.k0s()()(),x.nVh(9,ze,3,7,"div",20),x.k0s(),x.j41(10,"p3xr-ng-button",21),x.bIt("click",(function(t){s.eBV(e);const n=x.XpG();return s.Njj(n.openCommands(t))})),x.k0s(),x.j41(11,"p3xr-ng-button",22),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.clearConsole())})),x.k0s(),x.nVh(12,Ve,1,1,"p3xr-ng-button",25),x.k0s()}if(2&e){let e,t,n,s;const o=x.XpG();x.R7$(),x.JRh(o.embedded?(null==(e=o.strings().label)?null:e.console)||"Console":(null==(e=o.strings().intention)?null:e.quickConsole)||"Quick Console"),x.R7$(5),x.R50("ngModel",o.monitorEnabled),x.R7$(2),x.JRh((null==(t=o.strings().intention)?null:t.pubsubMonitor)||"PubSub Monitor"),x.R7$(),x.vxM(o.showMonitorPopup?9:-1),x.R7$(),x.Y8G("label",(null==(n=o.strings().label)?null:n.redisCommandsReference)||"Redis Commands"),x.R7$(),x.Y8G("label",(null==(s=o.strings().intention)?null:s.clear)||"Clear"),x.R7$(),x.vxM(o.embedded?-1:12)}}function Se(e,t){if(1&e){const e=x.RV6();x.j41(0,"div",27),x.bIt("mousedown",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.dragStart())}))("mouseup",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.dragEnd())})),x.k0s()}}function Pe(e,t){1&e&&x.nrm(0,"div",8)}function Oe(e,t){if(1&e&&(x.j41(0,"mat-option",12),x.EFF(1),x.k0s()),2&e){const e=t.$implicit;x.Y8G("value",e),x.R7$(),x.JRh(e)}}n(53400);const Ne=globalThis.htmlEncode,Be="p3xr-console-output-v1",Ae=10485760;let Le=-1;class He{ngZone;elementRef;i18n;common;socket;redisParser;cmd;type="";embedded=!1;searchText="";searchControl=new p.MJ("");monitorEnabled=!1;monitorPattern="*";showMonitorPopup=!1;filteredCommands=[];aiLoading=!1;strings;contentClicked=!1;unsubs=[];index=0;monitorPopupTimeout=null;monitorPatternDebounce=null;containerEl=null;headerEl=null;footerEl=null;consoleHeaderEl=null;outputEl=null;autocompleteEl=null;inputEl=null;scrollers=null;persistOutputDebounced;inputFocusHandler;inputBlurHandler;resizeFn;constructor(e,t,n,s,o,i,r){this.ngZone=e,this.elementRef=t,this.i18n=n,this.common=s,this.socket=o,this.redisParser=i,this.cmd=r,this.strings=this.i18n.strings}ngOnInit(){this.monitorEnabled=Ie.state.monitor??!1,this.monitorPattern=Ie.state.monitorPattern??"*",this.searchControl.valueChanges.subscribe((e=>{if(this.searchText=e||"",e&&e.length>0&&Ie.state.commands?.length>0){const t=e.toUpperCase();this.filteredCommands=Ie.state.commands.filter((e=>e.toUpperCase().includes(t))).slice(0,15)}else this.filteredCommands=[]}))}ngAfterViewInit(){this.ngZone.runOutsideAngular((()=>this.initJQuery()))}ngOnDestroy(){this.elementRef.nativeElement.classList.remove("p3xr-console-embedded-collapsed"),this.persistOutputDebounced?.flush?this.persistOutputDebounced.flush():this.persistConsoleOutputNow(),this.inputEl&&(this.inputFocusHandler&&this.inputEl.removeEventListener("focus",this.inputFocusHandler),this.inputBlurHandler&&this.inputEl.removeEventListener("blur",this.inputBlurHandler)),window.removeEventListener("resize",this.resizeFn),this.socket.getClient()?.removeListener?.("pubsub-message",this.onPubSubMessage),this.monitorPopupTimeout&&clearTimeout(this.monitorPopupTimeout),this.monitorPatternDebounce&&clearTimeout(this.monitorPatternDebounce),this.unsubs.forEach((e=>e()))}emitToAngularJS(e,t){switch(e){case"p3xr-console-activate":this.cmd.consoleActivate$.next();break;case"p3xr-console-deactivate":this.cmd.consoleDeactivate$.next();break;case"p3xr-console-embedded-resize":this.cmd.consoleEmbeddedResize$.next()}}activate(){this.embedded&&this.emitToAngularJS("p3xr-console-activate")}onContentMouseDown(e){this.contentClicked=!0,setTimeout((()=>{this.contentClicked=!1}),500)}aiExecuting=!1;async actionEnter(){const e=(this.searchText||"").trim();if(!e||this.aiLoading)return;if(!1!==Ie.state.cfg?.aiEnabled&&/^ai:\s*/i.test(e)){const t=e.replace(/^ai:\s*/i,"").trim();return void(t&&await this.handleAiQuery(t,e))}let t;try{t=await this.socket.request({action:"console",payload:{command:e}});const n=Ne(String(this.redisParser.consoleParse(t.result)));if(this.aiExecuting){n.replace(/&nbsp;/g,"").trim().length>0&&this.outputEl&&(this.outputEl.insertAdjacentHTML("beforeend",`<span data-index="${this.index++}" class="p3xr-console-ai-result"><pre>${n}</pre><br/></span>`),this.persistOutputDebounced?.())}else this.outputAppend(`${Ne(e)}<br/><pre>${n}</pre>`);t.hasOwnProperty("database")&&(Ie.state.currentDatabase=t.database,Ie.state.redisChanged=!0,this.socket.stateChanged$.next()),this.searchText="",this.searchControl.setValue("")}catch(t){console.error(t);const n=t.message||"";if(!1!==Ie.state.cfg?.aiEnabled&&this.looksLikeNaturalLanguage(e,n)){if(await this.handleAiQuery(e,e))return;return void this.outputAppend(`${Ne(e)}<br/><pre>${this.i18n.strings().code?.[n]||n}</pre>`)}this.outputAppend(`${Ne(e)}<br/><pre>${this.i18n.strings().code?.[n]||n}</pre>`)}finally{const n=t?.generatedCommand??e;this.updateCommandHistory(n),this.scrollOutputToBottom(),("quick"===this.type||this.embedded)&&this.cmd.refresh({withoutParent:!0})}}looksLikeNaturalLanguage(e,t){if(!/unknown command|wrong number of arguments|ERR unknown/i.test(t))return!1;const n=e.trim().split(/\s+/);if(n.length<2)return!1;const s=n[0].toUpperCase();return!Ie.state.commands?.includes(s)}async handleAiQuery(e,t){this.aiLoading=!0;try{let n=[];try{n=(await this.socket.request({action:"search-list",payload:{}})).data||[]}catch{}const s=Ie.state.info||{},o={indexes:n};s.redis_version&&(o.redisVersion=s.redis_version),s.redis_mode&&(o.redisMode=s.redis_mode),s.os&&(o.os=s.os),s.connected_clients&&(o.connectedClients=s.connected_clients),s.used_memory_human&&(o.usedMemory=s.used_memory_human),(s.db0||s.db1)&&(o.databases=Object.keys(s).filter((e=>/^db\d+$/.test(e))).map((e=>`${e}: ${s[e]}`))),s.modules&&(o.modules=s.modules),o.uiLanguage=this.i18n.currentLang();const i=await this.socket.request({action:"ai-redis-query",payload:{prompt:e,context:o}}),r=i.command||"",a=i.explanation||"";if(this.outputAppend(Ne(t)),r){let e=`<strong style="color: var(--mat-sys-primary);">AI &rarr;</strong> <code>${Ne(r)}</code>`;a&&(e+=`<br/><span style="opacity: 0.7; font-size: 0.9em;">${Ne(a)}</span>`),this.outputAppend(e)}if(this.updateCommandHistory(t),r){this.searchText=r,this.searchControl.setValue(r),this.aiLoading=!1,this.aiExecuting=!0;try{await this.actionEnter()}finally{this.aiExecuting=!1}}return!0}catch(e){return console.error("ai-redis-query failed",e),!1}finally{this.aiLoading=!1,this.scrollOutputToBottom(),this.inputEl?.focus()}}onKeyDown(e){if(this.filteredCommands.length>0&&("ArrowDown"===e.key||"ArrowUp"===e.key))return;if("ArrowUp"!==e.key&&"ArrowDown"!==e.key)return void(Le=-1);const t=this.getActionHistory();if(t.length<1)return;e.preventDefault(),e.stopPropagation(),"ArrowDown"===e.key?(-1===Le&&(Le=t.length),Le--,Le<0&&(Le=t.length-1)):(Le++,Le>=t.length&&(Le=0));const n=t[Le]??"";this.searchText=n,this.searchControl.setValue(n,{emitEvent:!1})}onAutocompleteSelected(e){this.searchText=e.option.value}clearConsole(){this.outputEl&&(this.outputEl.innerHTML="",this.outputAppend("<strong>"+(this.i18n.strings().label?.welcomeConsole??"Welcome to the Redis Console")+"</strong>"),this.outputAppend((this.i18n.strings().label?.welcomeConsoleInfo??"Cursor UP or DOWN history is enabled")+"<br/>"),this.persistConsoleOutputNow(),this.scrollOutputToBottom(),this.inputEl?.focus())}async setMonitorState(){try{Ie.state.monitor=this.monitorEnabled,await this.socket.request({action:"set-subscription",payload:{subscription:this.monitorEnabled,subscriberPattern:Ie.state.monitorPattern}})}catch(e){this.common.generalHandleError(e),this.monitorEnabled=!1,Ie.state.monitor=!1}}toggleMonitor(){}onMonitorMouseEnter(){this.embedded&&this.elementRef.nativeElement.classList.contains("p3xr-console-embedded-collapsed")||(this.monitorPopupTimeout&&(clearTimeout(this.monitorPopupTimeout),this.monitorPopupTimeout=null),this.showMonitorPopup=!0)}onMonitorMouseLeave(){this.monitorPopupTimeout&&clearTimeout(this.monitorPopupTimeout),this.monitorPopupTimeout=setTimeout((()=>{this.showMonitorPopup=!1,this.monitorPopupTimeout=null}),1e3)}onMonitorPatternChange(e){this.monitorPattern=e,Ie.state.monitorPattern=e,this.monitorPatternDebounce&&clearTimeout(this.monitorPatternDebounce),this.monitorPatternDebounce=setTimeout((()=>{this.setMonitorState(),this.monitorPatternDebounce=null}),1e3)}openCommands(e){window.open("https://redis.io/docs/latest/commands/","_blank")}closeConsole(){this.emitToAngularJS("p3xr-quick-console-quit")}dragStart(){this.embedded||this.emitToAngularJS("p3xr-quick-console",{start:!0})}dragEnd(){this.embedded||this.emitToAngularJS("p3xr-quick-console",{start:!1})}initJQuery(){const e=n(38247),t=this.elementRef.nativeElement;this.containerEl=t.querySelector("#p3xr-console-content"),this.headerEl=document.getElementById("p3xr-layout-header-container"),this.footerEl=document.getElementById("p3xr-layout-footer-container"),this.consoleHeaderEl=t.querySelector("#p3xr-console-header"),this.outputEl=t.querySelector("#p3xr-console-content-output"),this.autocompleteEl=t.querySelector("#p3xr-console-autocomplete"),this.scrollers=this.containerEl,this.resizeFn=e((()=>this.rawResize()),Ie.settings.debounce),window.addEventListener("resize",this.resizeFn),this.rawResize(),this.persistOutputDebounced=e((()=>this.persistConsoleOutputNow()),Ie.settings.debounce),this.socket.getClient()?.on?.("pubsub-message",this.onPubSubMessage);const s=this.cmd.consoleEmbeddedResize$.subscribe((()=>{this.embedded&&this.rawResize()}));this.unsubs.push((()=>s.unsubscribe())),setTimeout((()=>{this.inputEl=t.querySelector("#p3xr-console-input"),this.setInputTheme(),this.restoreConsoleOutput()?this.scrollOutputToBottom():this.clearConsole(),this.rawResize(),this.embedded&&(this.inputFocusHandler=()=>{this.emitToAngularJS("p3xr-console-activate")},this.inputBlurHandler=()=>{setTimeout((()=>{if(this.contentClicked)return;const e=document.activeElement;if("p3xr-console-input"===e?.id)return;const t=this.elementRef.nativeElement;if(t&&e&&t.contains(e))return;const n=window.getSelection();if(n&&n.toString().length>0){const e=n.getRangeAt?.(0);if(e&&t?.contains(e.commonAncestorContainer))return}this.emitToAngularJS("p3xr-console-deactivate")}),0)},this.inputEl?.addEventListener("focus",this.inputFocusHandler),this.inputEl?.addEventListener("blur",this.inputBlurHandler))}))}onPubSubMessage=e=>{if(!1===Ie.state.monitor)return;const t=Ne(String(e.message));this.outputAppend(`<strong>PubSub channel:</strong> ${e.channel}<br/><pre>${t}</pre>`),this.scrollers&&(this.scrollers.scrollTop=this.scrollers.scrollHeight)};setInputTheme(){this.inputEl&&(this.inputEl.style.borderColor="var(--p3xr-input-border-color, var(--p3xr-border-color))",this.inputEl.style.backgroundColor="var(--p3xr-input-bg)",this.inputEl.style.color="var(--p3xr-input-color)")}rawResize(){if(!this.containerEl)return;if(this.embedded){const e=this.elementRef.nativeElement,t=e?.getBoundingClientRect(),n=t?.height||Math.floor(.33*window.innerHeight),s=this.consoleHeaderEl?.offsetHeight||0,o=this.autocompleteEl?.offsetHeight||44,i=n<=120;e.classList.toggle("p3xr-console-embedded-collapsed",i);const r=i?0:Math.max(n-s-o,0);return this.containerEl.style.height=r+"px",this.containerEl.style.maxHeight=r+"px",this.containerEl.style.overflow=i?"hidden":"auto",this.containerEl.style.display=i?"none":"block",void(this.outputEl&&(this.outputEl.style.display=i?"none":"block"))}let e=0;for(const t of[this.headerEl,this.footerEl,this.consoleHeaderEl])t&&(e+=t.offsetHeight);const t=window.innerHeight,n="quick"===this.type?105:70,s=Math.max(t-e-n,0);this.containerEl.style.height=s+"px",this.containerEl.style.maxHeight=s+"px"}outputAppend(e){if(!this.outputEl)return;(e||"").replace(/<[^>]*>/g,"").replace(/&[a-z]+;/g,"").trim()&&(this.outputEl.insertAdjacentHTML("beforeend",`<span data-index="${this.index++}" class="p3xr-console-content-output-item">${e}<br/></span>`),this.trimOutputToLimit(Ae),this.persistOutputDebounced?.(),this.scrollOutputToBottom())}scrollOutputToBottom(){setTimeout((()=>{this.scrollers&&(this.scrollers.scrollTop=this.scrollers.scrollHeight,this.outputEl&&(this.outputEl.scrollTop=this.outputEl.scrollHeight))}),0)}trimOutputToLimit(e){if(!this.outputEl)return;let t=this.outputEl.innerHTML||"";for(;this.getByteSize(t)>e&&this.dropOldestOutputChunk();)t=this.outputEl.innerHTML||""}dropOldestOutputChunk(){if(!this.outputEl)return!1;const e=this.outputEl.querySelectorAll(".p3xr-console-content-output-item");if(e.length<1)return!1;const t=Math.max(Math.floor(.1*e.length),1);for(let n=0;n<t;n++)e[n].remove();return!0}getByteSize(e){try{return new Blob([e||""]).size}catch{return(e||"").length}}persistConsoleOutputNow(){if(this.outputEl)for(this.trimOutputToLimit(Ae);;){const e=this.outputEl.innerHTML||"";try{return void localStorage.setItem(Be,e)}catch{if(!this.dropOldestOutputChunk()){try{localStorage.removeItem(Be)}catch{}return}}}}restoreConsoleOutput(){if(!this.outputEl)return!1;let e="";try{e=localStorage.getItem(Be)||""}catch{e=""}if(!e)return!1;this.outputEl.innerHTML=e,this.trimOutputToLimit(Ae),this.persistConsoleOutputNow();const t=this.outputEl.querySelectorAll(".p3xr-console-content-output-item"),n=t.length>0?t[t.length-1]:null;if(n){const e=Number(n.getAttribute("data-index"));Number.isFinite(e)&&(this.index=e+1)}return!0}getActionHistory(){try{return JSON.parse(localStorage.getItem("console-history")||"[]")}catch{return[]}}updateCommandHistory(e){let t=this.getActionHistory();const n=t.indexOf(e);n>-1&&t.splice(n,1),t.unshift(e),t.length>20&&(t=t.slice(0,20)),localStorage.setItem("console-history",JSON.stringify(t)),Le=-1}static ɵfac=function(e){return new(e||He)(x.rXU(s.SKi),x.rXU(x.aKT),x.rXU(l.W),x.rXU(A.h),x.rXU(u.L),x.rXU(Ge.s),x.rXU(c.y))};static ɵcmp=x.VBU({type:He,selectors:[["p3xr-console"]],inputs:{type:"type",embedded:"embedded"},decls:16,vars:23,consts:[["auto","matAutocomplete"],[1,"p3xr-console-root",3,"click"],["id","p3xr-console-header",1,"p3xr-console-toolbar","p3xr-mat-layout-strong"],[1,"p3xr-console-toolbar-tools"],["id","p3xr-console-content",1,"p3xr-content-border-fixed",3,"click","mousedown"],[2,"display","flex","flex-direction","row","align-items","stretch","min-height","100%"],["id","p3xr-console-content-resizer"],["id","p3xr-console-content-output",2,"flex-grow","1"],["id","p3xr-console-content-output"],["id","p3xr-console-autocomplete"],["id","p3xr-console-input","type","text","autocomplete","off",1,"p3xr-input",3,"keydown.enter","keydown","formControl","matAutocomplete","disabled","placeholder"],["position","above",1,"p3xr-console-autocomplete-panel",3,"optionSelected"],[3,"value"],[1,"p3xr-console-title"],[1,"p3xr-toolbar-spacer"],[1,"p3xr-console-toolbar-actions"],[1,"p3xr-console-monitor-wrap",3,"mouseenter","mouseleave"],[3,"click"],[3,"ngModelChange","ngModel"],[1,"p3xr-console-monitor-label"],[1,"p3xr-monitor-input"],["mdIcon","terminal",3,"click","label"],["mdIcon","backspace",3,"click","label"],[1,"p3xr-monitor-input-toolbar","p3xr-mat-layout-strong"],["type","text","maxlength","255",1,"p3xr-input","p3xr-monitor-pattern-input",3,"ngModelChange","ngModel"],["mdIcon","close",3,"label"],["mdIcon","close",3,"click","label"],["id","p3xr-console-content-resizer",3,"mousedown","mouseup"]],template:function(e,t){if(1&e&&(x.j41(0,"div",1),x.bIt("click",(function(){return t.activate()})),x.j41(1,"mat-toolbar",2)(2,"div",3),x.nVh(3,Xe,12,6)(4,De,13,7),x.k0s()(),x.j41(5,"div",4),x.bIt("click",(function(e){return e.stopPropagation()}))("mousedown",(function(e){return t.onContentMouseDown(e)})),x.j41(6,"div",5),x.nVh(7,Se,1,0,"div",6),x.nrm(8,"div",7),x.k0s(),x.nVh(9,Pe,1,0,"div",8),x.k0s(),x.j41(10,"div",9)(11,"input",10),x.bIt("keydown.enter",(function(){return t.actionEnter()}))("keydown",(function(e){return t.onKeyDown(e)})),x.k0s(),x.j41(12,"mat-autocomplete",11,0),x.bIt("optionSelected",(function(e){return t.onAutocompleteSelected(e)})),x.Z7z(14,Oe,2,2,"mat-option",12,x.fX1),x.k0s()()()),2&e){let e;const n=x.sdS(13);x.AVh("p3xr-console-root-embedded",t.embedded),x.R7$(),x.AVh("p3xr-content-border-toolbar","quick"===t.type),x.R7$(2),x.vxM("quick"!==t.type?3:4),x.R7$(2),x.AVh("layout-padding","quick"!==t.type),x.R7$(2),x.vxM("quick"!==t.type||t.embedded?-1:7),x.R7$(2),x.vxM("quick"!==t.type?9:-1),x.R7$(),x.AVh("p3xr-console-autocomplete-quick","quick"===t.type)("p3xr-console-autocomplete-embedded",t.embedded),x.R7$(),x.xc7("background","var(--p3xr-input-bg)")("color","var(--p3xr-input-color)")("border-color",t.aiLoading?"var(--mat-sys-primary, var(--p3xr-input-border-color))":"var(--p3xr-input-border-color, var(--p3xr-border-color))"),x.Y8G("formControl",t.searchControl)("matAutocomplete",n)("disabled",t.aiLoading)("placeholder",t.aiLoading?(null==(e=t.strings().label)?null:e.aiTranslating)||"Translating...":""),x.R7$(3),x.Dyx(t.filteredCommands)}},dependencies:[i.MD,p.YN,p.me,p.BC,p.tU,p.vS,p.X1,p.l_,h.s5,h.KQ,Te.g7,Te.So,g.uc,je.jL,je.$3,C.wT,je.pN,Me.fS,y.RG,$e.f],encapsulation:2,changeDetection:0})}var _e=n(73414),Ue=n(12027);function Ye(e,t){if(1&e&&(x.j41(0,"div",5),x.EFF(1),x.k0s()),2&e){let e;const t=x.XpG();x.R7$(),x.SpI(" ",null==(e=t.strings().title)?null:e.main," ")}}function Ke(e,t){if(1&e){const e=x.RV6();x.j41(0,"div",6)(1,"button",7),x.bIt("click",(function(){s.eBV(e);const t=x.XpG();return s.Njj(t.goSettings())})),x.EFF(2),x.k0s()()}if(2&e){let e;const t=x.XpG();x.R7$(2),x.SpI(" ",null==(e=t.strings().intention)?null:e.noConnections," ")}}function qe(e,t){if(1&e&&(x.j41(0,"div"),x.nrm(1,"p3xr-database-treecontrol-controls",13)(2,"p3xr-database-tree",14)(3,"div",15),x.j41(4,"div",16),x.nrm(5,"router-outlet"),x.k0s()()),2&e){const e=x.XpG(2);x.R7$(3),x.AVh("p3xr-resizer-active",e.resizeClicked)}}function Je(e,t){1&e&&(x.j41(0,"div",17),x.nrm(1,"p3xr-database-treecontrol-controls",18)(2,"p3xr-database-tree",19),x.j41(3,"div",18),x.nrm(4,"router-outlet"),x.k0s()())}function We(e,t){1&e&&(x.j41(0,"div",20),x.nrm(1,"p3xr-console",21),x.k0s()),2&e&&(x.R7$(),x.Y8G("embedded",!0))}function Ze(e,t){1&e&&(x.j41(0,"div",22),x.nrm(1,"p3xr-console",21),x.k0s()),2&e&&(x.R7$(),x.Y8G("embedded",!0))}function Qe(e,t){if(1&e&&(x.j41(0,"div",8),x.DNE(1,qe,6,2,"div",9)(2,Je,5,0,"div",10)(3,We,2,1,"div",11)(4,Ze,2,1,"div",12),x.k0s()),2&e){const e=x.XpG();x.R7$(),x.Y8G("ngIf",!e.isXs),x.R7$(),x.Y8G("ngIf",e.isXs),x.R7$(),x.Y8G("ngIf",!e.isXs),x.R7$(),x.Y8G("ngIf",e.isXs)}}n(78376);const et=n(38247);class tt{ngZone;breakpointObserver;i18n;cmd;nav;socket;cdr;strings;isXs=!1;hasConnection=!1;hasConnections=!1;resizerActive=!1;resizeClicked=!1;resizerMouseoverOn=!1;resizeLeft=void 0;bottomConsoleExpanded=!1;screenSizeIsSmall=!1;containerEl;headerEl;footerEl;consoleHeaderEl;resizerEl;resizeObserver;observedElement=null;resizeTimeoutId;unsubs=[];resizeMinWidth=Ue.settings.resizeMinWidth;bottomConsoleCollapsedHeight=88;constructor(e,t,n,s,o,i,r){this.ngZone=e,this.breakpointObserver=t,this.i18n=n,this.cmd=s,this.nav=o,this.socket=i,this.cdr=r,this.strings=this.i18n.strings}ngOnInit(){this.syncFromGlobal();const e=this.socket.connections$.subscribe((()=>this.syncFromGlobal())),t=this.socket.redisDisconnected$.subscribe((()=>{this.syncFromGlobal(),this.nav.navigateTo("settings")})),n=this.socket.configuration$.subscribe((()=>this.syncFromGlobal())),s=this.socket.stateChanged$.subscribe((()=>{this.syncFromGlobal(),setTimeout((()=>this.rawResize()),50)}));this.unsubs.push((()=>{e.unsubscribe(),t.unsubscribe(),n.unsubscribe(),s.unsubscribe()}));const o=this.breakpointObserver.observe("(max-width: 599px)").subscribe((e=>{const t=this.isXs;this.isXs=e.matches,!this.isXs&&t&&(clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=setTimeout((()=>this.rawResize()),4*Ue.settings.debounce)),this.screenSizeIsSmall=this.isXs,this.cdr.markForCheck()}));this.unsubs.push((()=>o.unsubscribe())),this.ngZone.runOutsideAngular((()=>{setTimeout((()=>this.initDom()),0)}))}ngOnDestroy(){this.unsubs.forEach((e=>e())),window.removeEventListener("resize",this.boundRawResize),document.removeEventListener("mousedown",this.boundOnDocumentMouseDown),this.destroyResizer(),this.resizeObserver?.disconnect()}goSettings(){this.nav.navigateTo("settings")}resize=et((()=>{this.resizeLeft=void 0,this.rawResize()}),Ue.settings.debounce);boundRawResize=()=>this.rawResize();boundOnDocumentMouseDown=e=>this.onDocumentMouseDown(e);initDom(){this.containerEl=document.getElementById("p3xr-database-content"),this.headerEl=document.getElementById("p3xr-layout-header-container"),this.footerEl=document.getElementById("p3xr-layout-footer-container"),this.consoleHeaderEl=document.querySelector("p3xr-database-header"),this.rawResize(),window.addEventListener("resize",this.boundRawResize),document.addEventListener("mousedown",this.boundOnDocumentMouseDown),"/database"!==this.nav.currentUrl&&"/database/"!==this.nav.currentUrl||this.nav.navigateTo("database.statistics"),Ue.state.redisChanged&&(Ue.state.redisChanged=!1,Ue.state.connection&&this.cmd.refresh()),Ue.state.page=1,setTimeout((()=>this.rawResize()),250),this.resizeObserver=new ResizeObserver((e=>{this.resizeClicked||window.requestAnimationFrame((()=>{Array.isArray(e)&&e.length&&this.rawResize()}))})),this.watchResizeObserver();const e=this.cmd.consoleActivate$.subscribe((()=>{this.isXs||this.bottomConsoleExpanded||(this.bottomConsoleExpanded=!0,this.rawResize(),this.cmd.consoleEmbeddedResize$.next())})),t=this.cmd.consoleDeactivate$.subscribe((()=>{!this.isXs&&this.bottomConsoleExpanded&&(this.bottomConsoleExpanded=!1,this.rawResize(),this.cmd.consoleEmbeddedResize$.next())})),n=this.socket.stateChanged$.subscribe((()=>this.watchResizeObserver()));this.unsubs.push((()=>{e.unsubscribe(),t.unsubscribe(),n.unsubscribe()}))}rawResize(){if(!(this.containerEl&&this.headerEl&&this.footerEl&&this.consoleHeaderEl))return;let e=0;for(const t of[this.headerEl,this.footerEl,this.consoleHeaderEl])e+=t.offsetHeight;const t=window.innerHeight,n=document.getElementById("p3xr-database-bottom-console-panel");let s=0;const o=!this.isXs&&void 0!==Ue.state?.connection,i=Math.max(t-e-11,100);o&&(s=this.getBottomConsoleHeight(i));const r=Math.max(i,0);this.containerEl.style.height=r+"px",this.containerEl.style.maxHeight=r+"px";const a=Ue.dom.getPosition(this.containerEl);if(!a||!Number.isFinite(a.height)||!Number.isFinite(a.width))return;const l=Math.max(a.height-s,0);if(n)if(o&&s>0){const e=n.style;e.display="block",e.position="absolute",e.top="auto",e.left="-1px",e.height=s+"px",e.width="auto",e.right="-1px",e.bottom="0"}else n.style.display="none";const c=document.getElementById("p3xr-database-treecontrol-container");if(c){const e=document.getElementById("p3xr-database-treecontrol-controls-container");if(!e)return void this.destroyResizer();const t=Ue.dom.getPosition(e);c.style.top=a.top+t.height+"px",c.style.left=a.left+"px",c.style.height=l-t.height+"px",c.style.maxHeight=l+"px",void 0!==this.resizeLeft?c.style.width=this.resizeLeft-a.left+"px":c.style.width=this.resizeMinWidth+"px",c.style.minWidth=this.resizeMinWidth+"px";const n=Ue.dom.getPosition(c);this.resizerEl||this.decorateResizer();const o=5;if(this.resizerEl&&(this.resizerEl=document.getElementById("p3xr-database-content-sizer"),this.resizerEl)){this.resizerEl.addEventListener("mouseover",this.boundResizerMouseover),this.resizerEl.addEventListener("mouseout",this.boundResizerMouseout),this.resizerEl.style.top=a.top+"px";const t=Math.max(l-(s>0?1:0),0);this.resizerEl.style.height=t+"px",this.resizerEl.style.left=a.left+n.width+"px",this.resizerEl.style.width=o+"px",e.style.width=a.left+n.width+"px"}const i=document.getElementById("p3xr-database-content-container");i&&(i.style.top=a.top+"px",i.style.height=l+"px",i.style.left=a.left+n.width+o+"px",i.style.width=a.width-n.width-o+"px"),e.style.width=n.width+"px"}else this.destroyResizer();o&&s>0&&this.cmd.consoleEmbeddedResize$.next()}getBottomConsoleHeight(e){if(this.bottomConsoleExpanded){let t=Math.max(Math.floor(.33*e),220);return t=Math.min(t,Math.max(e-120,this.bottomConsoleCollapsedHeight)),t}return this.bottomConsoleCollapsedHeight}boundResizerMouseover=()=>{this.resizerMouseoverOn=!0,this.updateResizerColor()};boundResizerMouseout=()=>{this.resizerMouseoverOn=!1,this.updateResizerColor()};boundResizeClick=e=>this.resizeClick(e);boundDocumentMousemove=e=>this.documentMousemove(e);updateResizerColor(){this.resizerActive=this.resizeClicked||this.resizerMouseoverOn}resizeClick(e){"mousedown"===e.type&&"p3xr-database-content-sizer"!==e.target.id||("mousedown"===e.type?(this.resizeClicked=!0,document.documentElement.style.cursor="ew-resize",document.body.classList.add("p3xr-not-selectable")):"mouseup"===e.type&&(document.documentElement.style.cursor="auto",this.resizeClicked=!1,document.body.classList.remove("p3xr-not-selectable")),this.resizeClicked||this.rawResize(),e.stopPropagation(),this.updateResizerColor())}documentMousemove(e){if(!this.resizeClicked||!this.containerEl)return;const t=Ue.dom.getPosition(this.containerEl);e.clientX<t.left+this.resizeMinWidth||e.clientX>window.innerWidth-this.resizeMinWidth?document.documentElement.style.cursor="not-allowed":(document.documentElement.style.cursor="ew-resize",this.resizerEl&&(this.resizerEl.style.left=e.clientX+"px"),this.resizeLeft=e.clientX,this.rawResize())}decorateResizer(){this.resizerEl=document.getElementById("p3xr-database-content-sizer")??void 0,this.resizerEl&&(this.resizerEl.addEventListener("mouseover",this.boundResizerMouseover),this.resizerEl.addEventListener("mouseout",this.boundResizerMouseout),document.addEventListener("mousemove",this.boundDocumentMousemove),document.addEventListener("mousedown",this.boundResizeClick),document.addEventListener("mouseup",this.boundResizeClick))}destroyResizer(){this.resizerEl&&(this.resizerEl.removeEventListener("mouseover",this.boundResizerMouseover),this.resizerEl.removeEventListener("mouseout",this.boundResizerMouseout),this.resizerEl=void 0),document.removeEventListener("mousedown",this.boundResizeClick),document.removeEventListener("mouseup",this.boundResizeClick),document.removeEventListener("mousemove",this.boundDocumentMousemove)}onDocumentMouseDown(e){const t=document.getElementById("p3xr-database-bottom-console-panel");if(!this.isXs&&t)if(t.contains(e.target)){const n=t.querySelector(".p3xr-console-toolbar-actions");if(n&&n.contains(e.target))return;this.bottomConsoleExpanded||(this.bottomConsoleExpanded=!0,this.rawResize(),this.cmd.consoleEmbeddedResize$.next())}else this.bottomConsoleExpanded&&(this.bottomConsoleExpanded=!1,this.rawResize(),this.cmd.consoleEmbeddedResize$.next())}async watchResizeObserver(){if(this.observedElement&&this.resizeObserver.unobserve(this.observedElement),!Ue.state?.connection)return;if(this.isXs)return void this.rawResize();let e=null;for(;null===e;)e=document.getElementById("p3xr-database-treecontrol-controls-container"),e||await new Promise((e=>setTimeout(e)));this.observedElement=e,this.resizeObserver.observe(this.observedElement)}syncFromGlobal(){this.hasConnection=void 0!==Ue?.state?.connection,this.hasConnections=(Ue?.state?.connections?.list?.length??0)>0}static ɵfac=function(e){return new(e||tt)(x.rXU(s.SKi),x.rXU(a.Q),x.rXU(l.W),x.rXU(c.y),x.rXU(d.o),x.rXU(u.L),x.rXU(o.gRc))};static ɵcmp=x.VBU({type:tt,selectors:[["p3xr-database"]],decls:6,vars:5,consts:[[1,"p3xr-content-border"],["id","p3xr-database-content",1,"p3xr-database-content-area",2,"background-color","var(--p3xr-content-bg)","color","var(--mat-app-text-color, inherit)"],["class","md-title","style","padding: 16px;",4,"ngIf"],["style","padding: 16px;",4,"ngIf"],["class","p3xr-database-has-connection",4,"ngIf"],[1,"md-title",2,"padding","16px"],[2,"padding","16px"],[2,"display","inline-block","word-wrap","break-word","white-space","normal","cursor","pointer","background","none","border","none","color","inherit","font-size","inherit","text-decoration","underline",3,"click"],[1,"p3xr-database-has-connection"],[4,"ngIf"],["style","display: flex; flex-direction: column;",4,"ngIf"],["id","p3xr-database-bottom-console-panel",4,"ngIf"],["class","p3xr-database-bottom-console-mobile",4,"ngIf"],["id","p3xr-database-treecontrol-controls-container"],["id","p3xr-database-treecontrol-container"],["id","p3xr-database-content-sizer","role","separator","aria-orientation","vertical","aria-label","Resize panels"],["id","p3xr-database-content-container"],[2,"display","flex","flex-direction","column"],[2,"flex","1"],["id","p3xr-database-treecontrol-container-directive-small",2,"flex","1"],["id","p3xr-database-bottom-console-panel"],["type","quick",3,"embedded"],[1,"p3xr-database-bottom-console-mobile"]],template:function(e,t){1&e&&(x.j41(0,"div",0),x.nrm(1,"p3xr-database-header"),x.j41(2,"div",1),x.DNE(3,Ye,2,1,"div",2)(4,Ke,3,1,"div",3)(5,Qe,5,4,"div",4),x.k0s()()),2&e&&(x.R7$(2),x.AVh("p3xr-database-content-with-bottom-console",t.hasConnection&&!t.isXs),x.R7$(),x.Y8G("ngIf",t.hasConnections&&!t.hasConnection),x.R7$(),x.Y8G("ngIf",!t.hasConnections&&!t.hasConnection),x.R7$(),x.Y8G("ngIf",t.hasConnection))},dependencies:[i.MD,i.bT,r.iI,_e.n3,D,se,we,He],styles:["[_nghost-%COMP%] { display: block; }"]})}},53400(e,t,n){n.r(t)},59237(e,t,n){n.r(t)},4199(e,t,n){n.r(t)},78376(e,t,n){n.r(t)}}]);