iobroker.admin 7.1.1 → 7.1.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 +5 -8
- package/adminWww/asset-manifest.json +33 -33
- package/adminWww/index.html +1 -1
- package/adminWww/static/css/3210.f6c8a5fc.chunk.css.map +1 -1
- package/adminWww/static/js/2534.d8fd195b.chunk.js +2 -0
- package/adminWww/static/js/2534.d8fd195b.chunk.js.map +1 -0
- package/adminWww/static/js/2544.047df092.chunk.js +2 -0
- package/adminWww/static/js/2544.047df092.chunk.js.map +1 -0
- package/adminWww/static/js/2816.f7bf6ba0.chunk.js +2 -0
- package/adminWww/static/js/2816.f7bf6ba0.chunk.js.map +1 -0
- package/adminWww/static/js/3210.1be726e7.chunk.js +2 -0
- package/adminWww/static/js/3210.1be726e7.chunk.js.map +1 -0
- package/adminWww/static/js/4112.9b241792.chunk.js +2 -0
- package/adminWww/static/js/4112.9b241792.chunk.js.map +1 -0
- package/adminWww/static/js/4579.014de1f1.chunk.js +2 -0
- package/adminWww/static/js/4579.014de1f1.chunk.js.map +1 -0
- package/adminWww/static/js/{5174.60f22386.chunk.js → 5174.f5aa1074.chunk.js} +2 -2
- package/adminWww/static/js/5174.f5aa1074.chunk.js.map +1 -0
- package/adminWww/static/js/530.cb8dbcf9.chunk.js +2 -0
- package/adminWww/static/js/530.cb8dbcf9.chunk.js.map +1 -0
- package/adminWww/static/js/6552.0a447e18.chunk.js +2 -0
- package/adminWww/static/js/6552.0a447e18.chunk.js.map +1 -0
- package/adminWww/static/js/6938.af058182.chunk.js +2 -0
- package/adminWww/static/js/6938.af058182.chunk.js.map +1 -0
- package/adminWww/static/js/{8038.cacab580.chunk.js → 8038.ae8b7862.chunk.js} +2 -2
- package/adminWww/static/js/8038.ae8b7862.chunk.js.map +1 -0
- package/adminWww/static/js/858.f34ea2c6.chunk.js +2 -0
- package/adminWww/static/js/858.f34ea2c6.chunk.js.map +1 -0
- package/adminWww/static/js/9399.5852b7e7.chunk.js +2 -0
- package/adminWww/static/js/9399.5852b7e7.chunk.js.map +1 -0
- package/adminWww/static/js/9534.2af54084.chunk.js +2 -0
- package/adminWww/static/js/9534.2af54084.chunk.js.map +1 -0
- package/adminWww/static/js/9917.3662a807.chunk.js +2 -0
- package/adminWww/static/js/9917.3662a807.chunk.js.map +1 -0
- package/adminWww/static/js/{main.c1384a82.js → main.423e60b6.js} +2 -2
- package/adminWww/static/js/main.423e60b6.js.map +1 -0
- package/build-backend/lib/passportSocket.js +8 -10
- package/build-backend/lib/translations.js +0 -1
- package/build-backend/lib/web.js +101 -81
- package/build-backend/main.js +173 -184
- package/io-package.json +14 -14
- package/package.json +97 -96
- package/adminWww/static/js/2534.0bc9912f.chunk.js +0 -2
- package/adminWww/static/js/2534.0bc9912f.chunk.js.map +0 -1
- package/adminWww/static/js/2544.4fa1eef5.chunk.js +0 -2
- package/adminWww/static/js/2544.4fa1eef5.chunk.js.map +0 -1
- package/adminWww/static/js/2816.cfab0128.chunk.js +0 -2
- package/adminWww/static/js/2816.cfab0128.chunk.js.map +0 -1
- package/adminWww/static/js/3210.4c1ccdc2.chunk.js +0 -2
- package/adminWww/static/js/3210.4c1ccdc2.chunk.js.map +0 -1
- package/adminWww/static/js/4112.8c6e6dae.chunk.js +0 -2
- package/adminWww/static/js/4112.8c6e6dae.chunk.js.map +0 -1
- package/adminWww/static/js/4579.cd86a1cb.chunk.js +0 -2
- package/adminWww/static/js/4579.cd86a1cb.chunk.js.map +0 -1
- package/adminWww/static/js/5174.60f22386.chunk.js.map +0 -1
- package/adminWww/static/js/530.8eed62a7.chunk.js +0 -2
- package/adminWww/static/js/530.8eed62a7.chunk.js.map +0 -1
- package/adminWww/static/js/6552.29112fa0.chunk.js +0 -2
- package/adminWww/static/js/6552.29112fa0.chunk.js.map +0 -1
- package/adminWww/static/js/6938.f4331126.chunk.js +0 -2
- package/adminWww/static/js/6938.f4331126.chunk.js.map +0 -1
- package/adminWww/static/js/8038.cacab580.chunk.js.map +0 -1
- package/adminWww/static/js/858.3a130f69.chunk.js +0 -2
- package/adminWww/static/js/858.3a130f69.chunk.js.map +0 -1
- package/adminWww/static/js/9399.c959c5de.chunk.js +0 -2
- package/adminWww/static/js/9399.c959c5de.chunk.js.map +0 -1
- package/adminWww/static/js/9534.68ac37f7.chunk.js +0 -2
- package/adminWww/static/js/9534.68ac37f7.chunk.js.map +0 -1
- package/adminWww/static/js/9917.28c0dbc2.chunk.js +0 -2
- package/adminWww/static/js/9917.28c0dbc2.chunk.js.map +0 -1
- package/adminWww/static/js/main.c1384a82.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunksrc_rx=self.webpackChunksrc_rx||[]).push([[858],{858:(t,e,s)=>{s.d(e,{Ay:()=>K,XV:()=>I,fb:()=>U});var i=s(78269),o=s(39697),l=s(29183),n=s(37083),a=s(89303),r=s(32075),c=s(26699),h=s(99277);const d=24,p=32,u=20,m=t=>"dark"===t?"#62ff25":"#37c400",b=t=>"dark"===t?"#ee56ff":"#a204b4",f=t=>"#ff6d69",y=t=>"#5773ff",g="#ff413c",v="#86211f",x="#57ff45",j="#098c04",C="#f3ad11",w="#6c5008",S={toolbar:{minHeight:38},toolbarButtons:{padding:4,marginLeft:4},switchColumnAuto:{marginLeft:16},dialogColumns:{transition:"opacity 1s"},dialogColumnsLabel:{fontSize:12,paddingTop:8},columnCustom:{width:"100%",display:"inline-block"},columnCustomEditable:{cursor:"text"},columnCustom_center:{textAlign:"center"},columnCustom_left:{textAlign:"left"},columnCustom_right:{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},headerRow:{paddingLeft:8,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% - 8px)",height:"calc(100% - 38px)",overflow:"auto"},tableRow:t=>({pl:1,height:p,lineHeight:"32px",verticalAlign:"top",userSelect:"none",position:"relative",width:"100%","&:hover":{background:`${"dark"===t.palette.mode?t.palette.primary.dark:t.palette.primary.light} !important`,color:c.Utils.invertColor(t.palette.primary.main,!0)},whiteSpace:"nowrap",flexWrap:"nowrap"}),tableRowLines:t=>({borderBottom:"1px solid "+(t.palette.mode,"#8888882e"),"& > div":{borderRight:"1px solid "+(t.palette.mode,"#8888882e")}}),tableRowNoDragging:{cursor:"pointer"},tableRowAlias:{height:42},tableRowAliasReadWrite:{height:54},tableRowFocused:t=>({"&:after":{content:'""',position:"absolute",top:1,left:1,right:1,bottom:1,border:t.palette.mode?"1px dotted #000":"1px dotted #FFF"}}),checkBox:{padding:0},cellId:{position:"relative",fontSize:"1rem",overflow:"hidden",textOverflow:"ellipsis","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"},"& .iconOwn":{display:"block",width:28,height:28,mt:"2px",float:"right"},"&:hover .iconOwn":{display:"none"},"& *":{width:"initial"}},cellIdSpan:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},cellIdIconFolder:t=>({marginRight:8,width:28,height:28,cursor:"pointer",color:t.palette.secondary.main||"#fbff7d",verticalAlign:"top"}),cellIdIconDocument:{verticalAlign:"middle",marginLeft:6,marginRight:8,width:u,height:u},cellIdIconOwn:{},cellIdTooltip:{fontSize:14},cellIdTooltipLink:{color:"#7ec2fd","&:hover":{color:"#7ec2fd"},"&:visited":{color:"#7ec2fd"}},cellCopyButton:{width:u,height:u,top:6,opacity:.8,position:"absolute",right:3},cellCopyButtonInDetails:{width:u,height:u,top:6,opacity:.8},cellEditButton:{width:u,height:u,color:"white",position:"absolute",top:6,right:23,opacity:.7,"&:hover":{opacity:1}},cellName:{display:"inline-block",verticalAlign:"top",fontSize:14,ml:"5px",overflow:"hidden",textOverflow:"ellipsis",position:"relative","& .copyButton":{display:"none"},"&:hover .copyButton":{display:"block"}},cellNameWithDesc:{lineHeight:"normal"},cellNameDivDiv:{},cellDescription:{fontSize:10,opacity:.5,fontStyle:"italic"},cellIdAlias:t=>({fontStyle:"italic",fontSize:12,opacity:.7,"&:hover":{color:"dark"===t.palette.mode?"#009900":"#007700"}}),cellIdAliasReadWriteDiv:{height:24,marginTop:-5},cellIdAliasAlone:{lineHeight:0},cellIdAliasReadWrite:{lineHeight:"12px"},cellType:{display:"inline-block",verticalAlign:"top","& .itemIcon":{verticalAlign:"middle",width:d,height:d,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},cellValueButtonFalse:{opacity:.3},cellAdapter:{display:"inline-block",verticalAlign:"top"},cellValueTooltip:{fontSize:12},cellValueText:{width:"100%",height:p,fontSize:16,display:"flex",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"},cellValueTooltipImage:{width:100,height:"auto"},cellValueTooltipBoth:{width:220,display:"inline-block",whiteSpace:"nowrap"},cellValueTooltipBox:{width:250,overflow:"hidden",pointerEvents:"none"},tooltip:{pointerEvents:"none"},cellValueTextUnit:{marginLeft:4,opacity:.8,display:"inline-block"},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:.5,width:24,height:24,"&:hover":{opacity:1},p:0,mt:"-2px"},cellButtonsEmptyButton:{fontSize:12},cellButtonMinWidth:{minWidth:40},cellButtonsButtonAlone:{ml:"26px",pt:0,mt:"-2px"},cellButtonsButtonWithCustoms:t=>({color:"dark"===t.palette.mode?t.palette.primary.main:t.palette.secondary.main}),cellButtonsButtonWithoutCustoms:{opacity:.2},cellButtonsValueButton:t=>({position:"absolute",top:8,opacity:.7,width:18,height:18,color:t.palette.action.active,"&:hover":{opacity:1}}),cellButtonsValueButtonCopy:{right:8,cursor:"pointer"},cellButtonsValueButtonEdit:{right:26},cellDetailsLine:{display:"flex",alignItems:"center",width:"100%",height:32,fontSize:16},cellDetailsName:{fontWeight:"bold",marginRight:8,minWidth:80},filteredOut:{opacity:.5},filteredParentOut:{opacity:.3},filterInput:{mt:0,mb:0},selectIcon:{width:24,height:24,marginRight:4},selectNone:{opacity:.5},itemSelected:t=>({background:`${t.palette.primary.main} !important`,color:`${c.Utils.invertColor(t.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:p,pt:0,"& .itemIcon":{verticalAlign:"middle",width:d,height:d,display:"inline-block"}},headerCellSelectItem:{"& .itemIcon":{width:d,height:d,mr:"5px",display:"inline-block"}},visibleButtons:{color:"#2196f3",opacity:.7},grow:{flexGrow:1},enumIconDiv:{marginRight:8,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,marginTop:6},rightsObject:{color:"#55ff55",paddingLeft:3},rightsState:{color:"#86b6ff",paddingLeft:3},textCenter:{padding:12,textAlign:"center"},tooltipAccessControl:{display:"flex",flexDirection:"column"},fontSizeTitle:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}}},draggable:{cursor:"copy"},nonDraggable:{cursor:"no-drop"},selectClearButton:{position:"absolute",top:0,right:0,borderRadius:5,backgroundColor:"background.default"},iconDeviceConnected:t=>({color:"dark"===t.palette.mode?x:j,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceDisconnected:t=>({color:"dark"===t.palette.mode?C:w,opacity:.8,position:"absolute",top:4,right:32,width:20}),iconDeviceError:t=>({color:"dark"===t.palette.mode?g:v,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"}},invertedBackground:t=>({backgroundColor:"dark"===t.palette.mode?"#9a9a9a":"#565656",padding:"0 3px",borderRadius:"2px 0 0 2px"}),invertedBackgroundFlex:t=>({backgroundColor:"dark"===t.palette.mode?"#9a9a9a":"#565656",borderRadius:"0 2px 2px 0"}),contextMenuEdit:t=>({color:"dark"===t.palette.mode?"#ffee48":"#cbb801"}),contextMenuEditValue:t=>({color:"dark"===t.palette.mode?"#5dff45":"#1cd301"}),contextMenuView:t=>({color:"dark"===t.palette.mode?"#FFF":"#000"}),contextMenuCustom:t=>({color:"dark"===t.palette.mode?"#42eaff":"#01bbc2"}),contextMenuACL:t=>({color:"dark"===t.palette.mode?"#e079ff":"#500070"}),contextMenuRoom:t=>({color:"dark"===t.palette.mode?"#ff9a33":"#642a00"}),contextMenuRole:t=>({color:"dark"===t.palette.mode?"#ffdb43":"#562d00"}),contextMenuDelete:t=>({color:"dark"===t.palette.mode?"#ff4f4f":"#cf0000"}),contextMenuKeys:{marginLeft:8,opacity:.7,fontSize:"smaller"},contextMenuWithSubMenu:{display:"flex"}};function D(t){return(0,h.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 436 436",style:null===t||void 0===t?void 0:t.style,width:"24",height:"24",className:"admin-button",children:(0,h.jsxs)("g",{fill:"currentColor",children:[(0,h.jsx)("path",{d:"m195.23077,24.30769c-36,3 -67,12 -96,26c-49,24 -82,61 -93,104l-3,11l-1,50c0,46 0,49 2,59l5,20c21,58 84,103 165,116c16,3 53,4 70,2c60,-6 111,-28 147,-64c21,-21 36,-49 40,-74a866,866 0 0 0 1,-104c-3,-18 -6,-28 -13,-43c-26,-52 -87,-90 -162,-101c-16,-2 -48,-3 -63,-2l1,0zm60,23c36,5 70,18 95,35c31,20 51,47 59,77c2,7 2,11 2,25c1,15 0,18 -2,26c-19,69 -104,117 -200,114c-47,-2 -90,-15 -124,-38c-31,-20 -51,-47 -59,-77c-3,-11 -4,-32 -2,-43c8,-42 41,-78 91,-101a260,260 0 0 1 140,-19l0,1zm-221,222c21,26 57,49 95,62c81,27 174,14 239,-32c14,-10 31,-27 41,-41c2,-2 2,-2 2,7c-1,23 -16,50 -38,72c-78,74 -233,74 -311,-1a121,121 0 0 1 -39,-76l0,-6l3,4l8,11z"}),(0,h.jsx)("path",{d:"m201.23077,47.30769c-40,3 -79,19 -104,44c-55,55 -38,133 37,171c52,26 122,24 172,-5c30,-17 51,-42 58,-71c3,-11 3,-34 0,-45c-6,-23 -21,-44 -40,-60l-27,-16a184,184 0 0 0 -96,-18zm30,21c56,5 100,35 112,75c4,11 4,30 0,41c-8,25 -26,45 -54,59a166,166 0 0 1 -160,-8a98,98 0 0 1 -41,-53c-5,-18 -2,-39 8,-57c23,-39 79,-62 135,-57z"})]})})}function k(t,e,s){return Array.isArray(t)?function(t,e){const s=[];for(let i=0;i<t.length;i++)e(s,t[i],i);return s}(t,((t,i,o)=>{if(void 0===i||null===i)return;const l="object"===typeof i;s&&l&&"string"===typeof i.en&&"string"===typeof i.de?t[o]=i.en:t[o]=l?k(i,e,s):i})):function(t,e){const s={};for(const i in t)Object.prototype.hasOwnProperty.call(t,i)&&e(s,t[i],i);return s}(t,((t,i,o)=>{if(void 0===i||null===i)return;if(e.includes(o))return;const l="object"===typeof i;s&&l&&"string"===typeof i.en&&"string"===typeof i.de?t[o]=i.en:t[o]=l?k(i,e,s):i}))}function _(t,e,s){const i=document.createElement("a"),o=[];s.excludeSystemRepositories&&o.push("system.repositories");const l=o.length>0||s.excludeTranslations?k(e,o,s.excludeTranslations):e,n=s.beautify?JSON.stringify(l,null,2):JSON.stringify(l);i.setAttribute("href",`data:application/json;charset=utf-8,${encodeURIComponent(n)}`),i.setAttribute("download",t),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}function O(t,e,s,i){if(s=s||0,void 0===i&&!(i=t.length-1))return t[0]===e;const o=Math.floor((s+i)/2);return e===t[o]||(i-1===s?t[s]===e||t[i]===e:e>t[o]?O(t,e,o,i):e<t[o]&&O(t,e,s,o))}function A(t,e){return t&&"object"===typeof t?(t[e]||t.en||"").toString():(t||"").toString()}function I(t,e,s,i){i=i||".";let o="";const l=`system.adapter.${e}`,a=e&&t[l]&&t[l].common&&t[l].common.icon;if(a)if(a.startsWith("data:image/"))o=a.startsWith("data:image/svg")?(0,h.jsx)(n.A,{className:"iconOwn",src:a,width:28,height:28}):a;else{if(!a.includes("."))return a&&a.length<3?a:null;{const e=t[l].common.name;o="object"===typeof e?`${i}/adapter/${e[s]||e.en}/${a}`:`${i}/adapter/${e}/${a}`}}else{const l=t[e]&&t[e].common;if(l){const r=l.icon;if(r)if(r.startsWith("data:image/"))o=r.startsWith("data:image/svg")?(0,h.jsx)(n.A,{className:"iconOwn",src:r,width:28,height:28}):r;else{if(!r.includes("."))return a&&a.length<3?a:null;{let n;"instance"===t[e].type||"adapter"===t[e].type?o="object"===typeof l.name?`${i}/adapter/${l.name[s]||l.name.en}/${r}`:`${i}/adapter/${l.name}/${r}`:e&&e.startsWith("system.adapter.")?(n=e.split(".",3),"/"===r[0]?n[2]+=r:n[2]+=`/${r}`,o=`${i}/adapter/${n[2]}`):(n=e.split(".",2),"/"===r[0]?n[0]+=r:n[0]+=`/${r}`,o=`${i}/adapter/${n[0]}`)}}}}return o||null}function E(t,e,s,i,o,l,n,a,r){r=r||0;let c=!1;if(!o){var h,d,p,u;if(o={},e.id&&(o.id=e.id.toLowerCase()),e.name&&(o.name=e.name.toLowerCase()),e.type&&(o.type=e.type.toLowerCase()),e.custom&&(o.custom=e.custom.toLowerCase()),e.role&&(o.role=e.role.toLowerCase()),e.room)o.room=(null===(h=i[e.room])||void 0===h||null===(d=h.common)||void 0===d?void 0:d.members)||[];if(e.func)o.func=(null===(p=i[e.func])||void 0===p||null===(u=p.common)||void 0===u?void 0:u.members)||[]}const m=t.data;if(m&&m.id){var b;const t=null===(b=m.obj)||void 0===b?void 0:b.common;var f,y,g,v,x;if(n)if(n.type&&("string"===typeof n.type?m.obj&&n.type===m.obj.type||(c=!0):Array.isArray(n.type)&&(m.obj&&n.type.includes(m.obj.type)||(c=!0))),!c&&null!==(f=n.common)&&void 0!==f&&f.type&&(null!==t&&void 0!==t&&t.type?"string"===typeof n.common.type?n.common.type!==t.type&&(c=!0):Array.isArray(n.common.type)&&(n.common.type.includes(t.type)||(c=!0)):c=!0),!c&&null!==(y=n.common)&&void 0!==y&&y.role&&(null!==t&&void 0!==t&&t.role?"string"===typeof n.common.role?t.role.startsWith(n.common.role)&&(c=!0):Array.isArray(n.common.role)&&(n.common.role.find((e=>t.role.startsWith(e)))||(c=!0)):c=!0),!c&&"_"===(null===(g=n.common)||void 0===g?void 0:g.custom)&&null!==t&&void 0!==t&&t.custom)c=!0;else if(!c&&null!==(v=n.common)&&void 0!==v&&v.custom&&"_"!==(null===(x=n.common)||void 0===x?void 0:x.custom)){const e=n.common.custom;if(null!==t&&void 0!==t&&t.custom)if("_dataSources"===e)Object.keys(t.custom).find((t=>t.startsWith("history.")||t.startsWith("sql.")||t.startsWith("influxdb.")))||(c=!0);else if(Array.isArray(e)){const s=Object.keys(t.custom);e.find((t=>s.find((e=>e.startsWith(t)))))&&(c=!0)}else!0===e||Object.keys(t.custom).find((t=>t.startsWith(e)))||(c=!0);else c=!0}c||e.expertMode||(c="system"===m.id||"enum"===m.id||m.id.startsWith("system.")||m.id.startsWith("enum.")||m.id.startsWith("_design/")||m.id.endsWith(".admin")||!(null===t||void 0===t||!t.expert)),!c&&o.id&&(void 0===m.fID&&(m.fID=m.id.toLowerCase()),c=!m.fID.includes(o.id)),!c&&o.name&&(t?(void 0===m.fName&&(m.fName=t&&A(t.name,s)||"",m.fName=m.fName.toLowerCase()),c=!m.fName.includes(o.name)):c=!0),!c&&e.role&&t&&(c=!t||!(t.role&&t.role.startsWith(o.role))),!c&&o.room&&(c=!o.room.find((t=>t===m.id||m.id.startsWith(`${t}.`)))),!c&&o.func&&(c=!o.func.find((t=>t===m.id||m.id.startsWith(`${t}.`)))),!c&&o.type&&(c=!(m.obj&&m.obj.type&&m.obj.type===o.type)),!c&&a&&(c=!(m.obj&&m.obj.type&&a.includes(m.obj.type))),!c&&o.custom&&(c=!t||("_"===o.custom?!!t.custom:!t.custom||!t.custom[o.custom]))}return m.visible=!c,m.hasVisibleChildren=!1,t.children&&r<20&&t.children.forEach((t=>{E(t,e,s,i,o,l,n,a,r+1)&&(m.hasVisibleChildren=!0)})),m.sumVisibility=m.visible||m.hasVisibleChildren,l&&m.sumVisibility&&l.count++,m.id&&m.sumVisibility&&t.children&&t.children.forEach((t=>t.data.hasVisibleParent=!0)),m.visible||m.hasVisibleChildren}function N(t,e,s,i){i=i||[];const o=t.data;var l;o.sumVisibility&&(!o.id||!s[o.id]||e&&s[o.id].type!==e||i.push(o.id),null===(l=t.children)||void 0===l||l.forEach((t=>N(t,e,s,i))));return i}function F(t,e,s,i,o,l){let n;return"alias"===e||"alias.0"===e?n=(0,h.jsx)(r.Link,{className:"iconOwn",style:{color:b(i)}}):"0_userdata"===e||"0_userdata.0"===e?n=(0,h.jsx)(r.DataObject,{className:"iconOwn",style:{color:m(i)}}):e.startsWith("_design/")||"system"===e?n=(0,h.jsx)(r.SettingsApplications,{className:"iconOwn",style:{color:f(i)}}):"system.adapter"===e?n=(0,h.jsx)(r.SettingsApplications,{className:"iconOwn",style:{color:y(i)}}):"system.group"===e?n=(0,h.jsx)(r.SupervisedUserCircle,{className:"iconOwn"}):"system.user"===e?n=(0,h.jsx)(r.PersonOutlined,{className:"iconOwn"}):"system.host"===e?n=(0,h.jsx)(r.Router,{className:"iconOwn"}):e.endsWith(".connection")||e.endsWith(".connected")?n=(0,h.jsx)(r.Wifi,{className:"iconOwn"}):e.endsWith(".info")?n=(0,h.jsx)(r.Info,{className:"iconOwn"}):t[e]&&"meta"===t[e].type?n=(0,h.jsx)(r.Description,{className:"iconOwn"}):s<2&&t[`system.adapter.${e}`]&&(n=I(t,`system.adapter.${e}`,o,l)),n||null}function V(t,e){var s,i;return null!==t&&void 0!==t&&null!==(s=t.obj)&&void 0!==s&&null!==(i=s.common)&&void 0!==i&&i.desc&&A(t.obj.common.desc,e)||null}function T(t,e){const s=V(t,e);return null!==s&&void 0!==s&&s.startsWith("http")?(0,h.jsx)(a.Box,{component:"a",sx:S.cellIdTooltipLink,href:s,target:"_blank",rel:"noreferrer",children:s}):(0,h.jsx)("span",{style:S.cellIdTooltip,children:s||t.id||""})}function M(t,e){const s=e.imagePrefix||".";let i=Object.keys(t);i.sort(((t,e)=>t===e?0:(t=t.replace(/\./g,"!!!"))>(e=e.replace(/\./g,"!!!"))?1:-1)),e.root&&(i=i.filter((t=>t===e.root||t.startsWith(`${e.root}.`))));let o=[],l="",n=0;const a={data:{name:"",id:""},children:[]},r={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:t,customs:["_"],enums:[],hasSomeCustoms:!1,aliasesMap:{}};let c=a;for(let v=0;v<i.length;v++){const x=i[v];if(!x)continue;const j=t[x],C=x.split(".");if(j.type&&!r.types.includes(j.type)&&r.types.push(j.type),j){var h,d;const t=j.common,e=t&&t.role;if(e&&!r.roles.includes(e)?r.roles.push(e):x.startsWith("enum.rooms.")?(r.roomEnums.push(x),r.enums.push(x)):x.startsWith("enum.functions.")?(r.funcEnums.push(x),r.enums.push(x)):"enum"===j.type?r.enums.push(x):"instance"===j.type&&t&&(t.supportCustoms||null!==(h=t.adminUI)&&void 0!==h&&h.custom)&&(r.hasSomeCustoms=!0,r.customs.push(x.substring(15))),x.startsWith("alias.")&&null!==(d=j.common.alias)&&void 0!==d&&d.id)if("string"===typeof j.common.alias.id){const t=j.common.alias.id;r.aliasesMap[t]?r.aliasesMap[t].includes(x)||r.aliasesMap[t].push(x):r.aliasesMap[t]=[x]}else{const t=j.common.alias.id.read;t&&(r.aliasesMap[t]?r.aliasesMap[t].includes(x)||r.aliasesMap[t].push(x):r.aliasesMap[t]=[x]);const e=j.common.alias.id.write;e&&(r.aliasesMap[e]?r.aliasesMap[e].includes(x)||r.aliasesMap[e].push(x):r.aliasesMap[e]=[x])}}let w;r.ids.push(x);do{if(w=!1,!l||x.startsWith(`${l}.`)){var p,u,m,b,f,y,g;if(C.length-n>1){let i=l;for(let o=n;o<C.length-1;o++)if(i+=(i?".":"")+C[o],O(r.ids,i))c.children&&(c=c.children.find((t=>t.data.name===C[o])));else{const l={data:{name:C[o],parent:c,id:i,obj:t[i],level:o,icon:F(t,i,o,e.themeType,e.lang,s),generated:!0}};c.children=c.children||[],c.children.push(l),c=l,r.ids.push(i)}}const i={data:{name:C[C.length-1],title:A(null===j||void 0===j||null===(p=j.common)||void 0===p?void 0:p.name,e.lang),obj:j,parent:c,icon:I(t,x,e.lang,s)||F(t,x,0,e.themeType,e.lang,s),id:x,hasCustoms:!(null===(u=j.common)||void 0===u||!u.custom||!Object.keys(j.common.custom).length),level:C.length-1,generated:!1,button:"state"===j.type&&!(null===(m=j.common)||void 0===m||!m.role)&&"string"===typeof j.common.role&&j.common.role.startsWith("button")&&!1!==(null===(b=j.common)||void 0===b?void 0:b.write),switch:"state"===j.type&&"boolean"===(null===(f=j.common)||void 0===f?void 0:f.type)&&!1!==(null===(y=j.common)||void 0===y?void 0:y.write)&&!1!==(null===(g=j.common)||void 0===g?void 0:g.read)}};c.children=c.children||[],c.children.push(i),c=i,n=C.length,o=C,l=x}else{let t=0;for(;o[t]===C[t];)t++;if(t>0){let e=o.length;for(o=o.splice(0,t),n=t,l=o.join(".");e>t;)c.data.parent?c=c.data.parent:console.error(`Parent is null for ${x} ${l} ${o.join(".")}`),e--}else c=a,o=[],l="",n=0;w=!0}}while(w)}return r.roomEnums.sort(((s,i)=>{var o,l,n,a;const r=A(null===(o=t[s])||void 0===o||null===(l=o.common)||void 0===l?void 0:l.name,e.lang)||s.split(".").pop(),c=A(null===(n=t[i])||void 0===n||null===(a=n.common)||void 0===a?void 0:a.name,e.lang)||i.split(".").pop();return r>c?1:r<c?-1:0})),r.funcEnums.sort(((s,i)=>{var o,l,n,a;const r=A(null===(o=t[s])||void 0===o||null===(l=o.common)||void 0===l?void 0:l.name,e.lang)||s.split(".").pop(),c=A(null===(n=t[i])||void 0===n||null===(a=n.common)||void 0===a?void 0:a.name,e.lang)||i.split(".").pop();return r>c?1:r<c?-1:0})),r.roles.sort(),r.types.sort(),{info:r,root:a}}function B(t,e,s,i,o){if(t.data.id===e)return t;if(s||(i=(s=e.split("."))[o=0]),!t.children&&t.data.id!==e)return null;let l;if(t.children)for(let n=0;n<t.children.length;n++){const e=t.children[n].data.id;if(e===i){l=t.children[n];break}if(e>i)break}return l?B(l,e,s,`${i}.${s[(o=o||0)+1]}`,o+1):null}function $(t,e,s,i){if(!e)return{rooms:[],per:!1};i=i||[];for(const r of t.roomEnums){var o,l;const n=null===(o=t.objects[r])||void 0===o?void 0:o.common;if(!n)continue;const a=A(n.name,s);null!==(l=n.members)&&void 0!==l&&l.includes(e)&&!i.includes(a)&&i.push(a)}let n;const a=e.split(".");return a.pop(),e=a.join("."),t.objects[e]&&(n=i.length,$(t,e,s,i)),{rooms:i,per:!n}}function z(t,e,s,i){if(!e)return[];i=i||[];for(let n=0;n<t[s].length;n++){var o,l;const a=null===(o=t.objects[t[s][n]])||void 0===o?void 0:o.common;null!==a&&void 0!==a&&null!==(l=a.members)&&void 0!==l&&l.includes(e)&&!i.includes(t[s][n])&&i.push(t[s][n])}return i.sort(),i}function W(t,e,s,i){if(!e)return{funcs:[],pef:!1};i=i||[];for(let r=0;r<t.funcEnums.length;r++){var o,l;const n=null===(o=t.objects[t.funcEnums[r]])||void 0===o?void 0:o.common;if(!n)continue;const a=A(n.name,s);null!==(l=n.members)&&void 0!==l&&l.includes(e)&&!i.includes(a)&&i.push(a)}let n;const a=e.split(".");return a.pop(),e=a.join("."),t.objects[e]&&(n=i.length,W(t,e,s,i)),{funcs:i,pef:!n}}function R(t){const{dateFormat:e,state:s,isFloatComma:i,texts:o,obj:l}=t,n=c.Utils.getStates(l),a=l.common;let r,h="file"===(null===a||void 0===a?void 0:a.type)?"[file]":s&&null!==s.val?void 0===s.val?"[undef]":s.val:"(null)";const d=typeof h;if(null!==a&&void 0!==a&&a.role&&"string"===typeof a.role&&a.role.match(/^value\.time|^date/))if(h&&"string"===typeof h)if(c.Utils.isStringInteger(h))h=new Date(parseInt(h,10)).toString();else try{const t=new Date(h);c.Utils.isValidDate(t)&&(h=t.toString())}catch{}else h>946681200&&h<9466812e5&&(h*=1e3),h=h?new Date(h).toString():h;else"number"===d?Number.isInteger(h)||(h=Math.round(1e8*h)/1e8,i&&(h=h.toString().replace(".",","))):"object"===d?h=JSON.stringify(h):"string"!==d?h=h.toString():h.startsWith("data:image/")&&(r="image"),"string"!==typeof h&&(h=h.toString());const p={v:h};let u;if(n&&void 0!==n[h]&&h!==n[h]&&(p.s=h,h=n[h],p.v=h),null!==a&&void 0!==a&&a.unit&&(p.u=a.unit),t.full&&(u=[{t:o.value,v:h}],s)){if(void 0!==s.ack&&null!==s.ack&&u.push({t:o.ack,v:s.ack.toString()}),s.ts&&u.push({t:o.ts,v:s.ts?c.Utils.formatDate(new Date(s.ts),e):""}),s.lc&&u.push({t:o.lc,v:s.lc?c.Utils.formatDate(new Date(s.lc),e):""}),s.from){let t=s.from.toString();t.startsWith("system.adapter.")&&(t=t.substring(15)),u.push({t:o.from,v:t})}if(s.user){let t=s.user.toString();t.startsWith("system.user.")&&(t=t.substring(12)),u.push({t:o.user,v:t})}s.c&&u.push({t:o.c,v:s.c}),u.push({t:o.quality,v:c.Utils.quality2text(s.q||0).join(", "),nbr:!0})}return{valText:p,valFull:u,fileViewer:r}}function L(t,e){let s=e,i=1;const o=[];for(;i<t.length&&s<e+9e7;){for(;t[i-1].ts<s&&s<=t[i].ts&&i<t.length;)i++;if(1===i&&t[i-1].ts>=s)o.push(0);else if(i<t.length)if("boolean"===typeof t[i].val||"boolean"===typeof t[i-1].val)o.push(t[i].val?1:0);else{t[i-1].val=t[i-1].val||0,t[i].val=t[i].val||0;const e=t[i-1].val,l=e+(t[i].val-e)*(s-t[i-1].ts)/(t[i].ts-t[i-1].ts);o.push(l)}s+=36e5}return o}const U={state:(0,h.jsx)(c.IconState,{className:"itemIcon",style:{verticalAlign:"middle"}}),channel:(0,h.jsx)(c.IconChannel,{className:"itemIcon",style:{verticalAlign:"middle"}}),device:(0,h.jsx)(c.IconDevice,{className:"itemIcon",style:{verticalAlign:"middle"}}),adapter:(0,h.jsx)(c.IconAdapter,{className:"itemIcon",style:{verticalAlign:"middle"}}),meta:(0,h.jsx)(r.Description,{className:"itemIcon",style:{verticalAlign:"middle"}}),instance:(0,h.jsx)(c.IconInstance,{className:"itemIcon",style:{color:"#7da7ff",verticalAlign:"middle"}}),enum:(0,h.jsx)(r.ListAlt,{className:"itemIcon",style:{verticalAlign:"middle"}}),chart:(0,h.jsx)(r.ShowChart,{className:"itemIcon",style:{verticalAlign:"middle"}}),config:(0,h.jsx)(r.Settings,{className:"itemIcon",style:{verticalAlign:"middle"}}),group:(0,h.jsx)(r.SupervisedUserCircle,{className:"itemIcon",style:{verticalAlign:"middle"}}),user:(0,h.jsx)(r.PersonOutlined,{className:"itemIcon",style:{verticalAlign:"middle"}}),host:(0,h.jsx)(r.Router,{className:"itemIcon",style:{verticalAlign:"middle"}}),schedule:(0,h.jsx)(r.CalendarToday,{className:"itemIcon",style:{verticalAlign:"middle"}}),script:(0,h.jsx)(r.Code,{className:"itemIcon",style:{verticalAlign:"middle"}}),folder:(0,h.jsx)(c.IconClosed,{className:"itemIcon itemIconFolder",style:{verticalAlign:"middle"}})},P={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 J=!1;const H={id:"",name:"",room:"",func:"",role:"",type:"",custom:"",expertMode:!1};var q=(0,o.A)("NON_EXPERT_NAMESPACES");class G extends l.Component{constructor(t){super(t),this.info={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:{},customs:[],enums:[],hasSomeCustoms:!1,aliasesMap:{}},this.localStorage=window._localStorage||window.localStorage,this.lastAppliedFilter=null,this.tableRef=void 0,this.filterRefs=void 0,this.pausedSubscribes=!1,this.selectFirst=void 0,this.root=null,this.states={},this.subscribes=[],this.unsubscribeTimer=null,this.statesUpdateTimer=null,this.objectsUpdateTimer=null,this.filterTimer=null,this.visibleCols=void 0,this.texts=void 0,this.possibleCols=void 0,this.imagePrefix=void 0,this.adapterColumns=[],this.styleTheme="",this.edit={id:"",val:"",q:0,ack:!1},this.levelPadding=void 0,this.customWidth=!1,this.resizeTimeout=null,this.resizerNextName=null,this.resizerActiveName=null,this.resizerCurrentWidths={},this.resizeLeft=!1,this.resizerOldWidth=0,this.resizerMin=0,this.resizerNextMin=0,this.resizerOldWidthNext=0,this.resizerPosition=0,this.resizerActiveDiv=null,this.resizerNextDiv=null,this.storedWidths=null,this.systemConfig=void 0,this.objects=void 0,this.defaultHistory="",this.columnsVisibility={},this.changedIds=null,this.contextMenu=null,this.recordStates=[],this.styles={},this.customColumnDialog=null,this.onContextMenu=t=>{this.contextMenu&&Date.now()-this.contextMenu.ts<2e3?(t.preventDefault(),this.setState({showContextMenu:{item:this.contextMenu.item,position:{left:t.clientX+2,top:t.clientY-6}}})):this.state.showContextMenu&&(t.preventDefault(),this.setState({showContextMenu:null})),this.contextMenu=null},this.onStateChange=(t,e)=>{if(console.log(`> stateChange ${t}`),this.states[t]){const e=this.findItem(t);null!==e&&void 0!==e&&e.data.state&&(e.data.state=void 0)}e?this.states[t]=e:delete this.states[t],this.pausedSubscribes?this.statesUpdateTimer&&(clearTimeout(this.statesUpdateTimer),this.statesUpdateTimer=null):this.statesUpdateTimer||(this.statesUpdateTimer=setTimeout((()=>{this.statesUpdateTimer=null,this.forceUpdate()}),300))},this.onObjectChangeFromWorker=t=>{if(Array.isArray(t)){let e=null;t.forEach((t=>{const{newInnerState:s,filtered:i}=this.processOnObjectChangeElement(t.id,t.obj);i||(s&&e?Object.assign(e,s):e=s)})),e&&this.setState(e),this.afterObjectUpdated()}},this.onObjectChange=(t,e)=>{const{newInnerState:s,filtered:i}=this.processOnObjectChangeElement(t,e);i||(s&&this.setState(s),this.afterObjectUpdated())},this.getEnumsForId=t=>{const e=[];return this.info.enums.forEach((s=>{var i,o,l;if(null!==(i=this.objects[s])&&void 0!==i&&null!==(o=i.common)&&void 0!==o&&null!==(l=o.members)&&void 0!==l&&l.includes(t)){const t={_id:this.objects[s]._id,common:JSON.parse(JSON.stringify(this.objects[s].common)),native:this.objects[s].native,type:"enum"};t.common&&(delete t.common.members,delete t.common.custom,delete t.common.mobile),e.push(t)}})),e.length?e:void 0},this._createAllEnums=async(t,e)=>{for(let o=0;o<t.length;o++){var s,i;const l=t[o];let n,a;"object"===typeof l?(a=l,n=a._id):n=l;let r=this.objects[n];r?null!==(s=r.common)&&void 0!==s&&null!==(i=s.members)&&void 0!==i&&i.includes(e)||(r.common=r.common||{},r.type="enum",r.common.members=r.common.members||[],r.common.members.push(e),r.common.members.sort(),await this.props.socket.setObject(n,r)):(r=a||{_id:n,common:{name:n.split(".").pop(),members:[]},native:{},type:"enum"},r.common=r.common||{},r.common.members=[e],r.type="enum",await this.props.socket.setObject(n,r))}},this.toolTipObjectCreating=()=>{const{t:t}=this.props;let e=[(0,h.jsx)("div",{children:t("ra_Only following structures of objects are available:")},1),(0,h.jsx)("div",{children:t("ra_Folder \u2192 State")},2),(0,h.jsx)("div",{children:t("ra_Folder \u2192 Channel \u2192 State")},3),(0,h.jsx)("div",{children:t("ra_Folder \u2192 Device \u2192 Channel \u2192 State")},4),(0,h.jsx)("div",{children:t("ra_Device \u2192 Channel \u2192 State")},5),(0,h.jsx)("div",{children:t("ra_Channel \u2192 State")},6),(0,h.jsx)("div",{style:{height:10}},7),(0,h.jsx)("div",{children:t('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')},8),(0,h.jsx)("div",{children:t('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").')},9)];if(this.state.selected.length||this.state.selectedNonObject){var s;const o=this.state.selected[0]||this.state.selectedNonObject;if(o.split(".").length<2||this.objects[o]&&"state"===(null===(s=this.objects[o])||void 0===s?void 0:s.type));else if(this.state.filter.expertMode){var i;switch(null===(i=this.objects[o])||void 0===i?void 0:i.type){case"device":e=[(0,h.jsx)("div",{children:t("ra_Only following structures of objects are available:")},1),(0,h.jsx)("div",{children:t("ra_Device \u2192 Channel \u2192 State")},5),(0,h.jsx)("div",{style:{height:10}},7),(0,h.jsx)("div",{children:t('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')},8),(0,h.jsx)("div",{children:t('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").')},9)];break;case"folder":e=[(0,h.jsx)("div",{children:t("ra_Only following structures of objects are available:")},1),(0,h.jsx)("div",{children:t("ra_Folder \u2192 State")},2),(0,h.jsx)("div",{children:t("ra_Folder \u2192 Channel \u2192 State")},3),(0,h.jsx)("div",{children:t("ra_Folder \u2192 Device \u2192 Channel \u2192 State")},4),(0,h.jsx)("div",{style:{height:10}},7),(0,h.jsx)("div",{children:t('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')},8),(0,h.jsx)("div",{children:t('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").')},9)];break;case"channel":e=[(0,h.jsx)("div",{children:t("ra_Only following structures of objects are available:")},1),(0,h.jsx)("div",{children:t("ra_Channel \u2192 State")},1),(0,h.jsx)("div",{style:{height:10}},7),(0,h.jsx)("div",{children:t('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')},8),(0,h.jsx)("div",{children:t('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").')},9)]}}else(o.startsWith("alias.0")||o.startsWith("0_userdata"))&&(e=[(0,h.jsx)("div",{children:t("ra_Only following structures of objects are available:")},1),(0,h.jsx)("div",{children:t("ra_Folder \u2192 State")},2),(0,h.jsx)("div",{children:t("ra_Folder \u2192 Channel \u2192 State")},3),(0,h.jsx)("div",{children:t("ra_Folder \u2192 Device \u2192 Channel \u2192 State")},4),(0,h.jsx)("div",{children:t("ra_Device \u2192 Channel \u2192 State")},5),(0,h.jsx)("div",{children:t("ra_Channel \u2192 State")},6),(0,h.jsx)("div",{style:{height:10}},7),(0,h.jsx)("div",{children:t('ra_Non-experts may create new objects only in "0_userdata.0" or "alias.0".')},7),(0,h.jsx)("div",{children:t('ra_The experts may create objects everywhere but from second level (e.g. "vis.0" or "javascript.0").')},8)])}return e.length?e:t("ra_Add new child object to selected parent")},this.renderTooltipAccessControl=t=>{if(!t)return null;const e=[{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"}],s=[],i=i=>{const o=t[i];e.forEach(((t,e)=>{o&t.valueNum&&s.push((0,h.jsxs)("span",{children:[this.texts[`acl${t.group}_${t.title}_${i}`],",",(0,h.jsx)("span",{style:"object"===i?S.rightsObject:S.rightsState,children:t.value})]},i+e))}))};return s.push((0,h.jsx)("span",{children:`${this.texts.ownerGroup}: ${(t.ownerGroup||"").replace("system.group.","")}`},"group")),s.push((0,h.jsx)("span",{children:`${this.texts.ownerUser}: ${(t.owner||"").replace("system.user.","")}`},"owner")),i("object"),t.state&&i("state"),s.length?(0,h.jsx)("span",{style:S.tooltipAccessControl,children:s.map((t=>t))}):null},this.resizerMouseMove=t=>{if(this.resizerActiveDiv){let e,s;this.resizeLeft?(e=this.resizerOldWidth-t.clientX+this.resizerPosition,s=this.resizerOldWidthNext+t.clientX-this.resizerPosition):(e=this.resizerOldWidth+t.clientX-this.resizerPosition,s=this.resizerOldWidthNext-t.clientX+this.resizerPosition),this.resizerActiveName&&this.resizerNextName&&(!this.resizerMin||e>this.resizerMin)&&(!this.resizerNextMin||s>this.resizerNextMin)&&(this.resizerCurrentWidths[this.resizerActiveName]=e,this.resizerCurrentWidths[this.resizerNextName]=s,this.resizerActiveDiv.style.width=`${e}px`,this.resizerNextDiv&&(this.resizerNextDiv.style.width=`${s}px`),this.columnsVisibility[this.resizerActiveName]=e,this.columnsVisibility[this.resizerNextName]=s,"nameHeader"===this.resizerNextName?(this.columnsVisibility.name=s-this.state.scrollBarWidth,this.resizerCurrentWidths.name=s-this.state.scrollBarWidth):"nameHeader"===this.resizerActiveName&&(this.columnsVisibility.name=e-this.state.scrollBarWidth,this.resizerCurrentWidths.name=e-this.state.scrollBarWidth),this.customWidth=!0,this.resizeTimeout&&clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=null,this.forceUpdate()}),200))}},this.resizerMouseUp=()=>{this.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)},this.resizerMouseDown=t=>{if(this.storedWidths=this.storedWidths||JSON.parse(JSON.stringify(P[this.props.width||"lg"])),this.resizerCurrentWidths=this.resizerCurrentWidths||{},this.resizerActiveDiv=t.target.parentNode,this.resizerActiveName=this.resizerActiveDiv.dataset.name||null,this.resizerActiveName){let s=0;if("true"===t.target.dataset.left){var e;this.resizeLeft=!0,this.resizerNextDiv=this.resizerActiveDiv.previousElementSibling;let t=this.resizerNextDiv.querySelector(".iob-ob-resize-handler");for(;this.resizerNextDiv&&!t&&s<10;)this.resizerNextDiv=this.resizerNextDiv.previousElementSibling,t=this.resizerNextDiv.querySelector(".iob-ob-resize-handler"),s++;"true"!==(null===(e=t)||void 0===e?void 0:e.dataset.left)&&(this.resizerNextDiv=this.resizerNextDiv.nextElementSibling)}else this.resizeLeft=!1,this.resizerNextDiv=this.resizerActiveDiv.nextElementSibling;this.resizerNextName=this.resizerNextDiv.dataset.name||null,this.resizerMin=parseInt(this.resizerActiveDiv.dataset.min,10)||0,this.resizerNextMin=parseInt(this.resizerNextDiv.dataset.min,10)||0,this.resizerPosition=t.clientX,this.resizerCurrentWidths[this.resizerActiveName]=this.resizerActiveDiv.offsetWidth,this.resizerOldWidth=this.resizerCurrentWidths[this.resizerActiveName],this.resizerNextName&&(this.resizerCurrentWidths[this.resizerNextName]=this.resizerNextDiv.offsetWidth,this.resizerOldWidthNext=this.resizerCurrentWidths[this.resizerNextName]),window.addEventListener("mousemove",this.resizerMouseMove),window.addEventListener("mouseup",this.resizerMouseUp)}},this.resizerReset=()=>{this.customWidth=!1,P[this.props.width||"lg"]=JSON.parse(JSON.stringify(this.storedWidths)),this.calculateColumnsVisibility(),this.localStorage.removeItem(`${this.props.dialogName||"App"}.table`),this.forceUpdate()};const e=this.localStorage.getItem(`${t.dialogName||"App"}.objectSelected`)||"";if(this.selectFirst="",e.startsWith("["))try{const t=JSON.parse(e);this.selectFirst=t[0]||""}catch{}else this.selectFirst=e;let s;const i=this.localStorage.getItem(`${t.dialogName||"App"}.objectExpanded`)||"[]";try{s=JSON.parse(i)}catch{s=[]}let o;const n=t.defaultFilters?"":this.localStorage.getItem(`${t.dialogName||"App"}.objectFilter`)||"";if(n)try{o=JSON.parse(n)}catch{o={...H}}else o=t.defaultFilters&&"object"===typeof t.defaultFilters?{...t.defaultFilters}:{...H};if(o.expertMode=void 0!==t.expertMode?t.expertMode:"true"===(window._sessionStorage||window.sessionStorage).getItem("App.expertMode"),this.tableRef=(0,l.createRef)(),this.filterRefs={},Object.keys(H).forEach((t=>this.filterRefs[t]=(0,l.createRef)())),this.visibleCols=t.columns||P[t.width||"lg"].fields,t.types&&1===t.types.length){const t=this.visibleCols.indexOf("type");-1!==t&&this.visibleCols.splice(t,1)}this.possibleCols=P.xl.fields;let a,r=null;if(t.router){const e=t.router.getLocation();e.id&&"customs"===e.dialog&&(r=[e.id],this.pauseSubscribe(!0))}a=Array.isArray(t.selected)?t.selected:[t.selected||""],a=a.map((t=>t.replace(/["']/g,""))).filter((t=>t)),this.selectFirst=a.length&&a[0]?a[0]:this.selectFirst;const c=this.localStorage.getItem(`${t.dialogName||"App"}.columns`);let d;try{d=c?JSON.parse(c):null}catch{d=null}let p,u=null;try{u=u?JSON.parse(u):{}}catch{u={}}this.imagePrefix=t.imagePrefix||".";const m=this.localStorage.getItem(`${t.dialogName||"App"}.foldersFirst`);p="false"!==m&&("true"===m||(void 0===t.foldersFirst||t.foldersFirst));let b=!1;try{b=this.props.objectStatesView&&JSON.parse(this.localStorage.getItem(`${t.dialogName||"App"}.objectStatesView`)||"")||!1}catch{}this.state={loaded:!1,foldersFirst:p,selected:a,selectedNonObject:this.localStorage.getItem(`${t.dialogName||"App"}.selectedNonObject`)||"",filter:o,filterKey:0,focused:this.localStorage.getItem(`${t.dialogName||"App"}.focused`)||"",depth:0,expandAllVisible:!1,expanded:s,toast:"",scrollBarWidth:16,customDialog:r,editObjectDialog:"",editObjectAlias:!1,viewFileDialog:"",showAliasEditor:"",enumDialog:null,roleDialog:null,statesView:b,columns:d,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:"false"!==this.localStorage.getItem(`${t.dialogName||"App"}.columnsAuto`),columnsWidths:u,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,showAllExportOptions:!1,linesEnabled:"true"===this.localStorage.getItem(`${t.dialogName||"App"}.lines`),showDescription:"false"!==this.localStorage.getItem(`${t.dialogName||"App"}.desc`),showContextMenu:null,noStatesByExportImport:!1,beautifyJsonExport:!0,excludeSystemRepositoriesFromExport:!0,excludeTranslations:!1,tooltipInfo:null,aliasMenu:""},this.texts={name:t.t("ra_Name"),categories:t.t("ra_Categories"),value:t.t("ra_tooltip_value"),ack:t.t("ra_tooltip_ack"),ts:t.t("ra_tooltip_ts"),lc:t.t("ra_tooltip_lc"),from:t.t("ra_tooltip_from"),user:t.t("ra_tooltip_user"),c:t.t("ra_tooltip_comment"),quality:t.t("ra_tooltip_quality"),editObject:t.t("ra_tooltip_editObject"),deleteObject:t.t("ra_tooltip_deleteObject"),customConfig:t.t("ra_tooltip_customConfig"),copyState:t.t("ra_tooltip_copyState"),editState:t.t("ra_tooltip_editState"),close:t.t("ra_Close"),filter_id:t.t("ra_filter_id"),filter_name:t.t("ra_filter_name"),filter_type:t.t("ra_filter_type"),filter_role:t.t("ra_filter_role"),filter_room:t.t("ra_filter_room"),filter_func:t.t("ra_filter_func"),filter_custom:t.t("ra_filter_customs"),filterCustomsWithout:t.t("ra_filter_customs_without"),objectChangedByUser:t.t("ra_object_changed_by_user"),objectChangedBy:t.t("ra_object_changed_by"),objectChangedFrom:t.t("ra_state_changed_from"),stateChangedBy:t.t("ra_state_changed_by"),stateChangedFrom:t.t("ra_state_changed_from"),ownerGroup:t.t("ra_Owner group"),ownerUser:t.t("ra_Owner user"),deviceError:t.t("ra_Error"),deviceDisconnected:t.t("ra_Disconnected"),deviceConnected:t.t("ra_Connected"),aclOwner_read_object:t.t("ra_aclOwner_read_object"),aclOwner_read_state:t.t("ra_aclOwner_read_state"),aclOwner_write_object:t.t("ra_aclOwner_write_object"),aclOwner_write_state:t.t("ra_aclOwner_write_state"),aclGroup_read_object:t.t("ra_aclGroup_read_object"),aclGroup_read_state:t.t("ra_aclGroup_read_state"),aclGroup_write_object:t.t("ra_aclGroup_write_object"),aclGroup_write_state:t.t("ra_aclGroup_write_state"),aclEveryone_read_object:t.t("ra_aclEveryone_read_object"),aclEveryone_read_state:t.t("ra_aclEveryone_read_state"),aclEveryone_write_object:t.t("ra_aclEveryone_write_object"),aclEveryone_write_state:t.t("ra_aclEveryone_write_state"),create:t.t("ra_Create"),createBooleanState:t.t("ra_create_boolean_state"),createNumberState:t.t("ra_create_number_state"),createStringState:t.t("ra_create_string_state"),createState:t.t("ra_create_state"),createChannel:t.t("ra_create_channel"),createDevice:t.t("ra_create_device"),createFolder:t.t("ra_Create folder")},this.levelPadding=t.levelPadding||16;const f=this.localStorage.getItem(`${this.props.dialogName||"App"}.table`);if(f)try{const t=JSON.parse(f),e=this.props.width||"lg";this.storedWidths=JSON.parse(JSON.stringify(P[e])),Object.keys(t).forEach((s=>{"id"===s?P[e].idWidth=t.id:"nameHeader"===s?P[e].widths.name=t[s]:void 0!==P[e].widths[s]&&(P[e].widths[s]=t[s])})),this.customWidth=!0}catch{}this.calculateColumnsVisibility()}async loadAllObjects(t){const e=this.props;try{await new Promise((t=>{this.setState({updating:!0},(()=>t()))}));const s=(this.props.objectsWorker?await this.props.objectsWorker.getObjects(t):await e.socket.getObjects(t,!0))||{};if(e.types&&c.Connection.isWeb())for(let t=0;t<e.types.length;t++){if("state"===e.types[t]||"channel"===e.types[t]||"device"===e.types[t]||"enum"===e.types[t])continue;const i=await e.socket.getObjectViewSystem(e.types[t]);Object.assign(s||{},i)}if(this.systemConfig=this.systemConfig||(null===s||void 0===s?void 0:s["system.config"])||await e.socket.getObject("system.config"),this.systemConfig.common=this.systemConfig.common||{},this.systemConfig.common.defaultNewAcl=this.systemConfig.common.defaultNewAcl||{object:0,state:0,file:0,owner:"system.user.admin",ownerGroup:"system.group.administrator"},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","number"!==typeof this.systemConfig.common.defaultNewAcl.state&&(this.systemConfig.common.defaultNewAcl.state=1636),"number"!==typeof this.systemConfig.common.defaultNewAcl.object&&(this.systemConfig.common.defaultNewAcl.state=1636),"function"===typeof e.filterFunc){this.objects={};const t=e.filterFunc;Object.keys(s).forEach((e=>{try{if(t(s[e]))this.objects[e]=s[e];else{const t=s[e]&&s[e].type;!t||"channel"!==t&&"device"!==t&&"folder"!==t&&"adapter"!==t&&"instance"!==t||(this.objects[e]=s[e])}}catch(i){console.log(`Error by filtering of "${e}": ${i}`)}}))}else if(e.types){this.objects={};const t=e.types;Object.keys(s).forEach((e=>{const i=s[e]&&s[e].type;i&&("channel"===i||"device"===i||"enum"===i||"folder"===i||"adapter"===i||"instance"===i||t.includes(i))&&(this.objects[e]=s[e])}))}else this.objects=s;e.setObjectsReference&&e.setObjectsReference(this.objects),this.defaultHistory=this.systemConfig.common.defaultHistory,this.defaultHistory&&e.socket.getState(`system.adapter.${this.defaultHistory}.alive`).then((t=>{t&&t.val||(this.defaultHistory="")})).catch((t=>window.alert(`Cannot get state: ${t}`)));const i=await this.getAdditionalColumns();this.calculateColumnsVisibility(null,null,i);const{info:o,root:l}=M(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=l,this.info=o;const n=this.state.selected&&this.state.selected.length&&B(this.root,this.state.selected[0]);this.lastAppliedFilter=null,n&&!E(n,this.state.filter,this.props.lang,this.objects,void 0,void 0,e.customFilter,e.types)?this.setState({filter:{...H},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(s){this.showError(s)}}static isNonExpertId(t){return!!(0,i.A)(G,q)[q].find((e=>t.startsWith(e)))}expandAllSelected(t){const e=[...this.state.expanded];let s=!1;this.state.selected.forEach((t=>{const i=t.split("."),o=[];for(let l=0;l<i.length-1;l++)o.push(i[l]),e.includes(o.join("."))||(e.push(o.join(".")),s=!0)})),s?(e.sort(),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(e)),this.setState({expanded:e},t)):t&&t()}onAfterSelect(t){var e;if(null!==(e=this.state.selected)&&void 0!==e&&e.length&&this.state.selected[0]){if(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),this.selectFirst&&this.selectFirst!==this.state.selected[0]&&(this.selectFirst=""),1===this.state.selected.length&&this.objects[this.state.selected[0]]){const e=c.Utils.getObjectName(this.objects,this.state.selected[0],null,{language:this.props.lang});this.props.onSelect&&this.props.onSelect(this.state.selected,e,t)}}else this.localStorage.removeItem(`${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(t,e){const s={};let i=!1;return void 0!==t.expertMode&&t.expertMode!==e.filter.expertMode&&(i=!0,s.filter={...e.filter},s.filter.expertMode=t.expertMode),i?s:null}async componentDidMount(){await this.loadAllObjects(!J),this.props.objectsWorker?this.props.objectsWorker.registerHandler(this.onObjectChangeFromWorker):await this.props.socket.subscribeObject("*",this.onObjectChange),J=!0,window.addEventListener("contextmenu",this.onContextMenu,!0)}componentWillUnmount(){this.filterTimer&&(clearTimeout(this.filterTimer),this.filterTimer=null),window.removeEventListener("contextmenu",this.onContextMenu,!0),this.props.objectsWorker?this.props.objectsWorker.unregisterHandler(this.onObjectChangeFromWorker,!0):this.props.socket.unsubscribeObject("*",this.onObjectChange).catch((t=>console.error(`Cannot unsubscribe *: ${t}`))),this.subscribes.forEach((t=>{console.log(`- unsubscribe ${t}`),this.props.socket.unsubscribeState(t,this.onStateChange)})),this.subscribes=[],this.objects={}}showDeleteDialog(t){const{id:e,obj:s,item:i}=t,o=Object.keys(this.objects);o.sort();let l=0;const n=`${e}.`;for(let c=0;c<o.length;c++)if(o[c].startsWith(n))l++;else if(o[c]>n)break;var a,r;this.props.onObjectDelete&&this.props.onObjectDelete(e,!(null===(a=i.children)||void 0===a||!a.length),!(null!==(r=s.common)&&void 0!==r&&r.dontDelete),l+1)}refreshComponent(){this.subscribes.forEach((t=>{console.log(`- unsubscribe ${t}`),this.props.socket.unsubscribeState(t,this.onStateChange)})),this.subscribes=[],this.loadAllObjects(!0).then((()=>console.log("updated!"))).catch((t=>this.showError(t)))}renderErrorDialog(){return this.state.error?(0,h.jsxs)(a.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.setState({error:""}),"aria-labelledby":"error-dialog-title","aria-describedby":"error-dialog-description",children:[(0,h.jsx)(a.DialogTitle,{id:"alert-dialog-title",children:this.props.t("ra_Error")}),(0,h.jsx)(a.DialogContent,{children:(0,h.jsx)(a.DialogContentText,{id:"alert-dialog-description",children:this.state.error})}),(0,h.jsx)(a.DialogActions,{children:(0,h.jsx)(a.Button,{variant:"contained",onClick:()=>this.setState({error:""}),color:"primary",autoFocus:!0,startIcon:(0,h.jsx)(r.Check,{}),children:this.props.t("ra_Ok")})})]}):null}showError(t){this.setState({error:"object"===typeof t?t&&"function"===typeof t.toString?t.toString():JSON.stringify(t):t})}onSelect(t,e,s){if(this.localStorage.setItem(`${this.props.dialogName||"App"}.focused`,t),this.props.multiSelect){if(this.objects[t]&&(!this.props.types||this.props.types.includes(this.objects[t].type))){this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`);const i=[...this.state.selected],o=i.indexOf(t);-1===o?(i.push(t),i.sort()):e||i.splice(o,1),this.setState({selected:i,selectedNonObject:"",focused:t},(()=>{this.onAfterSelect(e),s&&s()}))}}else!this.objects[t]||this.props.types&&!this.props.types.includes(this.objects[t].type)?(this.localStorage.setItem(`${this.props.dialogName||"App"}.selectedNonObject`,t),this.setState({selected:[],selectedNonObject:t,focused:t},(()=>{this.onAfterSelect(),s&&s()}))):(this.localStorage.removeItem(`${this.props.dialogName||"App"}.selectedNonObject`),this.state.selected[0]!==t?this.setState({selected:[t],selectedNonObject:"",focused:t},(()=>{this.onAfterSelect(e),s&&s()})):e&&this.props.onSelect&&this.onAfterSelect(e))}_renderDefinedList(t){const e=[...this.possibleCols];if(e.unshift("id"),this.props.columns&&!this.props.columns.includes("buttons")){const t=e.indexOf("buttons");-1!==t&&e.splice(t,1)}return e.filter((e=>t&&("val"===e||"buttons"===e)||!t&&"val"!==e&&"buttons"!==e)).map((t=>{var e;return(0,h.jsxs)(a.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto&&"id"!==t){const e=[...this.state.columns||[]],s=e.indexOf(t);-1===s?(e.push(t),e.sort()):e.splice(s,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(e)),this.calculateColumnsVisibility(null,e),this.setState({columns:e})}},children:[(0,h.jsx)(a.Checkbox,{edge:"start",disabled:"id"===t||this.state.columnsAuto,checked:"id"===t||!!(this.state.columnsAuto?this.visibleCols.includes(t):null===(e=this.state.columns)||void 0===e?void 0:e.includes(t)),disableRipple:!0}),(0,h.jsx)(a.ListItemText,{primary:this.texts[`filter_${t}`]||this.props.t(`ra_${t}`)})]},t)}))}renderColumnsSelectorDialog(){return this.state.columnsSelectorShow?(0,h.jsxs)(a.Dialog,{onClose:()=>this.setState({columnsSelectorShow:!1}),open:!0,sx:{"& .MuiPaper-root":c.Utils.getStyle(this.props.theme,S.dialogColumns,S[`transparent_${this.state.columnsDialogTransparent}`])},children:[(0,h.jsx)(a.DialogTitle,{sx:S.fontSizeTitle,children:this.props.t("ra_Configure")}),(0,h.jsxs)(a.DialogContent,{sx:S.fontSizeTitle,children:[(0,h.jsx)(a.FormControlLabel,{style:S.switchColumnAuto,control:(0,h.jsx)(a.Switch,{checked:this.state.foldersFirst,onChange:()=>{this.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")}),(0,h.jsx)(a.FormControlLabel,{style:S.switchColumnAuto,control:(0,h.jsx)(a.Switch,{checked:this.state.linesEnabled,onChange:()=>{this.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")}),(0,h.jsx)(a.FormControlLabel,{style:S.switchColumnAuto,control:(0,h.jsx)(a.Switch,{checked:this.state.columnsAuto,onChange:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.columnsAuto`,this.state.columnsAuto?"false":"true"),this.state.columnsAuto?this.state.columns?(this.calculateColumnsVisibility(!1),this.setState({columnsAuto:!1})):(this.calculateColumnsVisibility(!1,[...this.visibleCols]),this.setState({columnsAuto:!1,columns:[...this.visibleCols]})):(this.calculateColumnsVisibility(!0),this.setState({columnsAuto:!0}))}}),label:this.props.t("ra_Auto (no custom columns)")}),(0,h.jsxs)(a.List,{children:[this._renderDefinedList(!1),this.state.columnsForAdmin&&Object.keys(this.state.columnsForAdmin).sort().map((t=>this.state.columnsForAdmin&&this.state.columnsForAdmin[t].map((e=>{var s;return(0,h.jsxs)(a.ListItemButton,{onClick:()=>{if(!this.state.columnsAuto){const s=[...this.state.columns||[]],i=`_${t}_${e.path}`,o=s.indexOf(i);-1===o?(s.push(i),s.sort()):s.splice(o,1),this.calculateColumnsVisibility(null,s),this.localStorage.setItem(`${this.props.dialogName||"App"}.columns`,JSON.stringify(s)),this.setState({columns:s})}},children:[(0,h.jsx)(a.ListItemIcon,{children:(0,h.jsx)(a.Checkbox,{disabled:this.state.columnsAuto,edge:"start",checked:!this.state.columnsAuto&&(null===(s=this.state.columns)||void 0===s?void 0:s.includes(`_${t}_${e.path}`)),disableRipple:!0})}),(0,h.jsx)(a.ListItemText,{primary:`${e.name} (${t})`})]},`${t}_${e.name}`)})))),this._renderDefinedList(!0)]})]}),(0,h.jsx)(a.DialogActions,{children:(0,h.jsx)(a.Button,{variant:"contained",onClick:()=>this.setState({columnsSelectorShow:!1}),color:"primary",startIcon:(0,h.jsx)(r.Close,{}),children:this.texts.close})})]}):null}async getAdditionalColumns(){try{const t=await this.props.socket.getAdapters();let e=null;return t.forEach((t=>e=this.parseObjectForAdmins(e,t))),e}catch(t){return console.error(`Cannot get adapters: ${t}`),null}}checkUnsubscribes(){for(let t=this.subscribes.length-1;t>=0;t--)this.recordStates.includes(this.subscribes[t])||this.unsubscribe(this.subscribes[t]);this.recordStates=[]}findItem(t,e,s,i){if(e=e||t.split("."),!(s=s||this.root)||!e.length)return null;if(i=(i?`${i}.`:"")+e.shift(),s.children){const o=s.children.find((t=>t.data.id===i));if(!o)return null;if(o.data.id===t)return o;if(e.length)return this.findItem(t,e,o,i)}return null}parseObjectForAdmins(t,e){if(e.common&&e.common.adminColumns&&e.common.name){let s,i=e.common.adminColumns;i&&"object"!==typeof i&&(i=[i]),s=i?i.map((t=>{if("object"!==typeof t)return{path:t,name:t.split(".").pop()};const s=t;return s.objTypes&&"object"!==typeof s.objTypes?s.objTypes=[s.objTypes]:s.objTypes||(s.objTypes=void 0),!s.name&&s.path?{path:s.path,name:s.path.split(".").pop(),width:s.width,edit:!!s.edit,type:s.type,objTypes:s.objTypes}:s.path?{path:s.path,name:A(s.name||"",this.props.lang),width:s.width,edit:!!s.edit,type:s.type,objTypes:s.objTypes}:(console.warn(`Admin columns for ${e._id} ignored, because path not found`),null)})).filter((t=>t)):null,s&&s.length&&((t=t||{})[e.common.name]=s.sort(((t,e)=>t.path>e.path?-1:t.path<e.path?1:0)))}else e.common&&e.common.name&&t&&t[e.common.name]&&delete t[e.common.name];return t}afterObjectUpdated(){!this.objectsUpdateTimer&&this.objects&&(this.objectsUpdateTimer=setTimeout((()=>{this.objectsUpdateTimer=null;const{info:t,root:e}=M(this.objects,{imagePrefix:this.props.imagePrefix,root:this.props.root,lang:this.props.lang,themeType:this.props.themeType});this.root=e,this.info=t,this.lastAppliedFilter=null,this.pausedSubscribes||this.forceUpdate()}),500))}updateAliases(t){var e;if(!this.objects||null===(e=this.info)||void 0===e||!e.aliasesMap||null===t||void 0===t||!t.startsWith("alias."))return;const s=Object.keys(this.objects).filter((t=>t.startsWith("alias.0")));this.info.aliasesMap={};for(const l of s){var i,o;const t=this.objects[l];if(null!==t&&void 0!==t&&null!==(i=t.common)&&void 0!==i&&null!==(o=i.alias)&&void 0!==o&&o.id)if("string"===typeof t.common.alias.id){const e=t.common.alias.id;this.info.aliasesMap[e]?this.info.aliasesMap[e].includes(l)||this.info.aliasesMap[e].push(l):this.info.aliasesMap[e]=[l]}else{const e=t.common.alias.id.read;e&&(this.info.aliasesMap[e]?this.info.aliasesMap[e].includes(l)||this.info.aliasesMap[e].push(l):this.info.aliasesMap[e]=[l]);const s=t.common.alias.id.write;s&&(this.info.aliasesMap[s]?this.info.aliasesMap[s].includes(l)||this.info.aliasesMap[s].push(l):this.info.aliasesMap[s]=[l])}}}processOnObjectChangeElement(t,e){console.log(`> objectChange ${t}`);const s=null===e||void 0===e?void 0:e.type;if(e&&"function"===typeof this.props.filterFunc&&!this.props.filterFunc(e)&&"channel"!==s&&"device"!==s&&"folder"!==s&&"adapter"!==s&&"instance"!==s)return{newInnerState:null,filtered:!0};let i=null;if(t.startsWith("system.adapter.")&&"adapter"===(null===e||void 0===e?void 0:e.type)){const t=JSON.parse(JSON.stringify(this.state.columnsForAdmin));this.parseObjectForAdmins(t,e),JSON.stringify(this.state.columnsForAdmin)!==JSON.stringify(t)&&(i={columnsForAdmin:t})}return this.objects=this.objects||{},e?this.objects[t]=e:this.objects[t]&&delete this.objects[t],this.updateAliases(t),{newInnerState:i,filtered:!1}}subscribe(t){this.subscribes.includes(t)||(this.subscribes.push(t),console.log(`+ subscribe ${t}`),this.pausedSubscribes||this.props.socket.subscribeState(t,this.onStateChange).catch((e=>console.error(`Cannot subscribe on state ${t}: ${e}`))))}unsubscribe(t){const e=this.subscribes.indexOf(t);-1!==e&&(this.subscribes.splice(e,1),this.states[t]&&delete this.states[t],console.log(`- unsubscribe ${t}`),this.props.socket.unsubscribeState(t,this.onStateChange),this.pausedSubscribes&&console.warn("Unsubscribe during pause?"))}pauseSubscribe(t){!this.pausedSubscribes&&t?(this.pausedSubscribes=!0,this.subscribes.forEach((t=>this.props.socket.unsubscribeState(t,this.onStateChange)))):this.pausedSubscribes&&!t&&(this.pausedSubscribes=!1,this.subscribes.forEach((t=>this.props.socket.subscribeState(t,this.onStateChange))))}onFilter(t,e){this.filterTimer=null;const s={...this.state.filter};Object.keys(this.filterRefs).forEach((t=>{if(this.filterRefs[t]&&this.filterRefs[t].current){const e=this.filterRefs[t].current;for(let i=0;i<e.children.length;i++)if("INPUT"===e.children[i].tagName){s[t]=e.children[i].value;break}}})),t&&(s[t]=e,"expertMode"===t&&(window._sessionStorage||window.sessionStorage).setItem("App.expertMode",e?"true":"false")),JSON.stringify(this.state.filter)!==JSON.stringify(s)&&(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(s)),this.setState({filter:s},(()=>this.props.onFilterChanged&&this.props.onFilterChanged(s))))}clearFilter(){const t={...this.state.filter};Object.keys(this.filterRefs).forEach((e=>{if(this.filterRefs[e]&&this.filterRefs[e].current){const s=this.filterRefs[e].current;for(let i=0;i<s.childNodes.length;i++){const o=s.childNodes[i];if("INPUT"===o.tagName){t[e]="",o.value="";break}}}})),JSON.stringify(this.state.filter)!==JSON.stringify(t)&&(this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(t)),this.setState({filter:t,filterKey:this.state.filterKey+1},(()=>this.props.onFilterChanged&&this.props.onFilterChanged(t))))}isFilterEmpty(){return!Object.keys(this.state.filter).find((t=>"expertMode"!==t&&this.state.filter[t]))}getFilterInput(t){var e,s,i;return(0,h.jsxs)(a.FormControl,{sx:this.styles.filterInput,margin:"dense",children:[(0,h.jsx)(a.Input,{ref:this.filterRefs[t],classes:{underline:"no-underline"},id:t,placeholder:this.texts[`filter_${t}`],defaultValue:this.state.filter[t]||"",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout((()=>this.onFilter()),400)},autoComplete:"off"}),null!==(e=this.filterRefs[t])&&void 0!==e&&null!==(s=e.current)&&void 0!==s&&null!==(i=s.firstChild)&&void 0!==i&&i.value?(0,h.jsx)("div",{style:{position:"absolute",right:0},children:(0,h.jsx)(a.IconButton,{size:"small",onClick:()=>{var e;(null===(e=this.filterRefs[t].current)||void 0===e?void 0:e.firstChild).value="",this.onFilter(t,"")},children:(0,h.jsx)(r.Close,{})})}):null]},`${t}_${this.state.filterKey}`)}getFilterSelect(t,e){var s,i,o;const l=!(null===e||void 0===e||!e.find((t=>t.icon)));return(0,h.jsxs)("div",{style:{position:"relative"},children:[(0,h.jsxs)(a.Select,{variant:"standard",ref:this.filterRefs[t],sx:S.headerCellInput,className:"no-underline",onChange:()=>{this.filterTimer&&clearTimeout(this.filterTimer),this.filterTimer=setTimeout((()=>this.onFilter()),400)},defaultValue:this.state.filter[t]||"",inputProps:{name:t,id:t},displayEmpty:!0,children:[(0,h.jsx)(a.MenuItem,{value:"",children:(0,h.jsx)("span",{style:S.selectNone,children:this.texts[`filter_${t}`]})},"empty"),null===e||void 0===e?void 0:e.map((t=>{let e,s,i;return"object"===typeof t?(e=t.value,s=t.name,i=t.icon):(e=t,s=t),(0,h.jsxs)(a.MenuItem,{sx:S.headerCellSelectItem,value:e,children:[i||(l?(0,h.jsx)("div",{className:"itemIcon"}):null),s]},e)}))]},`${t}_${this.state.filterKey}`),null!==(s=this.filterRefs[t])&&void 0!==s&&null!==(i=s.current)&&void 0!==i&&null!==(o=i.childNodes[1])&&void 0!==o&&o.value?(0,h.jsx)(a.Box,{component:"div",sx:S.selectClearButton,children:(0,h.jsx)(a.IconButton,{size:"small",onClick:()=>{var e;const s={...this.state.filter};s[t]="",(null===(e=this.filterRefs[t].current)||void 0===e?void 0:e.childNodes[1]).value="",this.localStorage.setItem(`${this.props.dialogName||"App"}.objectFilter`,JSON.stringify(s)),this.setState({filter:s,filterKey:this.state.filterKey+1},(()=>this.props.onFilterChanged&&this.props.onFilterChanged(s)))},children:(0,h.jsx)(r.Close,{})})}):null]})}getFilterSelectRole(){return this.getFilterSelect("role",this.info.roles)}getFilterSelectRoom(){const t=this.info.roomEnums.map((t=>{var e,s,i,o;return{name:A(null===(e=this.objects[t])||void 0===e||null===(s=e.common)||void 0===s?void 0:s.name,this.props.lang)||t.split(".").pop(),value:t,icon:(0,h.jsx)(c.Icon,{src:(null===(i=this.objects[t])||void 0===i||null===(o=i.common)||void 0===o?void 0:o.icon)||"",style:S.selectIcon})}}));return this.getFilterSelect("room",t)}getFilterSelectFunction(){const t=this.info.funcEnums.map((t=>{var e,s,i,o;return{name:A(null===(e=this.objects[t])||void 0===e||null===(s=e.common)||void 0===s?void 0:s.name,this.props.lang)||t.split(".").pop(),value:t,icon:(0,h.jsx)(c.Icon,{src:(null===(i=this.objects[t])||void 0===i||null===(o=i.common)||void 0===o?void 0:o.icon)||"",style:S.selectIcon})}}));return this.getFilterSelect("func",t)}getFilterSelectType(){const t=this.info.types.map((t=>({name:t,value:t,icon:U[t]||null})));return this.getFilterSelect("type",t)}getFilterSelectCustoms(){if(this.info.customs.length>1){const t=this.info.customs.map((t=>({name:"_"===t?this.texts.filterCustomsWithout:t,value:t,icon:"_"===t?null:(0,h.jsx)(c.Icon,{src:I(this.objects,t,this.props.lang,this.imagePrefix)||"",style:S.selectIcon})})));return this.getFilterSelect("custom",t)}return null}onExpandAll(t,e){var s;const i=t||this.root;e=e||[],null===i||void 0===i||null===(s=i.children)||void 0===s||s.forEach((t=>{t.data.sumVisibility&&(e.push(t.data.id),this.onExpandAll(t,e))})),i===this.root&&(e.sort(),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(e)),this.setState({expanded:e}))}onCollapseAll(){this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify([])),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,"[]"),this.setState({expanded:[],depth:0,selected:[]},(()=>this.onAfterSelect()))}expandDepth(t,e,s){var i;(t=t||this.root,e>0)&&(null===(i=t.children)||void 0===i||i.forEach((t=>{t.data.sumVisibility&&(O(s,t.data.id)||(s.push(t.data.id),s.sort()),e-1>0&&this.expandDepth(t,e-1,s))})))}static collapseDepth(t,e){return e.filter((e=>e.split(".").length<=t))}onExpandVisible(){if(this.state.depth<9){const t=this.state.depth+1,e=[...this.state.expanded];this.root&&this.expandDepth(this.root,t,e),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(e)),this.setState({depth:t,expanded:e})}}onStatesViewVisible(){const t=!this.state.statesView;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectStatesView`,JSON.stringify(t)),this.setState({statesView:t})}onCollapseVisible(){if(this.state.depth>0){const t=this.state.depth-1,e=G.collapseDepth(t,this.state.expanded);this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(e)),this.setState({depth:t,expanded:e})}}async loadObjects(t){if(t)for(const i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||!t[i])continue;const o=t[i];let l,n,a=null;o&&o.common&&o.common.enums?(a=o.common.enums,delete o.common.enums):a=null,(o.val||0===o.val)&&(l=o.val,delete o.val),void 0!==o.ack&&(n=o.ack,delete o.ack);try{if(await this.props.socket.setObject(i,o),a&&await this._createAllEnums(a,o._id),"state"===o.type)if(void 0!==l&&null!==l)try{await this.props.socket.setState(o._id,l,void 0===n||n)}catch(e){window.alert(`Cannot set state "${o._id} with ${l}": ${e}`)}else try{const t=await this.props.socket.getState(o._id);if(!t||null===t.val)try{await this.props.socket.setState(o._id,o.common&&void 0!==o.common.def?o.common.def:null,!0)}catch(e){window.alert(`Cannot set state "${o._id}": ${e}`)}}catch(e){window.alert(`Cannot read state "${o._id}": ${e}`)}}catch(s){window.alert(s)}}}_getSelectedIdsForExport(){if(this.state.selected.length||this.state.selectedNonObject){const t=[],e=Object.keys(this.objects);e.sort();const s=this.state.selected[0]||this.state.selectedNonObject,i=`${s}.`,o=i.length;for(let l=0;l<e.length;l++){const n=e[l];if((s===n||n.startsWith(i))&&t.push(n),n.substring(0,o)>i)break}return t}return[]}async _exportObjects(t){if(t.isAll)return void _("allObjects.json",this.objects,t);if(!this.state.selected.length&&!this.state.selectedNonObject)return void window.alert(this.props.t("ra_Save of objects-tree is not possible"));const e={},s=this.state.selected[0]||this.state.selectedNonObject,i=this._getSelectedIdsForExport();for(const l of i){var o;if(e[l]=JSON.parse(JSON.stringify(this.objects[l])),"state"===(null===(o=e[l])||void 0===o?void 0:o.type)&&!t.noStatesByExportImport){const t=await this.props.socket.getState(l);t&&(e[l].val=t.val,e[l].ack=t.ack)}if(e[l].common){const t=this.getEnumsForId(l);t&&(e[l].common.enums=t)}}_(`${s}.json`,e,t)}renderExportDialog(){return!1===this.state.showExportDialog?null:(0,h.jsxs)(a.Dialog,{open:!0,maxWidth:"lg",children:[(0,h.jsx)(a.DialogTitle,{children:this.props.t("ra_Select type of export")}),(0,h.jsx)(a.DialogContent,{children:(0,h.jsx)(a.DialogContentText,{children:this.state.filter.expertMode||this.state.showAllExportOptions?(0,h.jsxs)(h.Fragment,{children:[this.props.t("ra_You can export all objects or just the selected branch."),(0,h.jsx)("br",{}),this.props.t("ra_Selected %s object(s)",this.state.showExportDialog),(0,h.jsx)("br",{}),(0,h.jsx)(a.FormControlLabel,{control:(0,h.jsx)(a.Checkbox,{checked:this.state.noStatesByExportImport,onChange:t=>this.setState({noStatesByExportImport:t.target.checked})}),label:this.props.t("ra_Do not export values of states")}),(0,h.jsx)("br",{}),this.props.t("These options can reduce the size of the export file:"),(0,h.jsx)(a.FormControlLabel,{control:(0,h.jsx)(a.Checkbox,{checked:this.state.beautifyJsonExport,onChange:t=>this.setState({beautifyJsonExport:t.target.checked})}),label:this.props.t("Beautify JSON output")}),(0,h.jsx)("br",{}),(0,h.jsx)(a.FormControlLabel,{control:(0,h.jsx)(a.Checkbox,{checked:this.state.excludeSystemRepositoriesFromExport,onChange:t=>this.setState({excludeSystemRepositoriesFromExport:t.target.checked})}),label:this.props.t("Exclude system repositories from export JSON")}),(0,h.jsx)(a.FormControlLabel,{control:(0,h.jsx)(a.Checkbox,{checked:this.state.excludeTranslations,onChange:t=>this.setState({excludeTranslations:t.target.checked})}),label:this.props.t("Exclude translations (except english) from export JSON")})]}):null})}),(0,h.jsxs)(a.DialogActions,{children:[this.state.filter.expertMode||this.state.showAllExportOptions?(0,h.jsxs)(a.Button,{color:"grey",variant:"outlined",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},(()=>this._exportObjects({isAll:!0,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))),children:[(0,h.jsx)("span",{style:{marginRight:8},children:this.props.t("ra_All objects")}),"(",Object.keys(this.objects).length,")"]}):(0,h.jsx)(a.Button,{color:"grey",variant:"outlined",startIcon:(0,h.jsx)(c.IconExpert,{}),onClick:()=>this.setState({showAllExportOptions:!0}),children:this.props.t("ra_Advanced options")}),(0,h.jsxs)(a.Button,{color:"primary",variant:"contained",autoFocus:!0,onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1},(()=>this._exportObjects({isAll:!1,noStatesByExportImport:this.state.noStatesByExportImport,beautify:this.state.beautifyJsonExport,excludeSystemRepositories:this.state.excludeSystemRepositoriesFromExport,excludeTranslations:this.state.excludeTranslations}))),children:[(0,h.jsx)("span",{style:{marginRight:8},children:this.props.t("ra_Only selected")}),"(",this.state.showExportDialog,")"]}),(0,h.jsx)(a.Button,{color:"grey",variant:"contained",onClick:()=>this.setState({showExportDialog:!1,showAllExportOptions:!1}),startIcon:(0,h.jsx)(r.Close,{}),children:this.props.t("ra_Cancel")})]})]})}handleJsonUpload(t){var e;const s=t.target,i=(null===(e=s.files)||void 0===e?void 0:e.length)&&s.files[0];if(i){const t=new FileReader;t.onload=async t=>{var e;const s=null===(e=t.target)||void 0===e?void 0:e.result;try{const t=JSON.parse(s),e=Object.keys(t).length,o=t._id;if(void 0===o&&e)await this.loadObjects(t),window.alert(this.props.t("ra_%s object(s) processed",e));else{if(!o)return window.alert(this.props.t("ra_Invalid structure"));try{let e,s,i;if(t.common.enums&&(e=t.common.enums,delete t.common.enums),t.val&&(s=t.val,delete t.val),void 0!==t.ack&&(i=t.ack,delete t.ack),await this.props.socket.setObject(t._id,t),"state"===t.type)if(void 0!==s&&null!==s)await this.props.socket.setState(t._id,s,void 0===i||i);else{const e=await this.props.socket.getState(t._id);e&&null!==e.val&&void 0!==e.val||await this.props.socket.setState(t._id,void 0===t.common.def?null:t.common.def,!0)}e&&await this._createAllEnums(e,t._id),window.alert(this.props.t("ra_%s was imported",t._id))}catch(i){window.alert(i)}}}catch(i){window.alert(i)}return null},t.readAsText(i)}else window.alert(this.props.t("ra_Failed to open JSON File"))}getToolbar(){let t=!1;if(this.state.selected.length||this.state.selectedNonObject){const e=this.state.selected[0]||this.state.selectedNonObject;e.split(".").length<2||this.objects[e]&&"state"===this.objects[e].type?t=!1:(this.state.filter.expertMode||e.startsWith("alias.0")||e.startsWith("0_userdata"))&&(t=!0)}return(0,h.jsxs)("div",{style:{display:"flex",width:"100%",alignItems:"center",overflowX:"auto"},children:[(0,h.jsxs)("div",{style:{display:"flex",width:"100%",alignItems:"center"},children:[(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Refresh tree"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)("div",{children:(0,h.jsx)(a.IconButton,{onClick:()=>this.refreshComponent(),disabled:this.state.updating,size:"large",children:(0,h.jsx)(r.Refresh,{})})})}),this.props.showExpertButton&&!this.props.expertMode&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_expertMode"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{color:this.state.filter.expertMode?"secondary":"default",onClick:()=>this.onFilter("expertMode",!this.state.filter.expertMode),size:"large",children:(0,h.jsx)(c.IconExpert,{})},"expertMode")}),!this.props.disableColumnSelector&&"xs"!==this.props.width&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Configure"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{color:this.state.columnsAuto?"primary":"default",onClick:()=>this.setState({columnsSelectorShow:!0}),size:"large",children:(0,h.jsx)(r.ViewColumn,{})},"columnSelector")}),"xs"!==this.props.width&&this.state.expandAllVisible&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Expand all nodes"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{onClick:()=>this.onExpandAll(),size:"large",children:(0,h.jsx)(c.IconOpen,{})},"expandAll")}),(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Collapse all nodes"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{onClick:()=>this.onCollapseAll(),size:"large",children:(0,h.jsx)(c.IconClosed,{})},"collapseAll")}),"xs"!==this.props.width&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Expand one step node"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{color:"primary",onClick:()=>this.onExpandVisible(),size:"large",children:(0,h.jsx)(a.Badge,{badgeContent:this.state.depth,color:"secondary",sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}}),children:(0,h.jsx)(c.IconOpen,{})})},"expandVisible")}),"xs"!==this.props.width&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Collapse one step node"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{color:"primary",onClick:()=>this.onCollapseVisible(),size:"large",children:(0,h.jsx)(a.Badge,{sx:t=>({badge:{right:3,top:3,border:`2px solid ${t.palette.background.paper}`,padding:"0 4px"}}),badgeContent:this.state.depth,color:"secondary",children:(0,h.jsx)(c.IconClosed,{})})},"collapseVisible")}),this.props.objectStatesView&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Toggle the states view"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{onClick:()=>this.onStatesViewVisible(),size:"large",children:(0,h.jsx)(r.LooksOne,{color:this.state.statesView?"primary":"inherit"})})}),(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Show/Hide object descriptions"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.desc`,this.state.showDescription?"false":"true"),this.setState({showDescription:!this.state.showDescription})},size:"large",children:(0,h.jsx)(r.TextFields,{color:this.state.showDescription?"primary":"inherit"})})}),this.props.objectAddBoolean?(0,h.jsx)(a.Tooltip,{title:this.toolTipObjectCreating(),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)("div",{children:(0,h.jsx)(a.IconButton,{disabled:!t,onClick:()=>this.setState({modalNewObj:{id:this.state.selected[0]||this.state.selectedNonObject}}),size:"large",children:(0,h.jsx)(r.Add,{})})})}):null,this.props.objectImportExport&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Add objects tree from JSON file"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{onClick:()=>{const t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("id","files"),t.setAttribute("opacity","0"),t.addEventListener("change",(t=>this.handleJsonUpload(t)),!1),t.click()},size:"large",children:(0,h.jsx)(r.Publish,{})})}),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Save objects tree as JSON file"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{onClick:()=>this.setState({showExportDialog:this._getSelectedIdsForExport().length}),size:"large",children:(0,h.jsx)(r.Publish,{style:{transform:"rotate(180deg)"}})})})]}),!!this.props.objectBrowserEditObject&&"xs"!==this.props.width&&(0,h.jsx)("div",{style:{display:"flex",whiteSpace:"nowrap"},children:`${this.props.t("ra_Objects")}: ${Object.keys(this.info.objects).length}, ${this.props.t("ra_States")}: ${Object.keys(this.info.objects).filter((t=>"state"===this.info.objects[t].type)).length}`}),this.props.objectEditBoolean&&(0,h.jsx)(a.Tooltip,{title:this.props.t("ra_Edit custom config"),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{onClick:()=>{const t=this.root?N(this.root,"state",this.objects):[];if(t.length){var e;if(this.pauseSubscribe(!0),1===t.length)this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,this.state.selected[0]),null===(e=this.props.router)||void 0===e||e.doNavigate(null,"custom",this.state.selected[0]);this.setState({customDialog:t,customDialogAll:!0})}else this.setState({toast:this.props.t("ra_please select object")})},size:"large",children:(0,h.jsx)(r.Build,{})})})]})}toggleExpanded(t){const e=JSON.parse(JSON.stringify(this.state.expanded)),s=e.indexOf(t);-1===s?(e.push(t),e.sort()):e.splice(s,1),this.localStorage.setItem(`${this.props.dialogName||"App"}.objectExpanded`,JSON.stringify(e)),this.setState({expanded:e})}onCopy(t,e){t.stopPropagation(),t.preventDefault(),c.Utils.copyToClipboard(e),e.length<50?this.setState({toast:this.props.t("ra_Copied %s",e)}):this.setState({toast:this.props.t("ra_Copied")})}renderColumnButtons(t,e){var s,i,o;if(!e.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?(0,h.jsxs)("div",{style:S.buttonDiv,children:[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?(0,h.jsx)(a.IconButton,{sx:{...S.cellButtonsButton,...S.cellButtonsEmptyButton,...S.cellButtonMinWidth},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:e.data}),size:"large",children:(0,h.jsx)("div",{style:{height:15},children:"---"})}):null,this.props.onObjectDelete&&e.children&&e.children.length?(0,h.jsx)(a.IconButton,{sx:{...S.cellButtonsButton,...S.cellButtonsButtonAlone},size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:()=>{const s=Object.keys(this.objects);s.sort();let i=0;const o=`${t}.`;for(let t=0;t<s.length;t++)if(s[t].startsWith(o))i++;else if(s[t]>o)break;var l;this.props.onObjectDelete&&this.props.onObjectDelete(t,!(null===(l=e.children)||void 0===l||!l.length),!1,i+1)},children:(0,h.jsx)(r.Delete,{style:S.cellButtonsButtonIcon})}):null]}):null;e.data.aclTooltip=e.data.aclTooltip||this.renderTooltipAccessControl(e.data.obj.acl);const l=e.data.obj.acl?"state"===e.data.obj.type?e.data.obj.acl.state:e.data.obj.acl.object:0,n=e.data.obj.acl&&("state"===e.data.obj.type?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object),c=this.state.filter.expertMode||G.isNonExpertId(e.data.id);return[this.state.filter.expertMode&&this.props.objectEditOfAccessControl?(0,h.jsx)(a.Tooltip,{title:e.data.aclTooltip,slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)(a.IconButton,{sx:{...S.cellButtonsButton,...S.cellButtonMinWidth,opacity:1},onClick:()=>this.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:e.data}),size:"large",children:(0,h.jsx)("div",{style:S.aclText,children:Number.isNaN(Number(l))?Number(n).toString(16):Number(l).toString(16)})})},"acl"):(0,h.jsx)("div",{style:S.cellButtonMinWidth},"aclEmpty"),c?(0,h.jsx)(a.IconButton,{sx:{marginRight:"2px",...S.cellButtonsButton},size:"small","aria-label":"edit",title:this.texts.editObject,onClick:()=>{this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,t),this.setState({editObjectDialog:t,editObjectAlias:!1})},children:(0,h.jsx)(r.Edit,{style:S.cellButtonsButtonIcon})},"edit"):(0,h.jsx)(a.Box,{component:"div",sx:S.cellButtonsButton},"editDisabled"),this.props.onObjectDelete&&(null!==(s=e.children)&&void 0!==s&&s.length||null===(i=e.data.obj.common)||void 0===i||!i.dontDelete)?(0,h.jsx)(a.IconButton,{sx:S.cellButtonsButton,size:"small","aria-label":"delete",onClick:()=>{const s=Object.keys(this.objects);s.sort();let i=0;const o=`${t}.`;for(let t=0;t<s.length;t++)if(s[t].startsWith(o))i++;else if(s[t]>o)break;var l,n,a;this.props.onObjectDelete&&this.props.onObjectDelete(t,!(null===(l=e.children)||void 0===l||!l.length),!(null!==(n=e.data.obj)&&void 0!==n&&null!==(a=n.common)&&void 0!==a&&a.dontDelete),i)},title:this.texts.deleteObject,children:(0,h.jsx)(r.Delete,{style:S.cellButtonsButtonIcon})},"delete"):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&"state"===e.data.obj.type&&"file"!==(null===(o=e.data.obj.common)||void 0===o?void 0:o.type)?(0,h.jsx)(a.IconButton,{sx:{...S.cellButtonsButton,...e.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:S.cellButtonsButtonWithoutCustoms},size:"small","aria-label":"config",title:this.texts.customConfig,onClick:()=>{var e;this.localStorage.setItem(`${this.props.dialogName||"App"}.objectSelected`,t),this.pauseSubscribe(!0),null===(e=this.props.router)||void 0===e||e.doNavigate(null,"customs",t),this.setState({customDialog:[t],customDialogAll:!1})},children:(0,h.jsx)(r.Settings,{style:S.cellButtonsButtonIcon})},"custom"):null]}readHistory(t){var e,s;if(window.sparkline&&this.defaultHistory&&null!==(e=this.objects[t])&&void 0!==e&&null!==(s=e.common)&&void 0!==s&&s.custom&&this.objects[t].common.custom[this.defaultHistory]){const e=new Date;e.setHours(e.getHours()-24),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0);const s=e.getTime();this.props.socket.getHistory(t,{instance:this.defaultHistory,start:s,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addID:!1,aggregate:"minmax"}).then((e=>{const i=window.document.getElementsByClassName("sparkline");for(let o=0;o<i.length;o++)if(i[o].dataset.id===t){const t=L(e,s);window.sparkline.sparkline(i[o],t);break}})).catch((t=>console.warn(`Cannot read history: ${t}`)))}}getTooltipInfo(t,e){var s,i;const o=this.objects[t],l=this.states[t],{valFull:n,fileViewer:a}=R({state:l,obj:o,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:void 0===this.props.isFloatComma?this.systemConfig.common.isFloatComma:this.props.isFloatComma,full:!0}),r=[];null===n||void 0===n||n.forEach((t=>{t.t===this.texts.quality&&l.q?(r.push((0,h.jsxs)("div",{style:S.cellValueTooltipBoth,children:[t.t,":\xa0",t.v]},t.t)),t.nbr||r.push((0,h.jsx)("br",{},`${t.t}_br`))):(r.push((0,h.jsxs)("div",{style:S.cellValueTooltipTitle,children:[t.t,":\xa0"]},t.t)),r.push((0,h.jsx)("div",{style:S.cellValueTooltipValue,children:t.v},`${t.t}_v`)),t.nbr||r.push((0,h.jsx)("br",{},`${t.t}_br`)))})),"image"===a?r.push((0,h.jsx)("img",{style:S.cellValueTooltipImage,src:l.val,alt:t})):this.defaultHistory&&null!==(s=this.objects[t])&&void 0!==s&&null!==(i=s.common)&&void 0!==i&&i.custom&&this.objects[t].common.custom[this.defaultHistory]&&r.push((0,h.jsx)("svg",{className:"sparkline","data-id":t,style:{fill:"#3d85de"},width:"200",height:"30",strokeWidth:"3"},"sparkline")),this.setState({tooltipInfo:{el:r,id:t}},(()=>e&&e()))}renderColumnValue(t,e,s){var i,o;const l=e.data.obj;if(!l||!this.states)return null;if("file"===(null===(i=l.common)||void 0===i?void 0:i.type))return(0,h.jsx)(a.Box,{component:"div",sx:{...S.cellValueText,...S.cellValueFile},children:"[file]"});if(!this.states[t])return"state"===l.type&&(this.recordStates.includes(t)||this.recordStates.push(t),this.states[t]={val:null},this.subscribe(t)),null;this.recordStates.includes(t)||this.recordStates.push(t);const n=this.states[t];let r=e.data.state;if(!r){const{valText:t}=R({state:n,obj:l,texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:void 0===this.props.isFloatComma?this.systemConfig.common.isFloatComma:this.props.isFloatComma}),i=[];e.data.state={valTextRx:i};const o=t.v||"";i.push((0,h.jsx)("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,style:{whiteSpace:"nowrap",display:"inline-block",overflow:"hidden",textOverflow:"ellipsis"},children:t.v.toString()},`${t.v.toString()}valText`)),t.u&&i.push((0,h.jsx)("span",{className:`newValueBrowser-${this.props.themeType||"light"}`,style:S.cellValueTextUnit,children:t.u},`${t.v.toString()}unit`)),void 0!==t.s&&i.push((0,h.jsxs)("span",{style:S.cellValueTextState,className:`newValueBrowser-${this.props.themeType||"light"}`,children:["(",t.s,")"]},`${t.v.toString()}states`)),s||i.push((0,h.jsx)(c.IconCopy,{className:"copyButton",style:this.styles.iconCopy,onClick:t=>this.onCopy(t,o)},"cc")),r=e.data.state}r.style=function(t){const{state:e}=t;return{color:null!==e&&void 0!==e&&e.ack?e.q?"#ffa500":"":"#ff2222c9"}}({state:n,isExpertMode:this.state.filter.expertMode,isButton:e.data.button});let d=r.valTextRx;return this.state.filter.expertMode||(e.data.button?d=[(0,h.jsx)(D,{style:{color:r.style.color,...S.cellValueButton}},"button")]:e.data.switch&&(d=[(0,h.jsx)(a.Switch,{sx:{"& .MuiSwitch-thumb":{color:r.style.color},"& .MuiSwitch-track":{backgroundColor:this.states[t].val&&this.state.selected.includes(t)?"dark"===this.props.themeType?"#FFF !important":"#111 !important":void 0}},checked:!!this.states[t].val},"switch")])),(0,h.jsx)(a.Tooltip,{title:null===(o=this.state.tooltipInfo)||void 0===o?void 0:o.el,slotProps:{popper:{sx:S.cellValueTooltipBox},tooltip:{sx:S.cellValueTooltip}},onOpen:()=>this.getTooltipInfo(t,(()=>this.readHistory(t))),onClose:()=>{var e;return(null===(e=this.state.tooltipInfo)||void 0===e?void 0:e.id)===t&&this.setState({tooltipInfo:null})},children:(0,h.jsx)(a.Box,{component:"div",style:r.style,sx:{...S.cellValueText,height:s?void 0:p,"& .admin-button:active":{transform:"translate(0, 2px)"}},children:d})},"value")}_syncEnum(t,e,s,i){var o;if(!e||!e.length)return void(i&&i());const l=e.pop()||"",n=[];if(null!==(o=this.info.objects[l])&&void 0!==o&&o.common){var a,r;if(null!==(a=this.info.objects[l].common.members)&&void 0!==a&&a.length){const e=this.info.objects[l].common.members.indexOf(t);if(-1!==e&&!s.includes(l)){const t=JSON.parse(JSON.stringify(this.info.objects[l]));t.common.members.splice(e,1),n.push(this.props.socket.setObject(l,t).then((()=>this.info.objects[l]=t)).catch((t=>this.showError(t))))}}if(s.includes(l)&&(null===(r=this.info.objects[l].common.members)||void 0===r||!r.includes(t))){const e=JSON.parse(JSON.stringify(this.info.objects[l]));e.common.members=e.common.members||[],e.common.members.push(t),e.common.members.sort(),n.push(this.props.socket.setObject(l,e).then((()=>this.info.objects[l]=e)).catch((t=>this.showError(t))))}}Promise.all(n).then((()=>{setTimeout((()=>this._syncEnum(t,e,s,i)),0)}))}syncEnum(t,e,s){const i=[...this.info["func"===e?"funcEnums":"roomEnums"]];return new Promise((e=>{this._syncEnum(t,i,s,(()=>{e()}))}))}renderEnumDialog(){if(!this.state.enumDialog)return null;const t=this.state.enumDialog.type,e=this.state.enumDialog.item,s=this.state.enumDialogEnums,i=this.state.enumDialog.enumsOriginal,o=("room"===t?this.info.roomEnums:this.info.funcEnums).map((t=>{var e,s;return{name:A((null===(e=this.objects[t])||void 0===e||null===(s=e.common)||void 0===s?void 0:s.name)||t.split(".").pop()||"",this.props.lang),value:t,icon:I(this.objects,t,this.props.lang,this.imagePrefix)}})).sort(((t,e)=>t.name>e.name?1:-1));return o.forEach((t=>{t.icon&&"string"===typeof t.icon&&(t.icon=(0,h.jsx)(a.Box,{style:S.enumIconDiv,children:(0,h.jsx)("img",{src:t.icon,style:S.enumIcon,alt:t.name})}))})),(0,h.jsxs)(a.Dialog,{sx:{"& .MuiPaper-root":S.enumDialog},onClose:()=>this.setState({enumDialog:null}),"aria-labelledby":"enum-dialog-title",open:!0,children:[(0,h.jsxs)(a.DialogTitle,{id:"enum-dialog-title",children:["func"===t?this.props.t("ra_Define functions"):this.props.t("ra_Define rooms"),(0,h.jsx)(a.Fab,{sx:S.enumButton,color:"primary",disabled:i===JSON.stringify(s),size:"small",onClick:()=>this.syncEnum(e.data.id,t,s).then((()=>this.setState({enumDialog:null,enumDialogEnums:null}))),children:(0,h.jsx)(r.Check,{})})]}),(0,h.jsx)(a.List,{sx:{"&.MuiList-root":S.enumList},children:o.map((t=>{let e,i,o;"object"===typeof t?(e=t.value,i=t.name,o=t.icon):(e=t,i=t);const l=`checkbox-list-label-${e}`;return(0,h.jsxs)(a.ListItem,{sx:S.headerCellSelectItem,onClick:()=>{const t=s.indexOf(e),i=JSON.parse(JSON.stringify(this.state.enumDialogEnums));-1===t?(i.push(e),i.sort()):i.splice(t,1),this.setState({enumDialogEnums:i})},secondaryAction:o,children:[(0,h.jsx)(a.ListItemIcon,{sx:{"&.MuiListItemIcon-root":S.enumCheckbox},children:(0,h.jsx)(a.Checkbox,{edge:"start",checked:s.includes(e),tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":l}})}),(0,h.jsx)(a.ListItemText,{id:l,children:i})]},e)}))})]})}renderEditRoleDialog(){if(!this.state.roleDialog||!this.props.objectBrowserEditRole)return null;if(this.state.roleDialog&&this.props.objectBrowserEditRole){const t=this.props.objectBrowserEditRole;return(0,h.jsx)(t,{id:this.state.roleDialog,socket:this.props.socket,t:this.props.t,roles:this.info.roles,onClose:t=>{t&&(this.info.objects[this.state.roleDialog]=t),this.setState({roleDialog:null})}},"objectBrowserEditRole")}return null}onColumnsEditCustomDialogClose(t){const e=this.customColumnDialog;if(t){var s,i;let t=e.value;"boolean"===e.type?t="true"===t||!0===t:"number"===e.type&&(t=parseFloat(t)),this.customColumnDialog=null,this.props.socket.getObject((null===(s=this.state.columnsEditCustomDialog)||void 0===s||null===(i=s.obj)||void 0===i?void 0:i._id)||"").then((e=>{var s;if(e&&G.setCustomValue(e,null===(s=this.state.columnsEditCustomDialog)||void 0===s?void 0:s.it,t))return this.props.socket.setObject(e._id,e);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)return null;if(!this.customColumnDialog){const t=G.getCustomValue(this.state.columnsEditCustomDialog.obj,this.state.columnsEditCustomDialog.it);this.customColumnDialog={type:this.state.columnsEditCustomDialog.it.type||typeof t,initValue:(null===t||void 0===t?"":t).toString(),value:(null===t||void 0===t?"":t).toString()}}return(0,h.jsxs)(a.Dialog,{onClose:()=>this.setState({columnsEditCustomDialog:null}),maxWidth:"md","aria-labelledby":"custom-dialog-title",open:!0,children:[(0,h.jsx)(a.DialogTitle,{id:"custom-dialog-title",children:`${this.props.t("ra_Edit object field")}: ${this.state.columnsEditCustomDialog.obj._id}`}),(0,h.jsx)(a.DialogContent,{children:(0,h.jsx)(a.DialogContentText,{id:"alert-dialog-description",children:"boolean"===this.customColumnDialog.type?(0,h.jsx)(a.FormControlLabel,{control:(0,h.jsx)(a.Checkbox,{onKeyUp:t=>"Enter"===t.key&&this.onColumnsEditCustomDialogClose(!0),defaultChecked:"true"===this.customColumnDialog.value,onChange:t=>{const e=this.customColumnDialog;e.value=t.target.checked.toString();const s=e.value!==e.initValue;s===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:s})}}),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}):(0,h.jsx)(a.TextField,{variant:"standard",defaultValue:this.customColumnDialog.value,fullWidth:!0,onKeyUp:t=>"Enter"===t.key&&this.onColumnsEditCustomDialogClose(!0),label:`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`,onChange:t=>{const e=this.customColumnDialog;e.value=t.target.value;const s=e.value!==e.initValue;s===!this.state.customColumnDialogValueChanged&&this.setState({customColumnDialogValueChanged:s})},autoFocus:!0})})}),(0,h.jsxs)(a.DialogActions,{children:[(0,h.jsx)(a.Button,{variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(!0),disabled:!this.state.customColumnDialogValueChanged,color:"primary",startIcon:(0,h.jsx)(r.Check,{}),children:this.props.t("ra_Update")}),(0,h.jsx)(a.Button,{color:"grey",variant:"contained",onClick:()=>this.onColumnsEditCustomDialogClose(),startIcon:(0,h.jsx)(r.Close,{}),children:this.props.t("ra_Cancel")})]})]})}static getCustomValue(t,e){var s;if(null!==t&&void 0!==t&&null!==(s=t._id)&&void 0!==s&&s.startsWith(`${e.adapter}.`)&&e.path.length>1){const s=e.path;let i;const o=t;if(o[s[0]]&&"object"===typeof o[s[0]])return 2===s.length?i=o[s[0]][s[1]]:3===s.length?i=o[s[0]][s[1]]&&"object"===typeof o[s[0]][s[1]]?o[s[0]][s[1]][s[2]]:null:4===s.length?i=o[s[0]][s[1]]&&"object"===typeof o[s[0]][s[1]]&&o[s[0]][s[1]][s[2]]?o[s[0]][s[1]][s[2]][s[3]]:null:5===s.length?i=o[s[0]][s[1]]&&"object"===typeof o[s[0]][s[1]]&&o[s[0]][s[1]][s[2]]&&o[s[0]][s[1]][s[2]][s[3]]?o[s[0]][s[1]][s[2]][s[3]][s[4]]:null:6===s.length&&(i=o[s[0]][s[1]]&&"object"===typeof o[s[0]][s[1]]&&o[s[0]][s[1]][s[2]]&&o[s[0]][s[1]][s[2]][s[3]]&&o[s[0]][s[1]][s[2]][s[3]][s[4]]?o[s[0]][s[1]][s[2]][s[3]][s[4]][s[5]]:null),void 0===i||null===i?null:i}return null}static setCustomValue(t,e,s){var i;if(null!==t&&void 0!==t&&null!==(i=t._id)&&void 0!==i&&i.startsWith(`${e.adapter}.`)&&e.path.length>1){const i=e.path,o=t;if(o[i[0]]&&"object"===typeof o[i[0]]){if(2===i.length)return o[i[0]][i[1]]=s,!0;if(3===i.length){if(o[i[0]][i[1]]&&"object"===typeof o[i[0]][i[1]])return o[i[0]][i[1]][i[2]]=s,!0}else if(4===i.length){if(o[i[0]][i[1]]&&"object"===typeof o[i[0]][i[1]]&&o[i[0]][i[1]][i[2]]&&"object"===typeof o[i[0]][i[1]][i[2]])return o[i[0]][i[1]][i[2]][i[3]]=s,!0}else if(5===i.length){if(o[i[0]][i[1]]&&"object"===typeof o[i[0]][i[1]]&&o[i[0]][i[1]][i[2]]&&"object"===typeof o[i[0]][i[1]][i[2]]&&o[i[0]][i[1]][i[2]][i[3]]&&"object"===typeof o[i[0]][i[1]][i[2]][i[3]])return o[i[0]][i[1]][i[2]][i[3]][i[4]]=s,!0}else if(6===i.length&&o[i[0]][i[1]]&&"object"===typeof o[i[0]][i[1]]&&o[i[0]][i[1]][i[2]]&&"object"===typeof o[i[0]][i[1]][i[2]]&&o[i[0]][i[1]][i[2]][i[3]]&&"object"===typeof o[i[0]][i[1]][i[2]][i[3]]&&o[i[0]][i[1]][i[2]][i[3]][i[4]]&&"object"===typeof o[i[0]][i[1]][i[2]][i[3]][i[4]])return o[i[0]][i[1]][i[2]][i[3]][i[4]][i[5]]=s,!0}}return!1}renderCustomValue(t,e,s){const i=G.getCustomValue(t,e);return null!==i&&void 0!==i?!e.edit||this.props.notEditable||e.objTypes&&!e.objTypes.includes(t.type)?(0,h.jsx)(a.Box,{component:"div",style:{...S.columnCustom,...S[`columnCustom_${e.align}`]},children:i}):(0,h.jsx)(a.Box,{component:"div",style:{...S.columnCustom,...S.columnCustomEditable,...S[`columnCustom_${e.align}`]},onClick:()=>this.setState({columnsEditCustomDialog:{item:s,it:e,obj:t},customColumnDialogValueChanged:!1}),children:i}):null}renderAliasLink(t,e,s){const i=e||0,o=this.objects[this.info.aliasesMap[t][i]].common.alias.id;return o?(0,h.jsxs)(a.Box,{component:"div",onClick:e=>{e.stopPropagation(),e.preventDefault();const s=this.info.aliasesMap[t][i];this.info.aliasesMap[t].length>1&&this.setState({aliasMenu:""}),this.onSelect(s),setTimeout((()=>this.expandAllSelected((()=>this.scrollToItem(s)))),100)},sx:s||this.styles.aliasAlone,children:[(0,h.jsx)("span",{className:"admin-browser-arrow",children:"string"===typeof o||o.read===t&&o.write===t?"\u2194":o.read===t?"\u2192":"\u2190"}),this.info.aliasesMap[t][i]]}):null}renderLeaf(t,e,s){var i,o,l,n,d,p;const u=t.data.id;let D;s.count++,e=void 0===e?this.state.expanded.includes(u):e;const k=t.data.obj,_=null===k||void 0===k?void 0:k.type;D=t.children||"folder"===_||"device"===_||"channel"===_||"meta"===_?e?(0,h.jsx)(c.IconOpen,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(u)}):(0,h.jsx)(c.IconClosed,{style:this.styles.cellIdIconFolder,onClick:()=>this.toggleExpanded(u)}):k&&k.common&&!1===k.common.write&&"state"===k.type?(0,h.jsx)(c.IconDocumentReadOnly,{style:this.styles.cellIdIconDocument}):(0,h.jsx)(c.IconDocument,{style:this.styles.cellIdIconDocument});let O=null;t.data.icon&&(O="string"===typeof t.data.icon?t.data.icon.length<3?(0,h.jsx)("span",{className:"iconOwn",style:S.cellIdIconOwn,children:t.data.icon}):(0,h.jsx)(c.Icon,{style:S.cellIdIconOwn,className:"iconOwn",src:t.data.icon,alt:""}):t.data.icon);const A=null===k||void 0===k?void 0:k.common,I=(null===k||void 0===k?void 0:k.type)&&U[k.type]||(0,h.jsx)("div",{className:"itemIcon"}),E=this.levelPadding*(t.data.level||0);if(t.data.lang!==this.props.lang){const{rooms:e,per:s}=$(this.info,u,this.props.lang);t.data.rooms=e.join(", "),t.data.per=s;const{funcs:i,pef:o}=W(this.info,u,this.props.lang);t.data.funcs=i.join(", "),t.data.pef=o,t.data.lang=this.props.lang}const N=this.props.multiSelect&&this.objects[u]&&(!this.props.types||this.props.types.includes(this.objects[u].type))?(0,h.jsx)(a.Checkbox,{style:S.checkBox,checked:this.state.selected.includes(u)}):null;let F=!this.props.notEditable&&"state"===_&&(this.state.filter.expertMode||!1!==(null===A||void 0===A?void 0:A.write));this.props.objectBrowserViewFile&&"file"===(null===A||void 0===A?void 0:A.type)&&(F=!0);const M=!this.props.notEditable&&this.objects[u]&&(this.state.filter.expertMode||"state"===_||"channel"===_||"device"===_),B=this.state.statesView&&("state"===_||"channel"===_||"device"===_);let L="";const P=[];var J;if(B&&(L=null===(J=this.states[u])||void 0===J?void 0:J.from,void 0===L?L=" ":(L=L?L.replace(/^system\.adapter\.|^system\./,""):"",P.push(`${this.texts.stateChangedFrom} ${L}`)),null!==k&&void 0!==k&&k.user)){const t=k.user.replace("system.user.","");L+=`/${t}`,P.push(`${this.texts.stateChangedBy} ${t}`)}k&&(k.from&&P.push(`${this.texts.objectChangedFrom} ${k.from.replace(/^system\.adapter\.|^system\./,"")}`),k.user&&P.push(`${this.texts.objectChangedBy} ${k.user.replace(/^system\.user\./,"")}`),k.ts&&P.push(`${this.texts.objectChangedByUser} ${c.Utils.formatDate(new Date(k.ts),this.props.dateFormat||this.systemConfig.common.dateFormat)}`));let H=!1,q=null;u.startsWith("alias.")&&null!==A&&void 0!==A&&null!==(i=A.alias)&&void 0!==i&&i.id?(H="object"===typeof A.alias.id,q=H?(0,h.jsxs)("div",{style:S.cellIdAliasReadWriteDiv,children:[A.alias.id.read?(0,h.jsxs)(a.Box,{component:"div",onClick:t=>{t.stopPropagation(),t.preventDefault(),this.onSelect(A.alias.id.read),setTimeout((()=>this.expandAllSelected((()=>this.scrollToItem(A.alias.id.read)))),100)},sx:this.styles.aliasReadWrite,children:["\u2190",A.alias.id.read]}):null,A.alias.id.write?(0,h.jsxs)(a.Box,{component:"div",onClick:t=>{t.stopPropagation(),t.preventDefault(),this.onSelect(A.alias.id.write),setTimeout((()=>this.expandAllSelected((()=>this.scrollToItem(A.alias.id.write)))),100)},sx:this.styles.aliasReadWrite,children:["\u2192",A.alias.id.write]}):null]}):(0,h.jsxs)(a.Box,{component:"div",onClick:t=>{t.stopPropagation(),t.preventDefault(),this.onSelect(A.alias.id),setTimeout((()=>this.expandAllSelected((()=>this.scrollToItem(A.alias.id)))),100)},sx:this.styles.aliasAlone,children:["\u2192",A.alias.id]})):this.info.aliasesMap[u]&&(q=this.info.aliasesMap[u].length>1?(0,h.jsx)(a.Box,{component:"div",id:`alias_${u}`,onClick:t=>{t.stopPropagation(),t.preventDefault(),this.setState({aliasMenu:u})},sx:this.styles.aliasAlone,children:this.props.t("ra_%s links from aliases",this.info.aliasesMap[u].length)}):this.renderAliasLink(u,0));let G,K=null===A||void 0===A?void 0:A.color;if(K&&!this.state.selected.includes(u)){const t="dark"===this.props.themeName?"#1f1f1f":"blue"===this.props.themeName?"#222a2e":"#FFFFFF";c.Utils.colorDistance(K,t)<1e3&&(G="dark"===this.props.themeType?"#9a9a9a":"#565656")}let X=!1;"0_userdata"===u?(K=m(this.props.themeType),X=!0):"alias"===u?(K=b(this.props.themeType),X=!0):"javascript"===u?(K="dark"===this.props.themeType?"#fff46e":"#b89101",X=!0):"system"===u?(K=f(this.props.themeType),X=!0):"system.adapter"===u?K=y(this.props.themeType):K&&!this.state.selected.includes(u)||(K="inherit");const Y=[];if(null!==A&&void 0!==A&&A.statusStates){const t={};Object.keys(A.statusStates).forEach((e=>{let s=A.statusStates[e];var i;(s.split(".").length<3&&(s=`${u}.${s}`),t[e]=s,this.states[s])?this.recordStates.includes(s)||this.recordStates.push(s):"state"===(null===(i=this.objects[s])||void 0===i?void 0:i.type)&&(this.recordStates.includes(s)||this.recordStates.push(s),this.states[s]={val:null},this.subscribe(s))}));let e=!1;A.statusStates.errorId&&this.states[t.errorId]&&this.states[t.errorId].val&&(K="dark"===this.props.themeType?g:v,e=!0,Y.push((0,h.jsx)(r.Error,{style:this.styles.iconDeviceError},"error"))),t.onlineId&&this.states[t.onlineId]?e?this.states[t.onlineId].val?Y.push((0,h.jsx)(r.Wifi,{style:this.styles.iconDeviceConnected},"conn")):Y.push((0,h.jsx)(r.WifiOff,{style:this.styles.iconDeviceDisconnected},"disc")):this.states[t.onlineId].val?(K="dark"===this.props.themeType?x:j,Y.push((0,h.jsx)(r.Wifi,{style:this.styles.iconDeviceConnected},"conn"))):(K="dark"===this.props.themeType?C:w,Y.push((0,h.jsx)(r.WifiOff,{style:this.styles.iconDeviceDisconnected},"disc"))):t.offlineId&&this.states[t.offlineId]&&(e?this.states[t.offlineId].val?Y.push((0,h.jsx)(r.WifiOff,{style:this.styles.iconDeviceDisconnected},"disc")):Y.push((0,h.jsx)(r.Wifi,{style:this.styles.iconDeviceConnected},"conn")):this.states[t.offlineId].val?(K="dark"===this.props.themeType?C:w,Y.push((0,h.jsx)(r.WifiOff,{style:this.styles.iconDeviceDisconnected},"disc"))):(K="dark"===this.props.themeType?x:j,Y.push((0,h.jsx)(r.Wifi,{style:this.styles.iconDeviceConnected},"conn"))))}const Q=B?c.Utils.quality2text((null===(o=this.states[u])||void 0===o?void 0:o.q)||0).join(", "):null;let Z=(null===(l=t.data)||void 0===l?void 0:l.title)||"",tt=!1;if(this.state.showDescription){const e=V(t.data,this.props.lang);e&&(Z=[(0,h.jsx)("div",{style:S.cellNameDivDiv,children:Z},"name"),(0,h.jsx)("div",{style:S.cellDescription,children:e},"desc")],tt=!!e)}const et="xs"===this.props.width&&this.state.focused===u,st=(0,h.jsxs)(a.Grid2,{container:!0,wrap:"nowrap",direction:"row",sx:S.cellId,style:{width:this.columnsVisibility.id,paddingLeft:E},children:[(0,h.jsxs)(a.Grid2,{container:!0,alignItems:"center",children:[N,D]}),(0,h.jsxs)(a.Grid2,{style:{...S.cellIdSpan,...G?this.styles.invertedBackground:void 0,color:K,fontWeight:X?"bold":void 0},children:[(0,h.jsx)(a.Tooltip,{title:T(t.data,this.props.lang),slotProps:{popper:{sx:S.tooltip}},children:(0,h.jsx)("div",{children:t.data.name})}),q,Y]}),(0,h.jsx)("div",{style:{...S.grow,...G?this.styles.invertedBackgroundFlex:{}}}),(0,h.jsx)(a.Grid2,{container:!0,alignItems:"center",children:O}),"xs"!==this.props.width?(0,h.jsx)("div",{children:(0,h.jsx)(c.IconCopy,{className:et?"":"copyButton",style:S.cellCopyButton,onClick:t=>this.onCopy(t,u)})}):null]});let it,ot=et&&Z||this.columnsVisibility.name?(0,h.jsxs)(a.Box,{component:"div",sx:{...S.cellName,...tt?S.cellNameWithDesc:void 0,width:"xs"!==this.props.width?this.columnsVisibility.name:void 0,ml:et?0:"5px"},children:[Z,!et&&null!==(n=t.data)&&void 0!==n&&n.title?(0,h.jsx)(a.Box,{style:{color:K},children:(0,h.jsx)(c.IconCopy,{className:"copyButton",style:S.cellCopyButton,onClick:e=>{var s;return this.onCopy(e,null===(s=t.data)||void 0===s?void 0:s.title)}})}):null]}):null;var lt,nt,at,rt,ct,ht;this.state.statesView?it=[et&&B&&null!==(lt=this.states[u])&&void 0!==lt&<.from||this.columnsVisibility.changedFrom?{el:(0,h.jsx)("div",{style:{...S.cellRole,width:"xs"!==this.props.width?this.columnsVisibility.changedFrom:void 0},title:P.join("\n"),children:B&&null!==(nt=this.states[u])&&void 0!==nt&&nt.from?L:null},"from"),type:"from"}:null,et&&Q||this.columnsVisibility.qualityCode?{el:(0,h.jsx)("div",{style:{...S.cellRole,width:"xs"!==this.props.width?this.columnsVisibility.qualityCode:void 0},title:Q||"",children:Q},"q"),type:"quality"}:null,et&&B&&null!==(at=this.states[u])&&void 0!==at&&at.ts||this.columnsVisibility.timestamp?{el:(0,h.jsx)("div",{style:{...S.cellRole,width:"xs"!==this.props.width?this.columnsVisibility.timestamp:void 0},children:B&&null!==(rt=this.states[u])&&void 0!==rt&&rt.ts?c.Utils.formatDate(new Date(this.states[u].ts),this.props.dateFormat||this.systemConfig.common.dateFormat):null},"ts"),type:"ts"}:null,et&&B&&null!==(ct=this.states[u])&&void 0!==ct&&ct.lc||this.columnsVisibility.lastChange?{el:(0,h.jsx)("div",{style:{...S.cellRole,width:"xs"!==this.props.width?this.columnsVisibility.lastChange:void 0},children:B&&null!==(ht=this.states[u])&&void 0!==ht&&ht.lc?c.Utils.formatDate(new Date(this.states[u].lc),this.props.dateFormat||this.systemConfig.common.dateFormat):null},"lc"),type:"lc"}:null]:it=[et&&null!==k&&void 0!==k&&k.type||this.columnsVisibility.type?{el:(0,h.jsxs)("div",{style:{...S.cellType,width:"xs"!==this.props.width?this.columnsVisibility.type:void 0},children:[I,"\xa0",null===k||void 0===k?void 0:k.type]},"type"),type:"filter_type"}:null,et&&A||this.columnsVisibility.role?{el:(0,h.jsx)("div",{style:{...S.cellRole,width:"xs"!==this.props.width?this.columnsVisibility.role:"100%",cursor:this.state.filter.expertMode&&M&&this.props.objectBrowserEditRole?"text":"default"},onClick:!et&&this.state.filter.expertMode&&M&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:t.data.id}):void 0,children:null===A||void 0===A?void 0:A.role},"role"),type:"filter_role",onClick:et&&this.state.filter.expertMode&&M&&this.props.objectBrowserEditRole?()=>this.setState({roleDialog:t.data.id}):void 0}:null,et&&A||this.columnsVisibility.room?{el:(0,h.jsx)("div",{style:{...S.cellRoom,...t.data.per?S.cellEnumParent:{},width:"xs"!==this.props.width?this.columnsVisibility.room:"100%",cursor:M?"text":"default"},onClick:!et&&M?()=>{const e=z(this.info,t.data.id,"roomEnums");this.setState({enumDialogEnums:e,enumDialog:{item:t,type:"room",enumsOriginal:JSON.stringify(e)}})}:void 0,children:t.data.rooms},"room"),type:"filter_room",onClick:et&&M?()=>{const e=z(this.info,t.data.id,"roomEnums");this.setState({enumDialogEnums:e,enumDialog:{item:t,type:"room",enumsOriginal:JSON.stringify(e)}})}:void 0}:null,et&&A||this.columnsVisibility.func?{el:(0,h.jsx)("div",{style:{...S.cellFunc,...t.data.pef?S.cellEnumParent:{},width:"xs"!==this.props.width?this.columnsVisibility.func:"100%",cursor:M?"text":"default"},onClick:!et&&M?()=>{const e=z(this.info,t.data.id,"funcEnums");this.setState({enumDialogEnums:e,enumDialog:{item:t,type:"func",enumsOriginal:JSON.stringify(e)}})}:void 0,children:t.data.funcs},"func"),type:"filter_func",onClick:et&&M?()=>{const e=z(this.info,t.data.id,"funcEnums");this.setState({enumDialogEnums:e,enumDialog:{item:t,type:"func",enumsOriginal:JSON.stringify(e)}})}:void 0}:null];let dt=(null===(d=this.adapterColumns)||void 0===d?void 0:d.map((e=>(0,h.jsx)("div",{style:{...S.cellAdapter,width:"xs"!==this.props.width?this.columnsVisibility[e.id]:void 0},title:`${e.adapter} => ${e.pathText}`,children:k?this.renderCustomValue(k,e,t):null},e.id))))||null;const pt=et||this.columnsVisibility.val?this.renderColumnValue(u,t,et):null;let ut=et&&pt||this.columnsVisibility.val?(0,h.jsx)("div",{style:{...S.cellValue,width:"xs"!==this.props.width?this.columnsVisibility.val:"calc(100% - 100px)",cursor:F?"file"===(null===A||void 0===A?void 0:A.type)?"zoom-in":t.data.button?"grab":"text":"default"},onClick:F?()=>{k&&this.states&&("file"===(null===A||void 0===A?void 0:A.type)?this.setState({viewFileDialog:u}):!this.state.filter.expertMode&&t.data.button?this.props.socket.setState(u,!0).catch((t=>window.alert(`Cannot write state "${u}": ${t}`))):!this.state.filter.expertMode&&t.data.switch?this.props.socket.setState(u,!this.states[u].val).catch((t=>window.alert(`Cannot write state "${u}": ${t}`))):(this.edit={val:this.states[u]?this.states[u].val:"",q:this.states[u]&&this.states[u].q||0,ack:!1,id:u},this.setState({updateOpened:!0})))}:void 0,children:pt}):null,mt=et||this.columnsVisibility.buttons?(0,h.jsx)("div",{style:{...S.cellButtons,width:"xs"!==this.props.width?this.columnsVisibility.buttons:void 0},children:this.renderColumnButtons(u,t)}):null,bt=null;if("xs"===this.props.width&&this.state.focused===u){var ft,yt;let e;it=it.filter((t=>t)),e=it.length?it.map((t=>t?(0,h.jsxs)("div",{style:S.cellDetailsLine,children:[(0,h.jsxs)("span",{style:S.cellDetailsName,children:[this.texts[t.type],":"]}),t.el,(0,h.jsx)("div",{style:{flexGrow:1}}),t.onClick?(0,h.jsx)(r.Edit,{style:S.cellCopyButtonInDetails,onClick:()=>{null!==t&&void 0!==t&&t.onClick&&t.onClick()}}):null]},t.type):null)):null,dt.length||(dt=null),bt=(0,h.jsxs)(a.Paper,{style:{width:"100%",display:"flex",flexDirection:"column",padding:10,backgroundColor:"dark"===this.props.theme.palette.mode?"#333":"#ccc"},children:[(0,h.jsxs)("div",{style:S.cellDetailsLine,children:[(0,h.jsx)("div",{style:{flexGrow:1}}),(0,h.jsx)(c.IconCopy,{style:S.cellCopyButtonInDetails,onClick:t=>this.onCopy(t,u)})]}),ot&&(0,h.jsxs)("div",{style:S.cellDetailsLine,children:[(0,h.jsxs)("span",{style:S.cellDetailsName,children:[this.texts.name,":"]}),ot,(0,h.jsx)("div",{style:{flexGrow:1}}),null!==(ft=t.data)&&void 0!==ft&&ft.title?(0,h.jsx)(c.IconCopy,{className:"copyButton",style:S.cellCopyButtonInDetails,onClick:e=>{var s;return this.onCopy(e,null===(s=t.data)||void 0===s?void 0:s.title)}}):null]}),e,dt&&(0,h.jsx)("div",{style:S.cellDetailsLine,children:dt}),"state"===(null===(yt=this.objects[u])||void 0===yt?void 0:yt.type)&&(0,h.jsxs)("div",{style:S.cellDetailsLine,children:[(0,h.jsxs)("span",{style:S.cellDetailsName,children:[this.texts.value,":"]}),ut,(0,h.jsx)("div",{style:{flexGrow:1}}),(0,h.jsx)(c.IconCopy,{className:"copyButton",style:S.cellCopyButtonInDetails,onClick:t=>{const{valText:e}=R({state:this.states[u],obj:this.objects[u],texts:this.texts,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:void 0===this.props.isFloatComma?this.systemConfig.common.isFloatComma:this.props.isFloatComma});this.onCopy(t,e.v.toString())}},"cc")]}),mt&&(0,h.jsx)("div",{style:{...S.cellDetailsLine,justifyContent:"right"},children:mt})]}),ot=null,it=null,dt=null,ut=null,mt=null}return{row:(0,h.jsxs)(a.Grid2,{container:!0,direction:"row",wrap:"nowrap",sx:c.Utils.getStyle(this.props.theme,S.tableRow,this.state.linesEnabled&&S.tableRowLines,!this.props.dragEnabled&&S.tableRowNoDragging,q&&S.tableRowAlias,H&&S.tableRowAliasReadWrite,this.state.focused===u&&this.props.multiSelect&&S.tableRowFocused,!t.data.visible&&S.filteredOut,t.data.hasVisibleParent&&!t.data.visible&&!t.data.hasVisibleChildren&&S.filteredParentOut,this.state.selected.includes(u)&&S.itemSelected,this.state.selectedNonObject===u&&S.itemSelected),id:u,onMouseDown:e=>{let s;this.onSelect(u),"which"in e?s=3===e.which:"button"in e&&(s=2===e.button),this.contextMenu=s?{item:t,ts:Date.now()}:null},onDoubleClick:()=>{t.children?this.toggleExpanded(u):this.onSelect(u,!0)},children:[st,ot,null===(p=it)||void 0===p?void 0:p.map((t=>null===t||void 0===t?void 0:t.el)),dt,ut,mt]},u),details:bt}}renderItem(t,e,s){const i=[];s=s||{count:0};const o=this.renderLeaf(t,e,s);let l;const n=this.props.DragWrapper;return l=this.props.dragEnabled&&n?t.data.sumVisibility?(0,h.jsx)(n,{item:t,style:S.draggable,children:o.row},t.data.id):(0,h.jsx)("div",{style:S.nonDraggable,children:o.row},t.data.id):o.row,t.data.id&&l&&i.push(l),o.details&&i.push(o.details),e=void 0===e?O(this.state.expanded,t.data.id):e,t.data.id&&!e||(this.state.foldersFirst?t.children&&(i.push(t.children.map((t=>t.children&&(!this.state.columnsSelectorShow||s.count<15)&&t.data.sumVisibility?this.renderItem(t,void 0,s):null))),i.push(t.children.map((t=>!t.children&&(!this.state.columnsSelectorShow||s.count<15)&&t.data.sumVisibility?this.renderItem(t,void 0,s):null)))):t.children&&i.push(t.children.map((t=>(!this.state.columnsSelectorShow||s.count<15)&&t.data.sumVisibility?this.renderItem(t,void 0,s):null)))),i}calculateColumnsVisibility(t,e,s,i){let o=i||this.state.columnsWidths;const l=s||this.state.columnsForAdmin,n=e||this.state.columns||[],a="boolean"!==typeof t?this.state.columnsAuto:t;o=JSON.parse(JSON.stringify(o)),Object.keys(o).forEach((t=>{o[t]&&(o[t]=parseInt(o[t],10)||0)})),this.adapterColumns=[];const r=P[this.props.width||"lg"].widths;if(a){if(this.columnsVisibility={id:P[this.props.width||"lg"].idWidth,name:this.visibleCols.includes("name")&&r.name||0,nameHeader:this.visibleCols.includes("name")&&r.name||0,type:this.visibleCols.includes("type")&&r.type||0,role:this.visibleCols.includes("role")&&r.role||0,room:this.visibleCols.includes("room")&&r.room||0,func:this.visibleCols.includes("func")&&r.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&r.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&r.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&r.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&r.lastChange||0,val:this.visibleCols.includes("val")&&r.val||0,buttons:this.visibleCols.includes("buttons")&&r.buttons||0},this.columnsVisibility.name&&!this.customWidth){let t=this.columnsVisibility.id||0;this.state.statesView?(t+=this.columnsVisibility.changedFrom||0,t+=this.columnsVisibility.qualityCode||0,t+=this.columnsVisibility.timestamp||0,t+=this.columnsVisibility.lastChange||0):(t+=this.columnsVisibility.type||0,t+=this.columnsVisibility.role||0,t+=this.columnsVisibility.room||0,t+=this.columnsVisibility.func||0),t+=this.columnsVisibility.val||0,t+=this.columnsVisibility.buttons||0,this.columnsVisibility.name=`calc(100% - ${t+5}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${t+5+this.state.scrollBarWidth}px)`}else if(!this.customWidth){let t=0;this.state.statesView?(t+=this.columnsVisibility.changedFrom||0,t+=this.columnsVisibility.qualityCode||0,t+=this.columnsVisibility.timestamp||0,t+=this.columnsVisibility.lastChange||0):(t+=this.columnsVisibility.type||0,t+=this.columnsVisibility.role||0,t+=this.columnsVisibility.room||0,t+=this.columnsVisibility.func||0),t+=this.columnsVisibility.val||0,t+=this.columnsVisibility.buttons||0,this.columnsVisibility.id=`calc(100% - ${t+5}px)`}}else{const t=this.props.width||"lg";this.columnsVisibility={id:o.id||P[t].idWidth,name:n.includes("name")&&(o.name||r.name||P[t].widths.name)||0,type:n.includes("type")&&(o.type||r.type||P[t].widths.type)||0,role:n.includes("role")&&(o.role||r.role||P[t].widths.role)||0,room:n.includes("room")&&(o.room||r.room||P[t].widths.room)||0,func:n.includes("func")&&(o.func||r.func||P[t].widths.func)||0};let e=this.columnsVisibility.id;if(this.columnsVisibility.name&&(e+=this.columnsVisibility.type||0,e+=this.columnsVisibility.role||0,e+=this.columnsVisibility.room||0,e+=this.columnsVisibility.func||0),l&&n&&Object.keys(l).sort().forEach((s=>l[s].forEach((i=>{const l=`_${s}_${i.path}`;if(n.includes(l)){const n={adapter:s,id:`_${s}_${i.path}`,name:i.name,path:i.path.split("."),pathText:i.path};i.edit&&(n.edit=!0,i.type&&(n.type=i.type),i.objTypes&&(n.objTypes=i.objTypes)),this.adapterColumns.push(n),this.columnsVisibility[l]=o[n.id]||i.width||P[t].widths.func||P.xl.widths.func||0,e+=this.columnsVisibility[l]}else this.columnsVisibility[l]=0})))),this.adapterColumns.sort(((t,e)=>t.id>e.id?-1:t.id<e.id?1:0)),this.columnsVisibility.val=n.includes("val")?o.val||r.val||P.xl.widths.val:0,this.props.columns&&!this.props.columns.includes("buttons")||(this.columnsVisibility.buttons=n.includes("buttons")?o.buttons||r.buttons||P.xl.widths.buttons:0,e+=this.columnsVisibility.buttons||0),this.columnsVisibility.name&&!o.name)e+=this.columnsVisibility.val||0,this.columnsVisibility.name=`calc(100% - ${e}px)`,this.columnsVisibility.nameHeader=`calc(100% - ${e+5+this.state.scrollBarWidth}px)`;else{const t=Object.keys(this.columnsVisibility).reduce(((t,e)=>"id"!==e&&"string"!==typeof this.columnsVisibility[e]&&this.columnsVisibility[e]?t+this.columnsVisibility[e]:t),0);this.columnsVisibility.id=`calc(100% - ${t}px)`}}}navigateKeyPress(t){const e=this.state.selectedNonObject||this.state.selected[0];if(e){if("ArrowUp"===t.code||"ArrowDown"===t.code){var s;t.preventDefault();const i=[];null===(s=this.tableRef.current)||void 0===s||s.childNodes.forEach((t=>i.push(t.id)));const o=i.indexOf(e),l="ArrowDown"===t.code?o+1:o-1,n=i[l]||e;this.onSelect(n),this.scrollToItem(n)}if("ArrowRight"!==t.code&&"ArrowLeft"!==t.code||this.toggleExpanded(e),"Delete"===t.code&&this.root&&e){const t=G.getItemFromRoot(this.root,e);if(t){var i;const{obj:s}=t.data;!s||null!==(i=s.common)&&void 0!==i&&i.dontDelete||this.showDeleteDialog({id:e,obj:s,item:t})}}}}static getItemFromRoot(t,e){const s=e.split(".");let i="",o=t;for(const n of s){var l;if(i=i?`${i}.${n}`:n,o=null===(l=o.children)||void 0===l?void 0:l.find((t=>t.data.id===i)),!o)break}return o||null}renderHandleRight(){return(0,h.jsx)(a.Box,{component:"div",className:"iob-ob-resize-handler",sx:{...S.resizeHandle,...S.resizeHandleRight},onMouseDown:this.resizerMouseDown,onDoubleClick:this.resizerReset,title:this.props.t("ra_Double click to reset table layout")})}renderHeader(){let t=null;return this.columnsVisibility.buttons||this.isFilterEmpty()||(t=(0,h.jsxs)(a.IconButton,{onClick:()=>this.clearFilter(),style:S.buttonClearFilter,title:this.props.t("ra_Clear filter"),size:"large",children:[(0,h.jsx)(c.IconClearFilter,{}),(0,h.jsx)(r.Close,{style:S.buttonClearFilterIcon})]})),"xs"===this.props.width?(0,h.jsx)("div",{style:S.headerRow,children:(0,h.jsx)("div",{style:{...S.headerCell,width:"100%"},children:this.getFilterInput("id")})}):(0,h.jsxs)("div",{style:S.headerRow,children:[(0,h.jsxs)("div",{style:{...S.headerCell,width:this.columnsVisibility.id,position:"relative"},"data-min":240,"data-name":"id",children:[this.getFilterInput("id"),this.renderHandleRight()]}),this.columnsVisibility.name?(0,h.jsxs)("div",{style:{...S.headerCell,width:this.columnsVisibility.nameHeader,position:"relative"},"data-min":100,"data-name":"nameHeader",children:[this.getFilterInput("name"),this.renderHandleRight()]}):null,!this.state.statesView&&(0,h.jsxs)(h.Fragment,{children:[this.columnsVisibility.type?(0,h.jsxs)("div",{style:{...S.headerCell,width:this.columnsVisibility.type,position:"relative"},"data-min":100,"data-name":"type",children:[this.getFilterSelectType(),this.renderHandleRight()]}):null,this.columnsVisibility.role?(0,h.jsxs)("div",{style:{...S.headerCell,width:this.columnsVisibility.role,position:"relative"},"data-min":100,"data-name":"role",children:[this.getFilterSelectRole(),this.renderHandleRight()]}):null,this.columnsVisibility.room?(0,h.jsxs)("div",{style:{...S.headerCell,width:this.columnsVisibility.room,position:"relative"},"data-min":100,"data-name":"room",children:[this.getFilterSelectRoom(),this.renderHandleRight()]}):null,this.columnsVisibility.func?(0,h.jsxs)("div",{style:{...S.headerCell,width:this.columnsVisibility.func,position:"relative"},"data-min":100,"data-name":"func",children:[this.getFilterSelectFunction(),this.renderHandleRight()]}):null]}),this.state.statesView&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)("div",{style:{...S.headerCell,...S.headerCellValue,width:this.columnsVisibility.changedFrom,position:"relative"},"data-min":100,"data-name":"changedFrom",children:[this.props.t("ra_Changed from"),this.renderHandleRight()]}),(0,h.jsxs)("div",{style:{...S.headerCell,...S.headerCellValue,width:this.columnsVisibility.qualityCode,position:"relative"},"data-min":100,"data-name":"qualityCode",children:[this.props.t("ra_Quality code"),this.renderHandleRight()]}),(0,h.jsxs)("div",{style:{...S.headerCell,...S.headerCellValue,width:this.columnsVisibility.timestamp,position:"relative"},"data-min":100,"data-name":"timestamp",children:[this.props.t("ra_Timestamp"),this.renderHandleRight()]}),(0,h.jsxs)("div",{style:{...S.headerCell,...S.headerCellValue,width:this.columnsVisibility.lastChange,position:"relative"},"data-min":100,"data-name":"lastChange",children:[this.props.t("ra_Last change"),this.renderHandleRight()]})]}),this.adapterColumns.map((t=>(0,h.jsx)("div",{style:{...S.headerCell,...S.headerCellValue,width:this.columnsVisibility[t.id]},title:t.adapter,"data-min":100,"data-name":t.id,children:t.name},t.id))),this.columnsVisibility.val?(0,h.jsxs)("div",{style:{...S.headerCell,...S.headerCellValue,width:this.columnsVisibility.val,position:"relative"},"data-min":120,"data-name":"val",children:[this.props.t("ra_Value"),t]}):null,this.columnsVisibility.buttons?(0,h.jsxs)("div",{title:this.texts.filter_custom,style:{...S.headerCell,width:this.columnsVisibility.buttons},children:[" ",this.getFilterSelectCustoms()]}):null]})}renderToast(){return(0,h.jsx)(a.Snackbar,{open:!!this.state.toast,autoHideDuration:3e3,onClick:()=>this.setState({toast:""}),onClose:()=>this.setState({toast:""}),message:this.state.toast,action:(0,h.jsx)(a.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""}),children:(0,h.jsx)(r.Close,{fontSize:"small"})})})}componentDidUpdate(){if(this.tableRef.current){const t=this.tableRef.current.offsetWidth-this.tableRef.current.clientWidth;this.state.scrollBarWidth!==t?setTimeout((()=>this.setState({scrollBarWidth:t})),100):this.selectFirst&&this.scrollToItem(this.selectFirst)}}scrollToItem(t){this.selectFirst="";const e=window.document.getElementById(t);null===e||void 0===e||e.scrollIntoView({behavior:"auto",block:"center",inline:"center"})}renderCustomDialog(){if(this.state.customDialog&&this.props.objectCustomDialog){const t=this.props.objectCustomDialog;return(0,h.jsx)(t,{reportChangedIds:t=>this.changedIds=[...t],objectIDs:this.state.customDialog,allVisibleObjects:!!this.state.customDialogAll,expertMode:this.state.filter.expertMode,isFloatComma:void 0===this.props.isFloatComma?this.systemConfig.common.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:()=>{var t;this.pauseSubscribe(!1),this.setState({customDialog:null}),this.changedIds&&(this.changedIds=null,this.forceUpdate()),null===(t=this.props.router)||void 0===t||t.doNavigate("tab-objects")},systemConfig:this.systemConfig})}return null}onUpdate(t){this.props.socket.setState(this.edit.id,{val:t.val,ack:t.ack,q:t.q||0,expire:t.expire||void 0}).catch((t=>this.showError(`Cannot write value: ${t}`)))}renderEditObjectDialog(){if(!this.state.editObjectDialog||!this.props.objectBrowserEditObject)return null;const t=this.props.objectBrowserEditObject;return(0,h.jsx)(t,{obj:this.objects[this.state.editObjectDialog],roleArray:this.info.roles,objects:this.objects,dateFormat:this.props.dateFormat||this.systemConfig.common.dateFormat,isFloatComma:void 0===this.props.isFloatComma?this.systemConfig.common.isFloatComma:this.props.isFloatComma,themeType:this.props.themeType,theme:this.props.theme,socket:this.props.socket,dialogName:this.props.dialogName,aliasTab:this.state.editObjectAlias,t:this.props.t,expertMode:!!this.state.filter.expertMode,onNewObject:t=>this.props.socket.setObject(t._id,t).then((()=>this.setState({editObjectDialog:t._id,editObjectAlias:!1},(()=>this.onSelect(t._id))))).catch((t=>this.showError(`Cannot write object: ${t}`))),onClose:t=>{if(t){let i;var e,s;if(this.state.editObjectDialog.startsWith("alias."))JSON.stringify(null===(e=this.objects[this.state.editObjectDialog].common)||void 0===e?void 0:e.alias)!==JSON.stringify(null===(s=t.common)||void 0===s?void 0:s.alias)&&(i=this.state.editObjectDialog);this.props.socket.setObject(t._id,t).then((()=>{i&&this.subscribes.includes(i)&&(this.unsubscribe(i),setTimeout((()=>this.subscribe(i)),100))})).catch((t=>this.showError(`Cannot write object: ${t}`)))}this.setState({editObjectDialog:"",editObjectAlias:!1})},width:this.props.width},this.state.editObjectDialog)}renderViewObjectFileDialog(){if(!this.state.viewFileDialog||!this.props.objectBrowserViewFile)return null;const t=this.props.objectBrowserViewFile;return(0,h.jsx)(t,{obj:this.objects[this.state.viewFileDialog],socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({viewFileDialog:""})},"viewFile")}renderAliasEditorDialog(){if(!this.props.objectBrowserAliasEditor||!this.state.showAliasEditor)return null;const t=this.props.objectBrowserAliasEditor;return(0,h.jsx)(t,{obj:this.objects[this.state.showAliasEditor],objects:this.objects,socket:this.props.socket,t:this.props.t,onClose:()=>this.setState({showAliasEditor:""}),onRedirect:(t,e)=>setTimeout((()=>this.onSelect(t,!1,(()=>this.expandAllSelected((()=>{this.scrollToItem(t),setTimeout((()=>this.setState({editObjectDialog:t,showAliasEditor:"",editObjectAlias:!0})),300)}))))),e||0)},"editAlias")}showAddDataPointDialog(t,e,s){this.setState({showContextMenu:null,modalNewObj:{id:t,initialType:e,initialStateType:s}})}renderAliasMenu(){return this.state.aliasMenu?(0,h.jsx)(a.Menu,{open:!0,anchorEl:window.document.getElementById(`alias_${this.state.aliasMenu}`),onClose:()=>this.setState({aliasMenu:""}),children:this.info.aliasesMap[this.state.aliasMenu].map(((t,e)=>(0,h.jsx)(a.MenuItem,{onClick:()=>this.onSelect(t),children:(0,h.jsx)(a.ListItemText,{children:this.renderAliasLink(this.state.aliasMenu,e,{"& .admin-browser-arrow":{mr:"8px"}})})},t)))},"aliasmenu"):null}renderContextMenu(){var t,e,s,i,o,l,n;if(!this.state.showContextMenu)return null;const d=this.state.showContextMenu.item,p=d.data.id,u=[],m=d.data.obj;let b="";if(this.props.objectEditOfAccessControl&&this.state.filter.expertMode)if(m){const t=m.acl?"state"===m.type?m.acl.state:m.acl.object:0,e=m.acl&&("state"===m.type?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);b=Number.isNaN(Number(t))?Number(e).toString(16):Number(t).toString(16)}else b="---";const f=!this.props.notEditable&&m&&(this.state.filter.expertMode||"state"===m.type||"channel"===m.type||"device"===m.type),y=!d.data.obj||"folder"===d.data.obj.type||"channel"===d.data.obj.type||"device"===d.data.obj.type||"0_userdata.0"===d.data.id||"meta"===d.data.obj.type,g=!d.data.obj||"folder"===d.data.obj.type||"device"===d.data.obj.type||"0_userdata.0"===d.data.id||"meta"===d.data.obj.type,v=!d.data.obj||"folder"===d.data.obj.type||"0_userdata.0"===d.data.id||"meta"===d.data.obj.type,x=!d.data.obj||"folder"===d.data.obj.type||"0_userdata.0"===d.data.id||"meta"===d.data.obj.type,j={EDIT:{key:"0",visibility:!(!this.props.objectBrowserEditObject||!m||!this.state.filter.expertMode&&!G.isNonExpertId(p)),icon:(0,h.jsx)(r.Edit,{fontSize:"small",style:this.styles.contextMenuEdit}),label:this.texts.editObject,onClick:()=>this.setState({editObjectDialog:d.data.id,showContextMenu:null,editObjectAlias:!1})},EDIT_VALUE:{key:"1",visibility:!(!this.states||this.props.notEditable||!m||"state"!==m.type||"file"===(null===(t=m.common)||void 0===t?void 0:t.type)||!this.state.filter.expertMode&&!1===m.common.write),icon:(0,h.jsx)(r.FormatItalic,{fontSize:"small",style:this.styles.contextMenuEditValue}),label:this.props.t("ra_Edit value"),onClick:()=>{this.edit={val:this.states[p]?this.states[p].val:"",q:this.states[p]&&this.states[p].q||0,ack:!1,id:p},this.setState({updateOpened:!0,showContextMenu:null})}},VIEW:{visibility:!!this.props.objectBrowserViewFile&&"state"===(null===m||void 0===m?void 0:m.type)&&"file"===(null===(e=m.common)||void 0===e?void 0:e.type),icon:(0,h.jsx)(r.FindInPage,{fontSize:"small",style:this.styles.contextMenuView}),label:this.props.t("ra_View file"),onClick:()=>this.setState({viewFileDialog:(null===m||void 0===m?void 0:m._id)||"",showContextMenu:null})},CUSTOM:{key:"2",visibility:!(this.props.objectCustomDialog&&this.info.hasSomeCustoms&&m&&"state"===m.type&&"file"!==(null===(s=m.common)||void 0===s?void 0:s.type)),icon:(0,h.jsx)(r.Settings,{fontSize:"small",style:d.data.hasCustoms?this.styles.cellButtonsButtonWithCustoms:S.cellButtonsButtonWithoutCustoms}),style:this.styles.contextMenuCustom,label:this.texts.customConfig,onClick:()=>{var t;this.pauseSubscribe(!0),null===(t=this.props.router)||void 0===t||t.doNavigate(null,"customs",p),this.setState({customDialog:[p],showContextMenu:null})}},ACL:{key:"3",visibility:!!b,icon:b,iconStyle:{fontSize:"smaller"},listItemIconStyle:this.styles.contextMenuACL,style:this.styles.contextMenuACL,label:this.props.t("ra_Edit ACL"),onClick:()=>this.setState({showContextMenu:null,modalEditOfAccess:!0,modalEditOfAccessObjData:d.data})},ROLE:{key:"4",visibility:!!(this.state.filter.expertMode&&f&&this.props.objectBrowserEditRole),icon:(0,h.jsx)(r.BorderColor,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit role"),onClick:()=>this.setState({roleDialog:d.data.id,showContextMenu:null})},FUNCTION:{key:"5",visibility:!!f,icon:(0,h.jsx)(r.BedroomParent,{fontSize:"small",style:this.styles.contextMenuRole}),label:this.props.t("ra_Edit function"),onClick:()=>{const t=z(this.info,d.data.id,"funcEnums");this.setState({enumDialogEnums:t,enumDialog:{item:d,type:"func",enumsOriginal:JSON.stringify(t)},showContextMenu:null})}},ROOM:{key:"6",visibility:!!f,icon:(0,h.jsx)(r.Construction,{fontSize:"small",style:this.styles.contextMenuRoom}),label:this.props.t("ra_Edit room"),onClick:()=>{const t=z(this.info,d.data.id,"roomEnums");this.setState({enumDialogEnums:t,enumDialog:{item:d,type:"room",enumsOriginal:JSON.stringify(t)},showContextMenu:null})}},ALIAS:{key:"7",visibility:!(this.props.notEditable||!this.props.objectBrowserAliasEditor||!this.props.objectBrowserEditObject||!this.state.filter.expertMode||"state"!==(null===m||void 0===m?void 0:m.type)||"file"===(null===(i=m.common)||void 0===i?void 0:i.type)),icon:(0,h.jsx)(r.Link,{style:null!==m&&void 0!==m&&null!==(o=m.common)&&void 0!==o&&o.alias?this.styles.cellButtonsButtonWithCustoms:S.cellButtonsButtonWithoutCustoms}),label:this.info.aliasesMap[d.data.id]?this.props.t("ra_Edit alias"):this.props.t("ra_Create alias"),onClick:()=>{var t;null!==m&&void 0!==m&&null!==(t=m.common)&&void 0!==t&&t.alias?this.setState({showContextMenu:null,editObjectDialog:d.data.id,editObjectAlias:!0}):this.setState({showContextMenu:null,showAliasEditor:d.data.id})}},CREATE:{key:"+",visibility:(d.data.id.startsWith("0_userdata.0")||d.data.id.startsWith("javascript."))&&(y||g||v||x),icon:(0,h.jsx)(r.Add,{fontSize:"small",style:this.styles.cellButtonsButtonWithCustoms}),style:S.contextMenuWithSubMenu,label:this.texts.create,subMenu:[{label:this.texts.createBooleanState,visibility:y,icon:(0,h.jsx)(c.IconState,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(d.data.id,"state","boolean")},{label:this.texts.createNumberState,visibility:y,icon:(0,h.jsx)(c.IconState,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(d.data.id,"state","number")},{label:this.texts.createStringState,visibility:y,icon:(0,h.jsx)(c.IconState,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(d.data.id,"state","string")},{label:this.texts.createState,visibility:y,icon:(0,h.jsx)(c.IconState,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(d.data.id,"state")},{label:this.texts.createChannel,visibility:g,icon:(0,h.jsx)(c.IconChannel,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(d.data.id,"channel")},{label:this.texts.createDevice,visibility:v,icon:(0,h.jsx)(c.IconDevice,{fontSize:"small"}),onClick:()=>this.showAddDataPointDialog(d.data.id,"device")},{label:this.texts.createFolder,icon:(0,h.jsx)(r.CreateNewFolder,{fontSize:"small"}),visibility:x,onClick:()=>this.showAddDataPointDialog(d.data.id,"folder")}]},DELETE:{key:"Delete",visibility:!(!this.props.onObjectDelete||!(null!==(l=d.children)&&void 0!==l&&l.length||m&&(null===(n=m.common)||void 0===n||!n.dontDelete))),icon:(0,h.jsx)(r.Delete,{fontSize:"small",style:this.styles.contextMenuDelete}),style:this.styles.contextMenuDelete,label:this.texts.deleteObject,onClick:()=>this.setState({showContextMenu:null},(()=>this.showDeleteDialog({id:p,obj:m||{},item:d})))}};return Object.keys(j).forEach((t=>{var e,s;j[t].visibility&&(j[t].subMenu?(u.push((0,h.jsxs)(a.MenuItem,{href:"",onClick:e=>this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position,subItem:t,subAnchor:e.target}}),style:j[t].style,children:[(0,h.jsx)(a.ListItemIcon,{style:{...j[t].iconStyle,...j[t].listItemIconStyle},children:j[t].icon}),(0,h.jsxs)(a.ListItemText,{children:[j[t].label,"..."]}),(0,h.jsx)("div",{style:{...S.contextMenuKeys,opacity:1},children:(0,h.jsx)(r.ArrowRight,{})})]},t)),(null===(e=this.state.showContextMenu)||void 0===e?void 0:e.subItem)===t&&u.push((0,h.jsx)(a.Menu,{open:!0,anchorEl:this.state.showContextMenu.subAnchor,onClose:()=>{this.state.showContextMenu&&this.setState({showContextMenu:{item:this.state.showContextMenu.item,position:this.state.showContextMenu.position}}),this.contextMenu=null},children:null===(s=j[t].subMenu)||void 0===s?void 0:s.map((t=>t.visibility?(0,h.jsxs)(a.MenuItem,{onClick:t.onClick,style:t.style,children:[(0,h.jsx)(a.ListItemIcon,{style:{...t.iconStyle,...t.listItemIconStyle||void 0},children:t.icon}),(0,h.jsx)(a.ListItemText,{children:t.label})]},t.label):null))},"subContextMenu"))):u.push((0,h.jsxs)(a.MenuItem,{onClick:j[t].onClick,sx:j[t].style,children:[(0,h.jsx)(a.ListItemIcon,{style:{...j[t].iconStyle,...j[t].listItemIconStyle},children:j[t].icon}),(0,h.jsx)(a.ListItemText,{children:j[t].label}),j[t].key?(0,h.jsx)("div",{style:S.contextMenuKeys,children:`Alt+${"Delete"===j[t].key?this.props.t("ra_Del"):j[t].key}`}):null]},t)))})),u.length?(0,h.jsx)(a.Menu,{open:!0,onKeyUp:t=>{t.preventDefault(),t.altKey&&Object.keys(j).forEach((e=>{t.key===j[e].key&&j[e].onClick&&j[e].onClick()}))},anchorReference:"anchorPosition",anchorPosition:this.state.showContextMenu.position,onClose:()=>{this.setState({showContextMenu:null}),this.contextMenu=null},children:u},"contextMenu"):(setTimeout((()=>this.setState({showContextMenu:null})),100),null)}renderEditValueDialog(){var t;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 e=null!==(t=this.objects[this.edit.id].common)&&void 0!==t&&t.type?this.objects[this.edit.id].common.type:typeof this.edit.val,s=this.objects[this.edit.id].common.role,i=this.props.objectBrowserValue;return(0,h.jsx)(i,{t:this.props.t,lang:this.props.lang,type:e,role:s||"",states:c.Utils.getStates(this.objects[this.edit.id]),themeType:this.props.themeType,theme:this.props.theme,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||this.systemConfig.common.dateFormat,isFloatComma:void 0===this.props.isFloatComma?this.systemConfig.common.isFloatComma:this.props.isFloatComma,onClose:t=>{this.setState({updateOpened:!1}),t&&this.onUpdate(t)},width:this.props.width})}render(){this.recordStates=[],this.unsubscribeTimer&&clearTimeout(this.unsubscribeTimer),this.styleTheme!==this.props.themeType&&(this.styles={cellIdIconFolder:c.Utils.getStyle(this.props.theme,S.cellIdIconFolder),cellIdIconDocument:c.Utils.getStyle(this.props.theme,S.cellIdIconDocument),iconDeviceError:c.Utils.getStyle(this.props.theme,S.iconDeviceError),iconDeviceConnected:c.Utils.getStyle(this.props.theme,S.iconDeviceConnected),iconDeviceDisconnected:c.Utils.getStyle(this.props.theme,S.iconDeviceDisconnected),cellButtonsButtonWithCustoms:c.Utils.getStyle(this.props.theme,S.cellButtonsButtonWithCustoms),invertedBackground:c.Utils.getStyle(this.props.theme,S.invertedBackground),invertedBackgroundFlex:c.Utils.getStyle(this.props.theme,S.invertedBackgroundFlex),contextMenuEdit:c.Utils.getStyle(this.props.theme,S.contextMenuEdit),contextMenuEditValue:c.Utils.getStyle(this.props.theme,S.contextMenuEditValue),contextMenuView:c.Utils.getStyle(this.props.theme,S.contextMenuView),contextMenuCustom:c.Utils.getStyle(this.props.theme,S.contextMenuCustom),contextMenuACL:c.Utils.getStyle(this.props.theme,S.contextMenuACL),contextMenuRoom:c.Utils.getStyle(this.props.theme,S.contextMenuRoom),contextMenuRole:c.Utils.getStyle(this.props.theme,S.contextMenuRole),contextMenuDelete:c.Utils.getStyle(this.props.theme,S.contextMenuDelete),filterInput:c.Utils.getStyle(this.props.theme,S.headerCellInput,S.filterInput),iconCopy:c.Utils.getStyle(this.props.theme,S.cellButtonsValueButton,S.cellButtonsValueButtonCopy),aliasReadWrite:c.Utils.getStyle(this.props.theme,S.cellIdAlias,S.cellIdAliasReadWrite),aliasAlone:c.Utils.getStyle(this.props.theme,S.cellIdAlias,S.cellIdAliasAlone)},this.styleTheme=this.props.themeType);const t=JSON.stringify(this.state.filter);if(this.lastAppliedFilter!==t&&this.objects&&this.root){const e={count:0};E(this.root,this.state.filter,this.props.lang,this.objects,void 0,e,this.props.customFilter,this.props.types),e.count<500&&!this.state.expandAllVisible?setTimeout((()=>this.setState({expandAllVisible:!0}))):e.count>=500&&this.state.expandAllVisible&&setTimeout((()=>this.setState({expandAllVisible:!1}))),this.lastAppliedFilter=t}if(this.unsubscribeTimer=setTimeout((()=>{this.unsubscribeTimer=null,this.checkUnsubscribes()}),200),!this.state.loaded)return(0,h.jsx)(a.CircularProgress,{},`${this.props.dialogName}_c`);const e=this.root?this.renderItem(this.root,void 0):null;return(0,h.jsxs)(c.TabContainer,{children:[(0,h.jsx)("style",{children:"\n@keyframes newValueAnimation-light {\n 0% {\n color: #00f900;\n }\n 80% {\n color: #008000;\n }\n 100% {\n color: #000;\n }\n}\n@keyframes newValueAnimation-dark {\n 0% {\n color: #00f900;\n }\n 80% {\n color: #008000;\n }\n 100% {\n color: #fff;\n }\n}\n.newValueBrowser-dark {\n animation: newValueAnimation-dark 2s ease-in-out;\n}\n.newValueBrowser-light {\n animation: newValueAnimation-light 2s ease-in-out;\n}\n"}),(0,h.jsx)(c.TabHeader,{children:this.getToolbar()}),(0,h.jsxs)(c.TabContent,{children:[this.renderHeader(),(0,h.jsx)("div",{style:S.tableDiv,ref:this.tableRef,onKeyDown:t=>this.navigateKeyPress(t),children:e})]}),this.renderContextMenu(),this.renderAliasMenu(),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderViewObjectFileDialog(),this.renderAliasEditorDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.state.modalEditOfAccessObjData&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData)]},this.props.dialogName)}}Object.defineProperty(G,q,{writable:!0,value:["0_userdata.0.","alias.0."]});const K=(0,c.withWidth)()(G)}}]);
|
|
2
|
-
//# sourceMappingURL=858.3a130f69.chunk.js.map
|