iobroker.admin 6.3.1 → 6.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/io-package.json +2 -2
- package/package.json +1 -1
- package/www/asset-manifest.json +7 -7
- package/www/index.html +1 -1
- package/www/static/js/{5710.d295ad71.chunk.js → 5710.61dfc686.chunk.js} +2 -2
- package/www/static/js/{5710.d295ad71.chunk.js.map → 5710.61dfc686.chunk.js.map} +1 -1
- package/www/static/js/6322.4b730316.chunk.js +4 -0
- package/www/static/js/6322.4b730316.chunk.js.map +1 -0
- package/www/static/js/{main.0f5a5d85.js → main.1df3f46d.js} +2 -2
- package/www/static/js/{main.0f5a5d85.js.map → main.1df3f46d.js.map} +1 -1
- package/www/static/js/6322.6d1b948d.chunk.js +0 -4
- package/www/static/js/6322.6d1b948d.chunk.js.map +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";(self.webpackChunksrc_rx=self.webpackChunksrc_rx||[]).push([[6322],{56322:function(qt,qe,b){var q=b(4819),l=b.n(q),et=b(15854),E=b.n(et),Se=b(97230),Oe=b(21879),D=b(29138),tt=b(56474),De=b(33378),st=b(19889),it=b(57578),lt=b(19368),J=b(62003),ot=b(62074),I=b(90541),at=b(96550),re=b(98964),nt=b(5846),rt=b(3574),ct=b(66797),ht=b(69340),dt=b(6911),H=b(17958),G=b(19702),ee=b(46754),ce=b(75090),te=b(55710),R=b(86107),ut=b(22889),mt=b(74187),he=b(81325),Ne=b(62743),pt=b(39323),je=b(91495),Ie=b(23922),xe=b(23251),ft=b(32245),Ae=b(28184),gt=b(73167),Te=b(62363),ke=b(89854),X=b(70563),bt=b(54198),Ve=b(9790),yt=b(41173),_t=b(13423),Et=b(52812),vt=b(34595),F=b(62976),de=b(26021),Ct=b(59599),Me=b(43820),wt=b(17773),St=b(22675),Ot=b(58866),Dt=b(15907),Nt=b(40314),se=b(36859),jt=b(94201),It=b(86732),xt=b(4372),At=b(71672),ue=b(83358),Tt=b(24963),kt=b(86544),Vt=b(6621),Mt=b(95837),Bt=b(87280),ie=b(37943),me=b(78444),Pt=b(13627),pe=b(94475),Wt=b(70703),w=b(61984),Rt=b(17688),Ft=b(89316),$t=b(86887),Lt=Object.defineProperty,Be=Object.getOwnPropertySymbols,Zt=Object.prototype.hasOwnProperty,zt=Object.prototype.propertyIsEnumerable,fe=(a,e,s)=>e in a?Lt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[e]=s,$=(a,e)=>{for(var s in e||(e={}))Zt.call(e,s)&&fe(a,s,e[s]);if(Be)for(var s of Be(e))zt.call(e,s)&&fe(a,s,e[s]);return a},A=(a,e,s)=>(fe(a,typeof e!="symbol"?e+"":e,s),s),ge=(a,e,s)=>new Promise((t,i)=>{var n=u=>{try{h(s.next(u))}catch(m){i(m)}},o=u=>{try{h(s.throw(u))}catch(m){i(m)}},h=u=>u.done?t(u.value):Promise.resolve(u.value).then(n,o);h((s=s.apply(a,e)).next())});const L=24,T=32,Ut=16,j=20,Kt="#ff6d69",Jt="#5773ff",Pe="#ff413c",We="#86211f",be="#57ff45",ye="#098c04",_e="#f3ad11",Ee="#6c5008",Ht=a=>({toolbar:{minHeight:38},toolbarButtons:{padding:4,marginLeft:4},switchColumnAuto:{marginLeft:a.spacing(2)},dialogColumns:{transition:"opacity 1s"},dialogColumnsLabel:{fontSize:12,paddingTop:a.spacing(1)},columnCustom:{width:"100%",display:"inline-block"},columnCustomEditable:{cursor:"text"},columnCustomCenter:{textAlign:"center"},columnCustomLeft:{textAlign:"left"},columnCustomRight:{textAlign:"right"},width100:{width:"100%"},transparent_10:{opacity:.1},transparent_20:{opacity:.2},transparent_30:{opacity:.3},transparent_40:{opacity:.4},transparent_50:{opacity:.5},transparent_60:{opacity:.6},transparent_70:{opacity:.7},transparent_80:{opacity:.8},transparent_90:{opacity:.9},transparent_100:{opacity:1},columnsDialogInputWidth:{width:80},headerRow:{paddingLeft:a.spacing(1),height:38,whiteSpace:"nowrap",userSelect:"none"},buttonClearFilter:{position:"relative",float:"right",padding:0},buttonClearFilterIcon:{zIndex:2,position:"absolute",top:0,left:0,color:"#FF0000",opacity:.7},tableDiv:{paddingTop:0,paddingLeft:0,width:`calc(100% - ${a.spacing(1)})`,height:"calc(100% - 38px)",overflow:"auto"},tableRow:{paddingLeft:a.spacing(1),height:T,lineHeight:`${T}px`,verticalAlign:"top",userSelect:"none",width:"100%","&:hover":{background:`${a.palette.mode==="dark"?a.palette.primary.dark:a.palette.primary.light} !important`,color:w.Z.invertColor(a.palette.primary.main,!0)},whiteSpace:"nowrap",flexWrap:"nowrap"},tableRowLines:{borderBottom:`1px solid ${a.palette.mode==="dark","#8888882e"}`,"& > div":{borderRight:`1px solid ${a.palette.mode==="dark","#8888882e"}`}},tableRowNoDragging:{cursor:"pointer"},tableRowAlias:{height:T+10},tableRowAliasReadWrite:{height:T+22},checkBox:{padding:0},cellId:{position:"relative",fontSize:"1rem",overflow:"hidden",textOverflow:"ellipsis","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"},"& .iconOwn":{display:"block",width:T-4,height:T-4,marginTop:2,float:"right"},"&:hover .iconOwn":{display:"none"},"& *":{width:"initial"}},cellIdSpan:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},cellIdIconFolder:{marginRight:a.spacing(1),width:T-4,height:T-4,cursor:"pointer",color:a.palette.secondary.main||"#fbff7d",verticalAlign:"top"},cellIdIconDocument:{verticalAlign:"middle",marginLeft:(T-j)/2,marginRight:a.spacing(1),width:j,height:j},cellIdIconOwn:{},cellIdTooltip:{fontSize:14},cellIdTooltipLink:{color:"#7ec2fd","&:hover":{color:"#7ec2fd"},"&:visited":{color:"#7ec2fd"}},cellCopyButton:{width:j,height:j,top:(T-j)/2,opacity:.8,"&:hover":{opacity:1},position:"absolute",right:3},cellEditButton:{width:j,height:j,color:"white",position:"absolute",top:(T-j)/2,right:j+3,opacity:.7,"&:hover":{opacity:1}},cellName:{display:"inline-block",verticalAlign:"top",fontSize:14,marginLeft:5,overflow:"hidden",textOverflow:"ellipsis",position:"relative","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellIdAlias:{fontStyle:"italic",fontSize:12,opacity:.7,"&:hover":{color:a.palette.mode==="dark"?"#009900":"#007700"}},cellIdAliasReadWriteDiv:{height:24,marginTop:-5},cellIdAliasAlone:{lineHeight:0},cellIdAliasReadWrite:{lineHeight:"12px"},cellType:{display:"inline-block",verticalAlign:"top","& .itemIcon":{verticalAlign:"middle",width:L,height:L,display:"inline-block"},"& .itemIconFolder":{marginLeft:3}},cellRole:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellRoom:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellEnumParent:{opacity:.4},cellFunc:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValue:{display:"inline-block",verticalAlign:"top",textOverflow:"ellipsis",overflow:"hidden"},cellValueButton:{marginTop:5,"&:active":{transform:"scale(0.8)"}},cellValueButtonFalse:{opacity:.3},cellAdapter:{display:"inline-block",verticalAlign:"top"},cellValueTooltip:{fontSize:12},cellValueText:{width:"100%",height:T,fontSize:16,display:"inline-block",overflow:"hidden",textOverflow:"ellipsis",position:"relative",verticalAlign:"top","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellValueFile:{color:"#2837b9"},cellValueTooltipTitle:{fontStyle:"italic",width:100,display:"inline-block"},cellValueTooltipValue:{width:120,display:"inline-block",whiteSpace:"nowrap",textOverflow:"ellipsis"},cellValueTooltipBoth:{width:220,display:"inline-block",whiteSpace:"nowrap"},cellValueTooltipBox:{width:250,overflow:"hidden"},cellValueTextUnit:{marginLeft:a.spacing(.5),opacity:.8},newValue:{animation:"$newValueAnimation 2s ease-in-out"},"@keyframes newValueAnimation":{"0%":{color:"#00f900"},"80%":{color:"#008000"},"100%":{color:a.palette.mode==="dark"?"#fff":"#000"}},cellValueTextState:{opacity:.7},cellValueTooltipCopy:{position:"absolute",bottom:3,right:3},cellValueTooltipEdit:{position:"absolute",bottom:3,right:15},cellButtons:{display:"inline-block",verticalAlign:"top"},cellButtonsButton:{display:"inline-block",opacity:.7,width:j+4,height:j+4,"&:hover":{opacity:1},paddingTop:0,paddingLeft:0,marginTop:-2},cellButtonsEmptyButton:{fontSize:12},cellButtonMinWidth:{minWidth:47},cellButtonsButtonAlone:{marginLeft:j+4,paddingTop:0,marginTop:-2},cellButtonsButtonWithCustoms:{color:a.palette.secondary.main},cellButtonsButtonWithoutCustoms:{opacity:.2},cellButtonsValueButton:{position:"absolute",display:"inline-block",top:j/2-2,opacity:.7,width:j-2,height:j-2,color:a.palette.action.active,"&:hover":{opacity:1}},cellButtonsValueButtonCopy:{right:a.spacing(1),cursor:"pointer"},cellButtonsValueButtonEdit:{right:j/2+parseInt(a.spacing(2),10)},filteredOut:{opacity:.5},filteredParentOut:{opacity:.3},filterInput:{marginTop:0,marginBottom:0},selectIcon:{width:24,height:24,marginRight:4},selectNone:{opacity:.5},itemSelected:{background:`${a.palette.primary.main} !important`,color:`${w.Z.invertColor(a.palette.primary.main,!0)} !important`},header:{width:"100%"},headerCell:{display:"inline-block",verticalAlign:"top"},headerCellValue:{paddingTop:4,fontSize:16},headerCellInput:{width:"calc(100% - 5px)",height:T,paddingTop:3,"& .itemIcon":{verticalAlign:"middle",width:L,height:L,display:"inline-block"}},headerCellSelectItem:{"& .itemIcon":{width:L,height:L,marginRight:5,display:"inline-block"}},visibleButtons:{color:"#2196f3",opacity:.7},grow:{flexGrow:1},enumIconDiv:{marginRight:a.spacing(1),width:32,height:32,borderRadius:8,background:"#FFFFFF"},enumIcon:{marginTop:4,marginLeft:4,width:24,height:24},enumDialog:{overflow:"hidden"},enumList:{minWidth:250,height:"calc(100% - 50px)",overflow:"auto"},enumButton:{float:"right"},enumCheckbox:{minWidth:0},buttonDiv:{display:"flex",height:"100%",alignItems:"center"},aclText:{fontSize:13},rightsObject:{color:"#55ff55",paddingLeft:3},rightsState:{color:"#86b6ff",paddingLeft:3},textCenter:{padding:12,textAlign:"center"},tooltipAccessControl:{display:"flex",flexDirection:"column"},"@media screen and (max-width: 465px)":{columnsDialogInputWidth:{width:50},fontSizeTitle:{"& *":{fontSize:12}}},"@media screen and (max-width: 700px)":{},"@media screen and (max-width: 430px)":{},draggable:{cursor:"copy"},nonDraggable:{cursor:"no-drop"},selectClearButton:{position:"absolute",top:0,right:0,borderRadius:20,backgroundColor:a.palette.background.default},iconDeviceConnected:{color:a.palette.mode==="dark"?be:ye,opacity:.8,position:"absolute",top:4,right:32,width:20},iconDeviceDisconnected:{color:a.palette.mode==="dark"?_e:Ee,opacity:.8,position:"absolute",top:4,right:32,width:20},iconDeviceError:{color:a.palette.mode==="dark"?Pe:We,opacity:.8,position:"absolute",top:4,right:50,width:20},resizeHandle:{display:"block",position:"absolute",cursor:"col-resize",width:7,top:2,bottom:2,zIndex:1},resizeHandleRight:{right:3,borderRight:"2px dotted #888","&:hover":{borderColor:"#ccc",borderRightStyle:"solid"},"&.active":{borderColor:"#517ea5",borderRightStyle:"solid"}},resizeHandleLeft:{left:-4,borderLeft:"2px dotted #888","&:hover":{borderColor:"#ccc",borderLeftStyle:"solid"},"&.active":{borderColor:"#517ea5",borderLeftStyle:"solid"}},invertedBackground:{backgroundColor:a.palette.mode==="dark"?"#9a9a9a":"#565656",padding:"0 3px",borderRadius:"2px 0 0 2px"},invertedBackgroundFlex:{backgroundColor:a.palette.mode==="dark"?"#9a9a9a":"#565656",borderRadius:"0 2px 2px 0"}});function Re(a,e){const s=document.createElement("a");s.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(e,null,2))}`),s.setAttribute("download",a),s.style.display="none",document.body.appendChild(s),s.click(),document.body.removeChild(s)}function Y(a,e,s,t){if(s=s||0,t===void 0&&(t=a.length-1,!t))return a[0]===e;const i=Math.floor((s+t)/2);return e===a[i]?a[i]:t-1===s?a[s]===e||a[t]===e:e>a[i]?Y(a,e,i,t):e<a[i]?Y(a,e,s,i):!1}function M(a,e){return a&&typeof a=="object"?(a[e]||a.en||"").toString():(a||"").toString()}function le(a,e,s){s=s||".";let t="";const i=`system.adapter.${e}`,n=e&&a[i]&&a[i].common&&a[i].common.icon;if(n){if(!n.startsWith("data:image/"))if(n.includes("."))t=`${s}/adapter/${a[i].common.name}/${n}`;else return n&&n.length<3?n:null;n.startsWith("data:image/svg")?t=l().createElement(Oe.default,{className:"iconOwn",src:n,width:28,height:28}):t=n}else{const o=a[e]&&a[e].common;if(o){const h=o.icon;if(h)if(h.startsWith("data:image/"))h.startsWith("data:image/svg")?t=l().createElement(Oe.default,{className:"iconOwn",src:h,width:28,height:28}):t=h;else if(h.includes(".")){let u;a[e].type==="instance"||a[e].type==="adapter"?t=`${s}/adapter/${o.name}/${h}`:e&&e.startsWith("system.adapter.")?(u=e.split(".",3),h[0]==="/"?u[2]+=h:u[2]+=`/${h}`,t=`${s}/adapter/${u[2]}`):(u=e.split(".",2),h[0]==="/"?u[0]+=h:u[0]+=`/${h}`,t=`${s}/adapter/${u[0]}`)}else return n&&n.length<3?n:null}}return t||null}function ve(a,e,s,t,i,n,o,h,u){var m,y,d,f;u=u||0;let r=!1;i||(i={},e.id&&(i.id=e.id.toLowerCase()),e.name&&(i.name=e.name.toLowerCase()),e.type&&(i.type=e.type.toLowerCase()),e.custom&&(i.custom=e.custom.toLowerCase()),e.role&&(i.role=e.role.toLowerCase()),e.room&&(i.room=t[e.room]&&t[e.room].common&&t[e.room].common.members||[]),e.func&&(i.func=t[e.func]&&t[e.func].common&&t[e.func].common.members||[]));const c=a.data;if(c&&c.id){const g=(m=c.obj)==null?void 0:m.common;o&&(o.type&&(typeof o.type=="string"?(!c.obj||o.type!==c.obj.type)&&(r=!0):Array.isArray(o.type)&&(!c.obj||!o.type.includes(c.obj.type))&&(r=!0)),!r&&((y=o.common)==null?void 0:y.type)&&(g!=null&&g.type?typeof o.common.type=="string"?o.common.type!==g.type&&(r=!0):Array.isArray(o.common.type)&&(o.type.includes(g.type)||(r=!0)):r=!0),!r&&((d=o.common)==null?void 0:d.role)&&(g!=null&&g.role?typeof o.common.role=="string"?g.role.startsWith(o.common.role)&&(r=!0):Array.isArray(o.common.role)&&(o.common.role.find(p=>o.role.includes(p))||(r=!0)):r=!0),!r&&((f=o.common)==null?void 0:f.custom)&&(g!=null&&g.custom?o.common.custom==="_dataSources"?Object.keys(g.custom).find(p=>p.startsWith("history.")||p.startsWith("sql.")||p.startsWith("influxdb."))||(r=!0):o.common.custom!==!0&&!Object.keys(g.custom).find(p=>p.startsWith(o.common.custom))&&(r=!0):r=!0)),!r&&!e.expertMode&&(r=c.id==="system"||c.id==="enum"||c.id.startsWith("system.")||c.id.startsWith("enum.")||c.id.startsWith("_design/")||c.id.endsWith(".admin")||g&&g.expert),!r&&i.id&&(c.fID===void 0&&(c.fID=c.id.toLowerCase()),r=!c.fID.includes(i.id)),!r&&i.name&&(g?(c.fName===void 0&&(c.fName=g&&M(g.name,s)||"",c.fName=c.fName.toLowerCase()),r=!c.fName.includes(i.name)):r=!0),!r&&e.role&&g&&(g?r=!(g.role&&g.role.startsWith(i.role)):r=!0),!r&&i.room&&(r=!i.room.find(p=>p===c.id||c.id.startsWith(`${p}.`))),!r&&i.func&&(r=!i.func.find(p=>p===c.id||c.id.startsWith(`${p}.`))),!r&&i.type&&(r=!(c.obj&&c.obj.type&&c.obj.type===i.type)),!r&&h&&(r=!(c.obj&&c.obj.type&&h.includes(c.obj.type))),!r&&i.custom&&(g?r=!g.custom||!g.custom[i.custom]:r=!0)}return c.visible=!r,c.hasVisibleChildren=!1,a.children&&u<20&&a.children.forEach(g=>{ve(g,e,s,t,i,n,o,h,u+1)&&(c.hasVisibleChildren=!0)}),c.sumVisibility=c.visible||c.hasVisibleChildren,n&&c.sumVisibility&&n.count++,c.id&&c.sumVisibility&&a.children&&a.children.forEach(g=>g.data.hasVisibleParent=!0),c.visible||c.hasVisibleChildren}function Fe(a,e,s,t){var i;t=t||[];const n=a.data;return n.sumVisibility&&(n.id&&s[n.id]&&(!e||s[n.id].type===e)&&t.push(n.id),(i=a.children)==null||i.forEach(o=>Fe(o,e,s,t))),t}function $e(a,e,s,t){let i;return e.startsWith("_design/")||e==="system"?i=l().createElement(xe.default,{className:"iconOwn"}):e==="0_userdata"||e==="0_userdata.0"?i=l().createElement(ft.default,{className:"iconOwn"}):e==="alias"||e==="alias.0"?i=l().createElement(xt.default,{className:"iconOwn"}):e==="system.adapter"?i=l().createElement(xe.default,{className:"iconOwn"}):e==="system.group"?i=l().createElement(Ae.default,{className:"iconOwn"}):e==="system.user"?i=l().createElement(Te.default,{className:"iconOwn"}):e==="system.host"?i=l().createElement(ke.default,{className:"iconOwn"}):e.endsWith(".connection")||e.endsWith(".connected")?i=l().createElement(X.default,{className:"iconOwn"}):e.endsWith(".info")?i=l().createElement(bt.default,{className:"iconOwn"}):a[e]&&a[e].type==="meta"?i=l().createElement(Ve.default,{className:"iconOwn"}):s<2&&a[`system.adapter.${e}`]&&(i=le(a,`system.adapter.${e}`,t)),i||null}function Gt(a,e,s){var t,i,n,o,h,u,m,y;if(((i=(t=a==null?void 0:a.obj)==null?void 0:t.common)==null?void 0:i.desc)&&a.obj.common.desc!==""){let d="";if(typeof((o=(n=a==null?void 0:a.obj)==null?void 0:n.common)==null?void 0:o.desc)=="object"&&a.obj.common.desc[s]!==void 0)d=a.obj.common.desc[s];else if(typeof((u=(h=a==null?void 0:a.obj)==null?void 0:h.common)==null?void 0:u.desc)=="object"&&a.obj.common.desc.en!==void 0)d=a.obj.common.desc.en;else{if(typeof((y=(m=a==null?void 0:a.obj)==null?void 0:m.common)==null?void 0:y.desc)=="object"&&a.obj.common.desc[s]===void 0)return a.id;d=a.obj.common.desc}return d!=null&&d.startsWith("http")?l().createElement("a",{className:w.Z.clsx(e.cellIdTooltipLink),href:d,target:"_blank",rel:"noreferrer"},d):l().createElement("span",{className:w.Z.clsx(e.cellIdTooltip)},d)}return a.id}function Le(a,e){var s,t,i,n;e=e||{};const o=e.imagePrefix||".",h=Object.keys(a);h.sort((c,g)=>c===g?0:(c=c.replace(/\./g,"!!!"),g=g.replace(/\./g,"!!!"),c>g?1:-1));let u=[],m="",y=0;const d={data:{name:"",id:""},children:[]},f={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:a,customs:[],enums:[],hasSomeCustoms:!1};let r=d;for(let c=0;c<h.length;c++){const g=h[c];if(!g)continue;const p=a[g],C=g.split(".");if(p.type&&!f.types.includes(p.type)&&f.types.push(p.type),p){const _=p.common,O=_&&_.role;O&&!f.roles.includes(O)?f.roles.push(O):g.startsWith("enum.rooms.")?(f.roomEnums.push(g),f.enums.push(g)):g.startsWith("enum.functions.")?(f.funcEnums.push(g),f.enums.push(g)):p.type==="enum"?f.enums.push(g):p.type==="instance"&&_&&(_.supportCustoms||((s=_.adminUI)==null?void 0:s.custom))&&(f.hasSomeCustoms=!0,f.customs.push(g.substring(15)))}f.ids.push(g);let S;do if(S=!1,!m||g.startsWith(`${m}.`)){if(C.length-y>1){let O=m;for(let x=y;x<C.length-1;x++)if(O+=(O?".":"")+C[x],Y(f.ids,O))r=r.children.find(Z=>Z.data.name===C[x]);else{const Z={data:{name:C[x],parent:r,id:O,obj:a[O],level:x,icon:$e(a,O,x,o),generated:!0}};r.children=r.children||[],r.children.push(Z),r=Z,f.ids.push(O)}}const _={data:{name:C[C.length-1],title:M(p&&p.common&&p.common.name,e.lang),obj:p,parent:r,icon:le(a,g,o)||$e(a,g,0,o),id:g,hasCustoms:((t=p.common)==null?void 0:t.custom)&&Object.keys(p.common.custom).length,level:C.length-1,generated:!1,button:p.type==="state"&&((i=p.common)==null?void 0:i.role)&&typeof p.common.role=="string"&&p.common.role.startsWith("button")&&((n=p.common)==null?void 0:n.write)!==!1}};r.children=r.children||[],r.children.push(_),r=_,y=C.length,u=C,m=g}else{let _=0;for(;u[_]===C[_];)_++;if(_>0){let O=u.length;for(u=u.splice(0,_),y=_,m=u.join(".");O>_;)r=r.data.parent,O--}else r=d,u=[],m="",y=0;S=!0}while(S)}return f.roomEnums.sort((c,g)=>{var p,C,S,_;const O=M(((C=(p=a[c])==null?void 0:p.common)==null?void 0:C.name)||c.split(".").pop()),x=M(((_=(S=a[g])==null?void 0:S.common)==null?void 0:_.name)||g.split(".").pop());return O>x?1:O<x?-1:0}),f.funcEnums.sort((c,g)=>{var p,C,S,_;const O=M(((C=(p=a[c])==null?void 0:p.common)==null?void 0:C.name)||c.split(".").pop()),x=M(((_=(S=a[g])==null?void 0:S.common)==null?void 0:_.name)||g.split(".").pop());return O>x?1:O<x?-1:0}),f.roles.sort(),f.types.sort(),{info:f,root:d}}function Ze(a,e,s,t,i){if(a.data.id===e)return a;if(s||(s=e.split("."),i=0,t=s[i]),!a.children&&a.data.id!==e)return null;let n;for(let o=0;o<a.children.length;o++){const h=a.children[o].data.id;if(h===t){n=a.children[o];break}else if(h>t)break}return n?Ze(n,e,s,`${t}.${s[i+1]}`,i+1):null}function ze(a,e,s,t,i){var n,o;if(!e)return{rooms:[],per:!1};i=i||[];for(let m=0;m<a.roomEnums.length;m++){const y=(n=a.objects[a.roomEnums[m]])==null?void 0:n.common,d=M(y.name,s);((o=y==null?void 0:y.members)==null?void 0:o.includes(e))&&!i.includes(d)&&(t?i.push({name:d,origin:e}):i.push(d))}let h;const u=e.split(".");return u.pop(),e=u.join("."),a.objects[e]&&(h=i.length,ze(a,e,s,t,i)),{rooms:i,per:!h}}function Ue(a,e,s,t){var i,n;if(!e)return[];t=t||[];for(let o=0;o<a[s].length;o++){const h=(i=a.objects[a[s][o]])==null?void 0:i.common;((n=h==null?void 0:h.members)==null?void 0:n.includes(e))&&!t.includes(a[s][o])&&t.push(a[s][o])}return t.sort(),t}function Ke(a,e,s,t,i){var n,o;if(!e)return{funcs:[],pef:!1};i=i||[];for(let m=0;m<a.funcEnums.length;m++){const y=(n=a.objects[a.funcEnums[m]])==null?void 0:n.common,d=M(y.name,s);((o=y==null?void 0:y.members)==null?void 0:o.includes(e))&&!i.includes(d)&&(t?i.push({name:d,origin:e}):i.push(d))}let h;const u=e.split(".");return u.pop(),e=u.join("."),a.objects[e]&&(h=i.length,Ke(a,e,s,t,i)),{funcs:i,pef:!h}}function Xt(a,e,s,t,i,n){const o=w.Z.getStates(s),h=s.common,u={};let m=h&&h.type==="file"?"[file]":!e||e.val===null?"(null)":e.val===void 0?"[undef]":e.val;const y=typeof m;h&&h.role&&typeof h.role=="string"&&h.role.match(/^value\.time|^date/)?m&&typeof m=="string"?m.length===13&&(m=new Date(parseInt(m,10)).toString()):(m>946681200&&m<9466812e5&&(m*=1e3),m=m&&new Date(m).toString()):(y==="number"?(m=Math.round(m*1e8)/1e8,n&&(m=m.toString().replace(".",","))):y==="object"?m=JSON.stringify(m):y!=="string"&&(m=m.toString()),typeof m!="string"&&(m=m.toString())),o&&o[m]!==void 0&&m!==o[m]&&(u.s=m,m=o[m]),h&&h.unit&&(u.u=h.unit);const d=[{t:t.value,v:m}];if(e){if(e.ack!==void 0&&e.ack!==null&&d.push({t:t.ack,v:e.ack.toString()}),e.ts&&d.push({t:t.ts,v:e.ts?w.Z.formatDate(new Date(e.ts),i):""}),e.lc&&d.push({t:t.lc,v:e.lc?w.Z.formatDate(new Date(e.lc),i):""}),e.from){let f=e.from.toString();f.startsWith("system.adapter.")&&(f=f.substring(15)),d.push({t:t.from,v:f})}if(e.user){let f=e.user.toString();f.startsWith("system.user.")&&(f=f.substring(12)),d.push({t:t.user,v:f})}e.c&&d.push({t:t.c,v:e.c}),d.push({t:t.quality,v:w.Z.quality2text(e.q||0).join(", "),nbr:!0})}return u.v=m,{valText:u,valFull:d,style:{color:e!=null&&e.ack?e.q?"#ffa500":"":"#ff2222c9"}}}function Yt(a,e){let s=e,t=1;const i=[];for(;t<a.length&&s<e+25*36e5;){for(;a[t-1].ts<s&&s<=a[t].ts&&t<a.length;)t++;if(t===1&&a[t-1].ts>=s)i.push(0);else if(t<a.length)if(typeof a[t].val=="boolean"||typeof a[t-1].val=="boolean")i.push(a[t].val?1:0);else{a[t-1].val=a[t-1].val||0,a[t].val=a[t].val||0;const n=a[t-1].val+(a[t].val-a[t-1].val)*(s-a[t-1].ts)/(a[t].ts-a[t-1].ts);i.push(n)}s+=36e5}return i}const oe={id:"",name:"",room:"",func:"",role:"",type:"",custom:"",expertMode:!1},Je={state:l().createElement(Bt.default,{className:"itemIcon"}),channel:l().createElement(At.default,{className:"itemIcon"}),device:l().createElement(Tt.default,{className:"itemIcon"}),adapter:l().createElement(It.default,{className:"itemIcon"}),meta:l().createElement(Ve.default,{className:"itemIcon"}),instance:l().createElement(Mt.default,{className:"itemIcon",style:{color:"#7da7ff"}}),enum:l().createElement(Et.default,{className:"itemIcon"}),chart:l().createElement(_t.default,{className:"itemIcon"}),config:l().createElement(Ie.default,{className:"itemIcon"}),group:l().createElement(Ae.default,{className:"itemIcon"}),user:l().createElement(Te.default,{className:"itemIcon"}),host:l().createElement(ke.default,{className:"itemIcon"}),schedule:l().createElement(gt.default,{className:"itemIcon"}),script:l().createElement(yt.default,{className:"itemIcon"}),folder:l().createElement(ie.default,{className:"itemIcon itemIconFolder"})},He=(0,Se.Z)(a=>({badge:{right:3,top:3,border:`2px solid ${a.palette.background.paper}`,padding:"0 4px"}}))(ot.Z),N={xs:{idWidth:"100%",fields:[],widths:{}},sm:{idWidth:300,fields:["room","val"],widths:{room:100,val:200}},md:{idWidth:300,fields:["room","func","val","buttons"],widths:{name:200,room:150,func:150,val:120,buttons:120}},lg:{idWidth:300,fields:["name","type","role","room","func","val","buttons","changedFrom","qualityCode","timestamp","lastChange"],widths:{name:300,type:80,role:120,room:180,func:180,val:140,buttons:120,changedFrom:120,qualityCode:100,timestamp:165,lastChange:165}},xl:{idWidth:550,fields:["name","type","role","room","func","val","buttons","changedFrom","qualityCode","timestamp","lastChange"],widths:{name:400,type:80,role:120,room:180,func:180,val:140,buttons:120,changedFrom:120,qualityCode:100,timestamp:170,lastChange:170}}};let Ge=!1;class W extends q.Component{constructor(e){super(e),A(this,"onStateChange",(d,f)=>{if(console.log(`> stateChange ${d}`),this.states[d]){const r=this.findItem(d);r&&r.data.state&&(r.data.state=null)}this.states[d]=f,this.pausedSubscribes?this.statesUpdateTimer&&(clearTimeout(this.statesUpdateTimer),this.statesUpdateTimer=null):this.statesUpdateTimer||(this.statesUpdateTimer=setTimeout(()=>{this.statesUpdateTimer=null,this.forceUpdate()},300))}),A(this,"onObjectChange",(d,f)=>{let r;if(Array.isArray(d))d.forEach(c=>{if(console.log(`> objectChange ${c.id}`),!(c.obj&&typeof this.props.filterFunc=="function"&&!this.props.filterFunc(c.obj))){if(c.id.startsWith("system.adapter.")&&c.obj&&c.obj.type==="adapter"){const g=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(g,c.obj),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(g)&&(r={columnsForAdmin:g})}this.objects=this.objects||[],this.objects[c.id]&&(c.obj?this.objects[c.id]=c.obj:delete this.objects[c.id])}});else{if(console.log(`> objectChange ${d}`),this.objects=this.objects||[],f&&typeof this.props.filterFunc=="function"&&!this.props.filterFunc(f))return;if(d.startsWith("system.adapter.")&&f&&f.type==="adapter"){const c=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(c,f),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(c)&&(r={columnsForAdmin:c})}this.objects[d]&&(f?this.objects[d]=f:delete this.objects[d])}r&&this.setState(r),!this.objectsUpdateTimer&&this.objects&&(this.objectsUpdateTimer=setTimeout(()=>{this.objectsUpdateTimer=null;const{info:c,root:g}=Le(this.objects,this.props);this.root=g,this.info=c,this.lastAppliedFilter=null,this.pausedSubscribes||this.forceUpdate()},500))}),A(this,"getEnumsForId",d=>{const f=[];return this.info.enums.forEach(r=>{var c,g,p;if((p=(g=(c=this.objects[r])==null?void 0:c.common)==null?void 0:g.members)!=null&&p.includes(d)){const C={_id:this.objects[r]._id,common:JSON.parse(JSON.stringify(this.objects[r].common)),native:this.objects[r].native,type:"enum"};C.common&&(delete C.common.members,delete C.common.custom,delete C.common.mobile),f.push(C)}}),f.length?f:void 0}),A(this,"_createAllEnums",(d,f)=>ge(this,null,function*(){var r,c;for(let g=0;g<d.length;g++){let p=d[g],C;typeof p=="object"&&(C=p,p=p._id);let S=this.objects[p];S?(c=(r=S.common)==null?void 0:r.members)!=null&&c.includes(f)||(S.common=S.common||{},S.common.members=S.common.members||[],S.common.members.push(f),S.common.members.sort(),yield this.props.socket.setObject(p,S)):(S=C||{_id:p,common:{name:p.split(".").pop(),members:[]},native:{}},S.common=S.common||{},S.common.members=[f],yield this.props.socket.setObject(p,S))}})),A(this,"loadObjects",d=>ge(this,null,function*(){if(d)for(const f in d){if(!Object.hasOwn(d,f)||!d[f])continue;const r=d[f];let c=null;r&&r.common&&r.common.enums?(c=r.common.enums,delete r.common.enums):c=null;try{if(yield this.props.socket.setObject(f,r),c&&(yield this._createAllEnums(c,r._id)),r.type==="state")try{const g=yield this.props.socket.getState(r._id);if(!g||g.val===null)try{yield this.props.socket.setState(r._id,!r.common||r.common.def===void 0?null:r.common.def,!0)}catch(p){window.alert(`Cannot set state "${r._id}": ${p}`)}}catch(g){window.alert(`Cannot read state "${r._id}": ${g}`)}}catch(g){window.alert(g)}}})),A(this,"handleJsonUpload",d=>{const f=d.target.files[0];if(f){const r=new FileReader;r.onload=c=>ge(this,null,function*(){const g=c.target.result;try{const p=JSON.parse(g),C=Object.keys(p).length,S=p._id;if(S===void 0&&C)yield this.loadObjects(p),window.alert(this.props.t("ra_%s object(s) processed",C));else{if(!S)return window.alert(this.props.t("ra_Invalid structure"));try{let _;if(p.common.enums&&(_=p.common.enums,delete p.common.enums),yield this.props.socket.setObject(p._id,p),p.type==="state"){const O=yield this.props.socket.getState(p._id);(!O||O.val===null||O.val===void 0)&&(yield this.props.socket.getState(p._id,p.common.def===void 0?null:p.common.def,!0))}_&&(yield this._createAllEnums(_,p._id)),window.alert(this.props.t("ra_%s was imported",p._id))}catch(_){window.alert(_)}}}catch(p){window.alert(p)}return null}),r.readAsText(f)}else window.alert(this.props.t("ra_Failed to open JSON File"))}),A(this,"toolTipObjectCreating",()=>{var d,f;const{t:r}=this.props;let c=[l().createElement("div",{key:1},r("ra_Only following structures of objects are available:")),l().createElement("div",{key:2},r("ra_Folder \u2192 State")),l().createElement("div",{key:3},r("ra_Folder \u2192 Channel \u2192 State")),l().createElement("div",{key:4},r("ra_Folder \u2192 Device \u2192 Channel \u2192 State")),l().createElement("div",{key:5},r("ra_Device \u2192 Channel \u2192 State")),l().createElement("div",{key:6},r("ra_Channel \u2192 State")),l().createElement("div",{key:7,style:{height:10}}),l().createElement("div",{key:8},r('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),l().createElement("div",{key:9},r('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];if(this.state.selected.length||this.state.selectedNonObject){const g=this.state.selected[0]||this.state.selectedNonObject;if(!(g.split(".").length<2||this.objects[g]&&((d=this.objects[g])==null?void 0:d.type)==="state"))if(this.state.filter.expertMode)switch((f=this.objects[g])==null?void 0:f.type){case"device":c=[l().createElement("div",{key:1},r("ra_Only following structures of objects are available:")),l().createElement("div",{key:5},r("ra_Device \u2192 Channel \u2192 State")),l().createElement("div",{key:7,style:{height:10}}),l().createElement("div",{key:8},r('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),l().createElement("div",{key:9},r('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"folder":c=[l().createElement("div",{key:1},r("ra_Only following structures of objects are available:")),l().createElement("div",{key:2},r("ra_Folder \u2192 State")),l().createElement("div",{key:3},r("ra_Folder \u2192 Channel \u2192 State")),l().createElement("div",{key:4},r("ra_Folder \u2192 Device \u2192 Channel \u2192 State")),l().createElement("div",{key:7,style:{height:10}}),l().createElement("div",{key:8},r('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),l().createElement("div",{key:9},r('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;case"channel":c=[l().createElement("div",{key:1},r("ra_Only following structures of objects are available:")),l().createElement("div",{key:1},r("ra_Channel \u2192 State")),l().createElement("div",{key:7,style:{height:10}}),l().createElement("div",{key:8},r('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),l().createElement("div",{key:9},r('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))];break;default:break}else(g.startsWith("alias.0")||g.startsWith("0_userdata"))&&(c=[l().createElement("div",{key:1},r("ra_Only following structures of objects are available:")),l().createElement("div",{key:2},r("ra_Folder \u2192 State")),l().createElement("div",{key:3},r("ra_Folder \u2192 Channel \u2192 State")),l().createElement("div",{key:4},r("ra_Folder \u2192 Device \u2192 Channel \u2192 State")),l().createElement("div",{key:5},r("ra_Device \u2192 Channel \u2192 State")),l().createElement("div",{key:6},r("ra_Channel \u2192 State")),l().createElement("div",{key:7,style:{height:10}}),l().createElement("div",{key:7},r('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')),l().createElement("div",{key:8},r('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").'))])}return c.length?c:r("ra_Add new child object to selected parent")}),A(this,"renderTooltipAccessControl",d=>{if(!d)return null;const f=[{value:"0x400",valueNum:1024,title:"read",group:"Owner"},{value:"0x200",valueNum:512,title:"write",group:"Owner"},{value:"0x40",valueNum:64,title:"read",group:"Group"},{value:"0x20",valueNum:32,title:"write",group:"Group"},{value:"0x4",valueNum:4,title:"read",group:"Everyone"},{value:"0x2",valueNum:2,title:"write",group:"Everyone"}],r=[],c=(g="object")=>{const p=d[g];f.forEach((C,S)=>{p&C.valueNum&&r.push(l().createElement("span",{key:g+S},this.texts[`acl${C.group}_${C.title}_${g}`],",",l().createElement("span",{className:g==="object"?this.props.classes.rightsObject:this.props.classes.rightsState},C.value)))})};return r.push(l().createElement("span",{key:"group"},`${this.texts.ownerGroup}: ${(d.ownerGroup||"").replace("system.group.","")}`)),r.push(l().createElement("span",{key:"owner"},`${this.texts.ownerUser}: ${(d.owner||"").replace("system.user.","")}`)),c(),d.state&&c("state"),r.length?l().createElement("span",{className:this.props.classes.tooltipAccessControl},r.map(g=>g)):""}),A(this,"resizerMouseMove",d=>{if(this.resizerActiveDiv){let f,r;this.resizeLeft?(f=this.resizerOldWidth-d.clientX+this.resizerPosition,r=this.resizerOldWidthNext+d.clientX-this.resizerPosition):(f=this.resizerOldWidth+d.clientX-this.resizerPosition,r=this.resizerOldWidthNext-d.clientX+this.resizerPosition),(!this.resizerMin||f>this.resizerMin)&&(!this.resizerNextMin||r>this.resizerNextMin)&&(this.resizerCurrentWidths[this.resizerActiveName]=f,this.resizerCurrentWidths[this.resizerNextName]=r,this.resizerActiveDiv.style.width=`${f}px`,this.resizerNextDiv.style.width=`${r}px`,this.columnsVisibility[this.resizerActiveName]=f,this.columnsVisibility[this.resizerNextName]=r,this.resizerNextName==="nameHeader"?(this.columnsVisibility.name=r-this.state.scrollBarWidth,this.resizerCurrentWidths.name=r-this.state.scrollBarWidth):this.resizerActiveName==="nameHeader"&&(this.columnsVisibility.name=f-this.state.scrollBarWidth,this.resizerCurrentWidths.name=f-this.state.scrollBarWidth),this.customWidth=!0,this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=null,this.forceUpdate()},200))}}),A(this,"resizerMouseUp",()=>{(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.table`,JSON.stringify(this.resizerCurrentWidths)),this.resizerActiveName=null,this.resizerNextName=null,this.resizerActiveDiv=null,this.resizerNextDiv=null,window.removeEventListener("mousemove",this.resizerMouseMove),window.removeEventListener("mouseup",this.resizerMouseUp)}),A(this,"resizerMouseDown",d=>{if(this.resizerActiveIndex===null||this.resizerActiveIndex===void 0){this.storedWidths||(this.storedWidths=JSON.parse(JSON.stringify(N[this.props.width]))),this.resizerCurrentWidths=this.resizerCurrentWidths||{},this.resizerActiveDiv=d.target.parentNode,this.resizerActiveName=this.resizerActiveDiv.dataset.name;let f=0;if(d.target.dataset.left==="true"){this.resizeLeft=!0,this.resizerNextDiv=this.resizerActiveDiv.previousElementSibling;let r=this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);for(;this.resizerNextDiv&&!r&&f<10;)this.resizerNextDiv=this.resizerNextDiv.previousElementSibling,r=this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`),f++;r&&r.dataset.left!=="true"&&(this.resizerNextDiv=this.resizerNextDiv.nextElementSibling)}else this.resizeLeft=!1,this.resizerNextDiv=this.resizerActiveDiv.nextElementSibling;this.resizerNextName=this.resizerNextDiv.dataset.name,this.resizerMin=parseInt(this.resizerActiveDiv.dataset.min,10)||0,this.resizerNextMin=parseInt(this.resizerNextDiv.dataset.min,10)||0,this.resizerPosition=d.clientX,this.resizerCurrentWidths[this.resizerActiveName]=this.resizerActiveDiv.offsetWidth,this.resizerCurrentWidths[this.resizerNextName]=this.resizerNextDiv.offsetWidth,this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveName],this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerNextName],window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}}),A(this,"resizerReset",()=>{this.customWidth=!1,N[this.props.width]=JSON.parse(JSON.stringify(this.storedWidths)),this.calculateColumnsVisibility(),(window._localStorage||window.localStorage).removeItem(`${this.props.dialogName||"App"}.table`),this.forceUpdate()}),A(this,"extendObject",(d,f)=>this.props.socket.extendObject(d,f).catch(r=>window.alert(r))),A(this,"setObject",(d,f)=>this.props.socket.setObject(d,f).catch(r=>window.alert(r))),this.lastSelectedItems=(window._localStorage||window.localStorage).getItem(`${e.dialogName||"App"}.objectSelected`)||"[]";try{this.lastSelectedItems=JSON.parse(this.lastSelectedItems),typeof this.lastSelectedItems!="object"&&(this.lastSelectedItems=[this.lastSelectedItems]),this.lastSelectedItems=this.lastSelectedItems.filter(d=>d)}catch(d){}let s=(window._localStorage||window.localStorage).getItem(`${e.dialogName||"App"}.objectExpanded`)||"[]";try{s=JSON.parse(s)}catch(d){s=[]}let t=e.defaultFilters||(window._localStorage||window.localStorage).getItem(`${e.dialogName||"App"}.objectFilter`)||$({},oe);if(typeof t=="string")try{t=JSON.parse(t)}catch(d){t=$({},oe)}if(t.expertMode=e.expertMode!==void 0?e.expertMode:(window._sessionStorage||window.sessionStorage).getItem("App.expertMode")==="true",this.tableRef=(0,q.createRef)(),this.filterRefs={},Object.keys(oe).forEach(d=>this.filterRefs[d]=(0,q.createRef)()),this.lastAppliedFilter=null,this.pausedSubscribes=!1,this.selectedFound=!1,this.root=null,this.states={},this.subscribes=[],this.statesUpdateTimer=null,this.objectsUpdateTimer=null,this.visibleCols=e.columns||N[e.width].fields,e.types&&e.types.length===1){const d=this.visibleCols.indexOf("type");d!==-1&&this.visibleCols.splice(d,1)}let i=null;if(e.router){const d=e.router.getLocation();d.id&&d.dialog==="customs"&&(i=[d.id],this.pauseSubscribe(!0))}let n=e.selected||"";typeof n!="object"&&(n=[n]),n=n.map(d=>d.replace(/["']/g,"")).filter(d=>d);let o=null;try{o=o?JSON.parse(o):null}catch(d){o=null}let h=null;try{h=h?JSON.parse(h):{}}catch(d){h={}}this.imagePrefix=e.imagePrefix||".";let u=(window._localStorage||window.localStorage).getItem(`${e.dialogName||"App"}.foldersFirst`);u==="false"?u=!1:u==="true"?u=!0:u=e.foldersFirst===void 0?!0:e.foldersFirst;let m=!1;try{m=this.props.objectStatesView&&JSON.parse((window._localStorage||window.localStorage).getItem(`${e.dialogName||"App"}.objectStatesView`))||!1}catch(d){}this.state={loaded:!1,foldersFirst:u,selected:n,selectedNonObject:(window._localStorage||window.localStorage).getItem(`${e.dialogName||"App"}.selectedNonObject`)||"",filter:t,filterKey:0,depth:0,expandAllVisible:!1,expanded:s,toast:"",lang:e.lang,scrollBarWidth:16,customDialog:i,editObjectDialog:"",viewFileDialog:"",enumDialog:null,roleDialog:null,statesView:m,columns:o,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:!0,columnsWidths:h,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,linesEnabled:(window._localStorage||window.localStorage).getItem(`${e.dialogName||"App"}.lines`)==="true"},this.edit={},this.texts={value:e.t("ra_tooltip_value"),ack:e.t("ra_tooltip_ack"),ts:e.t("ra_tooltip_ts"),lc:e.t("ra_tooltip_lc"),from:e.t("ra_tooltip_from"),user:e.t("ra_tooltip_user"),c:e.t("ra_tooltip_comment"),quality:e.t("ra_tooltip_quality"),editObject:e.t("ra_tooltip_editObject"),deleteObject:e.t("ra_tooltip_deleteObject"),customConfig:e.t("ra_tooltip_customConfig"),copyState:e.t("ra_tooltip_copyState"),editState:e.t("ra_tooltip_editState"),close:e.t("ra_Close"),filter_id:e.t("ra_filter_id"),filter_name:e.t("ra_filter_name"),filter_type:e.t("ra_filter_type"),filter_role:e.t("ra_filter_role"),filter_room:e.t("ra_filter_room"),filter_func:e.t("ra_filter_func"),filter_custom:e.t("ra_filter_customs"),objectChangedByUser:e.t("ra_object_changed_by_user"),objectChangedBy:e.t("ra_object_changed_by"),objectChangedFrom:e.t("ra_state_changed_from"),stateChangedBy:e.t("ra_state_changed_by"),stateChangedFrom:e.t("ra_state_changed_from"),ownerGroup:e.t("ra_Owner group"),ownerUser:e.t("ra_Owner user"),deviceError:e.t("ra_Error"),deviceDisconnected:e.t("ra_Disconnected"),deviceConnected:e.t("ra_Connected"),aclOwner_read_object:e.t("ra_aclOwner_read_object"),aclOwner_read_state:e.t("ra_aclOwner_read_state"),aclOwner_write_object:e.t("ra_aclOwner_write_object"),aclOwner_write_state:e.t("ra_aclOwner_write_state"),aclGroup_read_object:e.t("ra_aclGroup_read_object"),aclGroup_read_state:e.t("ra_aclGroup_read_state"),aclGroup_write_object:e.t("ra_aclGroup_write_object"),aclGroup_write_state:e.t("ra_aclGroup_write_state"),aclEveryone_read_object:e.t("ra_aclEveryone_read_object"),aclEveryone_read_state:e.t("ra_aclEveryone_read_state"),aclEveryone_write_object:e.t("ra_aclEveryone_write_object"),aclEveryone_write_state:e.t("ra_aclEveryone_write_state")},this.levelPadding=e.levelPadding||Ut;let y=(window._localStorage||window.localStorage).getItem(`${this.props.dialogName||"App"}.table`);if(y)try{y=JSON.parse(y),this.storedWidths=JSON.parse(JSON.stringify(N[this.props.width])),Object.keys(y).forEach(d=>{d==="id"?N[this.props.width].idWidth=y.id:d==="nameHeader"?N[this.props.width].widths.name=y[d]:N[this.props.width].widths[d]!==void 0&&(N[this.props.width].widths[d]=y[d])}),this.customWidth=!0}catch(d){}this.calculateColumnsVisibility()}loadAllObjects(e){const s=this.props;let t;return new Promise(i=>{this.setState({updating:!0},()=>i())}).then(()=>this.props.objectsWorker?this.props.objectsWorker.getObjects(e):s.socket.getObjects(e,!0)).then(i=>(t=i,s.types&&s.types[0]!=="state"?(s.length>=1&&console.error("more than one type does not supported! Use filterFunc instead"),s.socket.getObjectView(null,null,s.types[0])):t["system.config"]?Promise.resolve(null):s.socket.getObject("system.config").then(n=>({"system.config":n})))).then(i=>(this.systemConfig=t["system.config"]||i["system.config"]||{},i&&(i["system.config"]&&delete i["system.config"],Object.assign(t,i)),this.systemConfig.common=this.systemConfig.common||{},this.systemConfig.common.defaultNewAcl=this.systemConfig.common.defaultNewAcl||{},this.systemConfig.common.defaultNewAcl.owner=this.systemConfig.common.defaultNewAcl.owner||"system.user.admin",this.systemConfig.common.defaultNewAcl.ownerGroup=this.systemConfig.common.defaultNewAcl.ownerGroup||"system.group.administrator",typeof this.systemConfig.common.defaultNewAcl.state!="number"&&(this.systemConfig.common.defaultNewAcl.state=1636),typeof this.systemConfig.common.defaultNewAcl.object!="number"&&(this.systemConfig.common.defaultNewAcl.state=1636),typeof s.filterFunc=="function"?(this.objects={},Object.keys(t).forEach(n=>{try{s.filterFunc(t[n])&&(this.objects[n]=t[n])}catch(o){console.log(`Error by filtering of "${n}": ${o}`)}})):s.types?(this.objects={},Object.keys(t).forEach(n=>{const o=t[n]&&t[n].type;o&&(o==="channel"||o==="device"||o==="enum"||o==="folder"||o==="adapter"||o==="instance"||s.types.includes(o))&&(this.objects[n]=t[n])})):this.objects=t,this.defaultHistory=this.systemConfig.common.defaultHistory,this.defaultHistory&&s.socket.getState(`system.adapter.${this.defaultHistory}.alive`).then(n=>{(!n||!n.val)&&(this.defaultHistory="")}).catch(n=>window.alert(`Cannot get state: ${n}`)),this.getAdditionalColumns())).then(i=>{this.calculateColumnsVisibility(null,null,i);const{info:n,root:o}=Le(this.objects,this.props);this.root=o,this.info=n;const h=this.state.selected&&this.state.selected.length&&Ze(this.root,this.state.selected[0]);this.lastAppliedFilter=null,h&&!ve(h,this.state.filter,this.state.lang,this.objects,null,null,s.customFilter,s.types)?this.setState({filter:$({},oe),columnsForAdmin:i},()=>{this.setState({loaded:!0,updating:!1},()=>this.expandAllSelected(()=>this.onAfterSelect()))}):this.setState({loaded:!0,updating:!1,columnsForAdmin:i},()=>this.expandAllSelected(()=>this.onAfterSelect()))}).catch(i=>this.showError(i))}expandAllSelected(e){const s=[...this.state.expanded];let t=!1;this.state.selected.forEach(i=>{const n=i.split("."),o=[];for(let h=0;h<n.length-1;h++)o.push(n[h]),s.includes(o.join("."))||(s.push(o.join(".")),t=!0)}),t?(s.sort(),(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(s)),this.setState({expanded:s},e)):e&&e()}onAfterSelect(e){if(this.lastSelectedItems=[...this.state.selected],this.state.selected&&this.state.selected.length){(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectSelected`,JSON.stringify(this.lastSelectedItems));const s=this.lastSelectedItems.length===1?w.Z.getObjectName(this.objects,this.lastSelectedItems[0],null,{language:this.state.lang}):"";this.props.onSelect&&this.props.onSelect(this.lastSelectedItems,s,e)}else(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectSelected`,""),this.state.selected.length?this.setState({selected:[]},()=>this.props.onSelect&&this.props.onSelect([],"")):this.props.onSelect&&this.props.onSelect([],"")}static getDerivedStateFromProps(e,s){const t={};let i=!1;return e.expertMode!==void 0&&e.expertMode!==s.filter.expertMode&&(i=!0,t.filter=$({},s.filter),t.filter.expertMode=e.expertMode),i?t:null}componentDidMount(){this.loadAllObjects(!Ge).then(()=>{this.props.objectsWorker?this.props.objectsWorker.registerHandler(this.onObjectChange):this.props.socket.subscribeObject("*",this.onObjectChange),Ge=!0})}componentWillUnmount(){this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=null,this.props.objectsWorker?this.props.objectsWorker.unregisterHandler(this.onObjectChange,!0):this.props.socket.unsubscribeObject("*",this.onObjectChange),this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.objects={}}refreshComponent(){this.subscribes.forEach(e=>{console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange)}),this.subscribes=[],this.loadAllObjects(!0).then(()=>console.log("updated!"))}renderErrorDialog(){return this.state.error?l().createElement(G.Z,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.setState({error:""}),"aria-labelledby":"error-dialog-title","aria-describedby":"error-dialog-description"},l().createElement(H.Z,{id:"alert-dialog-title"},this.props.title||this.props.t("ra_Error")),l().createElement(ee.Z,null,l().createElement(ce.Z,{id:"alert-dialog-description"},this.state.error)),l().createElement(te.Z,null,l().createElement(R.Z,{variant:"contained",onClick:()=>this.setState({error:""}),color:"primary",autoFocus:!0,startIcon:l().createElement(de.default,null)},this.props.t("ra_Ok")))):null}showError(e){this.setState({error:typeof e=="object"?e&&typeof e.toString=="function"?e.toString():JSON.stringify(e):e})}onSelect(e,s){if(!this.props.multiSelect)this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))?((window._localStorage||window.localStorage).removeItem(`${this.props.dialogName||"App"}.selectedNonObject`),this.state.selected[0]!==e?this.setState({selected:[e],selectedNonObject:""},()=>this.onAfterSelect(s)):s&&this.props.onSelect&&this.onAfterSelect(s)):((window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.selectedNonObject`,e),this.setState({selected:[],selectedNonObject:e},()=>this.onAfterSelect()));else if(this.objects[e]&&(!this.props.types||this.props.types.includes(this.objects[e].type))){(window._localStorage||window.localStorage).removeItem(`${this.props.dialogName||"App"}.selectedNonObject`);const t=[...this.state.selected],i=t.indexOf(e);i===-1?(t.push(e),t.sort()):s||t.splice(i,1),this.setState({selected:t,selectedNonObject:""},()=>this.onAfterSelect(s))}}renderColumnsSelectorDialog(){return this.state.columnsSelectorShow?l().createElement(G.Z,{onClose:()=>this.setState({columnsSelectorShow:!1}),open:!0,classes:{root:w.Z.clsx(this.props.classes.dialogColumns,this.props.classes[`transparent_${this.state.columnsDialogTransparent}`])}},l().createElement(H.Z,{className:this.props.classes.fontSizeTitle},this.props.t("ra_Configure")),l().createElement(ee.Z,{className:this.props.classes.fontSizeTitle},l().createElement(he.Z,{className:this.props.classes.switchColumnAuto,control:l().createElement(Ne.Z,{checked:this.state.foldersFirst,onChange:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.foldersFirst`,this.state.foldersFirst?"false":"true"),this.setState({foldersFirst:!this.state.foldersFirst})}}),label:this.props.t("ra_Folders always first")}),l().createElement(he.Z,{className:this.props.classes.switchColumnAuto,control:l().createElement(Ne.Z,{checked:this.state.linesEnabled,onChange:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.lines`,this.state.linesEnabled?"false":"true"),this.setState({linesEnabled:!this.state.linesEnabled})}}),label:this.props.t("ra_Show lines between rows")})),l().createElement(te.Z,null,l().createElement(R.Z,{variant:"contained",onClick:()=>this.setState({columnsSelectorShow:!1}),color:"primary",startIcon:l().createElement(F.default,null)},this.texts.close))):null}getAdditionalColumns(){return this.props.socket.getAdapters().then(e=>{let s=null;return e.forEach(t=>s=this.parseObjectForAdmins(s,t)),s}).catch(()=>{})}checkUnsubscribes(){for(let e=this.subscribes.length-1;e>=0;e--)!this.recordStates.includes(this.subscribes[e])&&this.unsubscribe(this.subscribes[e]);this.recordStates=[]}findItem(e,s,t,i){if(s=s||e.split("."),t=t||this.root,!t||!s.length)return null;if(i=(i?`${i}.`:"")+s.shift(),t.children){const n=t.children.find(o=>o.data.id===i);if(n){if(n.data.id===e)return n;if(s.length)return this.findItem(e,s,n,i)}else return null}return null}parseObjectForAdmins(e,s){if(s.common&&s.common.adminColumns&&s.common.name){let t=s.common.adminColumns;typeof t!="object"&&(t=[t]),t=t.map(i=>typeof i!="object"?{path:i,name:i.split(".").pop()}:(i.objTypes&&typeof i.objTypes!="object"?i.objTypes=[i.objTypes]:i.objTypes||(i.objTypes=null),!i.name&&i.path?{path:i.path,name:i.path.split(".").pop(),width:i.width,edit:!!i.edit,type:i.type,objTypes:i.objTypes}:typeof i.name!="object"&&i.path?{path:i.path,name:i.name,width:i.width,edit:!!i.edit,type:i.type,objTypes:i.objTypes}:i.path?{path:i.path,name:i.name[this.props.lang]||i.name.en,width:i.width,edit:!!i.edit,type:i.type,objTypes:i.objTypes}:(console.warn(`Admin columns for ${s._id} ignored, because path not found`),null))).filter(i=>i),t&&t.length&&(e=e||{},e[s.common.name]=t.sort((i,n)=>i.path>n.path?-1:i.path<n.path?1:0))}else s.common&&s.common.name&&e&&e[s.common.name]&&delete e[s.common.name];return e}subscribe(e){this.subscribes.includes(e)||(this.subscribes.push(e),console.log(`+ subscribe ${e}`),!this.pausedSubscribes&&this.props.socket.subscribeState(e,this.onStateChange))}unsubscribe(e){const s=this.subscribes.indexOf(e);s!==-1&&(this.subscribes.splice(s,1),this.states[e]&&delete this.states[e],console.log(`- unsubscribe ${e}`),this.props.socket.unsubscribeState(e,this.onStateChange),this.pausedSubscribes&&console.warn("Unsubscribe during pause?"))}pauseSubscribe(e){!this.pausedSubscribes&&e?(this.pausedSubscribes=!0,this.subscribes.forEach(s=>this.props.socket.unsubscribeState(s,this.onStateChange))):this.pausedSubscribes&&!e&&(this.pausedSubscribes=!1,this.subscribes.forEach(s=>this.props.socket.subscribeState(s,this.onStateChange)))}onFilter(e,s){this.filterTimer=null;const t=$({},this.state.filter);Object.keys(this.filterRefs).forEach(i=>{if(this.filterRefs[i]&&this.filterRefs[i].current){for(let n=0;n<this.filterRefs[i].current.children.length;n++)if(this.filterRefs[i].current.children[n].tagName==="INPUT"){t[i]=this.filterRefs[i].current.children[n].value;break}}}),e&&(t[e]=s,e==="expertMode"&&(window._sessionStorage||window.sessionStorage).setItem("App.expertMode",s?"true":"false")),JSON.stringify(this.state.filter)!==JSON.stringify(t)&&((window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(t)),this.setState({filter:t},()=>this.props.onFilterChanged&&this.props.onFilterChanged(t)))}clearFilter(){const e=$({},this.state.filter);Object.keys(this.filterRefs).forEach(s=>{if(this.filterRefs[s]&&this.filterRefs[s].current)for(let t=0;t<this.filterRefs[s].current.childNodes.length;t++){const i=this.filterRefs[s].current.childNodes[t];if(i.tagName==="INPUT"){e[s]="",i.value="";break}}}),JSON.stringify(this.state.filter)!==JSON.stringify(e)&&((window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(e)),this.setState({filter:e,filterKey:this.state.filterKey+1},()=>this.props.onFilterChanged&&this.props.onFilterChanged(e)))}isFilterEmpty(){return!Object.keys(this.state.filter).find(s=>s!=="expertMode"&&this.state.filter[s])}getFilterInput(e){var s,t;return l().createElement(it.Z,{className:w.Z.clsx(this.props.classes.headerCellInput,this.props.classes.filterInput),key:`${e}_${this.state.filterKey}`,margin:"dense"},l().createElement(lt.Z,{ref:this.filterRefs[e],classes:{underline:"no-underline"},id:e,placeholder:this.texts[`filter_${e}`],defaultValue:this.state.filter[e],onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},autoComplete:"off"}),(t=(s=this.filterRefs[e])==null?void 0:s.current)!=null&&t.firstChild.value?l().createElement("div",{style:{position:"absolute",right:0}},l().createElement(D.Z,{size:"small",onClick:()=>{this.filterRefs[e].current.firstChild.value="",this.onFilter(e,"")}},l().createElement(F.default,null))):null)}getFilterSelect(e,s){var t,i,n;const o=!!s.find(h=>h.icon);return l().createElement("div",{style:{position:"relative"}},l().createElement(st.Z,{variant:"standard",key:`${e}_${this.state.filterKey}`,ref:this.filterRefs[e],className:`${this.props.classes.headerCellInput} no-underline`,onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout(()=>this.onFilter(),400)},defaultValue:this.state.filter[e]||"",inputProps:{name:e,id:e},displayEmpty:!0},l().createElement(De.Z,{key:"empty",value:""},l().createElement("span",{className:this.props.classes.selectNone},this.texts[`filter_${e}`])),s.map(h=>{let u,m,y;return typeof h=="object"?(u=h.value,m=h.name,y=h.icon):(u=h,m=h),l().createElement(De.Z,{className:this.props.classes.headerCellSelectItem,key:u,value:u},y||(o?l().createElement("div",{className:"itemIcon"}):null),m)})),(n=(i=(t=this.filterRefs[e])==null?void 0:t.current)==null?void 0:i.childNodes[1])!=null&&n.value?l().createElement("div",{className:w.Z.clsx(this.props.classes.selectClearButton)},l().createElement(D.Z,{size:"small",onClick:()=>{const h=$({},this.state.filter);h[e]="",this.filterRefs[e].current.childNodes[1].value="",(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(h)),this.setState({filter:h,filterKey:this.state.filterKey+1},()=>this.props.onFilterChanged&&this.props.onFilterChanged(h))}},l().createElement(F.default,null))):null)}getFilterSelectRole(){return this.getFilterSelect("role",this.info.roles)}getFilterSelectRoom(){const e=this.info.roomEnums.map(s=>{var t,i,n,o;return{name:M(((i=(t=this.objects[s])==null?void 0:t.common)==null?void 0:i.name)||s.split(".").pop()),value:s,icon:l().createElement(pe.default,{src:((o=(n=this.objects[s])==null?void 0:n.common)==null?void 0:o.icon)||"",className:this.props.classes.selectIcon})}});return this.getFilterSelect("room",e)}getFilterSelectFunction(){const e=this.info.funcEnums.map(s=>{var t,i;return{name:M(this.objects[s]&&this.objects[s].common&&this.objects[s].common.name||s.split(".").pop()),value:s,icon:l().createElement(pe.default,{src:((i=(t=this.objects[s])==null?void 0:t.common)==null?void 0:i.icon)||"",className:this.props.classes.selectIcon})}});return this.getFilterSelect("func",e)}getFilterSelectType(){const e=this.info.types.map(s=>({name:s,value:s,icon:Je[s]}));return this.getFilterSelect("type",e)}getFilterSelectCustoms(){if(this.info.customs.length){const e=this.info.customs.map(s=>({name:s,value:s,icon:l().createElement(pe.default,{src:le(this.objects,s,this.imagePrefix)||"",className:this.props.classes.selectIcon})}));return this.getFilterSelect("custom",e)}return null}onExpandAll(e,s){e=e||this.root,s=s||[],e.children&&e.children.forEach(t=>{t.data.sumVisibility&&(s.push(t.data.id),this.onExpandAll(t,s))}),e===this.root&&(s.sort(),(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(s)),this.setState({expanded:s}))}onCollapseAll(){(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify([])),(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectSelected`,"[]"),this.setState({expanded:[],depth:0,selected:[]},()=>this.onAfterSelect())}expandDepth(e,s,t){e=e||this.root,s>0&&e.children&&e.children.forEach(i=>{i.data.sumVisibility&&(Y(t,i.data.id)||(t.push(i.data.id),t.sort()),s-1>0&&this.expandDepth(i,s-1,t))})}static collapseDepth(e,s){return s.filter(t=>t.split(".").length<=e)}onExpandVisible(){if(this.state.depth<9){const e=this.state.depth+1,s=[...this.state.expanded];this.expandDepth(this.root,e,s),(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(s)),this.setState({depth:e,expanded:s})}}onStatesViewVisible(){const e=!this.state.statesView;(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectStatesView`,JSON.stringify(e)),this.setState({statesView:e})}onCollapseVisible(){if(this.state.depth>0){const e=this.state.depth-1,s=W.collapseDepth(e,this.state.expanded);(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(s)),this.setState({depth:e,expanded:s})}}_getSelectedIdsForExport(){if(this.state.selected.length||this.state.selectedNonObject){const e=[],s=Object.keys(this.objects);s.sort();const t=this.state.selected[0]||this.state.selectedNonObject,i=`${t}.`,n=i.length;for(let o=0;o<s.length;o++){const h=s[o];if((t===h||h.startsWith(i))&&e.push(h),h.substring(0,n)>i)break}return e}return[]}_exportObjects(e){if(e)Re("allObjects.json",this.objects);else if(this.state.selected.length||this.state.selectedNonObject){const s={},t=this.state.selected[0]||this.state.selectedNonObject;this._getSelectedIdsForExport().forEach(i=>{if(s[i]=JSON.parse(JSON.stringify(this.objects[i])),s[i].common){const n=this.getEnumsForId(i);n&&(s[i].common.enums=n)}}),Re(`${t}.json`,s)}else window.alert(this.props.t("ra_Save of objects-tree is not possible"))}renderExportDialog(){return this.state.showExportDialog===!1?null:l().createElement(G.Z,{open:!0},l().createElement(H.Z,null,this.props.t("Select type of export")),l().createElement(ee.Z,null,l().createElement(ce.Z,null,this.props.t("You can export all objects or just the selected branch."),l().createElement("br",null),this.props.t("Selected %s object(s)",this.state.showExportDialog))),l().createElement(te.Z,null,l().createElement(R.Z,{color:"grey",variant:"outlined",onClick:()=>this.setState({showExportDialog:!1},()=>this._exportObjects(!0))},this.props.t("ra_All objects")," (",Object.keys(this.objects).length,")"),l().createElement(R.Z,{color:"primary",variant:"contained",autoFocus:!0,onClick:()=>this.setState({showExportDialog:!1},()=>this._exportObjects(!1))},this.props.t("ra_Only selected")," (",this.state.showExportDialog,")"),l().createElement(R.Z,{color:"grey",variant:"contained",onClick:()=>this.setState({showExportDialog:!1}),startIcon:l().createElement(F.default,null)},this.props.t("ra_Cancel"))))}getToolbar(){let e=!1;if(this.state.selected.length||this.state.selectedNonObject){const s=this.state.selected[0]||this.state.selectedNonObject;s.split(".").length<2||this.objects[s]&&this.objects[s].type==="state"?e=!1:(this.state.filter.expertMode||s.startsWith("alias.0")||s.startsWith("0_userdata"))&&(e=!0)}return l().createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},l().createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},l().createElement(I.Z,{title:this.props.t("ra_Refresh tree")},l().createElement("div",null,l().createElement(D.Z,{onClick:()=>this.refreshComponent(),disabled:this.state.updating,size:"large"},l().createElement(St.default,null)))),this.props.showExpertButton&&!this.props.expertMode&&l().createElement(I.Z,{title:this.props.t("ra_expertMode")},l().createElement(D.Z,{key:"expertMode",color:this.state.filter.expertMode?"secondary":"default",onClick:()=>this.onFilter("expertMode",!this.state.filter.expertMode),size:"large"},l().createElement(jt.default,null))),!this.props.disableColumnSelector&&l().createElement(I.Z,{title:this.props.t("ra_Configure")},l().createElement(D.Z,{key:"columnSelector",onClick:()=>this.setState({columnsSelectorShow:!0}),size:"large"},l().createElement(vt.default,null))),this.state.expandAllVisible&&l().createElement(I.Z,{title:this.props.t("ra_Expand all nodes")},l().createElement(D.Z,{key:"expandAll",onClick:()=>this.onExpandAll(),size:"large"},l().createElement(me.default,null))),l().createElement(I.Z,{title:this.props.t("ra_Collapse all nodes")},l().createElement(D.Z,{key:"collapseAll",onClick:()=>this.onCollapseAll(),size:"large"},l().createElement(ie.default,null))),l().createElement(I.Z,{title:this.props.t("ra_Expand one step node")},l().createElement(D.Z,{key:"expandVisible",color:"primary",onClick:()=>this.onExpandVisible(),size:"large"},l().createElement(He,{badgeContent:this.state.depth,color:"secondary"},l().createElement(me.default,null)))),l().createElement(I.Z,{title:this.props.t("ra_Collapse one step node")},l().createElement(D.Z,{key:"collapseVisible",color:"primary",onClick:()=>this.onCollapseVisible(),size:"large"},l().createElement(He,{badgeContent:this.state.depth,color:"secondary"},l().createElement(ie.default,null)))),this.props.objectStatesView&&l().createElement(I.Z,{title:this.props.t("ra_Toggle the states view")},l().createElement(D.Z,{onClick:()=>this.onStatesViewVisible(),size:"large"},l().createElement(Ot.default,{color:this.state.statesView?"primary":"inherit"}))),this.props.objectAddBoolean?l().createElement(I.Z,{title:this.toolTipObjectCreating()},l().createElement("div",null,l().createElement(D.Z,{disabled:!e,onClick:()=>this.setState({modalNewObj:!0}),size:"large"},l().createElement(wt.default,null)))):null,this.props.objectImportExport&&l().createElement(I.Z,{title:this.props.t("ra_Add objects tree from JSON file")},l().createElement(D.Z,{onClick:()=>{const s=document.createElement("input");s.setAttribute("type","file"),s.setAttribute("id","files"),s.setAttribute("opacity",0),s.addEventListener("change",t=>this.handleJsonUpload(t),!1),s.click()},size:"large"},l().createElement(Me.default,null))),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&l().createElement(I.Z,{title:this.props.t("ra_Save objects tree as JSON file")},l().createElement(D.Z,{onClick:()=>this.setState({showExportDialog:this._getSelectedIdsForExport().length}),size:"large"},l().createElement(Me.default,{style:{transform:"rotate(180deg)"}})))),!!this.props.objectBrowserEditObject&&l().createElement("div",{style:{display:"flex",whiteSpace:"nowrap"}},`${this.props.t("ra_Objects")}: ${Object.keys(this.info.objects).length}, ${this.props.t("ra_States")}: ${Object.keys(this.info.objects).filter(s=>this.info.objects[s].type==="state").length}`),this.props.objectEditBoolean&&l().createElement(I.Z,{title:this.props.t("ra_Edit custom config")},l().createElement(D.Z,{onClick:()=>{const s=Fe(this.root,"state",this.objects);s.length?(this.pauseSubscribe(!0),s.length===1&&((window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),this.props.router&&this.props.router.doNavigate(null,"custom",this.state.selected[0])),this.setState({customDialog:s})):this.setState({toast:this.props.t("ra_please select object")})},size:"large"},l().createElement(Ct.default,null))))}toggleExpanded(e){const s=JSON.parse(JSON.stringify(this.state.expanded)),t=s.indexOf(e);t===-1?(s.push(e),s.sort()):s.splice(t,1),(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(s)),this.setState({expanded:s})}onCopy(e,s){e.stopPropagation(),e.preventDefault(),w.Z.copyToClipboard(s,null),s.length<50?this.setState({toast:this.props.t("ra_Copied %s",s)}):this.setState({toast:this.props.t("ra_Copied")})}renderColumnButtons(e,s,t){var i,n,o;if(!s.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?l().createElement("div",{className:t.buttonDiv},this.state.filter.expertMode&&this.props.objectEditOfAccessControl?l().createElement(D.Z,{className:w.Z.clsx(t.cellButtonsButton,t.cellButtonsEmptyButton,t.cellButtonMinWidth),onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:s.data}),size:"large"},"---"):null,this.props.onObjectDelete&&s.children&&s.children.length?l().createElement(D.Z,{className:w.Z.clsx(t.cellButtonsButton,t.cellButtonsButtonAlone),size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:()=>{const m=Object.keys(this.objects);m.sort();let y=0;const d=`${e}.`;for(let f=0;f<m.length;f++)if(m[f].startsWith(d))y++;else if(m[f]>d)break;this.props.onObjectDelete(e,!!(s.children&&s.children.length),!1,y+1)}},l().createElement(je.default,{className:t.cellButtonsButtonIcon})):null):null;s.data.aclTooltip=s.data.aclTooltip||this.renderTooltipAccessControl(s.data.obj.acl);const h=s.data.obj.acl?s.data.obj.type==="state"?s.data.obj.acl.state:s.data.obj.acl.object:0,u=s.data.obj.acl&&(s.data.obj.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);return[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?l().createElement(I.Z,{key:"acl",title:s.data.aclTooltip},l().createElement(D.Z,{className:t.cellButtonMinWidth,onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:s.data}),size:"large"},l().createElement("div",{className:t.aclText},Number.isNaN(Number(h).toString(16))?Number(u).toString(16):Number(h).toString(16)))):l().createElement("div",{key:"aclEmpty",className:t.cellButtonMinWidth}),l().createElement(D.Z,{key:"edit",className:t.cellButtonsButton,size:"small","aria-label":"edit",title:this.texts.editObject,onClick:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.setState({editObjectDialog:e})}},l().createElement(pt.default,{className:t.cellButtonsButtonIcon})),this.props.onObjectDelete&&(((i=s.children)==null?void 0:i.length)||!((n=s.data.obj.common)!=null&&n.dontDelete))?l().createElement(D.Z,{key:"delete",className:t.cellButtonsButton,size:"small","aria-label":"delete",onClick:()=>{var m,y;const d=Object.keys(this.objects);d.sort();let f=0;const r=`${e}.`;for(let c=0;c<d.length;c++)if(d[c].startsWith(r))f++;else if(d[c]>r)break;this.props.onObjectDelete(e,!!((m=s.children)!=null&&m.length),!((y=s.data.obj.common)!=null&&y.dontDelete),f)},title:this.texts.deleteObject},l().createElement(je.default,{className:t.cellButtonsButtonIcon})):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&s.data.obj.type==="state"&&((o=s.data.obj.common)==null?void 0:o.type)!=="file"?l().createElement(D.Z,{className:w.Z.clsx(t.cellButtonsButton,s.data.hasCustoms?t.cellButtonsButtonWithCustoms:t.cellButtonsButtonWithoutCustoms),key:"custom",size:"small","aria-label":"config",title:this.texts.customConfig,onClick:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.objectSelected`,e),this.pauseSubscribe(!0),this.props.router&&this.props.router.doNavigate(null,"customs",e),this.setState({customDialog:[e]})}},l().createElement(Ie.default,{className:t.cellButtonsButtonIcon})):null]}readHistory(e){if(window.sparkline&&this.defaultHistory&&this.objects[e]&&this.objects[e].common&&this.objects[e].common.custom&&this.objects[e].common.custom[this.defaultHistory]){const s=new Date;s.setHours(s.getHours()-24),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0);const t=s.getTime();this.props.socket.getHistory(e,{instance:this.defaultHistory,start:t,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addID:!1,aggregate:"minmax"}).then(i=>{const n=window.document.getElementsByClassName("sparkline");for(let o=0;o<n.length;o++)if(n[o].dataset.id===e){const h=Yt(i,t);window.sparkline.sparkline(n[o],h);break}}).catch(i=>console.warn(`Cannot read history: ${i}`))}}renderColumnValue(e,s,t){var i;const n=s.data.obj;if(!n||!this.states)return null;if(((i=n.common)==null?void 0:i.type)==="file")return l().createElement("div",{className:w.Z.clsx(t.cellValueText,t.cellValueFile)},"[file]");if(!this.states[e])return n.type==="state"&&(!this.recordStates.includes(e)&&this.recordStates.push(e),this.states[e]={val:null},this.subscribe(e)),null;!this.recordStates.includes(e)&&this.recordStates.push(e);const o=this.states[e];let h=s.data.state;if(!h){s.data.state=s.data.state||Xt(e,o,n,this.texts,this.props.dateFormat,this.props.isFloatComma),h=s.data.state,h.valFull=h.valFull.map(y=>y.t===this.texts.quality&&o.q?[l().createElement("div",{className:t.cellValueTooltipBoth,key:y.t},y.t,":\xA0",y.v),y.nbr?null:l().createElement("br",{key:`${y.t}_br`})]:[l().createElement("div",{className:t.cellValueTooltipTitle,key:y.t},y.t,":\xA0"),l().createElement("div",{className:t.cellValueTooltipValue,key:`${y.t}_v`},y.v),y.nbr?null:l().createElement("br",{key:`${y.t}_br`})]),this.defaultHistory&&this.objects[e]&&this.objects[e].common&&this.objects[e].common.custom&&this.objects[e].common.custom[this.defaultHistory]&&h.valFull.push(l().createElement("svg",{key:"sparkline",className:"sparkline","data-id":e,style:{fill:"#3d85de"},width:"200",height:"30",strokeWidth:"3"}));const m=h.valText.v||"";h.val=m,h.valText=[l().createElement("span",{className:t.newValue,key:`${h.valText.v.toString()}valText`},h.valText.v.toString()),h.valText.u?l().createElement("span",{className:w.Z.clsx(t.cellValueTextUnit,t.newValue),key:`${h.valText.v.toString()}unit`},h.valText.u):null,h.valText.s!==void 0?l().createElement("span",{className:w.Z.clsx(t.cellValueTextState,t.newValue),key:`${h.valText.v.toString()}states`},"(",h.valText.s,")"):null,l().createElement(ue.default,{className:w.Z.clsx(t.cellButtonsValueButton,"copyButton",t.cellButtonsValueButtonCopy),onClick:y=>this.onCopy(y,m),key:"cc"})]}let u=h.valText;return!this.state.filter.expertMode&&s.data.button&&(u=l().createElement(Dt.default,{className:w.Z.clsx(this.props.classes.cellValueButton,!this.states[e]||!this.states[e].val?this.props.classes.cellValueButtonFalse:"")})),l().createElement(I.Z,{key:"value",title:h.valFull,classes:{tooltip:this.props.classes.cellValueTooltip,popper:this.props.classes.cellValueTooltipBox},onOpen:()=>this.readHistory(e)},l().createElement("div",{style:h.style,className:t.cellValueText},u))}_syncEnum(e,s,t,i){var n,o,h;if(!s||!s.length){i&&i();return}const u=s.pop(),m=[];if((n=this.info.objects[u])!=null&&n.common){if((o=this.info.objects[u].common.members)!=null&&o.length){const y=this.info.objects[u].common.members.indexOf(e);if(y!==-1&&!t.includes(u)){const d=JSON.parse(JSON.stringify(this.info.objects[u]));d.common.members.splice(y,1),m.push(this.props.socket.setObject(u,d).then(()=>this.info.objects[u]=d).catch(f=>this.showError(f)))}}if(t.includes(u)&&!((h=this.info.objects[u].common.members)!=null&&h.includes(e))){const y=JSON.parse(JSON.stringify(this.info.objects[u]));y.common.members=y.common.members||[],y.common.members.push(e),y.common.members.sort(),m.push(this.props.socket.setObject(u,y).then(()=>this.info.objects[u]=y).catch(d=>this.showError(d)))}}Promise.all(m).then(()=>setTimeout(()=>this._syncEnum(e,s,t,i),0))}syncEnum(e,s,t){const i=[...this.info[s==="func"?"funcEnums":"roomEnums"]];return new Promise(n=>{this._syncEnum(e,i,t,o=>{o&&this.showError(o),n()})})}renderEnumDialog(){if(this.state.enumDialog){const e=this.state.enumDialog.type,s=this.state.enumDialog.item,t=this.state.enumDialogEnums,i=this.state.enumDialog.enumsOriginal,n=(e==="room"?this.info.roomEnums:this.info.funcEnums).map(o=>({name:M(this.objects[o]&&this.objects[o].common&&this.objects[o].common.name||o.split(".").pop(),this.props.lang),value:o,icon:le(this.objects,o,this.imagePrefix)})).sort((o,h)=>o.name>h.name?1:-1);return n.forEach(o=>{o.icon&&typeof o.icon=="string"&&(o.icon=l().createElement("div",{className:this.props.classes.enumIconDiv},l().createElement("img",{src:o.icon,className:this.props.classes.enumIcon,alt:o.name})))}),l().createElement(G.Z,{className:this.props.classes.enumDialog,onClose:()=>this.setState({enumDialog:null}),"aria-labelledby":"enum-dialog-title",open:!0},l().createElement(H.Z,{id:"enum-dialog-title"},e==="func"?this.props.t("ra_Define functions"):this.props.t("ra_Define rooms"),l().createElement(ut.Z,{className:this.props.classes.enumButton,color:"primary",disabled:JSON.stringify(i)===JSON.stringify(t),size:"small",onClick:()=>this.syncEnum(s.data.id,e,t).then(()=>this.setState({enumDialog:null,enumDialogEnums:null}))},l().createElement(de.default,null))),l().createElement(nt.Z,{classes:{root:this.props.classes.enumList}},n.map(o=>{let h,u,m;typeof o=="object"?(h=o.value,u=o.name,m=o.icon):(h=o,u=o);const y=`checkbox-list-label-${h}`;return l().createElement(rt.ZP,{className:this.props.classes.headerCellSelectItem,key:h,onClick:()=>{const d=t.indexOf(h),f=JSON.parse(JSON.stringify(this.state.enumDialogEnums));d===-1?(f.push(h),f.sort()):f.splice(d,1),this.setState({enumDialogEnums:f})}},l().createElement(ct.Z,{classes:{root:this.props.classes.enumCheckbox}},l().createElement(re.Z,{edge:"start",checked:t.includes(h),tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":y}})),l().createElement(dt.Z,{id:y},u),m?l().createElement(ht.Z,null,m):null)})))}return null}renderEditRoleDialog(){if(this.state.roleDialog&&this.props.objectBrowserEditRole){const e=this.props.objectBrowserEditRole;return l().createElement(e,{key:"objectBrowserEditRole",id:this.state.roleDialog,socket:this.props.socket,t:this.props.t,roles:this.info.roles,onClose:s=>{s&&(this.info.objects[this.state.roleDialog]=s),this.setState({roleDialog:!1})}})}return null}onColumnsEditCustomDialogClose(e){if(e){let s=this.customColumnDialog.value;this.customColumnDialog.type==="boolean"?s=s==="true"||s===!0:this.customColumnDialog.type==="number"&&(s=parseFloat(s)),this.customColumnDialog=null,this.props.socket.getObject(this.state.columnsEditCustomDialog.obj._id).then(t=>{if(W.setCustomValue(t,this.state.columnsEditCustomDialog.it,s))return this.props.socket.setObject(t._id,t);throw new Error(this.props.t("ra_Cannot update attribute, because not found in the object"))}).then(()=>this.setState({columnsEditCustomDialog:null})).catch(t=>this.showError(t))}else this.customColumnDialog=null,this.setState({columnsEditCustomDialog:null})}renderColumnsEditCustomDialog(){if(this.state.columnsEditCustomDialog){if(!this.customColumnDialog){const e=W.getCustomValue(this.state.columnsEditCustomDialog.obj,this.state.columnsEditCustomDialog.it);this.customColumnDialog={type:this.state.columnsEditCustomDialog.it.type||typeof e,initValue:(e==null?"":e).toString(),value:(e==null?"":e).toString()}}return l().createElement(G.Z,{onClose:()=>this.setState({columnsEditCustomDialog:null}),maxWidth:"md","aria-labelledby":"custom-dialog-title",open:!0},l().createElement(H.Z,{id:"custom-dialog-title"},`${this.props.t("ra_Edit object field")}: ${this.state.columnsEditCustomDialog.obj._id}`),l().createElement(ee.Z,null,l().createElement(ce.Z,{id:"alert-dialog-description"},this.customColumnDialog.type==="boolean"?l().createElement(he.Z,{control:l().createElement(re.Z,{onKeyUp:e=>e.keyCode===13&&this.onColumnsEditCustomDialogClose(!0),defaultChecked:this.customColumnDialog.value==="true",onChange:e=>{this.customColumnDialog.value=e.target.checked.toString();const s=this.customColumnDialog.value!==this.customColumnDialog.initValue;s===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:s})}}),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}):l().createElement(mt.Z,{variant:"standard",defaultValue:this.customColumnDialog.value,fullWidth:!0,onKeyUp:e=>e.keyCode===13&&this.onColumnsEditCustomDialogClose(!0),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`,onChange:e=>{this.customColumnDialog.value=e.target.value;const s=this.customColumnDialog.value!==this.customColumnDialog.initValue;s===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:s})},autoFocus:!0}))),l().createElement(te.Z,null,l().createElement(R.Z,{variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(!0),disabled:!this.state.customColumnDialogValueChanged,color:"primary",startIcon:l().createElement(de.default,null)},this.props.t("ra_Update")),l().createElement(R.Z,{color:"grey",variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(),startIcon:l().createElement(F.default,null)},this.props.t("ra_Cancel"))))}return null}static getCustomValue(e,s){if(e&&e._id&&e._id.startsWith(`${s.adapter}.`)&&s.path.length>1){const t=s.path;let i;if(e[t[0]]&&typeof e[t[0]]=="object")return t.length===2?i=e[t[0]][t[1]]:t.length===3?i=e[t[0]][t[1]]&&typeof e[t[0]][t[1]]=="object"?e[t[0]][t[1]][t[2]]:null:t.length===4?i=e[t[0]][t[1]]&&typeof e[t[0]][t[1]]=="object"&&e[t[0]][t[1]][t[2]]?e[t[0]][t[1]][t[2]][t[3]]:null:t.length===5?i=e[t[0]][t[1]]&&typeof e[t[0]][t[1]]=="object"&&e[t[0]][t[1]][t[2]]&&e[t[0]][t[1]][t[2]][t[3]]?e[t[0]][t[1]][t[2]][t[3]][t[4]]:null:t.length===6&&(i=e[t[0]][t[1]]&&typeof e[t[0]][t[1]]=="object"&&e[t[0]][t[1]][t[2]]&&e[t[0]][t[1]][t[2]][t[3]]&&e[t[0]][t[1]][t[2]][t[3]][t[4]]?e[t[0]][t[1]][t[2]][t[3]][t[4]][t[5]]:null),i==null?null:i}return null}static setCustomValue(e,s,t){if(e&&e._id&&e._id.startsWith(`${s.adapter}.`)&&s.path.length>1){const i=s.path;if(e[i[0]]&&typeof e[i[0]]=="object"){if(i.length===2)return e[i[0]][i[1]]=t,!0;if(i.length===3){if(e[i[0]][i[1]]&&typeof e[i[0]][i[1]]=="object")return e[i[0]][i[1]][i[2]]=t,!0}else if(i.length===4){if(e[i[0]][i[1]]&&typeof e[i[0]][i[1]]=="object"&&e[i[0]][i[1]][i[2]]&&typeof e[i[0]][i[1]][i[2]]=="object")return e[i[0]][i[1]][i[2]][i[3]]=t,!0}else if(i.length===5){if(e[i[0]][i[1]]&&typeof e[i[0]][i[1]]=="object"&&e[i[0]][i[1]][i[2]]&&typeof e[i[0]][i[1]][i[2]]=="object"&&e[i[0]][i[1]][i[2]][i[3]]&&typeof e[i[0]][i[1]][i[2]][i[3]]=="object")return e[i[0]][i[1]][i[2]][i[3]][i[4]]=t,!0}else if(i.length===6&&e[i[0]][i[1]]&&typeof e[i[0]][i[1]]=="object"&&e[i[0]][i[1]][i[2]]&&typeof e[i[0]][i[1]][i[2]]=="object"&&e[i[0]][i[1]][i[2]][i[3]]&&typeof e[i[0]][i[1]][i[2]][i[3]]=="object"&&e[i[0]][i[1]][i[2]][i[3]][i[4]]&&typeof e[i[0]][i[1]][i[2]][i[3]][i[4]]=="object")return e[i[0]][i[1]][i[2]][i[3]][i[4]][i[5]]=t,!0}}return!1}renderCustomValue(e,s,t){const i=W.getCustomValue(e,s);return i!=null?s.edit&&!this.props.notEditable&&(!s.objTypes||s.objTypes.includes(e.type))?l().createElement("div",{className:w.Z.clsx(this.props.classes.columnCustom,this.props.classes.columnCustomEditable,this.props.classes[`columnCustom_${s.align}`]),onClick:()=>this.setState({columnsEditCustomDialog:{item:t,it:s,obj:e},customColumnDialogValueChanged:!1})},i):l().createElement("div",{className:w.Z.clsx(this.props.classes.columnCustom,this.props.classes[`columnCustom_${s.align}`])},i):null}renderLeaf(e,s,t,i){var n,o,h,u,m,y,d,f,r;const c=e.data.id;i.count++,s=s===void 0?this.state.expanded.includes(c):s;let g;const p=e.data.obj,C=p==null?void 0:p.type;e.children||C==="folder"||C==="device"||C==="channel"||C==="meta"?g=s?l().createElement(me.default,{className:t.cellIdIconFolder,onClick:()=>this.toggleExpanded(c)}):l().createElement(ie.default,{className:t.cellIdIconFolder,onClick:()=>this.toggleExpanded(c)}):p.common&&p.common.write===!1&&p.type==="state"?g=l().createElement(Vt.default,{className:t.cellIdIconDocument}):g=l().createElement(kt.default,{className:t.cellIdIconDocument});let S=null;e.data.icon&&(typeof e.data.icon=="string"?e.data.icon.length<3?S=l().createElement("span",{className:w.Z.clsx(t.cellIdIconOwn,"iconOwn")},e.data.icon):S=l().createElement("img",{className:w.Z.clsx(t.cellIdIconOwn,"iconOwn"),src:e.data.icon,alt:""}):S=e.data.icon);const _=p==null?void 0:p.common,O=p&&p.type&&Je[p.type]||l().createElement("div",{className:"itemIcon"}),x=this.levelPadding*e.data.level;if(e.data.lang!==this.state.lang){const{rooms:v,per:K}=ze(this.info,c,this.state.lang);e.data.rooms=v.join(", "),e.data.per=K;const{funcs:ae,pef:ne}=Ke(this.info,c,this.state.lang);e.data.funcs=ae.join(", "),e.data.pef=ne,e.data.lang=this.state.lang}const Z=this.props.multiSelect&&this.objects[c]&&(!this.props.types||this.props.types.includes(this.objects[c].type))?l().createElement(re.Z,{className:t.checkBox,checked:this.state.selected.includes(c)}):null;let Ce=!this.props.notEditable&&C==="state"&&(this.state.filter.expertMode||(_==null?void 0:_.write)!==!1);this.props.objectBrowserViewFile&&(_==null?void 0:_.type)==="file"&&(Ce=!0);const z=!this.props.notEditable&&this.objects[c]&&(this.state.filter.expertMode||C==="state"||C==="channel"||C==="device"),Q=this.state.statesView&&(C==="state"||C==="channel"||C==="device");let P="";const U=[];if(Q&&(P=(n=this.states[c])==null?void 0:n.from,P===void 0?P=" ":(P=P?P.replace(/^system\.adapter\.|^system\./,""):"",U.push(`${this.texts.stateChangedFrom} ${P}`)),p.user)){const v=p.user.replace("system.user.","");P+=`/${v}`,U.push(`${this.texts.stateChangedBy} ${v}`)}p&&(p.from&&U.push(`${this.texts.objectChangedFrom} ${p.from.replace(/^system\.adapter\.|^system\./,"")}`),p.user&&U.push(`${this.texts.objectChangedBy} ${p.user.replace(/^system\.user\./,"")}`),p.ts&&U.push(`${this.texts.objectChangedByUser} ${w.Z.formatDate(new Date(p.ts),this.props.dateFormat)}`));const Xe=typeof((o=_==null?void 0:_.alias)==null?void 0:o.id)=="object",Ye=c.startsWith("alias.")&&((h=_==null?void 0:_.alias)==null?void 0:h.id)?Xe?l().createElement("div",{className:t.cellIdAliasReadWriteDiv},_.alias.id.read?l().createElement("div",{onClick:v=>{v.stopPropagation(),v.preventDefault(),this.onSelect(_.alias.id.read),setTimeout(()=>{this.expandAllSelected(()=>this.scrollToItem(_.alias.id.read))},100)},className:w.Z.clsx(t.cellIdAlias,t.cellIdAliasReadWrite)},"\u2190",_.alias.id.read):null,_.alias.id.write?l().createElement("div",{onClick:v=>{v.stopPropagation(),v.preventDefault(),this.onSelect(_.alias.id.write),setTimeout(()=>{this.expandAllSelected(()=>this.scrollToItem(_.alias.id.write))},100)},className:w.Z.clsx(t.cellIdAlias,t.cellIdAliasReadWrite)},"\u2192",_.alias.id.write):null):l().createElement("div",{onClick:v=>{v.stopPropagation(),v.preventDefault(),this.onSelect(_.alias.id),setTimeout(()=>{this.expandAllSelected(()=>this.scrollToItem(_.alias.id))},100)},className:w.Z.clsx(t.cellIdAlias,t.cellIdAliasAlone)},"\u2192",_.alias.id):null;let k=_==null?void 0:_.color,we;if(k&&!this.state.selected.includes(c)){let v=this.props.themeName==="dark"?"#1f1f1f":this.props.themeName==="blue"?"#222a2e":"#FFFFFF";w.Z.colorDistance(k,v)<1e3&&(we=this.props.themeType==="dark"?"#9a9a9a":"#565656")}c==="system"?k=Kt:c==="system.adapter"?k=Jt:(!k||this.state.selected.includes(c))&&(k="inherit");const B=[];if(_!=null&&_.statusStates){const v={};Object.keys(_.statusStates).forEach(ae=>{var ne;let V=_.statusStates[ae];V.split(".").length<3&&(V=`${c}.${V}`),v[ae]=V,this.states[V]?!this.recordStates.includes(V)&&this.recordStates.push(V):((ne=this.objects[V])==null?void 0:ne.type)==="state"&&(!this.recordStates.includes(V)&&this.recordStates.push(V),this.states[V]={val:null},this.subscribe(V))});let K=!1;_.statusStates.errorId&&this.states[v.errorId]&&this.states[v.errorId].val&&(k=this.props.themeType==="dark"?Pe:We,K=!0,B.push(l().createElement(Nt.default,{key:"error",title:this.texts.deviceError,className:this.props.classes.iconDeviceError}))),v.onlineId&&this.states[v.onlineId]&&this.states[v.onlineId].val!==null?K?this.states[v.onlineId].val?B.push(l().createElement(X.default,{key:"conn",title:this.texts.deviceError,className:this.props.classes.iconDeviceConnected})):B.push(l().createElement(se.default,{key:"disc",title:this.texts.deviceError,className:this.props.classes.iconDeviceDisconnected})):this.states[v.onlineId].val?(k=this.props.themeType==="dark"?be:ye,B.push(l().createElement(X.default,{key:"conn",title:this.texts.deviceError,className:this.props.classes.iconDeviceConnected}))):(k=this.props.themeType==="dark"?_e:Ee,B.push(l().createElement(se.default,{key:"disc",title:this.texts.deviceError,className:this.props.classes.iconDeviceDisconnected}))):v.offlineId&&this.states[v.offlineId]&&this.states[v.offlineId].val!==null&&(K?this.states[v.offlineId].val?B.push(l().createElement(se.default,{key:"disc",title:this.texts.deviceError,className:this.props.classes.iconDeviceDisconnected})):B.push(l().createElement(X.default,{key:"conn",title:this.texts.deviceError,className:this.props.classes.iconDeviceConnected})):this.states[v.offlineId].val?(k=this.props.themeType==="dark"?_e:Ee,B.push(l().createElement(se.default,{key:"disc",title:this.texts.deviceError,className:this.props.classes.iconDeviceDisconnected}))):(k=this.props.themeType==="dark"?be:ye,B.push(l().createElement(X.default,{key:"conn",title:this.texts.deviceError,className:this.props.classes.iconDeviceConnected}))))}const Qe=Q?w.Z.quality2text(((u=this.states[c])==null?void 0:u.q)||0).join(", "):null;return l().createElement(J.ZP,{container:!0,direction:"row",wrap:"nowrap",className:w.Z.clsx(t.tableRow,this.state.linesEnabled&&t.tableRowLines,!this.props.dragEnabled&&t.tableRowNoDragging,Ye&&t.tableRowAlias,Xe&&t.tableRowAliasReadWrite,!e.data.visible&&t.filteredOut,e.data.hasVisibleParent&&!e.data.visible&&!e.data.hasVisibleChildren&&t.filteredParentOut,this.state.selected.includes(c)&&t.itemSelected,this.state.selectedNonObject===c&&t.itemSelected),key:c,id:c,onClick:()=>this.onSelect(c),onDoubleClick:()=>{e.children?this.toggleExpanded(c):this.onSelect(c,!0)}},l().createElement(J.ZP,{container:!0,wrap:"nowrap",direction:"row",className:t.cellId,style:{width:this.columnsVisibility.id,paddingLeft:x}},l().createElement(J.ZP,{item:!0,container:!0,alignItems:"center",style:{}},Z,g),l().createElement(J.ZP,{item:!0,style:{color:k},className:w.Z.clsx(t.cellIdSpan,we&&t.invertedBackground)},l().createElement(I.Z,{title:Gt(e.data,this.props.classes,this.props.lang)},l().createElement("div",null,e.data.name)),Ye,B),l().createElement("div",{className:w.Z.clsx(t.grow,we&&t.invertedBackgroundFlex)}),l().createElement(J.ZP,{item:!0,container:!0,alignItems:"center"},S),l().createElement("div",null,l().createElement(ue.default,{className:w.Z.clsx(t.cellCopyButton,"copyButton"),onClick:v=>this.onCopy(v,c)}))),this.columnsVisibility.name?l().createElement("div",{className:t.cellName,style:{width:this.columnsVisibility.name}},((m=e.data)==null?void 0:m.title)||"",(y=e.data)!=null&&y.title?l().createElement("div",{style:{color:k}},l().createElement(ue.default,{className:w.Z.clsx(t.cellCopyButton,"copyButton"),onClick:v=>this.onCopy(v,e.data.title)})):null):null,this.state.statesView?l().createElement(l().Fragment,null,this.columnsVisibility.changedFrom?l().createElement("div",{className:t.cellRole,style:{width:this.columnsVisibility.changedFrom},title:U.join(`
|
|
2
|
+
`)},Q&&((d=this.states[c])==null?void 0:d.from)?P:null):null,this.columnsVisibility.qualityCode?l().createElement("div",{className:t.cellRole,style:{width:this.columnsVisibility.qualityCode},title:Qe||""},Qe):null,this.columnsVisibility.timestamp?l().createElement("div",{className:t.cellRole,style:{width:this.columnsVisibility.timestamp}},Q&&((f=this.states[c])==null?void 0:f.ts)?w.Z.formatDate(new Date(this.states[c].ts),this.props.dateFormat):null):null,this.columnsVisibility.lastChange?l().createElement("div",{className:t.cellRole,style:{width:this.columnsVisibility.lastChange}},Q&&((r=this.states[c])==null?void 0:r.lc)?w.Z.formatDate(new Date(this.states[c].lc),this.props.dateFormat):null):null):l().createElement(l().Fragment,null,this.columnsVisibility.type?l().createElement("div",{className:t.cellType,style:{width:this.columnsVisibility.type}},O,"\xA0",p&&p.type):null,this.columnsVisibility.role?l().createElement("div",{className:t.cellRole,style:{width:this.columnsVisibility.role,cursor:this.state.filter.expertMode&&z&&this.props.objectBrowserEditRole?"text":"default"},onClick:this.state.filter.expertMode&&z&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:e.data.id}):void 0},_==null?void 0:_.role):null,this.columnsVisibility.room?l().createElement("div",{className:`${t.cellRoom} ${e.data.per?t.cellEnumParent:""}`,style:{width:this.columnsVisibility.room,cursor:z?"text":"default"},onClick:z?()=>{const v=Ue(this.info,e.data.id,"roomEnums");this.setState({enumDialogEnums:v,enumDialog:{item:e,type:"room",enumsOriginal:JSON.parse(JSON.stringify(v))}})}:void 0},e.data.rooms):null,this.columnsVisibility.func?l().createElement("div",{className:`${t.cellFunc} ${e.data.pef?t.cellEnumParent:""}`,style:{width:this.columnsVisibility.func,cursor:z?"text":"default"},onClick:z?()=>{const v=Ue(this.info,e.data.id,"funcEnums");this.setState({enumDialogEnums:v,enumDialog:{item:e,type:"func",enumsOriginal:JSON.parse(JSON.stringify(v))}})}:void 0},e.data.funcs):null),this.adapterColumns.map(v=>l().createElement("div",{className:t.cellAdapter,style:{width:this.columnsVisibility[v.id]},key:v.id,title:`${v.adapter} => ${v.pathText}`},this.renderCustomValue(p,v,e))),this.columnsVisibility.val?l().createElement("div",{className:t.cellValue,style:{width:this.columnsVisibility.val,cursor:Ce?(_==null?void 0:_.type)==="file"?"zoom-in":e.data.button?"grab":"text":"default"},onClick:Ce?()=>{!p||!this.states||((_==null?void 0:_.type)==="file"?this.setState({viewFileDialog:c}):!this.state.filter.expertMode&&e.data.button?this.props.socket.setState(c,!0).catch(v=>window.alert(`Cannot write state "${c}": ${v}`)):(this.edit={val:this.states[c]?this.states[c].val:"",q:this.states[c]&&this.states[c].q||0,ack:!1,id:c},this.setState({updateOpened:!0})))}:void 0},this.renderColumnValue(c,e,t)):null,this.columnsVisibility.buttons?l().createElement("div",{className:t.cellButtons,style:{width:this.columnsVisibility.buttons}},this.renderColumnButtons(c,e,t)):null)}renderItem(e,s,t,i){const n=[];i=i||{count:0};let o=this.renderLeaf(e,s,t,i);const h=this.props.DragWrapper;return this.props.dragEnabled&&(e.data.sumVisibility?o=l().createElement(h,{key:e.data.id,item:e,className:t.draggable},o):o=l().createElement("div",{key:e.data.id,className:t.nonDraggable},o)),e.data.id&&n.push(o),s=s===void 0?Y(this.state.expanded,e.data.id):s,(!e.data.id||s)&&(this.state.foldersFirst?(e.children&&n.push(e.children.map(u=>u.children&&(!this.state.columnsSelectorShow||i.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,t,i):null)),e.children&&n.push(e.children.map(u=>!u.children&&(!this.state.columnsSelectorShow||i.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,t,i):null))):e.children&&n.push(e.children.map(u=>(!this.state.columnsSelectorShow||i.count<15)&&u.data.sumVisibility?this.renderItem(u,void 0,t,i):null))),n}calculateColumnsVisibility(e,s,t,i){i=i||this.state.columnsWidths,t=t||this.state.columnsForAdmin,s=s||this.state.columns||[],e=typeof e!="boolean"?this.state.columnsAuto:e,i=JSON.parse(JSON.stringify(i)),Object.keys(i).forEach(o=>{i[o]&&(i[o]=parseInt(i[o],10)||0)}),this.adapterColumns=[];const n=N[this.props.width].widths;if(e){if(this.columnsVisibility={id:N[this.props.width].idWidth,name:this.visibleCols.includes("name")&&n.name||0,nameHeader:this.visibleCols.includes("name")&&n.name||0,type:this.visibleCols.includes("type")&&n.type||0,role:this.visibleCols.includes("role")&&n.role||0,room:this.visibleCols.includes("room")&&n.room||0,func:this.visibleCols.includes("func")&&n.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&n.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&n.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&n.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&n.lastChange||0,val:this.visibleCols.includes("val")&&n.val||0,buttons:this.visibleCols.includes("buttons")&&n.buttons||0},this.columnsVisibility.name&&!this.customWidth){let o=this.columnsVisibility.id;this.state.statesView?(o+=this.columnsVisibility.changedFrom,o+=this.columnsVisibility.qualityCode,o+=this.columnsVisibility.timestamp,o+=this.columnsVisibility.lastChange):(o+=this.columnsVisibility.type,o+=this.columnsVisibility.role,o+=this.columnsVisibility.room,o+=this.columnsVisibility.func),o+=this.columnsVisibility.val,o+=this.columnsVisibility.buttons,this.columnsVisibility.name=`calc(100% - ${o+5}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${o+5+this.state.scrollBarWidth}px)`}else if(!this.customWidth){let o=0;this.state.statesView?(o+=this.columnsVisibility.changedFrom,o+=this.columnsVisibility.qualityCode,o+=this.columnsVisibility.timestamp,o+=this.columnsVisibility.lastChange):(o+=this.columnsVisibility.type,o+=this.columnsVisibility.role,o+=this.columnsVisibility.room,o+=this.columnsVisibility.func),o+=this.columnsVisibility.val,o+=this.columnsVisibility.buttons,this.columnsVisibility.id=`calc(100% - ${o+5}px)`}}else{this.columnsVisibility={id:i.id||N[this.props.width].idWidth,name:s.includes("name")&&(i.name||n.name||N[this.props.width].widths.name)||0,type:s.includes("type")&&(i.type||n.type||N[this.props.width].widths.type)||0,role:s.includes("role")&&(i.role||n.role||N[this.props.width].widths.role)||0,room:s.includes("room")&&(i.room||n.room||N[this.props.width].widths.room)||0,func:s.includes("func")&&(i.func||n.func||N[this.props.width].widths.func)||0};let o=this.columnsVisibility.id;if(this.columnsVisibility.name&&(o+=this.columnsVisibility.type,o+=this.columnsVisibility.role,o+=this.columnsVisibility.room,o+=this.columnsVisibility.func),t&&s&&Object.keys(t).sort().forEach(h=>t[h].forEach(u=>{const m=`_${h}_${u.path}`;if(this.columnsVisibility[m]=s.includes(m),s.includes(m)){const y={adapter:h,id:`_${h}_${u.path}`,name:u.name,path:u.path.split("."),pathText:u.path};u.edit&&(y.edit=!0,u.type&&(y.type=u.type),u.objTypes&&(y.objTypes=u.objTypes)),this.adapterColumns.push(y),this.columnsVisibility[m]=i[y.id]||u.width||N[this.props.width].widths.func||N.xl.widths.func,o+=this.columnsVisibility[m]}else this.columnsVisibility[m]=0})),this.adapterColumns.sort((h,u)=>h.id>u.id?-1:h.id<u.id?1:0),this.columnsVisibility.val=s.includes("val")?i.val||n.val||N.xl.widths.val:0,(!this.props.columns||this.props.columns.includes("buttons"))&&(this.columnsVisibility.buttons=s.includes("buttons")?i.buttons||n.buttons||N.xl.widths.buttons:0,o+=this.columnsVisibility.buttons),this.columnsVisibility.name&&!i.name)o+=this.columnsVisibility.val,this.columnsVisibility.name=`calc(100% - ${o}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${o+5+this.state.scrollBarWidth}px)`;else{const h=Object.keys(this.columnsVisibility).reduce((u,m)=>m==="id"||typeof this.columnsVisibility[m]=="string"||!this.columnsVisibility[m]?u:u+this.columnsVisibility[m],0);this.columnsVisibility.id=`calc(100% - ${h}px)`}}}renderHeader(){const e=this.props.classes;let s=null;return!this.columnsVisibility.buttons&&!this.isFilterEmpty()&&(s=l().createElement(D.Z,{onClick:()=>this.clearFilter(),className:e.buttonClearFilter,title:this.props.t("ra_Clear filter"),size:"large"},l().createElement(Pt.default,null),l().createElement(F.default,{className:e.buttonClearFilterIcon}))),l().createElement("div",{className:e.headerRow},l().createElement("div",{className:e.headerCell,style:{width:this.columnsVisibility.id,position:"relative"},"data-min":240,"data-name":"id"},this.getFilterInput("id"),l().createElement("div",{className:`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleRight}`,onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")})),this.columnsVisibility.name?l().createElement("div",{className:e.headerCell,style:{width:this.columnsVisibility.nameHeader},"data-min":100,"data-name":"nameHeader"},this.getFilterInput("name")):null,!this.state.statesView&&l().createElement(l().Fragment,null,this.columnsVisibility.type?l().createElement("div",{className:e.headerCell,style:{width:this.columnsVisibility.type},"data-min":100,"data-name":"type"},this.getFilterSelectType()):null,this.columnsVisibility.role?l().createElement("div",{className:e.headerCell,style:{width:this.columnsVisibility.role},"data-min":100,"data-name":"role"},this.getFilterSelectRole()):null,this.columnsVisibility.room?l().createElement("div",{className:e.headerCell,style:{width:this.columnsVisibility.room},"data-min":100,"data-name":"room"},this.getFilterSelectRoom()):null,this.columnsVisibility.func?l().createElement("div",{className:e.headerCell,style:{width:this.columnsVisibility.func},"data-min":100,"data-name":"func"},this.getFilterSelectFunction()):null),this.state.statesView&&l().createElement(l().Fragment,null,l().createElement("div",{className:w.Z.clsx(e.headerCell,e.headerCellValue),style:{width:this.columnsVisibility.changedFrom},"data-min":100,"data-name":"changedFrom"},this.props.t("ra_Changed from")),l().createElement("div",{className:w.Z.clsx(e.headerCell,e.headerCellValue),style:{width:this.columnsVisibility.qualityCode},"data-min":100,"data-name":"qualityCode"},this.props.t("ra_Quality code")),l().createElement("div",{className:w.Z.clsx(e.headerCell,e.headerCellValue),style:{width:this.columnsVisibility.timestamp},"data-min":100,"data-name":"timestamp"},this.props.t("ra_Timestamp")),l().createElement("div",{className:w.Z.clsx(e.headerCell,e.headerCellValue),style:{width:this.columnsVisibility.lastChange},"data-min":100,"data-name":"lastChange"},this.props.t("ra_Last change"))),this.adapterColumns.map(t=>l().createElement("div",{className:w.Z.clsx(e.headerCell,e.headerCellValue),style:{width:this.columnsVisibility[t.id]},title:t.adapter,key:t.id,"data-min":100,"data-name":t.id},t.name)),this.columnsVisibility.val?l().createElement("div",{className:w.Z.clsx(e.headerCell,e.headerCellValue),style:{width:this.columnsVisibility.val,position:"relative"},"data-min":120,"data-name":"val"},l().createElement("div",{className:`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleLeft}`,"data-left":"true",onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")}),this.props.t("ra_Value"),s):null,this.columnsVisibility.buttons?l().createElement("div",{className:e.headerCell,style:{width:this.columnsVisibility.buttons}}," ",this.getFilterSelectCustoms()):null)}renderToast(){return l().createElement(at.Z,{open:!!this.state.toast,autoHideDuration:3e3,onClick:()=>this.setState({toast:""}),onClose:()=>this.setState({toast:""}),message:this.state.toast,action:l().createElement(D.Z,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""})},l().createElement(F.default,{fontSize:"small"}))})}componentDidUpdate(){if(this.tableRef.current){const e=this.tableRef.current.offsetWidth-this.tableRef.current.clientWidth;this.state.scrollBarWidth!==e?setTimeout(()=>this.setState({scrollBarWidth:e}),100):!this.selectedFound&&(this.state.selected&&this.state.selected[0]||this.lastSelectedItems)&&this.scrollToItem(this.state.selected&&this.state.selected[0]||this.lastSelectedItems)}}scrollToItem(e){const s=window.document.getElementById(e);s&&s.scrollIntoView({behavior:"auto",block:"center",inline:"center"}),this.selectedFound=!0}renderCustomDialog(){if(this.state.customDialog&&this.props.objectCustomDialog){const e=this.props.objectCustomDialog;return l().createElement(e,{reportChangedIds:s=>this.changedIds=[...s],objectIDs:this.state.customDialog,expertMode:this.state.filter.expertMode,isFloatComma:this.props.isFloatComma,t:this.props.t,lang:this.props.lang,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objects:this.objects,customsInstances:this.info.customs,onClose:()=>{this.pauseSubscribe(!1),this.setState({customDialog:null}),this.changedIds&&(this.changedIds=null,this.forceUpdate()),this.props.router&&this.props.router.doNavigate("tab-objects")}})}return null}onUpdate(e){this.props.socket.setState(this.edit.id,{val:e.val,ack:e.ack,q:e.q||0,expire:e.expire||void 0}).catch(s=>this.showError(`Cannot write value: ${s}`))}renderEditObjectDialog(){if(!this.state.editObjectDialog||!this.props.objectBrowserEditObject)return null;const e=this.props.objectBrowserEditObject;return l().createElement(e,{key:this.state.editObjectDialog,obj:this.objects[this.state.editObjectDialog],roleArray:this.info.roles,objects:this.objects,dateFormat:this.props.dateFormat,isFloatComma:this.props.isFloatComma,themeName:this.props.themeName,socket:this.props.socket,dialogName:this.props.dialogName,t:this.props.t,expertMode:this.state.filter.expertMode,onNewObject:s=>this.props.socket.setObject(s._id,s).then(()=>this.setState({editObjectDialog:s._id},()=>this.onSelect(s._id))).catch(t=>this.showError(`Cannot write object: ${t}`)),onClose:s=>{var t,i;if(s){let n;this.state.editObjectDialog.startsWith("alias.")&&JSON.stringify((t=this.objects[this.state.editObjectDialog].common)==null?void 0:t.alias)!==JSON.stringify((i=s.common)==null?void 0:i.alias)&&(n=this.state.editObjectDialog),this.props.socket.setObject(s._id,s).then(()=>{n&&this.subscribes.includes(n)&&(this.unsubscribe(n),setTimeout(()=>this.subscribe(n),100))}).catch(o=>this.showError(`Cannot write object: ${o}`))}this.setState({editObjectDialog:""})}})}renderViewObjectFileDialog(){if(!this.state.viewFileDialog||!this.props.objectBrowserViewFile)return null;const e=this.props.objectBrowserViewFile;return l().createElement(e,{key:"viewFile",obj:this.objects[this.state.viewFileDialog],themeType:this.props.themeType,socket:this.props.socket,dialogName:this.props.dialogName,t:this.props.t,expertMode:this.state.filter.expertMode,onClose:()=>this.setState({viewFileDialog:""})})}renderEditValueDialog(){var e;if(!this.state.updateOpened||!this.props.objectBrowserValue)return null;if(!this.edit.id)return console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`),null;if(!this.objects[this.edit.id])return console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`),null;const s=(e=this.objects[this.edit.id].common)!=null&&e.type?this.objects[this.edit.id].common.type:typeof this.edit.val,t=this.props.objectBrowserValue;return l().createElement(t,{t:this.props.t,lang:this.props.lang,type:s,states:w.Z.getStates(this.objects[this.edit.id]),themeType:this.props.themeType,expertMode:this.state.filter.expertMode,value:this.edit.val,socket:this.props.socket,object:this.objects[this.edit.id],defaultHistory:this.defaultHistory,dateFormat:this.props.dateFormat,onClose:i=>{this.setState({updateOpened:!1}),i&&this.onUpdate(i)}})}render(){this.recordStates=[],this.unsubscribeTimer&&clearTimeout(this.unsubscribeTimer);const e=JSON.stringify(this.state.filter);if(this.lastAppliedFilter!==e&&this.objects&&this.root){const i={count:0};ve(this.root,this.state.filter,this.state.lang,this.objects,null,i,this.props.customFilter,this.props.types),i.count<500&&!this.state.expandAllVisible?setTimeout(()=>this.setState({expandAllVisible:!0})):i.count>=500&&this.state.expandAllVisible&&setTimeout(()=>this.setState({expandAllVisible:!1})),this.lastAppliedFilter=e}if(this.unsubscribeTimer=setTimeout(()=>{this.unsubscribeTimer=null,this.checkUnsubscribes()},200),!this.state.loaded)return l().createElement(tt.Z,{key:`${this.props.dialogName}_c`});const s=this.props.classes,t=this.renderItem(this.root,void 0,s);return l().createElement(Rt.Z,{key:this.props.dialogName,classes:{}},l().createElement($t.Z,null,this.getToolbar()),l().createElement(Ft.Z,{classes:{}},this.renderHeader(),l().createElement("div",{className:this.props.classes.tableDiv,ref:this.tableRef},t)),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderViewObjectFileDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}}W.defaultProps={objectAddBoolean:!1,objectEditBoolean:!1,objectStatesView:!1,objectImportExport:!1,objectEditOfAccessControl:!1,modalNewObject:()=>{},modalEditOfAccessControl:()=>{}},W.propTypes={dialogName:E().string,classes:E().object,defaultFilters:E().object,selected:E().oneOfType([E().string,E().array]),onSelect:E().func,onFilterChanged:E().func,socket:E().object,showExpertButton:E().bool,expertMode:E().bool,imagePrefix:E().string,themeName:E().string,themeType:E().string,theme:E().object,t:E().func,lang:E().string.isRequired,multiSelect:E().bool,notEditable:E().bool,foldersFirst:E().bool,disableColumnSelector:E().bool,isFloatComma:E().bool,dateFormat:E().string,levelPadding:E().number,objectCustomDialog:E().oneOfType([E().object,E().func]),objectAddBoolean:E().bool,objectEditBoolean:E().bool,objectStatesView:E().bool,objectImportExport:E().bool,objectEditOfAccessControl:E().bool,modalNewObject:E().func,modalEditOfAccessControl:E().func,onObjectDelete:E().func,customFilter:E().object,objectBrowserValue:E().object,objectBrowserEditObject:E().object,objectBrowserEditRole:E().object,objectBrowserViewFile:E().func,router:E().oneOfType([E().object,E().func]),types:E().array,columns:E().array,objectsWorker:E().object,filterFunc:E().func,dragSettings:E().object,DragWrapper:E().func,dragEnabled:E().bool,useDrag:E().func};const Qt=(0,Wt.default)()((0,Se.Z)(Ht)(W));qe.Z=Qt}}]);
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=6322.4b730316.chunk.js.map
|