@iobroker/adapter-react-v5 4.1.2 → 4.2.0

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.
Files changed (29) hide show
  1. package/Components/JsonConfigComponent/ConfigCertCollection.js +2 -2
  2. package/Components/JsonConfigComponent/ConfigCertCollection.js.map +1 -1
  3. package/Components/JsonConfigComponent/ConfigCertificates.js +2 -2
  4. package/Components/JsonConfigComponent/ConfigCertificates.js.map +1 -1
  5. package/Components/JsonConfigComponent/ConfigCheckLicense.js +7 -7
  6. package/Components/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
  7. package/Components/JsonConfigComponent/ConfigPort.js +1 -1
  8. package/Components/JsonConfigComponent/ConfigPort.js.map +1 -1
  9. package/Components/JsonConfigComponent/ConfigSendto.js +2 -2
  10. package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
  11. package/Components/JsonConfigComponent/ConfigSetState.js +2 -2
  12. package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
  13. package/Components/JsonConfigComponent/ConfigTable.js +2 -2
  14. package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
  15. package/Components/JsonConfigComponent/ConfigUUID.js +1 -1
  16. package/Components/JsonConfigComponent/ConfigUUID.js.map +1 -1
  17. package/Components/ObjectBrowser.js +22 -25
  18. package/Components/ObjectBrowser.js.map +1 -1
  19. package/Components/UploadImage.js +2 -2
  20. package/Components/UploadImage.js.map +1 -1
  21. package/Components/Utils.js +1 -1
  22. package/Components/Utils.js.map +1 -1
  23. package/Dialogs/Confirm.js +1 -1
  24. package/Dialogs/Confirm.js.map +1 -1
  25. package/LegacyConnection.d.ts +6 -0
  26. package/LegacyConnection.js +181 -161
  27. package/LegacyConnection.js.map +1 -1
  28. package/README.md +7 -3
  29. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectBrowser.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_withStyles","_reactInlinesvg","_IconButton","_CircularProgress","_MenuItem","_Select","_FormControl","_Input","_Grid","_Badge","_Tooltip","_Snackbar","_Checkbox","_List","_ListItem","_ListItemButton","_ListItemIcon","_ListItemSecondaryAction","_ListItemText","_DialogTitle","_Dialog","_DialogContent","_DialogContentText","_DialogActions","_Button","_Fab","_TextField","_FormControlLabel","_Switch","_Edit","_Delete","_Settings","_SettingsApplications","_Photo","_SupervisedUserCircle","_CalendarToday","_PersonOutlined","_Router","_Wifi","_Info","_Description","_Code","_ShowChart","_ListAlt","_ViewColumn","_Close","_Check","_Build","_Publish","_Add","_Refresh","_LooksOne","_RoomService","_Error","_WifiOff","_TextFields","_IconExpert","_IconAdapter","_IconAlias","_IconChannel","_IconCopy","_IconDevice","_IconDocument","_IconDocumentReadOnly","_IconInstance","_IconState","_IconClosed","_IconOpen","_IconClearFilter","_Icon","_withWidth","_Utils","_TabContainer","_TabContent","_TabHeader","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","ICON_SIZE","ROW_HEIGHT","ITEM_LEVEL","SMALL_BUTTON_SIZE","COLOR_NAME_SYSTEM","COLOR_NAME_SYSTEM_ADAPTER","COLOR_NAME_ERROR_DARK","COLOR_NAME_ERROR_LIGHT","COLOR_NAME_CONNECTED_DARK","COLOR_NAME_CONNECTED_LIGHT","COLOR_NAME_DISCONNECTED_DARK","COLOR_NAME_DISCONNECTED_LIGHT","styles","theme","toolbar","minHeight","toolbarButtons","padding","marginLeft","switchColumnAuto","spacing","dialogColumns","transition","dialogColumnsLabel","fontSize","paddingTop","columnCustom","width","display","columnCustomEditable","cursor","columnCustomCenter","textAlign","columnCustomLeft","columnCustomRight","width100","transparent_10","opacity","transparent_20","transparent_30","transparent_40","transparent_50","transparent_60","transparent_70","transparent_80","transparent_90","transparent_100","columnsDialogInputWidth","headerRow","paddingLeft","height","whiteSpace","userSelect","buttonClearFilter","position","buttonClearFilterIcon","zIndex","top","left","color","tableDiv","concat","overflow","tableRow","lineHeight","verticalAlign","background","palette","mode","primary","dark","light","Utils","invertColor","main","flexWrap","tableRowLines","borderBottom","borderRight","tableRowNoDragging","tableRowAlias","tableRowAliasReadWrite","checkBox","cellId","textOverflow","marginTop","cellIdSpan","cellIdIconFolder","marginRight","secondary","cellIdIconDocument","cellIdIconOwn","cellIdTooltip","cellIdTooltipLink","cellCopyButton","right","cellEditButton","cellName","cellNameWithDesc","cellNameDivDiv","cellDescription","fontStyle","cellIdAlias","cellIdAliasReadWriteDiv","cellIdAliasAlone","cellIdAliasReadWrite","cellType","cellRole","cellRoom","cellEnumParent","cellFunc","cellValue","cellValueButton","transform","cellValueButtonFalse","cellAdapter","cellValueTooltip","cellValueText","cellValueFile","cellValueTooltipTitle","cellValueTooltipValue","cellValueTooltipBoth","cellValueTooltipBox","pointerEvents","tooltip","cellValueTextUnit","newValue","animation","cellValueTextState","cellValueTooltipCopy","bottom","cellValueTooltipEdit","cellButtons","cellButtonsButton","cellButtonsEmptyButton","cellButtonMinWidth","minWidth","cellButtonsButtonAlone","cellButtonsButtonWithCustoms","cellButtonsButtonWithoutCustoms","cellButtonsValueButton","action","active","cellButtonsValueButtonCopy","cellButtonsValueButtonEdit","parseInt","filteredOut","filteredParentOut","filterInput","marginBottom","selectIcon","selectNone","itemSelected","header","headerCell","headerCellValue","headerCellInput","headerCellSelectItem","visibleButtons","grow","flexGrow","enumIconDiv","borderRadius","enumIcon","enumDialog","enumList","enumButton","enumCheckbox","buttonDiv","alignItems","aclText","rightsObject","rightsState","textCenter","tooltipAccessControl","flexDirection","fontSizeTitle","draggable","nonDraggable","selectClearButton","backgroundColor","iconDeviceConnected","iconDeviceDisconnected","iconDeviceError","resizeHandle","resizeHandleRight","borderColor","borderRightStyle","resizeHandleLeft","borderLeft","borderLeftStyle","invertedBackground","invertedBackgroundFlex","generateFile","filename","el","document","createElement","setAttribute","encodeURIComponent","JSON","stringify","style","body","appendChild","click","removeChild","binarySearch","list","find","_start","_end","undefined","middle","Math","floor","getName","name","lang","_typeof2","en","toString","getSelectIdIcon","objects","id","imagePrefix","src","_id_","aIcon","common","icon","startsWith","includes","className","cIcon","instance","type","split","applyFilter","item","filters","context","counter","customFilter","selectedTypes","_depth","toLowerCase","custom","role","room","members","func","data","_data$obj","_customFilter$common","_customFilter$common2","_customFilter$common3","_customFilter$common4","_customFilter$common5","Array","isArray","expertMode","endsWith","expert","fID","fName","visible","hasVisibleChildren","children","_item","sumVisibility","count","hasVisibleParent","getVisibleItems","_result","_item$children","getSystemIcon","k","getObjectTooltip","_data$obj2","_data$obj2$common","getIdFieldTooltip","classes","clsx","href","rel","buildTree","options","ids","sort","a","b","replace","root","currentPathArr","currentPath","currentPathLen","info","funcEnums","roomEnums","roles","types","customs","enums","hasSomeCustoms","croot","_loop","parts","_common$adminUI","supportCustoms","adminUI","substring","repeat","_obj$common","_obj$common2","_obj$common3","curPath","_loop2","_croot","parent","level","generated","title","hasCustoms","button","write","u","move","splice","join","_ret","_objects$a","_objects$a$common","_objects$b","_objects$b$common","aName","pop","bName","_objects$a2","_objects$a2$common","_objects$b2","_objects$b2$common","findNode","_parts","_path","_level","found","_id","findRoomsForObject","withParentInfo","rooms","per","_data$objects$data$ro","_common$members","origin","ownEnums","findEnumsForObjectAsIds","enumName","funcs","_data$objects$data$en","_common$members2","findFunctionsForObject","pef","_data$objects$data$fu","_common$members3","formatValue","state","texts","dateFormat","isFloatComma","states","getStates","isCommon","valText","v","val","match","Date","round","s","unit","valFull","t","value","ack","ts","formatDate","lc","from","user","c","quality","quality2text","q","nbr","prepareSparkData","values","time","DEFAULT_FILTER","ITEM_IMAGES","channel","device","adapter","meta","chart","config","group","host","schedule","script","folder","StyledBadge","withStyles","badge","border","paper","Badge","SCREEN_WIDTHS","xs","idWidth","fields","widths","sm","md","buttons","lg","changedFrom","qualityCode","timestamp","lastChange","xl","objectsAlreadyLoaded","ObjectBrowser","_Component","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","console","log","findItem","pausedSubscribes","statesUpdateTimer","setTimeout","forceUpdate","clearTimeout","newState","event","filterFunc","columnsForAdmin","parse","parseObjectForAdmins","setState","objectsUpdateTimer","_buildTree","lastAppliedFilter","_this$objects$_id","_this$objects$_id$com","_this$objects$_id$com2","mobile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","objId","_enObj$common","_enObj$common$members","_enObj","enObj","wrap","_callee$","_context","prev","next","socket","setObject","stop","_x","_x2","_ref2","_callee2","objs","_callee2$","_context2","t0","t1","done","hasOwn","abrupt","t2","_createAllEnums","getState","sent","def","t3","window","alert","t4","t5","_x3","evt","f","files","r","FileReader","onload","_ref3","_callee3","contents","json","len","_callee3$","_context3","loadObjects","_x4","readAsText","selected","selectedNonObject","_this$objects$id","_this$objects$id2","acl","check","valueNum","arrayTooltipText","funcRenderStateObject","rights","ownerGroup","ownerUser","owner","map","resizerActiveDiv","widthNext","resizeLeft","resizerOldWidth","clientX","resizerPosition","resizerOldWidthNext","resizerMin","resizerNextMin","resizerCurrentWidths","resizerActiveName","resizerNextName","resizerNextDiv","columnsVisibility","scrollBarWidth","customWidth","resizeTimeout","_localStorage","localStorage","setItem","dialogName","removeEventListener","resizerMouseMove","resizerMouseUp","resizerActiveIndex","storedWidths","parentNode","dataset","previousElementSibling","handle","querySelector","nextElementSibling","min","offsetWidth","addEventListener","calculateColumnsVisibility","removeItem","extendObject","error","lastSelectedItems","getItem","expanded","defaultFilters","_sessionStorage","sessionStorage","tableRef","createRef","filterRefs","selectedFound","subscribes","visibleCols","columns","pos","indexOf","possibleCols","customDialog","router","location","getLocation","dialog","pauseSubscribe","columnsWidths","foldersFirst","statesView","objectStatesView","loaded","filterKey","depth","expandAllVisible","toast","editObjectDialog","viewFileDialog","roleDialog","columnsSelectorShow","columnsAuto","columnsDialogTransparent","columnsEditCustomDialog","customColumnDialogValueChanged","showExportDialog","linesEnabled","showDescription","edit","editObject","deleteObject","customConfig","copyState","editState","close","filter_id","filter_name","filter_type","filter_role","filter_room","filter_func","filter_custom","filterCustomsWithout","objectChangedByUser","objectChangedBy","objectChangedFrom","stateChangedBy","stateChangedFrom","deviceError","deviceDisconnected","deviceConnected","aclOwner_read_object","aclOwner_read_state","aclOwner_write_object","aclOwner_write_state","aclGroup_read_object","aclGroup_read_state","aclGroup_write_object","aclGroup_write_state","aclEveryone_read_object","aclEveryone_read_state","aclEveryone_write_object","aclEveryone_write_state","levelPadding","_createClass2","loadAllObjects","update","_this2","Promise","resolve","updating","then","objectsWorker","getObjects","_objects","getObjectViewSystem","getObject","moreObjects","systemConfig","assign","defaultNewAcl","defaultHistory","getAdditionalColumns","_buildTree2","node","expandAllSelected","onAfterSelect","showError","cb","_toConsumableArray2","changed","path","isDouble","_this3","getObjectName","language","onSelect","componentDidMount","_this4","registerHandler","onObjectChange","subscribeObject","componentWillUnmount","_this5","filterTimer","unregisterHandler","unsubscribeObject","pattern","unsubscribeState","onStateChange","refreshComponent","_this6","renderErrorDialog","_this7","open","maxWidth","fullWidth","onClose","variant","onClick","autoFocus","startIcon","toggleItem","_this8","multiSelect","_renderDefinedList","isLast","_this9","cols","unshift","edge","disabled","checked","disableRipple","renderColumnsSelectorDialog","_this10","control","onChange","label","column","_this11","getAdapters","instances","checkUnsubscribes","recordStates","unsubscribe","_root","_partyId","shift","_this12","adminColumns","objTypes","warn","subscribe","subscribeState","isPause","_this13","onFilter","_this14","_name","current","tagName","onFilterChanged","clearFilter","_this15","childNodes","isFilterEmpty","_this16","someNotEmpty","attr","getFilterInput","_this17","_this$filterRefs$name","_this$filterRefs$name2","margin","ref","underline","placeholder","defaultValue","autoComplete","firstChild","size","getFilterSelect","_this18","_this$filterRefs$name3","_this$filterRefs$name4","_this$filterRefs$name5","hasIcons","inputProps","displayEmpty","newFilter","getFilterSelectRole","getFilterSelectRoom","_this19","_this19$objects$id","_this19$objects$id$co","_this19$objects$id2","_this19$objects$id2$c","getFilterSelectFunction","_this20","_this20$objects$id","_this20$objects$id$co","getFilterSelectType","getFilterSelectCustoms","_this21","onExpandAll","_this22","onCollapseAll","_this23","expandDepth","_this24","onExpandVisible","onStatesViewVisible","onCollapseVisible","collapseDepth","_getSelectedIdsForExport","idDot","idLen","_exportObjects","isAll","_this25","getEnumsForId","renderExportDialog","_this26","getToolbar","_this27","allowObjectCreation","popper","showExpertButton","disableColumnSelector","badgeContent","objectAddBoolean","toolTipObjectCreating","modalNewObj","objectImportExport","input","handleJsonUpload","objectBrowserEditObject","objectEditBoolean","doNavigate","toggleExpanded","onCopy","text","stopPropagation","preventDefault","copyToClipboard","renderColumnButtons","_this28","_item$children2","_item$data$obj$common","_item$data$obj$common3","onObjectDelete","objectEditOfAccessControl","modalEditOfAccess","modalEditOfAccessObjData","start","cellButtonsButtonIcon","aclTooltip","renderTooltipAccessControl","aclSystemConfig","Number","isNaN","dontDelete","_item$children3","_item$data$obj$common2","objectCustomDialog","readHistory","sparkline","now","setHours","getHours","setMinutes","setSeconds","setMilliseconds","nowMs","getTime","getHistory","end","step","addID","aggregate","sparks","getElementsByClassName","renderColumnValue","_obj$common4","_this29","fill","strokeWidth","copyText","onOpen","_syncEnum","enumIds","newArray","_this$info$objects$en","_this30","enumId","promises","_this$info$objects$en2","_this$info$objects$en3","all","syncEnum","_this31","toCheck","renderEnumDialog","_this32","itemEnums","enumDialogEnums","enumsOriginal","alt","labelId","tabIndex","renderEditRoleDialog","_this33","objectBrowserEditRole","ObjectBrowserEditRole","onColumnsEditCustomDialogClose","isSave","_this34","customColumnDialog","parseFloat","setCustomValue","it","Error","renderColumnsEditCustomDialog","_this35","getCustomValue","initValue","onKeyUp","keyCode","defaultChecked","pathText","renderCustomValue","_this36","notEditable","align","renderLeaf","isExpanded","_this37","_common$alias","_common$alias2","_this$states$id2","_item$data","_item$data2","_this$states$id3","_this$states$id4","_this$states$id5","iconFolder","itemType","iconItem","typeImg","_findRoomsForObject","_findFunctionsForObje","checkbox","valueEditable","objectBrowserViewFile","enumEditable","checkVisibleObjectType","newValueTitle","_this$states$id","readWriteAlias","alias","read","scrollToItem","checkColor","invertBackground","themeName","distance","colorDistance","themeType","icons","statusStates","_this37$objects$_id","colorSet","errorId","onlineId","offlineId","useDesc","container","direction","dragEnabled","onDoubleClick","Fragment","adapterColumns","updateOpened","renderItem","_this38","items","leaf","DragWrapper","_this39","WIDTHS","nameHeader","widthSum","newWidth","reduce","accumulator","renderHeader","_this40","filterClearInValue","onMouseDown","resizerMouseDown","resizerReset","renderToast","_this41","autoHideDuration","message","componentDidUpdate","_this42","clientWidth","getElementById","scrollIntoView","behavior","block","inline","renderCustomDialog","_this43","ObjectCustomDialog","reportChangedIds","changedIds","objectIDs","customsInstances","onUpdate","valAck","_this44","expire","renderEditObjectDialog","_this45","ObjectBrowserEditObject","roleArray","onNewObject","updateAlias","_this45$objects$_this","_obj$common5","renderViewObjectFileDialog","_this46","ObjectBrowserViewFile","renderEditValueDialog","_this$objects$this$ed","_this47","objectBrowserValue","ObjectBrowserValue","res","render","_this48","unsubscribeTimer","jsonFilter","modalNewObject","modalEditOfAccessControl","getDerivedStateFromProps","p","Component","defaultProps","propTypes","PropTypes","string","oneOfType","array","bool","isRequired","number","dragSettings","useDrag","_export","withWidth","_default","exports"],"sources":["ObjectBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2023, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport SVG from 'react-inlinesvg';\n\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport FormControl from '@mui/material/FormControl';\nimport Input from '@mui/material/Input';\nimport Grid from '@mui/material/Grid';\nimport Badge from '@mui/material/Badge';\nimport Tooltip from '@mui/material/Tooltip';\nimport Snackbar from '@mui/material/Snackbar';\nimport Checkbox from '@mui/material/Checkbox';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';\nimport ListItemText from '@mui/material/ListItemText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Fab from '@mui/material/Fab';\nimport TextField from '@mui/material/TextField';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Switch from '@mui/material/Switch';\n// import ListItemButton from '@mui/material/ListItemButton';\n// import Slider from '@mui/material/Slider';\n// import Typography from '@mui/material/Typography';\n\n// Icons\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconConfig from '@mui/icons-material/Settings';\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconSchedule from '@mui/icons-material/CalendarToday';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconScript from '@mui/icons-material/Code';\nimport IconChart from '@mui/icons-material/ShowChart';\nimport IconEnum from '@mui/icons-material/ListAlt';\nimport IconColumns from '@mui/icons-material/ViewColumn';\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\nimport BuildIcon from '@mui/icons-material/Build';\nimport PublishIcon from '@mui/icons-material/Publish';\nimport AddIcon from '@mui/icons-material/Add';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport LooksOneIcon from '@mui/icons-material/LooksOne';\nimport PressButtonIcon from '@mui/icons-material/RoomService';\nimport IconError from '@mui/icons-material/Error';\nimport IconDisconnected from '@mui/icons-material/WifiOff';\nimport TextFieldsIcon from '@mui/icons-material/TextFields';\n\nimport IconExpert from '../icons/IconExpert';\nimport IconAdapter from '../icons/IconAdapter';\nimport IconAlias from '../icons/IconAlias';\nimport IconChannel from '../icons/IconChannel';\nimport IconCopy from '../icons/IconCopy';\nimport IconDevice from '../icons/IconDevice';\nimport IconDocument from '../icons/IconDocument';\nimport IconDocumentReadOnly from '../icons/IconDocumentReadOnly';\nimport IconInstance from '../icons/IconInstance';\nimport IconState from '../icons/IconState';\nimport IconClosed from '../icons/IconClosed';\nimport IconOpen from '../icons/IconOpen';\nimport IconClearFilter from '../icons/IconClearFilter';\n\n// own\nimport Icon from './Icon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabHeader from './TabHeader';\n\nconst ICON_SIZE = 24;\nconst ROW_HEIGHT = 32;\nconst ITEM_LEVEL = 16;\nconst SMALL_BUTTON_SIZE = 20;\nconst COLOR_NAME_SYSTEM = '#ff6d69';\nconst COLOR_NAME_SYSTEM_ADAPTER = '#5773ff';\nconst COLOR_NAME_ERROR_DARK = '#ff413c';\nconst COLOR_NAME_ERROR_LIGHT = '#86211f';\nconst COLOR_NAME_CONNECTED_DARK = '#57ff45';\nconst COLOR_NAME_CONNECTED_LIGHT = '#098c04';\nconst COLOR_NAME_DISCONNECTED_DARK = '#f3ad11';\nconst COLOR_NAME_DISCONNECTED_LIGHT = '#6c5008';\n\nconst styles = theme => ({\n toolbar: {\n minHeight: 38, // Theme.toolbar.height,\n // boxShadow: '0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)'\n },\n toolbarButtons: {\n padding: 4,\n marginLeft: 4,\n },\n switchColumnAuto: {\n marginLeft: theme.spacing(2),\n },\n dialogColumns: {\n transition: 'opacity 1s',\n },\n dialogColumnsLabel: {\n fontSize: 12,\n paddingTop: theme.spacing(1),\n },\n columnCustom: {\n width: '100%',\n display: 'inline-block',\n },\n columnCustomEditable: {\n cursor: 'text',\n },\n columnCustomCenter: {\n textAlign: 'center',\n },\n columnCustomLeft: {\n textAlign: 'left',\n },\n columnCustomRight: {\n textAlign: 'right',\n },\n width100: {\n width: '100%',\n },\n transparent_10: {\n opacity: 0.1,\n },\n transparent_20: {\n opacity: 0.2,\n },\n transparent_30: {\n opacity: 0.3,\n },\n transparent_40: {\n opacity: 0.4,\n },\n transparent_50: {\n opacity: 0.5,\n },\n transparent_60: {\n opacity: 0.6,\n },\n transparent_70: {\n opacity: 0.7,\n },\n transparent_80: {\n opacity: 0.8,\n },\n transparent_90: {\n opacity: 0.9,\n },\n transparent_100: {\n opacity: 1,\n },\n columnsDialogInputWidth: {\n width: 80,\n },\n headerRow: {\n paddingLeft: theme.spacing(1),\n height: 38,\n whiteSpace: 'nowrap',\n userSelect: 'none',\n },\n buttonClearFilter: {\n position: 'relative',\n float: 'right',\n padding: 0,\n },\n buttonClearFilterIcon: {\n zIndex: 2,\n position: 'absolute',\n top: 0,\n left: 0,\n color: '#FF0000',\n opacity: 0.7,\n },\n\n tableDiv: {\n paddingTop: 0, // theme.spacing(1),\n paddingLeft: 0,\n width: `calc(100% - ${theme.spacing(1)})`,\n height: 'calc(100% - 38px)',\n overflow: 'auto',\n },\n tableRow: {\n paddingLeft: theme.spacing(1),\n height: ROW_HEIGHT,\n lineHeight: `${ROW_HEIGHT}px`,\n verticalAlign: 'top',\n userSelect: 'none',\n width: '100%',\n '&:hover': {\n background: `${theme.palette.mode === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light} !important`,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n },\n tableRowLines: {\n borderBottom: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n '& > div': {\n borderRight: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n },\n },\n tableRowNoDragging: {\n cursor: 'pointer',\n },\n tableRowAlias: {\n height: ROW_HEIGHT + 10,\n },\n tableRowAliasReadWrite: {\n height: ROW_HEIGHT + 22,\n },\n checkBox: {\n padding: 0,\n },\n cellId: {\n position: 'relative',\n fontSize: '1rem',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // verticalAlign: 'top',\n // position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n '& .iconOwn': {\n display: 'block',\n width: ROW_HEIGHT - 4,\n height: ROW_HEIGHT - 4,\n marginTop: 2,\n float: 'right',\n },\n '&:hover .iconOwn': {\n display: 'none',\n },\n '& *': {\n width: 'initial',\n },\n },\n cellIdSpan: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n // display: 'inline-block',\n // verticalAlign: 'top',\n },\n cellIdIconFolder: {\n marginRight: theme.spacing(1),\n width: ROW_HEIGHT - 4,\n height: ROW_HEIGHT - 4,\n cursor: 'pointer',\n color: theme.palette.secondary.main || '#fbff7d',\n verticalAlign: 'top',\n },\n cellIdIconDocument: {\n verticalAlign: 'middle',\n marginLeft: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n marginRight: theme.spacing(1),\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n },\n cellIdIconOwn: {\n\n },\n cellIdTooltip: {\n fontSize: 14,\n },\n cellIdTooltipLink: {\n color: \"#7ec2fd\",\n \"&:hover\": {\n color: \"#7ec2fd\"\n },\n \"&:visited\": {\n color: \"#7ec2fd\"\n }\n },\n cellCopyButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n opacity: 0.8,\n '&:hover': {\n opacity: 1,\n },\n position: 'absolute',\n right: 3,\n },\n cellEditButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n color: 'white',\n position: 'absolute',\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n right: SMALL_BUTTON_SIZE + 3,\n opacity: 0.7,\n '&:hover': {\n opacity: 1,\n },\n },\n cellName: {\n display: 'inline-block',\n verticalAlign: 'top',\n fontSize: 14,\n marginLeft: 5,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellNameWithDesc: {\n lineHeight: 'normal',\n },\n cellNameDivDiv: {\n\n },\n cellDescription: {\n fontSize: 10,\n opacity: 0.5,\n fontStyle: 'italic',\n },\n cellIdAlias: {\n fontStyle: 'italic',\n fontSize: 12,\n opacity: 0.7,\n '&:hover': {\n color: theme.palette.mode === 'dark' ? '#009900' : '#007700',\n },\n },\n cellIdAliasReadWriteDiv: {\n height: 24,\n marginTop: -5,\n },\n cellIdAliasAlone: {\n lineHeight: 0,\n },\n cellIdAliasReadWrite: {\n lineHeight: '12px',\n },\n cellType: {\n display: 'inline-block',\n verticalAlign: 'top',\n '& .itemIcon': {\n verticalAlign: 'middle',\n width: ICON_SIZE,\n height: ICON_SIZE,\n display: 'inline-block',\n },\n '& .itemIconFolder': {\n marginLeft: 3,\n },\n },\n cellRole: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellRoom: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellEnumParent: {\n opacity: 0.4,\n },\n cellFunc: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellValue: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellValueButton: {\n marginTop: 5,\n '&:active': {\n transform: 'scale(0.8)',\n },\n },\n cellValueButtonFalse: {\n opacity: 0.3,\n },\n cellAdapter: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n cellValueTooltip: {\n fontSize: 12,\n },\n cellValueText: {\n width: '100%',\n height: ROW_HEIGHT,\n fontSize: 16,\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n verticalAlign: 'top',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellValueFile: {\n color: '#2837b9',\n },\n cellValueTooltipTitle: {\n fontStyle: 'italic',\n width: 100,\n display: 'inline-block',\n },\n cellValueTooltipValue: {\n width: 120,\n display: 'inline-block',\n // overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n cellValueTooltipBoth: {\n width: 220,\n display: 'inline-block',\n whiteSpace: 'nowrap',\n },\n cellValueTooltipBox: {\n width: 250,\n overflow: 'hidden',\n pointerEvents: 'none',\n },\n tooltip: {\n pointerEvents: 'none',\n },\n cellValueTextUnit: {\n marginLeft: theme.spacing(0.5),\n opacity: 0.8,\n },\n newValue: {\n animation: '$newValueAnimation 2s ease-in-out',\n },\n '@keyframes newValueAnimation': {\n '0%': {\n color: '#00f900',\n },\n '80%': {\n color: '#008000',\n },\n '100%': {\n color: theme.palette.mode === 'dark' ? '#fff' : '#000',\n },\n },\n cellValueTextState: {\n opacity: 0.7,\n },\n cellValueTooltipCopy: {\n position: 'absolute',\n bottom: 3,\n right: 3,\n },\n cellValueTooltipEdit: {\n position: 'absolute',\n bottom: 3,\n right: 15,\n },\n cellButtons: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n cellButtonsButton: {\n display: 'inline-block',\n opacity: 0.7,\n width: SMALL_BUTTON_SIZE + 4,\n height: SMALL_BUTTON_SIZE + 4,\n '&:hover': {\n opacity: 1,\n },\n paddingTop: 0,\n paddingLeft: 0,\n marginTop: -2,\n },\n cellButtonsEmptyButton: {\n fontSize: 12,\n },\n cellButtonMinWidth: {\n minWidth: 47,\n },\n cellButtonsButtonAlone: {\n marginLeft: SMALL_BUTTON_SIZE + 4,\n paddingTop: 0,\n marginTop: -2,\n },\n cellButtonsButtonWithCustoms: {\n color: theme.palette.secondary.main,\n },\n cellButtonsButtonWithoutCustoms: {\n opacity: 0.2,\n },\n cellButtonsValueButton: {\n position: 'absolute',\n display: 'inline-block',\n top: SMALL_BUTTON_SIZE / 2 - 2,\n opacity: 0.7,\n width: SMALL_BUTTON_SIZE - 2,\n height: SMALL_BUTTON_SIZE - 2,\n color: theme.palette.action.active,\n '&:hover': {\n opacity: 1,\n },\n },\n cellButtonsValueButtonCopy: {\n right: theme.spacing(1),\n cursor: 'pointer',\n },\n cellButtonsValueButtonEdit: {\n right: SMALL_BUTTON_SIZE / 2 + parseInt(theme.spacing(2), 10),\n },\n\n filteredOut: {\n opacity: 0.5,\n },\n filteredParentOut: {\n opacity: 0.3,\n },\n filterInput: {\n marginTop: 0,\n marginBottom: 0,\n },\n selectIcon: {\n width: 24,\n height: 24,\n marginRight: 4,\n },\n selectNone: {\n opacity: 0.5,\n },\n itemSelected: {\n background: `${theme.palette.primary.main} !important`,\n color: `${Utils.invertColor(theme.palette.primary.main, true)} !important`,\n },\n header: {\n width: '100%',\n },\n headerCell: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n headerCellValue: {\n paddingTop: 4,\n // paddingLeft: 5,\n fontSize: 16,\n },\n headerCellInput: {\n width: 'calc(100% - 5px)',\n height: ROW_HEIGHT,\n paddingTop: 3,\n '& .itemIcon': {\n verticalAlign: 'middle',\n width: ICON_SIZE,\n height: ICON_SIZE,\n display: 'inline-block',\n },\n },\n headerCellSelectItem: {\n '& .itemIcon': {\n width: ICON_SIZE,\n height: ICON_SIZE,\n marginRight: 5,\n display: 'inline-block',\n },\n },\n visibleButtons: {\n color: '#2196f3',\n opacity: 0.7,\n },\n grow: {\n flexGrow: 1,\n },\n enumIconDiv: {\n marginRight: theme.spacing(1),\n width: 32,\n height: 32,\n borderRadius: 8,\n background: '#FFFFFF',\n },\n enumIcon: {\n marginTop: 4,\n marginLeft: 4,\n width: 24,\n height: 24,\n },\n enumDialog: {\n overflow: 'hidden',\n },\n enumList: {\n minWidth: 250,\n height: 'calc(100% - 50px)',\n overflow: 'auto',\n },\n enumButton: {\n float: 'right',\n },\n enumCheckbox: {\n minWidth: 0,\n },\n buttonDiv: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n aclText: {\n fontSize: 13,\n },\n rightsObject: {\n color: '#55ff55',\n paddingLeft: 3,\n },\n rightsState: {\n color: '#86b6ff',\n paddingLeft: 3,\n },\n textCenter: {\n padding: 12,\n textAlign: 'center',\n },\n tooltipAccessControl: {\n display: 'flex',\n flexDirection: 'column',\n },\n '@media screen and (max-width: 465px)': {\n columnsDialogInputWidth: {\n width: 50,\n },\n fontSizeTitle: {\n '& *': {\n fontSize: 12,\n },\n },\n },\n '@media screen and (max-width: 700px)': {\n\n },\n '@media screen and (max-width: 430px)': {\n\n },\n draggable: {\n cursor: 'copy',\n },\n nonDraggable: {\n cursor: 'no-drop',\n },\n selectClearButton: {\n position: 'absolute',\n top: 0,\n right: 0,\n borderRadius: 20,\n backgroundColor: theme.palette.background.default,\n },\n iconDeviceConnected: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 32,\n width: 20,\n },\n iconDeviceDisconnected: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 32,\n width: 20,\n },\n iconDeviceError: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 50,\n width: 20,\n },\n resizeHandle: {\n display: 'block',\n position: 'absolute',\n cursor: 'col-resize',\n width: 7,\n top: 2,\n bottom: 2,\n zIndex: 1,\n },\n resizeHandleRight: {\n right: 3,\n borderRight: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderRightStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderRightStyle: 'solid',\n },\n },\n resizeHandleLeft: {\n left: -4,\n borderLeft: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderLeftStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderLeftStyle: 'solid',\n },\n },\n invertedBackground: {\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n padding: '0 3px',\n borderRadius: '2px 0 0 2px',\n },\n invertedBackgroundFlex: {\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n borderRadius: '0 2px 2px 0',\n },\n});\n\nfunction generateFile(filename, obj) {\n const el = document.createElement('a');\n el.setAttribute('href', `data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(obj, null, 2))}`);\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n}\n\n// d=data, t=target, s=start, e=end, m=middle\nfunction binarySearch(list, find, _start, _end) {\n _start = _start || 0;\n if (_end === undefined) {\n _end = list.length - 1;\n if (!_end) {\n return list[0] === find;\n }\n }\n const middle = Math.floor((_start + _end) / 2);\n if (find === list[middle]) {\n return list[middle];\n }\n if (_end - 1 === _start) {\n return list[_start] === find || list[_end] === find;\n }\n if (find > list[middle]) {\n return binarySearch(list, find, middle, _end);\n }\n if (find < list[middle]) {\n return binarySearch(list, find, _start, middle);\n }\n return false;\n}\n\nfunction getName(name, lang) {\n if (name && typeof name === 'object') {\n return (name[lang] || name.en || '').toString();\n }\n\n return (name || '').toString();\n}\n\nfunction getSelectIdIcon(objects, id, imagePrefix) {\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\n let src = '';\n const _id_ = `system.adapter.${id}`;\n const aIcon = id && objects[_id_] && objects[_id_].common && objects[_id_].common.icon;\n if (aIcon) {\n // if not BASE64\n if (!aIcon.startsWith('data:image/')) {\n if (aIcon.includes('.')) {\n src = `${imagePrefix}/adapter/${objects[_id_].common.name}/${aIcon}`;\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null; // '<i class=\"material-icons iob-list-icon\">' + objects[_id_].common.icon + '</i>';\n }\n } else {\n if (aIcon.startsWith('data:image/svg')) {\n src = <SVG className=\"iconOwn\" src={aIcon} width={28} height={28} />;\n } else {\n src = aIcon;\n }\n }\n } else {\n const common = objects[id] && objects[id].common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (objects[id].type === 'instance' || objects[id].type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\n } else if (id && id.startsWith('system.adapter.')) {\n instance = id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null;\n }\n } else if (cIcon.startsWith('data:image/svg')) {\n // if base 64 image\n src = <SVG className=\"iconOwn\" src={cIcon} width={28} height={28} />;\n } else {\n src = cIcon;\n }\n }\n }\n }\n\n return src || null;\n}\n\nfunction applyFilter(item, filters, lang, objects, context, counter, customFilter, selectedTypes, _depth) {\n _depth = _depth || 0;\n let filteredOut = false;\n if (!context) {\n context = {};\n if (filters.id) {\n context.id = filters.id.toLowerCase();\n }\n if (filters.name) {\n context.name = filters.name.toLowerCase();\n }\n if (filters.type) {\n context.type = filters.type.toLowerCase();\n }\n if (filters.custom) {\n context.custom = filters.custom.toLowerCase();\n }\n if (filters.role) {\n context.role = filters.role.toLowerCase();\n }\n if (filters.room) {\n context.room = (objects[filters.room] && objects[filters.room].common && objects[filters.room].common.members) || [];\n }\n if (filters.func) {\n context.func = (objects[filters.func] && objects[filters.func].common && objects[filters.func].common.members) || [];\n }\n }\n\n const data = item.data;\n\n if (data && data.id) {\n const common = data.obj?.common;\n\n if (customFilter) {\n if (customFilter.type) {\n if (typeof customFilter.type === 'string') {\n if (!data.obj || customFilter.type !== data.obj.type) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.type)) {\n if (!data.obj || !customFilter.type.includes(data.obj.type)) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.type) {\n if (!common?.type) {\n filteredOut = true;\n } else if (typeof customFilter.common.type === 'string') {\n if (customFilter.common.type !== common.type) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.common.type)) {\n if (!customFilter.type.includes(common.type)) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.role) {\n if (!common?.role) {\n filteredOut = true;\n } else if (typeof customFilter.common.role === 'string') {\n if (common.role.startsWith(customFilter.common.role)) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.common.role)) {\n if (!customFilter.common.role.find(role => customFilter.role.includes(role))) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.custom === '_' && common?.custom) {\n filteredOut = true;\n }\n\n if (!filteredOut && customFilter.common?.custom && customFilter.common?.custom !== '_') {\n if (!common?.custom) {\n filteredOut = true;\n } else\n if (customFilter.common.custom === '_dataSources') {\n // TODO: make it configurable\n if (!Object.keys(common.custom).find(id => id.startsWith('history.') || id.startsWith('sql.') || id.startsWith('influxdb.'))) {\n filteredOut = true;\n }\n } else\n if (customFilter.common.custom !== true &&\n !Object.keys(common.custom).find(id => id.startsWith(customFilter.common.custom))\n ) {\n filteredOut = true;\n }\n }\n }\n\n if (!filteredOut && !filters.expertMode) {\n filteredOut =\n data.id === 'system' ||\n data.id === 'enum' ||\n // (data.obj && data.obj.type === 'meta') ||\n data.id.startsWith('system.') ||\n data.id.startsWith('enum.') ||\n data.id.startsWith('_design/') ||\n data.id.endsWith('.admin') ||\n (common && common.expert);\n }\n if (!filteredOut && context.id) {\n if (data.fID === undefined) {\n data.fID = data.id.toLowerCase();\n }\n filteredOut = !data.fID.includes(context.id);\n }\n if (!filteredOut && context.name) {\n if (common) {\n if (data.fName === undefined) {\n data.fName = (common && getName(common.name, lang)) || '';\n data.fName = data.fName.toLowerCase();\n }\n filteredOut = !data.fName.includes(context.name);\n } else {\n filteredOut = true;\n }\n }\n if (!filteredOut && filters.role && common) {\n if (common) {\n filteredOut = !(common.role && common.role.startsWith(context.role));\n } else {\n filteredOut = true;\n }\n }\n if (!filteredOut && context.room) {\n filteredOut = !context.room.find(id => id === data.id || data.id.startsWith(`${id}.`));\n }\n if (!filteredOut && context.func) {\n filteredOut = !context.func.find(id => id === data.id || data.id.startsWith(`${id}.`));\n }\n if (!filteredOut && context.type) {\n filteredOut = !(data.obj && data.obj.type && data.obj.type === context.type);\n }\n if (!filteredOut && selectedTypes) {\n filteredOut = !(data.obj && data.obj.type && selectedTypes.includes(data.obj.type));\n }\n if (!filteredOut && context.custom) {\n if (common) {\n if (context.custom === '_') {\n filteredOut = !!common.custom;\n } else {\n filteredOut = !common.custom || !common.custom[context.custom];\n }\n } else {\n filteredOut = true;\n }\n }\n }\n\n data.visible = !filteredOut;\n\n data.hasVisibleChildren = false;\n if (item.children && _depth < 20) {\n item.children.forEach(_item => {\n const visible = applyFilter(_item, filters, lang, objects, context, counter, customFilter, selectedTypes, _depth + 1);\n if (visible) {\n data.hasVisibleChildren = true;\n }\n });\n }\n\n // const visible = data.visible || data.hasVisibleChildren;\n data.sumVisibility = data.visible || data.hasVisibleChildren;// || data.hasVisibleParent;\n if (counter && data.sumVisibility) {\n counter.count++;\n }\n\n // show all children of visible object with opacity 0.5\n if (data.id && data.sumVisibility && item.children) {\n item.children.forEach(_item => _item.data.hasVisibleParent = true);\n }\n\n return data.visible || data.hasVisibleChildren;\n}\n\nfunction getVisibleItems(item, type, objects, _result) {\n _result = _result || [];\n const data = item.data;\n if (data.sumVisibility) {\n data.id && objects[data.id] && (!type || objects[data.id].type === type) && _result.push(data.id);\n item.children?.forEach(_item =>\n getVisibleItems(_item, type, objects, _result));\n }\n\n return _result;\n}\n\nfunction getSystemIcon(objects, id, k, imagePrefix) {\n let icon;\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (objects[id] && objects[id].type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n } else if (k < 2) {\n // detect \"cloud.0\"\n if (objects[`system.adapter.${id}`]) {\n icon = getSelectIdIcon(objects, `system.adapter.${id}`, imagePrefix);\n }\n }\n\n return icon || null;\n}\n\nfunction getObjectTooltip(data, lang) {\n if (!data) {\n return null;\n }\n if (data.obj?.common?.desc) {\n let tooltip = '';\n\n if (typeof data.obj.common.desc === 'object') {\n tooltip = data.obj.common.desc[lang] || data.obj.common.desc.en;\n } else {\n tooltip = data.obj.common.desc;\n }\n if (!tooltip) {\n return null;\n }\n\n return tooltip.toString();\n }\n\n return null;\n}\n\nfunction getIdFieldTooltip(data, classes, lang) {\n const tooltip = getObjectTooltip(data, lang);\n if (tooltip?.startsWith('http')) {\n return <a\n className={Utils.clsx(classes.cellIdTooltipLink)}\n href={tooltip}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {tooltip}\n </a>;\n } else {\n return <span className={Utils.clsx(classes.cellIdTooltip)}>{tooltip || data.id || ''}</span>;\n }\n}\n\nfunction buildTree(objects, options) {\n options = options || {};\n const imagePrefix = options.imagePrefix || '.';\n\n let ids = Object.keys(objects);\n\n ids.sort((a, b) => {\n if (a === b) {\n return 0;\n }\n a = a.replace(/\\./g, '!!!');\n b = b.replace(/\\./g, '!!!');\n if (a > b) {\n return 1;\n }\n return -1;\n });\n\n if (options.root) {\n ids = ids.filter(id => id === options.root || id.startsWith(`${options.root}.`));\n }\n\n // find empty nodes and create names for it\n let currentPathArr = [];\n let currentPath = '';\n let currentPathLen = 0;\n const root = {\n data: {\n name: '',\n id: '',\n },\n children: [],\n };\n\n const info = {\n funcEnums: [],\n roomEnums: [],\n roles: [],\n ids: [],\n types: [],\n objects,\n customs: ['_'],\n enums: [],\n hasSomeCustoms: false,\n };\n\n let croot = root;\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n if (!id) {\n continue;\n }\n const obj = objects[id];\n const parts = id.split('.');\n\n if (obj.type && !info.types.includes(obj.type)) {\n info.types.push(obj.type);\n }\n\n if (obj) {\n const common = obj.common;\n const role = common && common.role;\n if (role && !info.roles.includes(role)) {\n info.roles.push(role);\n } else if (id.startsWith('enum.rooms.')) {\n info.roomEnums.push(id);\n info.enums.push(id);\n } else if (id.startsWith('enum.functions.')) {\n info.funcEnums.push(id);\n info.enums.push(id);\n } else if (obj.type === 'enum') {\n info.enums.push(id);\n } else if (obj.type === 'instance' && common && (common.supportCustoms || common.adminUI?.custom)) {\n info.hasSomeCustoms = true;\n info.customs.push(id.substring('system.adapter.'.length));\n }\n }\n\n info.ids.push(id);\n\n let repeat;\n\n // if next level\n do {\n repeat = false;\n\n // If current level is still OK, and we can add ID to children\n if (!currentPath || id.startsWith(`${currentPath}.`)) {\n // if more than one level added\n if (parts.length - currentPathLen > 1) {\n let curPath = currentPath;\n // generate missing levels\n for (let k = currentPathLen; k < parts.length - 1; k++) {\n curPath += (curPath ? '.' : '') + parts[k];\n // level does not exist\n if (!binarySearch(info.ids, curPath)) {\n const _croot = {\n data: {\n name: parts[k],\n parent: croot,\n id: curPath,\n obj: objects[curPath],\n level: k,\n icon: getSystemIcon(objects, curPath, k, imagePrefix),\n generated: true,\n },\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n info.ids.push(curPath); // IDs will be added by alphabet\n } else {\n croot = croot.children.find(item => item.data.name === parts[k]);\n }\n }\n }\n\n const _croot = {\n data: {\n name: parts[parts.length - 1],\n title: getName(obj && obj.common && obj.common.name, options.lang),\n obj,\n parent: croot,\n icon: getSelectIdIcon(objects, id, imagePrefix) || getSystemIcon(objects, id, 0, imagePrefix),\n id,\n hasCustoms: obj.common?.custom && Object.keys(obj.common.custom).length,\n level: parts.length - 1,\n generated: false,\n button: obj.type === 'state' && obj.common?.role && typeof obj.common.role === 'string' && obj.common.role.startsWith('button') && obj.common?.write !== false,\n },\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n\n currentPathLen = parts.length;\n currentPathArr = parts;\n currentPath = id;\n } else {\n let u = 0;\n\n while (currentPathArr[u] === parts[u]) {\n u++;\n }\n\n if (u > 0) {\n let move = currentPathArr.length;\n currentPathArr = currentPathArr.splice(0, u);\n currentPathLen = u;\n currentPath = currentPathArr.join('.');\n while (move > u) {\n croot = croot.data.parent;\n move--;\n }\n } else {\n croot = root;\n currentPathArr = [];\n currentPath = '';\n currentPathLen = 0;\n }\n repeat = true;\n }\n } while (repeat);\n }\n\n info.roomEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n }\n if (aName < bName) {\n return -1;\n }\n return 0;\n });\n info.funcEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n }\n if (aName < bName) {\n return -1;\n }\n return 0;\n });\n info.roles.sort();\n info.types.sort();\n\n return { info, root };\n}\n\nfunction findNode(root, id, _parts, _path, _level) {\n if (root.data.id === id) {\n return root;\n }\n if (!_parts) {\n _parts = id.split('.');\n _level = 0;\n _path = _parts[_level];\n }\n if (!root.children && root.data.id !== id) {\n return null;\n }\n let found;\n for (let i = 0; i < root.children.length; i++) {\n const _id = root.children[i].data.id;\n if (_id === _path) {\n found = root.children[i];\n break;\n } else\n if (_id > _path) {\n break;\n }\n }\n if (found) {\n return findNode(found, id, _parts, `${_path}.${_parts[_level + 1]}`, _level + 1);\n }\n\n return null;\n}\n\nfunction findRoomsForObject(data, id, lang, withParentInfo, rooms) {\n if (!id) {\n return { rooms: [], per: false };\n }\n rooms = rooms || [];\n for (let i = 0; i < data.roomEnums.length; i++) {\n const common = data.objects[data.roomEnums[i]]?.common;\n const name = getName(common.name, lang);\n\n if (common?.members?.includes(id) && !rooms.includes(name)) {\n if (!withParentInfo) {\n rooms.push(name);\n } else {\n rooms.push({ name, origin: id });\n }\n }\n }\n\n let ownEnums;\n\n // Check parent\n const parts = id.split('.');\n parts.pop();\n id = parts.join('.');\n if (data.objects[id]) {\n ownEnums = rooms.length;\n findRoomsForObject(data, id, lang, withParentInfo, rooms);\n }\n\n return { rooms, per: !ownEnums }; // pe is if the enums are from parent\n}\n\nfunction findEnumsForObjectAsIds(data, id, enumName, funcs) {\n if (!id) {\n return [];\n }\n funcs = funcs || [];\n for (let i = 0; i < data[enumName].length; i++) {\n const common = data.objects[data[enumName][i]]?.common;\n if (common?.members?.includes(id) && !funcs.includes(data[enumName][i])) {\n funcs.push(data[enumName][i]);\n }\n }\n funcs.sort();\n\n return funcs;\n}\n\nfunction findFunctionsForObject(data, id, lang, withParentInfo, funcs) {\n if (!id) {\n return { funcs: [], pef: false };\n }\n funcs = funcs || [];\n for (let i = 0; i < data.funcEnums.length; i++) {\n const common = data.objects[data.funcEnums[i]]?.common;\n const name = getName(common.name, lang);\n if (common?.members?.includes(id) && !funcs.includes(name)) {\n if (!withParentInfo) {\n funcs.push(name);\n } else {\n funcs.push({ name, origin: id });\n }\n }\n }\n\n let ownEnums;\n\n // Check parent\n const parts = id.split('.');\n parts.pop();\n id = parts.join('.');\n if (data.objects[id]) {\n ownEnums = funcs.length;\n findFunctionsForObject(data, id, lang, withParentInfo, funcs);\n }\n\n return { funcs, pef: !ownEnums };\n}\n\n/*\nfunction quality2text(q) {\n if (!q) {\n return 'ok';\n }\n const custom = q & 0xFFFF0000;\n let text = '';\n if (q & 0x40) text += 'device';\n if (q & 0x80) text += 'sensor';\n if (q & 0x01) text += ' bad';\n if (q & 0x02) text += ' not connected';\n if (q & 0x04) text += ' error';\n\n return text + (custom ? '|0x' + (custom >> 16).toString(16).toUpperCase() : '') + ' [0x' + q.toString(16).toUpperCase() + ']';\n}\n*/\n\nfunction formatValue(id, state, obj, texts, dateFormat, isFloatComma) {\n const states = Utils.getStates(obj);\n const isCommon = obj.common;\n\n const valText = {};\n let v = (isCommon && isCommon.type === 'file') ? '[file]' : (!state || state.val === null ? '(null)' : (state.val === undefined ? '[undef]' : state.val));\n const type = typeof v;\n\n if (isCommon && isCommon.role && typeof isCommon.role === 'string' && isCommon.role.match(/^value\\.time|^date/)) {\n if (v && typeof v === 'string') {\n if (v.length === 13) { // (length of \"1647597254924\") warning, this solution only works till Nov 20 2286 18:46:39CET\n v = new Date(parseInt(v, 10)).toString();\n } else {\n // we don't know what is that, so leave it as it is\n }\n } else {\n if (v > 946681200 && v < 946681200000) { // '2000-01-01T00:00:00' => 946681200000\n v *= 1000; // may be the time is in seconds (UNIX time)\n }\n // null and undefined could not be here. See `let v = (isCommon && isCommon.type === 'file') ....` above\n v = v ? new Date(v).toString() : v;\n }\n } else {\n if (type === 'number') {\n v = Math.round(v * 100000000) / 100000000; // remove 4.00000000000000001\n if (isFloatComma) {\n v = v.toString().replace('.', ',');\n }\n } else if (type === 'object') {\n v = JSON.stringify(v);\n } else if (type !== 'string') {\n v = v.toString();\n }\n\n if (typeof v !== 'string') {\n v = v.toString();\n }\n }\n\n // try to replace number with \"common.states\"\n if (states && states[v] !== undefined) {\n if (v !== states[v]) {\n valText.s = v;\n v = states[v];\n }\n }\n\n if (isCommon && isCommon.unit) {\n valText.u = isCommon.unit;\n }\n const valFull = [{ t: texts.value, v }];\n\n if (state) {\n if (state.ack !== undefined && state.ack !== null) {\n valFull.push({ t: texts.ack, v: state.ack.toString() });\n }\n if (state.ts) {\n valFull.push({ t: texts.ts, v: state.ts ? Utils.formatDate(new Date(state.ts), dateFormat) : '' });\n }\n if (state.lc) {\n valFull.push({ t: texts.lc, v: state.lc ? Utils.formatDate(new Date(state.lc), dateFormat) : '' });\n }\n if (state.from) {\n let from = state.from.toString();\n if (from.startsWith('system.adapter.')) {\n from = from.substring(15);\n }\n valFull.push({ t: texts.from, v: from });\n }\n if (state.user) {\n let user = state.user.toString();\n if (user.startsWith('system.user.')) {\n user = user.substring(12);\n }\n valFull.push({ t: texts.user, v: user });\n }\n if (state.c) {\n valFull.push({ t: texts.c, v: state.c });\n }\n valFull.push({ t: texts.quality, v: Utils.quality2text(state.q || 0).join(', '), nbr: true });\n }\n\n valText.v = v;\n\n return {\n valText,\n valFull,\n style: { color: state?.ack ? (state.q ? '#ffa500' : '') : '#ff2222c9' },\n };\n}\n\nfunction prepareSparkData(values, from) {\n // set every hour one point\n let time = from;\n let i = 1;\n const v = [];\n\n while (i < values.length && time < from + 25 * 3600000) {\n // find the interval\n while (values[i - 1].ts < time && time <= values[i].ts && i < values.length) {\n i++;\n }\n if (i === 1 && values[i - 1].ts >= time) {\n // assume the value was always null\n v.push(0);\n } else\n if (i < values.length) {\n if (typeof values[i].val === 'boolean' || typeof values[i - 1].val === 'boolean') {\n v.push(values[i].val ? 1 : 0);\n } else {\n // remove nulls\n values[i - 1].val = values[i - 1].val || 0;\n values[i].val = values[i].val || 0;\n // interpolate\n const val = values[i - 1].val + ((values[i].val - values[i - 1].val) * (time - values[i - 1].ts)) / (values[i].ts - values[i - 1].ts);\n\n v.push(val);\n }\n }\n\n time += 3600000;\n }\n\n return v;\n}\n\n/**\n * @type {import('./types').ObjectBrowserTableFilter}\n */\nconst DEFAULT_FILTER = {\n id: '',\n name: '',\n room: '',\n func: '',\n role: '',\n type: '',\n custom: '',\n expertMode: false,\n};\n\nconst ITEM_IMAGES = {\n state: <IconState className=\"itemIcon\" />,\n channel: <IconChannel className=\"itemIcon\" />,\n device: <IconDevice className=\"itemIcon\" />,\n adapter: <IconAdapter className=\"itemIcon\" />,\n meta: <IconMeta className=\"itemIcon\" />,\n instance: <IconInstance className=\"itemIcon\" style={{ color: '#7da7ff' }} />,\n enum: <IconEnum className=\"itemIcon\" />,\n chart: <IconChart className=\"itemIcon\" />,\n config: <IconConfig className=\"itemIcon\" />,\n group: <IconGroup className=\"itemIcon\" />,\n user: <IconUser className=\"itemIcon\" />,\n host: <IconHost className=\"itemIcon\" />,\n schedule: <IconSchedule className=\"itemIcon\" />,\n script: <IconScript className=\"itemIcon\" />,\n folder: <IconClosed className=\"itemIcon itemIconFolder\" />,\n};\n\nconst StyledBadge = withStyles(theme => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n}))(Badge);\n\nconst SCREEN_WIDTHS = {\n // extra-small: 0px\n xs: { idWidth: '100%', fields: [], widths: {} },\n // small: 600px\n sm: { idWidth: 300, fields: ['room', 'val'], widths: { room: 100, val: 200 } },\n // medium: 960px\n md: {\n idWidth: 300,\n fields: ['room', 'func', 'val', 'buttons'],\n widths: {\n name: 200, room: 150, func: 150, val: 120, buttons: 120,\n },\n },\n // large: 1280px\n lg: {\n idWidth: 300,\n fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 300,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 165,\n lastChange: 165,\n },\n },\n // /////////////\n // extra-large: 1920px\n xl: {\n idWidth: 550,\n fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 400,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 170,\n lastChange: 170,\n },\n },\n};\n\nlet objectsAlreadyLoaded = false;\n\n/**\n * @extends {React.Component<import('./types').ObjectBrowserProps>}\n */\nclass ObjectBrowser extends Component {\n /**\n * @param {import('./types').ObjectBrowserProps} props\n */\n constructor(props) {\n super(props);\n\n this.lastSelectedItems = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectSelected`) || '[]';\n try {\n this.lastSelectedItems = JSON.parse(this.lastSelectedItems);\n if (typeof this.lastSelectedItems !== 'object') {\n this.lastSelectedItems = [this.lastSelectedItems];\n }\n this.lastSelectedItems = this.lastSelectedItems.filter(id => id);\n } catch (e) {\n // ignore\n }\n\n let expanded = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectExpanded`) || '[]';\n try {\n expanded = JSON.parse(expanded);\n } catch (e) {\n expanded = [];\n }\n\n let filter =\n props.defaultFilters ||\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectFilter`) ||\n { ...DEFAULT_FILTER };\n\n if (typeof filter === 'string') {\n try {\n filter = JSON.parse(filter);\n } catch (e) {\n filter = { ...DEFAULT_FILTER };\n }\n }\n\n filter.expertMode = props.expertMode !== undefined ? props.expertMode : ((window._sessionStorage || window.sessionStorage).getItem('App.expertMode') === 'true');\n this.tableRef = createRef();\n this.filterRefs = {};\n\n Object.keys(DEFAULT_FILTER).forEach(name =>\n this.filterRefs[name] = createRef());\n\n this.lastAppliedFilter = null;\n this.pausedSubscribes = false;\n\n this.selectedFound = false;\n this.root = null;\n this.states = {};\n this.subscribes = [];\n this.statesUpdateTimer = null;\n this.objectsUpdateTimer = null;\n\n this.visibleCols = props.columns || SCREEN_WIDTHS[props.width].fields;\n // remove type column if only one type must be selected\n if (props.types && props.types.length === 1) {\n const pos = this.visibleCols.indexOf('type');\n pos !== -1 && this.visibleCols.splice(pos, 1);\n }\n\n this.possibleCols = SCREEN_WIDTHS.xl.fields;\n\n let customDialog = null;\n\n if (props.router) {\n const location = props.router.getLocation();\n if (location.id && location.dialog === 'customs') {\n customDialog = [location.id];\n this.pauseSubscribe(true);\n }\n }\n\n let selected = (props.selected || '');\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.map(id => id.replace(/[\"']/g, '')).filter(id => id);\n\n let columns = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columns`);\n try {\n columns = columns ? JSON.parse(columns) : null;\n } catch (e) {\n columns = null;\n }\n\n let columnsWidths = null; // (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsWidths`);\n try {\n columnsWidths = columnsWidths ? JSON.parse(columnsWidths) : {};\n } catch (e) {\n columnsWidths = {};\n }\n\n this.imagePrefix = props.imagePrefix || '.';\n let foldersFirst = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.foldersFirst`);\n if (foldersFirst === 'false') {\n foldersFirst = false;\n } else if (foldersFirst === 'true') {\n foldersFirst = true;\n } else {\n foldersFirst = props.foldersFirst === undefined ? true : props.foldersFirst;\n }\n\n let statesView = false;\n try {\n statesView = this.props.objectStatesView ? JSON.parse((window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectStatesView`)) || false : false;\n } catch (error) {\n // ignore\n }\n\n this.state = {\n loaded: false,\n foldersFirst,\n selected,\n selectedNonObject: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.selectedNonObject`) || '',\n filter,\n filterKey: 0,\n depth: 0,\n expandAllVisible: false,\n expanded,\n toast: '',\n scrollBarWidth: 16,\n customDialog,\n editObjectDialog: '',\n viewFileDialog: '',\n enumDialog: null,\n roleDialog: null,\n statesView,\n columns,\n columnsForAdmin: null,\n columnsSelectorShow: false,\n columnsAuto: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsAuto`) !== 'false',\n columnsWidths,\n columnsDialogTransparent: 100,\n columnsEditCustomDialog: null,\n customColumnDialogValueChanged: false,\n showExportDialog: false,\n linesEnabled: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.lines`) === 'true',\n showDescription: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.desc`) !== 'false',\n };\n\n this.edit = {};\n\n this.texts = {\n value: props.t('ra_tooltip_value'),\n ack: props.t('ra_tooltip_ack'),\n ts: props.t('ra_tooltip_ts'),\n lc: props.t('ra_tooltip_lc'),\n from: props.t('ra_tooltip_from'),\n user: props.t('ra_tooltip_user'),\n c: props.t('ra_tooltip_comment'),\n quality: props.t('ra_tooltip_quality'),\n editObject: props.t('ra_tooltip_editObject'),\n deleteObject: props.t('ra_tooltip_deleteObject'),\n customConfig: props.t('ra_tooltip_customConfig'),\n copyState: props.t('ra_tooltip_copyState'),\n editState: props.t('ra_tooltip_editState'),\n close: props.t('ra_Close'),\n filter_id: props.t('ra_filter_id'),\n filter_name: props.t('ra_filter_name'),\n filter_type: props.t('ra_filter_type'),\n filter_role: props.t('ra_filter_role'),\n filter_room: props.t('ra_filter_room'),\n filter_func: props.t('ra_filter_func'),\n filter_custom: props.t('ra_filter_customs'), //\n filterCustomsWithout: props.t('ra_filter_customs_without'), //\n objectChangedByUser: props.t('ra_object_changed_by_user'), // Object last changed at\n objectChangedBy: props.t('ra_object_changed_by'), // Object changed by\n objectChangedFrom: props.t('ra_state_changed_from'), // Object changed from\n stateChangedBy: props.t('ra_state_changed_by'), // State changed by\n stateChangedFrom: props.t('ra_state_changed_from'), // State changed from\n ownerGroup: props.t('ra_Owner group'),\n ownerUser: props.t('ra_Owner user'),\n deviceError: props.t('ra_Error'),\n deviceDisconnected: props.t('ra_Disconnected'),\n deviceConnected: props.t('ra_Connected'),\n\n aclOwner_read_object: props.t('ra_aclOwner_read_object'),\n aclOwner_read_state: props.t('ra_aclOwner_read_state'),\n aclOwner_write_object: props.t('ra_aclOwner_write_object'),\n aclOwner_write_state: props.t('ra_aclOwner_write_state'),\n aclGroup_read_object: props.t('ra_aclGroup_read_object'),\n aclGroup_read_state: props.t('ra_aclGroup_read_state'),\n aclGroup_write_object: props.t('ra_aclGroup_write_object'),\n aclGroup_write_state: props.t('ra_aclGroup_write_state'),\n aclEveryone_read_object: props.t('ra_aclEveryone_read_object'),\n aclEveryone_read_state: props.t('ra_aclEveryone_read_state'),\n aclEveryone_write_object: props.t('ra_aclEveryone_write_object'),\n aclEveryone_write_state: props.t('ra_aclEveryone_write_state'),\n };\n\n this.levelPadding = props.levelPadding || ITEM_LEVEL;\n\n let resizerCurrentWidths = (window._localStorage || window.localStorage).getItem(`${this.props.dialogName || 'App'}.table`);\n if (resizerCurrentWidths) {\n try {\n resizerCurrentWidths = JSON.parse(resizerCurrentWidths);\n this.storedWidths = JSON.parse(JSON.stringify(SCREEN_WIDTHS[this.props.width]));\n Object.keys(resizerCurrentWidths)\n .forEach(id => {\n if (id === 'id') {\n SCREEN_WIDTHS[this.props.width].idWidth = resizerCurrentWidths.id;\n } else if (id === 'nameHeader') {\n SCREEN_WIDTHS[this.props.width].widths.name = resizerCurrentWidths[id];\n } else if (SCREEN_WIDTHS[this.props.width].widths[id] !== undefined) {\n SCREEN_WIDTHS[this.props.width].widths[id] = resizerCurrentWidths[id];\n }\n });\n\n this.customWidth = true;\n } catch (e) {\n // ignore\n }\n }\n\n this.calculateColumnsVisibility();\n }\n\n loadAllObjects(update) {\n const props = this.props;\n let objects;\n\n return new Promise(resolve => {\n this.setState({ updating: true }, () => resolve());\n })\n .then(() => (this.props.objectsWorker ?\n this.props.objectsWorker.getObjects(update) :\n props.socket.getObjects(update, true)))\n .then(_objects => {\n objects = _objects;\n if (props.types && props.types[0] !== 'state') {\n if (props.length >= 1) {\n console.error('more than one type does not supported! Use filterFunc instead');\n }\n return props.socket.getObjectViewSystem(props.types[0], null, null);\n }\n return !objects['system.config'] ? props.socket.getObject('system.config')\n .then(obj => ({ 'system.config': obj })) : Promise.resolve(null);\n })\n .then(moreObjects => {\n this.systemConfig = objects['system.config'] || moreObjects['system.config'] || {};\n\n if (moreObjects) {\n if (moreObjects['system.config']) {\n delete moreObjects['system.config'];\n }\n Object.assign(objects, moreObjects);\n }\n\n this.systemConfig.common = this.systemConfig.common || {};\n this.systemConfig.common.defaultNewAcl = this.systemConfig.common.defaultNewAcl || {};\n this.systemConfig.common.defaultNewAcl.owner = this.systemConfig.common.defaultNewAcl.owner || 'system.user.admin';\n this.systemConfig.common.defaultNewAcl.ownerGroup = this.systemConfig.common.defaultNewAcl.ownerGroup || 'system.group.administrator';\n if (typeof this.systemConfig.common.defaultNewAcl.state !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n if (typeof this.systemConfig.common.defaultNewAcl.object !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n\n if (typeof props.filterFunc === 'function') {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n try {\n if (props.filterFunc(objects[id])) {\n this.objects[id] = objects[id];\n }\n } catch (e) {\n console.log(`Error by filtering of \"${id}\": ${e}`);\n }\n });\n } else\n if (props.types) {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n const type = objects[id] && objects[id].type;\n // include \"folder\" types too\n if (type && (\n type === 'channel' ||\n type === 'device' ||\n type === 'enum' ||\n type === 'folder' ||\n type === 'adapter' ||\n type === 'instance' ||\n props.types.includes(type))\n ) {\n this.objects[id] = objects[id];\n }\n });\n } else {\n this.objects = objects;\n }\n\n // read default history\n this.defaultHistory = this.systemConfig.common.defaultHistory;\n if (this.defaultHistory) {\n props.socket.getState(`system.adapter.${this.defaultHistory}.alive`)\n .then(state => {\n if (!state || !state.val) {\n this.defaultHistory = '';\n }\n })\n .catch(e => window.alert(`Cannot get state: ${e}`));\n }\n\n return this.getAdditionalColumns();\n })\n .then(columnsForAdmin => {\n this.calculateColumnsVisibility(null, null, columnsForAdmin);\n\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n\n // Show first selected item\n const node = this.state.selected && this.state.selected.length && findNode(this.root, this.state.selected[0]);\n\n this.lastAppliedFilter = null;\n\n // If selected ID is not visible, reset filter\n if (node && !applyFilter(node, this.state.filter, this.props.lang, this.objects, null, null, props.customFilter, props.types)) {\n // reset filter\n this.setState({ filter: { ...DEFAULT_FILTER }, columnsForAdmin }, () => {\n this.setState({ loaded: true, updating: false }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n });\n } else {\n this.setState({ loaded: true, updating: false, columnsForAdmin }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n }\n })\n .catch(e => this.showError(e));\n }\n\n /**\n * @private\n * @param {ioBroker.EmptyCallback} cb\n */\n expandAllSelected(cb) {\n const expanded = [...this.state.expanded];\n let changed = false;\n this.state.selected.forEach(id => {\n const parts = id.split('.');\n const path = [];\n for (let i = 0; i < parts.length - 1; i++) {\n path.push(parts[i]);\n if (!expanded.includes(path.join('.'))) {\n expanded.push(path.join('.'));\n changed = true;\n }\n }\n });\n if (changed) {\n expanded.sort();\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ expanded }, cb);\n } else {\n cb && cb();\n }\n }\n\n /**\n * @private\n * @param {boolean} [isDouble]\n */\n onAfterSelect(isDouble) {\n this.lastSelectedItems = [...this.state.selected];\n if (this.state.selected && this.state.selected.length) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, JSON.stringify(this.lastSelectedItems));\n\n const name = this.lastSelectedItems.length === 1 ? Utils.getObjectName(this.objects, this.lastSelectedItems[0], null, { language: this.props.lang }) : '';\n this.props.onSelect && this.props.onSelect(this.lastSelectedItems, name, isDouble);\n } else {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, '');\n if (this.state.selected.length) {\n this.setState({ selected: [] }, () => this.props.onSelect && this.props.onSelect([], ''));\n } else {\n this.props.onSelect && this.props.onSelect([], '');\n }\n }\n }\n\n /**\n * @private\n * @param {import('./types').ObjectBrowserProps} props\n * @param {any} state\n */\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n if (props.expertMode !== undefined && props.expertMode !== state.filter.expertMode) {\n changed = true;\n newState.filter = { ...state.filter };\n newState.filter.expertMode = props.expertMode;\n }\n return changed ? newState : null;\n }\n\n /**\n * Called when component is mounted.\n */\n componentDidMount() {\n this.loadAllObjects(!objectsAlreadyLoaded)\n .then(() => {\n if (this.props.objectsWorker) {\n this.props.objectsWorker.registerHandler(this.onObjectChange);\n } else {\n this.props.socket.subscribeObject('*', this.onObjectChange);\n }\n\n objectsAlreadyLoaded = true;\n });\n }\n\n /**\n * Called when component is unmounted.\n */\n componentWillUnmount() {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = null;\n\n if (this.props.objectsWorker) {\n this.props.objectsWorker.unregisterHandler(this.onObjectChange, true);\n } else {\n this.props.socket.unsubscribeObject('*', this.onObjectChange);\n }\n\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log(`- unsubscribe ${pattern}`);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n this.objects = {};\n }\n\n /**\n * Called when component is mounted.\n */\n refreshComponent() {\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log(`- unsubscribe ${pattern}`);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n\n this.loadAllObjects(true)\n .then(() => console.log('updated!'));\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null}\n */\n renderErrorDialog() {\n return this.state.error ? <Dialog\n open={!0}\n maxWidth=\"sm\"\n fullWidth\n onClose={() => this.setState({ error: '' })}\n aria-labelledby=\"error-dialog-title\"\n aria-describedby=\"error-dialog-description\"\n >\n <DialogTitle id=\"alert-dialog-title\">{this.props.title || this.props.t('ra_Error')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.state.error}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ error: '' })}\n color=\"primary\"\n autoFocus\n startIcon={<IconCheck />}\n >\n {this.props.t('ra_Ok')}\n </Button>\n </DialogActions>\n </Dialog> : null;\n }\n\n /**\n * Show the error dialog.\n * @param {any} error\n */\n showError(error) {\n this.setState({ error: typeof error === 'object' ? (error && typeof error.toString === 'function' ? error.toString() : JSON.stringify(error)) : error });\n }\n\n /**\n * Called when an item is selected/deselected.\n * @param {string} toggleItem\n * @param {boolean} [isDouble]\n */\n onSelect(toggleItem, isDouble) {\n if (!this.props.multiSelect) {\n if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n if (this.state.selected[0] !== toggleItem) {\n this.setState({ selected: [toggleItem], selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n } else if (isDouble && this.props.onSelect) {\n this.onAfterSelect(isDouble);\n }\n } else {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.selectedNonObject`, toggleItem);\n this.setState({ selected: [], selectedNonObject: toggleItem }, () =>\n this.onAfterSelect());\n }\n } else if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n\n const selected = [...this.state.selected];\n const pos = selected.indexOf(toggleItem);\n if (pos === -1) {\n selected.push(toggleItem);\n selected.sort();\n } else if (!isDouble) {\n selected.splice(pos, 1);\n }\n\n this.setState({ selected, selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n }\n }\n\n /**\n * @private\n * @param {boolean} isLast\n */\n _renderDefinedList(isLast) {\n const cols = [...this.possibleCols];\n cols.unshift('id');\n if (this.props.columns && !this.props.columns.includes('buttons')) {\n const pos = cols.indexOf('buttons');\n if (pos !== -1) {\n cols.splice(pos, 1);\n }\n }\n return cols\n .filter(id => (isLast && (id === 'val' || id === 'buttons')) || (!isLast && id !== 'val' && id !== 'buttons'))\n .map(id =>\n <ListItemButton onClick={() => {\n if (!this.state.columnsAuto && id !== 'id') {\n const columns = [...(this.state.columns || [])];\n const pos = columns.indexOf(id);\n if (pos === -1) {\n columns.push(id);\n columns.sort();\n } else {\n columns.splice(pos, 1);\n }\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.calculateColumnsVisibility(null, columns);\n this.setState({ columns });\n }\n }} key={id}>\n <Checkbox\n edge=\"start\"\n disabled={id === 'id' || this.state.columnsAuto}\n checked={id === 'id' || (this.state.columnsAuto ? this.visibleCols.includes(id) : (this.state.columns && this.state.columns.includes(id)))}\n disableRipple\n />\n <ListItemText primary={this.texts['filter_' + id] || this.props.t('ra_' + id)} />\n {/*\n <ListItemSecondaryAction>\n <FormControl\n variant=\"standard\"\n className={this.props.classes.columnsDialogInputWidth}\n style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n classes={{ underline: 'no-underline' }}\n placeholder={this.props.t('ra_Width')}\n value={this.state.columnsWidths[id] || ''}\n onChange={e => {\n const columnsWidths = JSON.parse(JSON.stringify(this.state.columnsWidths));\n columnsWidths[id] = e.target.value;\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsWidths', JSON.stringify(columnsWidths));\n this.calculateColumnsVisibility(null, null, null, columnsWidths);\n this.setState({ columnsWidths });\n }}\n autoComplete=\"off\"\n />\n </FormControl>\n </ListItemSecondaryAction>\n */}\n </ListItemButton>\n );\n }\n\n /**\n * Renders the columns' selector.\n * @returns {JSX.Element | null}\n */\n renderColumnsSelectorDialog() {\n if (!this.state.columnsSelectorShow) {\n return null;\n }\n return <Dialog\n onClose={() => this.setState({ columnsSelectorShow: false })}\n open={!0}\n classes={{ root: Utils.clsx(this.props.classes.dialogColumns, this.props.classes[`transparent_${this.state.columnsDialogTransparent}`]) }}\n >\n <DialogTitle className={this.props.classes.fontSizeTitle}>{this.props.t('ra_Configure')}</DialogTitle>\n <DialogContent className={this.props.classes.fontSizeTitle}>\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch\n checked={this.state.foldersFirst}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.foldersFirst`, this.state.foldersFirst ? 'false' : 'true');\n this.setState({ foldersFirst: !this.state.foldersFirst });\n }}\n />}\n label={this.props.t('ra_Folders always first')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch\n checked={this.state.linesEnabled}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.lines`, this.state.linesEnabled ? 'false' : 'true');\n this.setState({ linesEnabled: !this.state.linesEnabled });\n }}\n />}\n label={this.props.t('ra_Show lines between rows')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.columnsAuto} onChange={() => {\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsAuto', this.state.columnsAuto ? 'false' : 'true');\n if (!this.state.columnsAuto) {\n this.calculateColumnsVisibility(true);\n this.setState({ columnsAuto: true });\n } else {\n if (!this.state.columns) {\n this.calculateColumnsVisibility(false, [...this.visibleCols]);\n this.setState({ columnsAuto: false, columns: [...this.visibleCols] });\n } else {\n this.calculateColumnsVisibility(false);\n this.setState({ columnsAuto: false });\n }\n }\n }} />}\n label={this.props.t('ra_Auto (no custom columns)')}\n />\n {\n /*\n <Typography classes={{ root: this.props.classes.dialogColumnsLabel }}>{this.props.t('ra_Transparent dialog')}</Typography>\n <Slider classes={{ root: this.props.classes.width100 }} value={this.state.columnsDialogTransparent} min={20} max={100} step={10} onChange={(event, newValue) =>\n this.setState({ columnsDialogTransparent: newValue })\n } />\n */\n }\n <List>\n {this._renderDefinedList(false)}\n\n {this.state.columnsForAdmin && Object.keys(this.state.columnsForAdmin).sort().map(adapter =>\n this.state.columnsForAdmin[adapter].map(column =>\n <ListItemButton onClick={() => {\n if (!this.state.columnsAuto) {\n const columns = [...(this.state.columns || [])];\n const id = `_${adapter}_${column.path}`;\n const pos = columns.indexOf(id);\n if (pos === -1) {\n columns.push(id);\n columns.sort();\n } else {\n columns.splice(pos, 1);\n }\n this.calculateColumnsVisibility(null, columns);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.columns`, JSON.stringify(columns));\n this.setState({ columns });\n }\n }} key={`${adapter}_${column.name}`}>\n <ListItemIcon>\n <Checkbox\n disabled={this.state.columnsAuto}\n edge=\"start\"\n checked={!this.state.columnsAuto && this.state.columns && this.state.columns.includes(`_${adapter}_${column.path}`)}\n disableRipple\n />\n </ListItemIcon>\n <ListItemText primary={`${column.name} (${adapter})`} />\n {/*\n <ListItemSecondaryAction>\n <FormControl\n variant=\"standard\"\n className={this.props.classes.columnsDialogInputWidth}\n style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n classes={{ underline: 'no-underline' }}\n placeholder={this.props.t('ra_Width')}\n value={this.state.columnsWidths['_' + adapter + '_' + column.path] || ''}\n onChange={e => {\n const columnsWidths = JSON.parse(JSON.stringify(this.state.columnsWidths));\n columnsWidths['_' + adapter + '_' + column.path] = e.target.value;\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsWidths', JSON.stringify(columnsWidths));\n this.calculateColumnsVisibility(null, null, null, columnsWidths);\n this.setState({ columnsWidths });\n }}\n autoComplete=\"off\"\n />\n </FormControl>\n </ListItemSecondaryAction>\n */}\n </ListItemButton>\n )\n )}\n {this._renderDefinedList(true)}\n </List>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ columnsSelectorShow: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >\n {this.texts.close}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n\n /**\n * @private\n */\n getAdditionalColumns() {\n return this.props.socket.getAdapters()\n .then(instances => {\n let columnsForAdmin = null;\n // find all additional columns\n instances.forEach(obj =>\n columnsForAdmin = this.parseObjectForAdmins(columnsForAdmin, obj));\n\n return columnsForAdmin;\n })\n .catch(() => {\n // window.alert('Cannot get adapters: ' + e);\n // Object browser in Web has no additional columns\n });\n }\n\n /**\n * @private\n */\n checkUnsubscribes() {\n // Remove unused subscriptions\n for (let i = this.subscribes.length - 1; i >= 0; i--) {\n !this.recordStates.includes(this.subscribes[i]) && this.unsubscribe(this.subscribes[i]);\n }\n this.recordStates = [];\n }\n\n /**\n * Find an item.\n * @param {string} id\n * @param {string[] | undefined} [_parts]\n * @param {{ data: { name: string; id: string; }; children: never[]; } | null | undefined} [_root]\n * @param {string | undefined} [_partyId]\n * @returns {any}\n */\n findItem(id, _parts, _root, _partyId) {\n _parts = _parts || id.split('.');\n _root = _root || this.root;\n if (!_root || !_parts.length) {\n return null;\n }\n\n _partyId = (_partyId ? `${_partyId}.` : '') + _parts.shift();\n\n if (_root.children) {\n const item = _root.children.find(i => i.data.id === _partyId);\n if (item) {\n if (item.data.id === id) {\n return item;\n }\n if (_parts.length) {\n return this.findItem(id, _parts, item, _partyId);\n }\n } else {\n return null;\n }\n }\n\n return null;\n }\n\n /**\n * Called when a state changes.\n * @param {string} id\n * @param {ioBroker.State} state\n */\n onStateChange = (id, state) => {\n console.log(`> stateChange ${id}`);\n if (this.states[id]) {\n const item = this.findItem(id);\n if (item && item.data.state) {\n item.data.state = null;\n }\n }\n this.states[id] = state;\n\n if (!this.pausedSubscribes) {\n if (!this.statesUpdateTimer) {\n this.statesUpdateTimer = setTimeout(() => {\n this.statesUpdateTimer = null;\n this.forceUpdate();\n }, 300);\n }\n } else if (this.statesUpdateTimer) {\n clearTimeout(this.statesUpdateTimer);\n this.statesUpdateTimer = null;\n }\n };\n\n /**\n * @private\n * @param {{ [x: string]: any; }} columnsForAdmin\n * @param {any} obj\n */\n parseObjectForAdmins(columnsForAdmin, obj) {\n if (obj.common && obj.common.adminColumns && obj.common.name) {\n let columns = obj.common.adminColumns;\n if (typeof columns !== 'object') {\n columns = [columns];\n }\n columns = columns.map(item => {\n if (typeof item !== 'object') {\n return { path: item, name: item.split('.').pop() };\n }\n\n // string => array\n if (item.objTypes && typeof item.objTypes !== 'object') {\n item.objTypes = [item.objTypes];\n } else if (!item.objTypes) {\n item.objTypes = null;\n }\n\n if (!item.name && item.path) {\n return {\n path: item.path,\n name: item.path.split('.').pop(),\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }\n if (typeof item.name !== 'object' && item.path) {\n return {\n path: item.path,\n name: item.name,\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }\n if (!item.path) {\n console.warn(`Admin columns for ${obj._id} ignored, because path not found`);\n return null;\n }\n return {\n path: item.path,\n name: item.name[this.props.lang] || item.name.en,\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }).filter(item => item);\n\n if (columns && columns.length) {\n columnsForAdmin = columnsForAdmin || {};\n columnsForAdmin[obj.common.name] = columns.sort((a, b) => (a.path > b.path ? -1 : (a.path < b.path ? 1 : 0)));\n }\n } else if (obj.common && obj.common.name && columnsForAdmin && columnsForAdmin[obj.common.name]) {\n delete columnsForAdmin[obj.common.name];\n }\n return columnsForAdmin;\n }\n\n /**\n * @param {string} id\n * @param {ioBroker.Object} obj\n */\n onObjectChange = (id, obj/* , oldObj */) => {\n let newState;\n\n if (Array.isArray(id)) {\n id.forEach(event => {\n console.log(`> objectChange ${event.id}`);\n\n if (event.obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(event.obj)) {\n return;\n }\n\n if (event.id.startsWith('system.adapter.') && event.obj && event.obj.type === 'adapter') {\n const columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));\n\n this.parseObjectForAdmins(columnsForAdmin, event.obj);\n\n if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {\n newState = { columnsForAdmin };\n }\n }\n this.objects = this.objects || [];\n if (this.objects[event.id]) {\n if (event.obj) {\n this.objects[event.id] = event.obj;\n } else {\n delete this.objects[event.id];\n }\n }\n });\n } else {\n console.log(`> objectChange ${id}`);\n this.objects = this.objects || [];\n\n if (obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(obj)) {\n return;\n }\n\n if (id.startsWith('system.adapter.') && obj && obj.type === 'adapter') {\n const columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));\n this.parseObjectForAdmins(columnsForAdmin, obj);\n if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {\n newState = { columnsForAdmin };\n }\n }\n\n if (this.objects[id]) {\n if (obj) {\n this.objects[id] = obj;\n } else {\n delete this.objects[id];\n }\n }\n }\n\n newState && this.setState(newState);\n\n if (!this.objectsUpdateTimer && this.objects) {\n this.objectsUpdateTimer = setTimeout(() => {\n this.objectsUpdateTimer = null;\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n this.lastAppliedFilter = null; // apply filter anew\n\n if (!this.pausedSubscribes) {\n this.forceUpdate();\n }\n // else it will be re-rendered when dialog will be closed\n }, 500);\n }\n };\n\n /**\n * @private\n * @param {string} id\n */\n subscribe(id) {\n if (!this.subscribes.includes(id)) {\n this.subscribes.push(id);\n console.log(`+ subscribe ${id}`);\n !this.pausedSubscribes && this.props.socket.subscribeState(id, this.onStateChange);\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n unsubscribe(id) {\n const pos = this.subscribes.indexOf(id);\n if (pos !== -1) {\n this.subscribes.splice(pos, 1);\n if (this.states[id]) {\n delete this.states[id];\n }\n console.log(`- unsubscribe ${id}`);\n this.props.socket.unsubscribeState(id, this.onStateChange);\n\n if (this.pausedSubscribes) {\n console.warn('Unsubscribe during pause?');\n }\n }\n }\n\n /**\n * @private\n * @param {boolean} isPause\n */\n pauseSubscribe(isPause) {\n if (!this.pausedSubscribes && isPause) {\n this.pausedSubscribes = true;\n this.subscribes.forEach(id => this.props.socket.unsubscribeState(id, this.onStateChange));\n } else if (this.pausedSubscribes && !isPause) {\n this.pausedSubscribes = false;\n this.subscribes.forEach(id => this.props.socket.subscribeState(id, this.onStateChange));\n }\n }\n\n /**\n * @private\n * @param {string} [name]\n * @param {boolean} [value]\n */\n onFilter(name, value) {\n this.filterTimer = null;\n const filter = { ...this.state.filter };\n\n Object.keys(this.filterRefs).forEach(_name => {\n if (this.filterRefs[_name] && this.filterRefs[_name].current) {\n for (let i = 0; i < this.filterRefs[_name].current.children.length; i++) {\n if (this.filterRefs[_name].current.children[i].tagName === 'INPUT') {\n filter[_name] = this.filterRefs[_name].current.children[i].value;\n break;\n }\n }\n }\n });\n\n if (name) {\n filter[name] = value;\n if (name === 'expertMode') {\n (window._sessionStorage || window.sessionStorage).setItem('App.expertMode', value ? 'true' : 'false');\n }\n }\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));\n this.setState({ filter }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n clearFilter() {\n const filter = { ...this.state.filter };\n\n Object.keys(this.filterRefs).forEach(name => {\n if (this.filterRefs[name] && this.filterRefs[name].current) {\n for (let i = 0; i < this.filterRefs[name].current.childNodes.length; i++) {\n const item = this.filterRefs[name].current.childNodes[i];\n if (item.tagName === 'INPUT') {\n filter[name] = '';\n item.value = '';\n break;\n }\n }\n }\n });\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));\n this.setState({ filter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n isFilterEmpty() {\n const someNotEmpty = Object.keys(this.state.filter).find(attr =>\n attr !== 'expertMode' && this.state.filter[attr]);\n return !someNotEmpty;\n }\n\n /**\n * @private\n * @param {string} name\n */\n getFilterInput(name) {\n return <FormControl\n className={Utils.clsx(this.props.classes.headerCellInput, this.props.classes.filterInput)}\n key={`${name}_${this.state.filterKey}`}\n // style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n ref={this.filterRefs[name]}\n classes={{ underline: 'no-underline' }}\n id={name}\n placeholder={this.texts[`filter_${name}`]}\n defaultValue={this.state.filter[name]}\n onChange={() => {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => this.onFilter(), 400);\n }}\n autoComplete=\"off\"\n />\n {this.filterRefs[name]?.current?.firstChild.value ?\n <div\n style={{\n position: 'absolute',\n right: 0,\n }}\n >\n <IconButton\n size=\"small\"\n onClick={() => {\n this.filterRefs[name].current.firstChild.value = '';\n this.onFilter(name, '');\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </FormControl>;\n }\n\n /**\n * @private\n * @param {string} name\n * @param {any[]} values\n */\n getFilterSelect(name, values) {\n const hasIcons = !!values.find(item => item.icon);\n return <div style={{ position: 'relative' }}>\n <Select\n variant=\"standard\"\n key={`${name}_${this.state.filterKey}`}\n ref={this.filterRefs[name]}\n className={`${this.props.classes.headerCellInput} no-underline`}\n onChange={() => {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => this.onFilter(), 400);\n }}\n defaultValue={this.state.filter[name] || ''}\n inputProps={{ name, id: name }}\n displayEmpty\n >\n <MenuItem key=\"empty\" value=\"\">\n <span className={this.props.classes.selectNone}>{this.texts[`filter_${name}`]}</span>\n </MenuItem>\n {values.map(item => {\n let id;\n let _name;\n let icon;\n if (typeof item === 'object') {\n id = item.value;\n _name = item.name;\n icon = item.icon;\n } else {\n id = item;\n _name = item;\n }\n return <MenuItem className={this.props.classes.headerCellSelectItem} key={id} value={id}>\n {icon || (hasIcons ? <div className=\"itemIcon\" /> : null)}\n {_name}\n </MenuItem>;\n })}\n </Select>\n {this.filterRefs[name]?.current?.childNodes[1]?.value ?\n <div className={Utils.clsx(this.props.classes.selectClearButton)}>\n <IconButton\n size=\"small\"\n onClick={() => {\n const newFilter = { ...this.state.filter };\n newFilter[name] = '';\n this.filterRefs[name].current.childNodes[1].value = '';\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(newFilter));\n this.setState({ filter: newFilter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(newFilter));\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n */\n getFilterSelectRole() {\n return this.getFilterSelect('role', this.info.roles);\n }\n\n /**\n * @private\n */\n getFilterSelectRoom() {\n const rooms = this.info.roomEnums.map(id => ({\n name: getName(this.objects[id]?.common?.name || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon || ''} className={this.props.classes.selectIcon} />,\n }));\n\n return this.getFilterSelect('room', rooms);\n }\n\n /**\n * @private\n */\n getFilterSelectFunction() {\n const func = this.info.funcEnums.map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon || ''} className={this.props.classes.selectIcon} />,\n }));\n\n return this.getFilterSelect('func', func);\n }\n\n /**\n * @private\n */\n getFilterSelectType() {\n const types = this.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type],\n }));\n\n return this.getFilterSelect('type', types);\n }\n\n /**\n * @private\n */\n getFilterSelectCustoms() {\n if (this.info.customs.length > 1) {\n const customs = this.info.customs.map(id => ({\n name: id === '_' ? this.texts.filterCustomsWithout : id,\n value: id,\n icon: id === '_' ? null : <Icon src={getSelectIdIcon(this.objects, id, this.imagePrefix) || ''} className={this.props.classes.selectIcon} />,\n }));\n return this.getFilterSelect('custom', customs);\n }\n return null;\n }\n\n /**\n * @private\n * @param {any} [root]\n * @param {any[]} [expanded]\n */\n onExpandAll(root, expanded) {\n root = root || this.root;\n expanded = expanded || [];\n\n root.children && root.children.forEach(item => {\n if (item.data.sumVisibility) {\n expanded.push(item.data.id);\n this.onExpandAll(item, expanded);\n }\n });\n\n if (root === this.root) {\n expanded.sort();\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify([]));\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, '[]');\n this.setState({ expanded: [], depth: 0, selected: [] }, () =>\n this.onAfterSelect());\n }\n\n /**\n * @private\n * @param {any} root\n * @param {number} depth\n * @param {any[]} expanded\n */\n expandDepth(root, depth, expanded) {\n root = root || this.root;\n if (depth > 0) {\n if (root.children) {\n root.children.forEach(item => {\n if (item.data.sumVisibility) {\n if (!binarySearch(expanded, item.data.id)) {\n expanded.push(item.data.id);\n expanded.sort();\n }\n if (depth - 1 > 0) {\n this.expandDepth(item, depth - 1, expanded);\n }\n }\n });\n }\n }\n }\n\n /**\n * @private\n * @param {number} depth\n * @param {any[]} expanded\n */\n static collapseDepth(depth, expanded) {\n return expanded.filter(id => id.split('.').length <= depth);\n }\n\n /**\n * @private\n */\n onExpandVisible() {\n if (this.state.depth < 9) {\n const depth = this.state.depth + 1;\n const expanded = [...this.state.expanded];\n this.expandDepth(this.root, depth, expanded);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n */\n onStatesViewVisible() {\n const statesView = !this.state.statesView;\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectStatesView`, JSON.stringify(statesView));\n this.setState({ statesView });\n }\n\n /**\n * @private\n */\n onCollapseVisible() {\n if (this.state.depth > 0) {\n const depth = this.state.depth - 1;\n const expanded = ObjectBrowser.collapseDepth(depth, this.state.expanded);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n getEnumsForId = id => {\n const result = [];\n this.info.enums.forEach(_id => {\n if (this.objects[_id]?.common?.members?.includes(id)) {\n const en = {\n _id: this.objects[_id]._id,\n common: JSON.parse(JSON.stringify(this.objects[_id].common)),\n native: this.objects[_id].native,\n type: 'enum',\n };\n if (en.common) {\n delete en.common.members;\n delete en.common.custom;\n delete en.common.mobile;\n }\n result.push(en);\n }\n });\n\n return result.length ? result : undefined;\n };\n\n /**\n * @private\n * @param {array} enums\n * @param {string} objId\n */\n _createAllEnums = async (enums, objId) => {\n for (let e = 0; e < enums.length; e++) {\n let id = enums[e];\n let _enObj;\n if (typeof id === 'object') {\n _enObj = id;\n id = id._id;\n }\n let enObj = this.objects[id];\n if (!enObj) {\n enObj = _enObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {},\n };\n\n enObj.common = enObj.common || {};\n enObj.common.members = [objId];\n\n await this.props.socket.setObject(id, enObj);\n } else if (!enObj.common?.members?.includes(objId)) {\n enObj.common = enObj.common || {};\n enObj.common.members = enObj.common.members || [];\n // add missing object\n enObj.common.members.push(objId);\n enObj.common.members.sort();\n await this.props.socket.setObject(id, enObj);\n }\n }\n };\n\n /**\n * @private\n * @param {any} objs\n */\n loadObjects = async objs => {\n if (objs) {\n for (const id in objs) {\n if (!Object.hasOwn(objs, id) || !objs[id]) {\n continue;\n }\n const obj = objs[id];\n let enums = null;\n if (obj && obj.common && obj.common.enums) {\n enums = obj.common.enums;\n delete obj.common.enums;\n } else {\n enums = null;\n }\n try {\n await this.props.socket.setObject(id, obj);\n enums && (await this._createAllEnums(enums, obj._id));\n if (obj.type === 'state') {\n try {\n const state = await this.props.socket.getState(obj._id);\n if (!state || state.val === null) {\n try {\n await this.props.socket.setState(obj._id, !obj.common || obj.common.def === undefined ? null : obj.common.def, true);\n } catch (e) {\n window.alert(`Cannot set state \"${obj._id}\": ${e}`);\n }\n }\n } catch (e) {\n window.alert(`Cannot read state \"${obj._id}\": ${e}`);\n }\n }\n } catch (error) {\n window.alert(error);\n }\n }\n }\n };\n\n _getSelectedIdsForExport() {\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = [];\n const keys = Object.keys(this.objects);\n keys.sort();\n const id = this.state.selected[0] || this.state.selectedNonObject;\n const idDot = `${id}.`;\n const idLen = idDot.length;\n for (let k = 0; k < keys.length; k++) {\n const key = keys[k];\n if (id === key || key.startsWith(idDot)) {\n result.push(key);\n }\n if (key.substring(0, idLen) > idDot) {\n break;\n }\n }\n\n return result;\n }\n return [];\n }\n\n _exportObjects(isAll) {\n if (isAll) {\n generateFile('allObjects.json', this.objects);\n } else\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = {};\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n this._getSelectedIdsForExport().forEach(key => {\n result[key] = JSON.parse(JSON.stringify(this.objects[key]));\n // add enum information\n if (result[key].common) {\n const enums = this.getEnumsForId(key);\n if (enums) {\n result[key].common.enums = enums;\n }\n }\n });\n\n generateFile(`${id}.json`, result);\n } else {\n window.alert(this.props.t('ra_Save of objects-tree is not possible'));\n }\n }\n\n renderExportDialog() {\n if (this.state.showExportDialog === false) {\n return null;\n }\n return <Dialog open={!0}>\n <DialogTitle>{this.props.t('Select type of export')}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.t('You can export all objects or just the selected branch.')}\n <br />\n {this.props.t('Selected %s object(s)', this.state.showExportDialog)}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button color=\"grey\" variant=\"outlined\" onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(true))}>{this.props.t('ra_All objects')} ({Object.keys(this.objects).length})</Button>\n <Button color=\"primary\" variant=\"contained\" autoFocus onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(false))}>{this.props.t('ra_Only selected')} ({this.state.showExportDialog})</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.setState({ showExportDialog: false })} startIcon={<IconClose />}>{this.props.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n\n /**\n * @private\n * @param {object} evt\n */\n handleJsonUpload = evt => {\n const f = evt.target.files[0];\n if (f) {\n const r = new FileReader();\n r.onload = async e => {\n const contents = e.target.result;\n try {\n const json = JSON.parse(contents);\n const len = Object.keys(json).length;\n const id = json._id;\n if (id === undefined && len) {\n await this.loadObjects(json);\n window.alert(this.props.t('ra_%s object(s) processed', len));\n } else {\n // it is only one object in form\n // {\n // \"_id\": \"xxx\",\n // \"common\": \"yyy\",\n // \"native\": \"zzz\"\n // }\n if (!id) {\n return window.alert(this.props.t('ra_Invalid structure'));\n }\n try {\n let enums;\n if (json.common.enums) {\n enums = json.common.enums;\n delete json.common.enums;\n }\n await this.props.socket.setObject(json._id, json);\n if (json.type === 'state') {\n const state = await this.props.socket.getState(json._id);\n if (!state || state.val === null || state.val === undefined) {\n await this.props.socket.getState(json._id, json.common.def === undefined ? null : json.common.def, true);\n }\n }\n if (enums) {\n await this._createAllEnums(enums, json._id);\n }\n\n window.alert(this.props.t('ra_%s was imported', json._id));\n } catch (err) {\n window.alert(err);\n }\n }\n } catch (err) {\n window.alert(err);\n }\n return null;\n };\n r.readAsText(f);\n } else {\n window.alert(this.props.t('ra_Failed to open JSON File'));\n }\n };\n\n toolTipObjectCreating = () => {\n const { t } = this.props;\n\n let value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id]?.type === 'state')) {\n // show default tooltip\n } else if (this.state.filter.expertMode) {\n switch (this.objects[id]?.type) {\n case 'device':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n case 'folder':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n case 'channel':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={1}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n default:\n break;\n }\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={7}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={8}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n }\n }\n\n return value.length ? value : t('ra_Add new child object to selected parent');\n };\n\n /**\n * Renders the toolbar.\n * @returns {JSX.Element}\n */\n getToolbar() {\n let allowObjectCreation = false;\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else if (this.state.filter.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n\n return <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n\n <Tooltip title={this.props.t('ra_Refresh tree')} classes={{ popper: this.props.classes.tooltip }}>\n <div>\n <IconButton\n onClick={() => this.refreshComponent()}\n disabled={this.state.updating}\n size=\"large\"\n >\n <RefreshIcon />\n </IconButton>\n </div>\n </Tooltip>\n {this.props.showExpertButton && !this.props.expertMode &&\n <Tooltip title={this.props.t('ra_expertMode')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"expertMode\"\n color={this.state.filter.expertMode ? 'secondary' : 'default'}\n onClick={() => this.onFilter('expertMode', !this.state.filter.expertMode)}\n size=\"large\"\n >\n <IconExpert />\n </IconButton>\n </Tooltip>}\n {!this.props.disableColumnSelector &&\n <Tooltip title={this.props.t('ra_Configure')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"columnSelector\"\n color={this.state.columnsAuto ? 'primary' : 'default'}\n onClick={() => this.setState({ columnsSelectorShow: true })}\n size=\"large\"\n >\n <IconColumns />\n </IconButton>\n </Tooltip>}\n {this.state.expandAllVisible &&\n <Tooltip title={this.props.t('ra_Expand all nodes')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"expandAll\"\n onClick={() => this.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>}\n <Tooltip title={this.props.t('ra_Collapse all nodes')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"collapseAll\"\n onClick={() => this.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Expand one step node')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => this.onExpandVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconOpen />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Collapse one step node')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => this.onCollapseVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconClosed />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n {this.props.objectStatesView && <Tooltip title={this.props.t('ra_Toggle the states view')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => this.onStatesViewVisible()}\n size=\"large\"\n >\n <LooksOneIcon color={this.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>}\n\n {<Tooltip title={this.props.t('ra_Show/Hide object descriptions')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.desc`, this.state.showDescription ? 'false' : 'true');\n this.setState({ showDescription: !this.state.showDescription })\n }}\n size=\"large\"\n >\n <TextFieldsIcon color={this.state.showDescription ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>}\n\n {this.props.objectAddBoolean ?\n <Tooltip title={this.toolTipObjectCreating()} classes={{ popper: this.props.classes.tooltip }}>\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() => this.setState({ modalNewObj: true })}\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n : null}\n\n {this.props.objectImportExport &&\n <Tooltip title={this.props.t('ra_Add objects tree from JSON file')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleJsonUpload(e), false);\n input.click();\n }}\n size=\"large\"\n >\n <PublishIcon />\n </IconButton>\n </Tooltip>}\n {this.props.objectImportExport && (!!this.state.selected.length || this.state.selectedNonObject) &&\n <Tooltip title={this.props.t('ra_Save objects tree as JSON file')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => this.setState({ showExportDialog: this._getSelectedIdsForExport().length })}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>}\n </div>\n {!!this.props.objectBrowserEditObject && <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t('ra_States')}: ${Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length}`}\n </div>}\n {this.props.objectEditBoolean &&\n <Tooltip title={this.props.t('ra_Edit custom config')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => {\n // get all visible states\n const ids = getVisibleItems(this.root, 'state', this.objects);\n\n if (ids.length) {\n this.pauseSubscribe(true);\n\n if (ids.length === 1) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, this.state.selected[0]);\n this.props.router && this.props.router.doNavigate(null, 'custom', this.state.selected[0]);\n }\n this.setState({ customDialog: ids });\n } else {\n this.setState({ toast: this.props.t('ra_please select object') });\n }\n }}\n size=\"large\"\n >\n <BuildIcon />\n </IconButton>\n </Tooltip>}\n </div>;\n }\n\n /**\n * @private\n * @param {string} id\n */\n toggleExpanded(id) {\n const expanded = JSON.parse(JSON.stringify(this.state.expanded));\n const pos = expanded.indexOf(id);\n if (pos === -1) {\n expanded.push(id);\n expanded.sort();\n } else {\n expanded.splice(pos, 1);\n }\n\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n\n /**\n * @private\n * @param {Event} e\n * @param {string} text\n */\n onCopy(e, text) {\n e.stopPropagation();\n e.preventDefault();\n Utils.copyToClipboard(text, null);\n if (text.length < 50) {\n this.setState({ toast: this.props.t('ra_Copied %s', text) });\n } else {\n this.setState({ toast: this.props.t('ra_Copied') });\n }\n }\n\n renderTooltipAccessControl = acl => {\n // acl ={object,state,owner,ownerGroup}\n if (!acl) {\n return null;\n }\n const check = [\n {\n value: '0x400', valueNum: 0x400, title: 'read', group: 'Owner',\n },\n {\n value: '0x200', valueNum: 0x200, title: 'write', group: 'Owner',\n },\n {\n value: '0x40', valueNum: 0x40, title: 'read', group: 'Group',\n },\n {\n value: '0x20', valueNum: 0x20, title: 'write', group: 'Group',\n },\n {\n value: '0x4', valueNum: 0x4, title: 'read', group: 'Everyone',\n },\n {\n value: '0x2', valueNum: 0x2, title: 'write', group: 'Everyone',\n },\n ];\n const arrayTooltipText = [];\n const funcRenderStateObject = (value = 'object') => {\n const rights = acl[value];\n check.forEach((el, i) => {\n // eslint-disable-next-line no-bitwise\n if (rights & el.valueNum) {\n arrayTooltipText.push(<span key={value + i}>\n {this.texts[`acl${el.group}_${el.title}_${value}`]}\n,\n <span className={value === 'object' ? this.props.classes.rightsObject : this.props.classes.rightsState}>\n {el.value}\n </span>\n </span>);\n }\n });\n };\n arrayTooltipText.push(<span key=\"group\">{`${this.texts.ownerGroup}: ${(acl.ownerGroup || '').replace('system.group.', '')}`}</span>);\n arrayTooltipText.push(<span key=\"owner\">{`${this.texts.ownerUser}: ${(acl.owner || '').replace('system.user.', '')}`}</span>);\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n return arrayTooltipText.length ? <span className={this.props.classes.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span> : '';\n };\n\n /**\n * @param {string} id\n * @param {{ data: { obj: { type: string; }; hasCustoms: any; }; }} item\n * @param {{ cellButtonsButton: string | undefined; cellButtonsButtonAlone: any; cellButtonsButtonIcon: string | undefined; cellButtonsButtonWithCustoms: any; }} classes\n */\n renderColumnButtons(id, item, classes) {\n if (!item.data.obj) {\n return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? <div className={classes.buttonDiv}>\n {this.state.filter.expertMode && this.props.objectEditOfAccessControl ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsEmptyButton, classes.cellButtonMinWidth)}\n onClick={() =>\n this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n---\n </IconButton> : null}\n {this.props.onObjectDelete && item.children && item.children.length ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsButtonAlone)}\n size=\"small\"\n aria-label=\"delete\"\n title={this.texts.deleteObject}\n onClick={() => {\n // calculate number of children\n const keys = Object.keys(this.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n\n this.props.onObjectDelete(id, !!(item.children && item.children.length), false, count + 1);\n }}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null}\n </div> : null;\n }\n\n item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);\n\n const acl = item.data.obj.acl ? (item.data.obj.type === 'state' ? item.data.obj.acl.state : item.data.obj.acl.object) : 0;\n const aclSystemConfig = item.data.obj.acl && (item.data.obj.type === 'state' ? this.systemConfig.common.defaultNewAcl.state : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.state.filter.expertMode && this.props.objectEditOfAccessControl ? <Tooltip key=\"acl\" title={item.data.aclTooltip} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n className={classes.cellButtonMinWidth}\n onClick={() => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n <div className={classes.aclText}>{Number.isNaN(Number(acl)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16)}</div>\n </IconButton>\n </Tooltip> : <div key=\"aclEmpty\" className={classes.cellButtonMinWidth} />,\n <IconButton\n key=\"edit\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"edit\"\n title={this.texts.editObject}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n this.setState({ editObjectDialog: id });\n }}\n >\n <IconEdit className={classes.cellButtonsButtonIcon} />\n </IconButton>,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ? <IconButton\n key=\"delete\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"delete\"\n onClick={() => {\n const keys = Object.keys(this.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n this.props.onObjectDelete(id, !!item.children?.length, !item.data.obj.common?.dontDelete, count);\n }}\n title={this.texts.deleteObject}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n this.props.objectCustomDialog && this.info.hasSomeCustoms && item.data.obj.type === 'state' && item.data.obj.common?.type !== 'file' ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, item.data.hasCustoms ? classes.cellButtonsButtonWithCustoms : classes.cellButtonsButtonWithoutCustoms)}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={this.texts.customConfig}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id] });\n }}\n >\n <IconConfig className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n ];\n }\n\n /**\n * @private\n * @param {string} id\n */\n readHistory(id) {\n /* interface GetHistoryOptions {\n instance?: string;\n start?: number;\n end?: number;\n step?: number;\n count?: number;\n from?: boolean;\n ack?: boolean;\n q?: boolean;\n addID?: boolean;\n limit?: number;\n ignoreNull?: boolean;\n sessionId?: any;\n aggregate?: 'minmax' | 'min' | 'max' | 'average' | 'total' | 'count' | 'none';\n } */\n if (window.sparkline &&\n this.defaultHistory &&\n this.objects[id] &&\n this.objects[id].common &&\n this.objects[id].common.custom &&\n this.objects[id].common.custom[this.defaultHistory]) {\n\n const now = new Date();\n now.setHours(now.getHours() - 24);\n now.setMinutes(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n const nowMs = now.getTime();\n\n this.props.socket.getHistory(id, {\n instance: this.defaultHistory,\n start: nowMs,\n end: Date.now(),\n step: 3600000,\n from: false,\n ack: false,\n q: false,\n addID: false,\n aggregate: 'minmax',\n })\n .then(values => {\n const sparks = window.document.getElementsByClassName('sparkline');\n\n for (let s = 0; s < sparks.length; s++) {\n if (sparks[s].dataset.id === id) {\n const v = prepareSparkData(values, nowMs);\n\n window.sparkline.sparkline(sparks[s], v);\n break;\n }\n }\n })\n .catch(e => console.warn(`Cannot read history: ${e}`));\n }\n }\n\n /**\n * @private\n * @param {string} id\n * @param {any} item\n * @param {Record<string, any>} classes\n * @returns {JSX.Element | null}\n */\n renderColumnValue(id, item, classes) {\n const obj = item.data.obj;\n if (!obj || !this.states) {\n return null;\n }\n\n if (obj.common?.type === 'file') {\n return <div className={Utils.clsx(classes.cellValueText, classes.cellValueFile)}>[file]</div>;\n }\n if (!this.states[id]) {\n if (obj.type === 'state') {\n !this.recordStates.includes(id) && this.recordStates.push(id);\n this.states[id] = { val: null };\n this.subscribe(id);\n }\n return null;\n }\n !this.recordStates.includes(id) && this.recordStates.push(id);\n\n const state = this.states[id];\n let info = item.data.state;\n if (!info) {\n item.data.state = item.data.state || formatValue(id, state, obj, this.texts, this.props.dateFormat, this.props.isFloatComma);\n info = item.data.state;\n\n info.valFull = info.valFull.map(_item => {\n if (_item.t === this.texts.quality && state.q) {\n return [\n <div className={classes.cellValueTooltipBoth} key={_item.t}>\n {_item.t}\n :&nbsp;\n {_item.v}\n </div>,\n // <div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n }\n return [\n <div className={classes.cellValueTooltipTitle} key={_item.t}>\n {_item.t}\n :&nbsp;\n </div>,\n <div className={classes.cellValueTooltipValue} key={`${_item.t}_v`}>{_item.v}</div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n });\n\n if (this.defaultHistory && this.objects[id] && this.objects[id].common && this.objects[id].common.custom && this.objects[id].common.custom[this.defaultHistory]) {\n info.valFull.push(<svg key=\"sparkline\" className=\"sparkline\" data-id={id} style={{ fill: '#3d85de' }} width=\"200\" height=\"30\" strokeWidth=\"3\" />);\n }\n\n const copyText = info.valText.v || '';\n info.val = copyText;\n info.valText = [\n <span className={classes.newValue} key={`${info.valText.v.toString()}valText`}>{info.valText.v.toString()}</span>,\n info.valText.u ? <span className={Utils.clsx(classes.cellValueTextUnit, classes.newValue)} key={`${info.valText.v.toString()}unit`}>{info.valText.u}</span> : null,\n info.valText.s !== undefined ? <span className={Utils.clsx(classes.cellValueTextState, classes.newValue)} key={`${info.valText.v.toString()}states`}>\n (\n {info.valText.s}\n )\n </span> : null,\n <IconCopy className={Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonCopy)} onClick={e => this.onCopy(e, copyText)} key=\"cc\" />,\n // <IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key=\"ce\" />\n ];\n }\n\n let val = info.valText;\n if (!this.state.filter.expertMode && item.data.button) {\n val = <PressButtonIcon className={Utils.clsx(this.props.classes.cellValueButton, !this.states[id] || !this.states[id].val ? this.props.classes.cellValueButtonFalse : '')} />;\n }\n\n return <Tooltip\n key=\"value\"\n title={info.valFull}\n classes={{ tooltip: this.props.classes.cellValueTooltip, popper: this.props.classes.cellValueTooltipBox }}\n onOpen={() => this.readHistory(id)}\n >\n <div style={info.style} className={classes.cellValueText}>\n {val}\n </div>\n </Tooltip>;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n _syncEnum(id, enumIds, newArray, cb) {\n if (!enumIds || !enumIds.length) {\n cb && cb();\n return;\n }\n const enumId = enumIds.pop();\n const promises = [];\n if (this.info.objects[enumId]?.common) {\n if (this.info.objects[enumId].common.members?.length) {\n const pos = this.info.objects[enumId].common.members.indexOf(id);\n if (pos !== -1 && !newArray.includes(enumId)) {\n // delete from members\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members.splice(pos, 1);\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e)));\n }\n }\n\n // add to it\n if (newArray.includes(enumId) && !this.info.objects[enumId].common.members?.includes(id)) {\n // add to object\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members = obj.common.members || [];\n obj.common.members.push(id);\n obj.common.members.sort();\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e)));\n }\n }\n\n Promise.all(promises)\n .then(() => setTimeout(() =>\n this._syncEnum(id, enumIds, newArray, cb), 0));\n }\n\n /**\n * @private\n * @returns {Promise}\n */\n syncEnum(id, enumName, newArray) {\n const toCheck = [...this.info[enumName === 'func' ? 'funcEnums' : 'roomEnums']];\n\n return new Promise(resolve => {\n this._syncEnum(id, toCheck, newArray, error => {\n error && this.showError(error);\n // force update of object\n resolve();\n });\n });\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEnumDialog() {\n if (this.state.enumDialog) {\n const type = this.state.enumDialog.type;\n const item = this.state.enumDialog.item;\n const itemEnums = this.state.enumDialogEnums;\n const enumsOriginal = this.state.enumDialog.enumsOriginal;\n\n const enums = (type === 'room' ? this.info.roomEnums : this.info.funcEnums).map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(), this.props.lang),\n value: id,\n icon: getSelectIdIcon(this.objects, id, this.imagePrefix),\n }))\n .sort((a, b) => a.name > b.name ? 1 : -1);\n\n enums.forEach(_item => {\n if (_item.icon && typeof _item.icon === 'string') {\n _item.icon = <div className={this.props.classes.enumIconDiv}>\n <img src={_item.icon} className={this.props.classes.enumIcon} alt={_item.name} />\n </div>;\n }\n });\n\n // const hasIcons = !!enums.find(item => item.icon);\n\n return <Dialog\n className={this.props.classes.enumDialog}\n onClose={() => this.setState({ enumDialog: null })}\n aria-labelledby=\"enum-dialog-title\"\n open={!0} // true\n >\n <DialogTitle id=\"enum-dialog-title\">\n {type === 'func' ? this.props.t('ra_Define functions') : this.props.t('ra_Define rooms')}\n <Fab\n className={this.props.classes.enumButton}\n color=\"primary\"\n disabled={JSON.stringify(enumsOriginal) === JSON.stringify(itemEnums)}\n size=\"small\"\n onClick={() =>\n this.syncEnum(item.data.id, type, itemEnums)\n .then(() => this.setState({ enumDialog: null, enumDialogEnums: null }))}\n >\n <IconCheck />\n </Fab>\n </DialogTitle>\n <List classes={{ root: this.props.classes.enumList }}>\n {\n enums.map(_item => {\n let id;\n let name;\n let icon;\n\n if (typeof _item === 'object') {\n id = _item.value;\n name = _item.name;\n icon = _item.icon;\n } else {\n id = _item;\n name = _item;\n }\n const labelId = `checkbox-list-label-${id}`;\n\n return <ListItem\n className={this.props.classes.headerCellSelectItem}\n key={id}\n onClick={() => {\n const pos = itemEnums.indexOf(id);\n const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));\n if (pos === -1) {\n enumDialogEnums.push(id);\n enumDialogEnums.sort();\n } else {\n enumDialogEnums.splice(pos, 1);\n }\n this.setState({ enumDialogEnums });\n }}\n >\n <ListItemIcon classes={{ root: this.props.classes.enumCheckbox }}>\n <Checkbox\n edge=\"start\"\n checked={itemEnums.includes(id)}\n tabIndex={-1}\n disableRipple\n inputProps={{ 'aria-labelledby': labelId }}\n />\n </ListItemIcon>\n <ListItemText id={labelId}>{name}</ListItemText>\n {icon ? <ListItemSecondaryAction>{icon}</ListItemSecondaryAction> : null}\n </ListItem>;\n })\n }\n </List>\n </Dialog>;\n }\n return null;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditRoleDialog() {\n if (this.state.roleDialog && this.props.objectBrowserEditRole) {\n const ObjectBrowserEditRole = this.props.objectBrowserEditRole;\n return <ObjectBrowserEditRole\n key=\"objectBrowserEditRole\"\n id={this.state.roleDialog}\n socket={this.props.socket}\n t={this.props.t}\n roles={this.info.roles}\n onClose={obj => {\n if (obj) {\n this.info.objects[this.state.roleDialog] = obj;\n }\n this.setState({ roleDialog: false });\n }}\n />;\n }\n return null;\n }\n\n /**\n * @private\n * @param {boolean} [isSave]\n */\n onColumnsEditCustomDialogClose(isSave) {\n if (isSave) {\n let value = this.customColumnDialog.value;\n if (this.customColumnDialog.type === 'boolean') {\n value = value === 'true' || value === true;\n } else if (this.customColumnDialog.type === 'number') {\n value = parseFloat(value);\n }\n this.customColumnDialog = null;\n this.props.socket.getObject(this.state.columnsEditCustomDialog.obj._id)\n .then(obj => {\n if (ObjectBrowser.setCustomValue(obj, this.state.columnsEditCustomDialog.it, value)) {\n return this.props.socket.setObject(obj._id, obj);\n }\n throw new Error(this.props.t('ra_Cannot update attribute, because not found in the object'));\n })\n .then(() => this.setState({ columnsEditCustomDialog: null }))\n .catch(e => this.showError(e));\n } else {\n this.customColumnDialog = null;\n this.setState({ columnsEditCustomDialog: null });\n }\n }\n\n /**\n * @private\n */\n renderColumnsEditCustomDialog() {\n if (this.state.columnsEditCustomDialog) {\n if (!this.customColumnDialog) {\n const value = ObjectBrowser.getCustomValue(this.state.columnsEditCustomDialog.obj, this.state.columnsEditCustomDialog.it);\n this.customColumnDialog = {\n type: this.state.columnsEditCustomDialog.it.type || typeof value,\n initValue: (value === null || value === undefined ? '' : value).toString(),\n value: (value === null || value === undefined ? '' : value).toString(),\n };\n }\n\n return <Dialog\n onClose={() => this.setState({ columnsEditCustomDialog: null })}\n maxWidth=\"md\"\n aria-labelledby=\"custom-dialog-title\"\n open={!0}\n >\n <DialogTitle id=\"custom-dialog-title\">{`${this.props.t('ra_Edit object field')}: ${this.state.columnsEditCustomDialog.obj._id}`}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.customColumnDialog.type === 'boolean' ?\n <FormControlLabel\n control={<Checkbox\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n defaultChecked={this.customColumnDialog.value === 'true'}\n onChange={e => {\n this.customColumnDialog.value = e.target.checked.toString();\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n />}\n label={`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}\n />\n :\n <TextField\n variant=\"standard\"\n defaultValue={this.customColumnDialog.value}\n fullWidth\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n label={`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}\n onChange={e => {\n this.customColumnDialog.value = e.target.value;\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n autoFocus\n />}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.onColumnsEditCustomDialogClose(true)}\n disabled={!this.state.customColumnDialogValueChanged}\n color=\"primary\"\n startIcon={<IconCheck />}\n >\n {this.props.t('ra_Update')}\n </Button>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.onColumnsEditCustomDialogClose()}\n startIcon={<IconClose />}\n >\n {this.props.t('ra_Cancel')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n return null;\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n */\n static getCustomValue(obj, it) {\n if (obj && obj._id && obj._id.startsWith(`${it.adapter}.`) && it.path.length > 1) {\n const p = it.path;\n let value;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n value = obj[p[0]][p[1]];\n } else if (p.length === 3) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' ? obj[p[0]][p[1]][p[2]] : null;\n } else if (p.length === 4) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] ? obj[p[0]][p[1]][p[2]][p[3]] : null;\n } else if (p.length === 5) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]] : null;\n } else if (p.length === 6) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] && obj[p[0]][p[1]][p[2]][p[3]][p[4]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] : null;\n }\n if (value === undefined || value === null) {\n return null;\n }\n return value;\n }\n }\n\n return null;\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n * @param {any} value\n */\n static setCustomValue(obj, it, value) {\n if (obj && obj._id && obj._id.startsWith(`${it.adapter}.`) && it.path.length > 1) {\n const p = it.path;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n obj[p[0]][p[1]] = value;\n return true;\n }\n if (p.length === 3) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object') {\n obj[p[0]][p[1]][p[2]] = value;\n return true;\n }\n } else if (p.length === 4) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] = value;\n return true;\n }\n } else if (p.length === 6) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]][p[4]] && typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] = value;\n return true;\n }\n }\n }\n }\n return false;\n }\n\n /**\n * Renders a custom value.\n * @param {any} obj\n * @param {any} it\n * @param {any} item\n * @returns {JSX.Element | null}\n */\n renderCustomValue(obj, it, item) {\n const text = ObjectBrowser.getCustomValue(obj, it);\n if (text !== null && text !== undefined) {\n if (it.edit && !this.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes.columnCustomEditable, this.props.classes[`columnCustom_${it.align}`])}\n onClick={() => this.setState({ columnsEditCustomDialog: { item, it, obj }, customColumnDialogValueChanged: false })}\n >\n {text}\n </div>;\n }\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes[`columnCustom_${it.align}`])}\n >\n {text}\n </div>;\n }\n return null;\n }\n\n /**\n * Renders a leaf.\n * @param {any} item\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: number; }} counter\n * @returns {JSX.Element}\n */\n renderLeaf(item, isExpanded, classes, counter) {\n const id = item.data.id;\n counter.count++;\n isExpanded = isExpanded === undefined ? this.state.expanded.includes(id) : isExpanded;\n\n // icon\n let iconFolder;\n const obj = item.data.obj;\n const itemType = obj?.type;\n\n if (item.children || itemType === 'folder' || itemType === 'device' || itemType === 'channel' || itemType === 'meta') {\n iconFolder = isExpanded ? <IconOpen\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n /> : <IconClosed\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n />;\n } else if (obj.common && (obj.common.write === false) && obj.type === 'state') {\n iconFolder = <IconDocumentReadOnly className={classes.cellIdIconDocument} />;\n } else {\n iconFolder = <IconDocument className={classes.cellIdIconDocument} />;\n }\n\n let iconItem = null;\n if (item.data.icon) {\n if (typeof item.data.icon === 'string') {\n if (item.data.icon.length < 3) {\n iconItem = <span className={Utils.clsx(classes.cellIdIconOwn, 'iconOwn')}>{item.data.icon}</span>; // utf-8 char\n } else {\n iconItem = <img className={Utils.clsx(classes.cellIdIconOwn, 'iconOwn')} src={item.data.icon} alt=\"\" />;\n }\n } else {\n iconItem = item.data.icon;\n }\n }\n\n const common = obj?.common;\n\n const typeImg = (obj && obj.type && ITEM_IMAGES[obj.type]) || <div className=\"itemIcon\" />;\n\n const paddingLeft = this.levelPadding * item.data.level;\n\n if (item.data.lang !== this.props.lang) {\n const { rooms, per } = findRoomsForObject(this.info, id, this.props.lang);\n item.data.rooms = rooms.join(', ');\n item.data.per = per;\n const { funcs, pef } = findFunctionsForObject(this.info, id, this.props.lang);\n item.data.funcs = funcs.join(', ');\n item.data.pef = pef;\n item.data.lang = this.props.lang;\n }\n\n const checkbox =\n this.props.multiSelect &&\n this.objects[id] && (!this.props.types || this.props.types.includes(this.objects[id].type)) ?\n <Checkbox\n className={classes.checkBox}\n checked={this.state.selected.includes(id)}\n /> :\n null;\n\n let valueEditable = !this.props.notEditable && itemType === 'state' && (this.state.filter.expertMode || common?.write !== false);\n if (this.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n const enumEditable = !this.props.notEditable && this.objects[id] && (this.state.filter.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType = this.state.statesView && (itemType === 'state' || itemType === 'channel' || itemType === 'device');\n let newValue = '';\n const newValueTitle = [];\n if (checkVisibleObjectType) {\n newValue = this.states[id]?.from;\n if (newValue === undefined) {\n newValue = '&nbsp;';\n } else {\n newValue = newValue ? newValue.replace(/^system\\.adapter\\.|^system\\./, '') : '';\n newValueTitle.push(`${this.texts.stateChangedFrom} ${newValue}`);\n }\n if (obj.user) {\n const user = obj.user.replace('system.user.', '');\n newValue += `/${user}`;\n newValueTitle.push(`${this.texts.stateChangedBy} ${user}`);\n }\n }\n if (obj) {\n obj.from && newValueTitle.push(`${this.texts.objectChangedFrom} ${obj.from.replace(/^system\\.adapter\\.|^system\\./, '')}`);\n obj.user && newValueTitle.push(`${this.texts.objectChangedBy} ${obj.user.replace(/^system\\.user\\./, '')}`);\n obj.ts && newValueTitle.push(`${this.texts.objectChangedByUser} ${Utils.formatDate(new Date(obj.ts), this.props.dateFormat)}`);\n }\n\n const readWriteAlias = typeof common?.alias?.id === 'object';\n\n const alias = id.startsWith('alias.') && common?.alias?.id ?\n (readWriteAlias ?\n <div className={classes.cellIdAliasReadWriteDiv}>\n {common.alias.id.read ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id.read);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id.read));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >\n ←\n {common.alias.id.read}\n </div> : null}\n {common.alias.id.write ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id.write);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id.write));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >\n →\n {common.alias.id.write}\n </div> : null}\n </div>\n :\n <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasAlone)}\n >\n →\n {common.alias.id}\n </div>\n ) : null;\n\n let checkColor = common?.color;\n let invertBackground = undefined;\n if (checkColor && !this.state.selected.includes(id)) {\n let background = this.props.themeName === 'dark' ? '#1f1f1f' : (this.props.themeName === 'blue' ? '#222a2e' : '#FFFFFF');\n const distance = Utils.colorDistance(checkColor, background);\n // console.log(`Distance: ${checkColor} - ${background} = ${distance}`);\n if (distance < 1000) {\n invertBackground = this.props.themeType === 'dark' ? '#9a9a9a' : '#565656';\n }\n }\n if (id === 'system') {\n checkColor = COLOR_NAME_SYSTEM;\n } else if (id === 'system.adapter') {\n checkColor = COLOR_NAME_SYSTEM_ADAPTER;\n } else\n if (!checkColor || this.state.selected.includes(id)) {\n checkColor = 'inherit';\n }\n\n const icons = [];\n\n if (common?.statusStates) {\n const ids = {};\n Object.keys(common.statusStates).forEach(name => {\n let _id = common.statusStates[name];\n if (_id.split('.').length < 3) {\n _id = `${id}.${_id}`;\n }\n ids[name] = _id;\n\n if (!this.states[_id]) {\n if (this.objects[_id]?.type === 'state') {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n this.states[_id] = { val: null };\n this.subscribe(_id);\n }\n } else {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n }\n });\n // calculate color\n // errorId has priority\n let colorSet = false;\n if (common.statusStates.errorId && this.states[ids.errorId] && this.states[ids.errorId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT;\n colorSet = true;\n icons.push(<IconError key=\"error\" title={this.texts.deviceError} className={this.props.classes.iconDeviceError} />);\n }\n\n if (ids.onlineId && this.states[ids.onlineId] && this.states[ids.onlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.onlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n }\n } else if (this.states[ids.onlineId].val) {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n } else {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n }\n } else\n if (ids.offlineId && this.states[ids.offlineId] && this.states[ids.offlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.offlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n }\n } else if (this.states[ids.offlineId].val) {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n } else {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n }\n }\n }\n\n const q = checkVisibleObjectType ? Utils.quality2text(this.states[id]?.q || 0).join(', ') : null;\n\n let name = item.data?.title || '';\n let useDesc;\n if (this.state.showDescription) {\n useDesc = getObjectTooltip(item.data, this.props.lang);\n if (useDesc) {\n name = [\n <div key=\"name\" className={classes.cellNameDivDiv}>{name}</div>,\n <div key=\"desc\" className={classes.cellDescription}>{useDesc}</div>,\n ];\n useDesc = !!useDesc;\n }\n }\n\n return <Grid\n container\n direction=\"row\"\n wrap=\"nowrap\"\n className={Utils.clsx(\n classes.tableRow,\n this.state.linesEnabled && classes.tableRowLines,\n !this.props.dragEnabled && classes.tableRowNoDragging,\n alias && classes.tableRowAlias,\n readWriteAlias && classes.tableRowAliasReadWrite,\n !item.data.visible && classes.filteredOut,\n item.data.hasVisibleParent && !item.data.visible && !item.data.hasVisibleChildren && classes.filteredParentOut,\n this.state.selected.includes(id) && classes.itemSelected,\n this.state.selectedNonObject === id && classes.itemSelected,\n )}\n key={id}\n id={id}\n onClick={() => this.onSelect(id)}\n onDoubleClick={() => {\n if (!item.children) {\n this.onSelect(id, true);\n } else {\n this.toggleExpanded(id);\n }\n }}\n >\n <Grid\n container\n wrap=\"nowrap\"\n direction=\"row\"\n className={classes.cellId}\n style={{ width: this.columnsVisibility.id, paddingLeft }}\n >\n <Grid\n item\n container\n alignItems=\"center\"\n style={{\n // color: checkColor,\n // background: invertBackground,\n }}\n >\n {checkbox}\n {iconFolder}\n </Grid>\n <Grid\n item\n style={{ color: checkColor }}\n className={Utils.clsx(classes.cellIdSpan, invertBackground && classes.invertedBackground)}\n >\n <Tooltip\n title={getIdFieldTooltip(item.data, this.props.classes, this.props.lang)}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <div>{item.data.name}</div>\n </Tooltip>\n {alias}\n {icons}\n </Grid>\n <div className={Utils.clsx(classes.grow, invertBackground && classes.invertedBackgroundFlex)} />\n <Grid\n item\n container\n alignItems=\"center\"\n >\n {iconItem}\n </Grid>\n <div>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, id)} />\n </div>\n </Grid>\n\n {this.columnsVisibility.name ? <div className={Utils.clsx(classes.cellName, useDesc && classes.cellNameWithDesc)} style={{ width: this.columnsVisibility.name }}>\n {name}\n {item.data?.title ? <div style={{ color: checkColor }}>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, item.data.title)} />\n </div> : null}\n </div> : null}\n\n {!this.state.statesView ?\n <>\n {this.columnsVisibility.type ? <div className={classes.cellType} style={{ width: this.columnsVisibility.type }}>\n {typeImg}\n &nbsp;\n {obj && obj.type}\n </div> : null}\n {this.columnsVisibility.role ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.role, cursor: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole ? 'text' : 'default' }} onClick={this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole ? () => this.setState({ roleDialog: item.data.id }) : undefined}>{common?.role}</div> : null}\n {this.columnsVisibility.room ? <div className={`${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.room, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'room', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.rooms}</div> : null}\n {this.columnsVisibility.func ? <div className={`${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.func, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'func', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.funcs}</div> : null}\n </>\n :\n <>\n {this.columnsVisibility.changedFrom ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.changedFrom }} title={newValueTitle.join('\\n')}>{checkVisibleObjectType && this.states[id]?.from ? newValue : null}</div> : null}\n {this.columnsVisibility.qualityCode ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.qualityCode }} title={q || ''}>{q}</div> : null}\n {this.columnsVisibility.timestamp ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.timestamp }}>{checkVisibleObjectType && this.states[id]?.ts ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat) : null}</div> : null}\n {this.columnsVisibility.lastChange ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.lastChange }}>{checkVisibleObjectType && this.states[id]?.lc ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat) : null}</div> : null}\n </>}\n {this.adapterColumns.map(it => <div className={classes.cellAdapter} style={{ width: this.columnsVisibility[it.id] }} key={it.id} title={`${it.adapter} => ${it.pathText}`}>{this.renderCustomValue(obj, it, item)}</div>)}\n {this.columnsVisibility.val ? <div\n className={classes.cellValue}\n style={{ width: this.columnsVisibility.val, cursor: valueEditable ? (common?.type === 'file' ? 'zoom-in' : (item.data.button ? 'grab' : 'text')) : 'default' }}\n onClick={valueEditable ? () => {\n if (!obj || !this.states) {\n // return;\n } else\n if (common?.type === 'file') {\n this.setState({ viewFileDialog: id });\n } else\n // in non-expert mode control button directly\n if (!this.state.filter.expertMode && item.data.button) {\n this.props.socket.setState(id, true)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n } else {\n this.edit = {\n val: this.states[id] ? this.states[id].val : '',\n q: this.states[id] ? this.states[id].q || 0 : 0,\n ack: false,\n id,\n };\n this.setState({ updateOpened: true });\n }\n } : undefined}\n >\n {this.renderColumnValue(id, item, classes)}\n </div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.cellButtons} style={{ width: this.columnsVisibility.buttons }}>{this.renderColumnButtons(id, item, classes)}</div> : null}\n </Grid>;\n }\n\n /**\n * Renders an item.\n * @param {any} root\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: any; }} [counter]\n * @returns {JSX.Element[]}\n */\n renderItem(root, isExpanded, classes, counter) {\n const items = [];\n counter = counter || { count: 0 };\n let leaf = this.renderLeaf(root, isExpanded, classes, counter);\n const DragWrapper = this.props.DragWrapper;\n if (this.props.dragEnabled) {\n if (root.data.sumVisibility) {\n leaf = <DragWrapper key={root.data.id} item={root} className={classes.draggable}>{leaf}</DragWrapper>;\n } else {\n // change cursor\n leaf = <div key={root.data.id} className={classes.nonDraggable}>{leaf}</div>;\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children && items.push(root.children.map(item => {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n return null;\n }));\n } else {\n // first only folder\n root.children && items.push(root.children.map(item => {\n if (item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n\n return null;\n }));\n // then items\n root.children && items.push(root.children.map(item => {\n if (!item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n return null;\n }));\n }\n }\n\n return items;\n }\n\n /**\n * @private\n * @param {boolean} [columnsAuto]\n * @param {string[]} [columns]\n * @param {any} [columnsForAdmin]\n * @param {Record<string, number>} [columnsWidths]\n */\n calculateColumnsVisibility(columnsAuto, columns, columnsForAdmin, columnsWidths) {\n columnsWidths = columnsWidths || this.state.columnsWidths;\n columnsForAdmin = columnsForAdmin || this.state.columnsForAdmin;\n columns = columns || this.state.columns || [];\n columnsAuto = typeof columnsAuto !== 'boolean' ? this.state.columnsAuto : columnsAuto;\n\n columnsWidths = JSON.parse(JSON.stringify(columnsWidths));\n Object.keys(columnsWidths).forEach(name => {\n if (columnsWidths[name]) {\n columnsWidths[name] = parseInt(columnsWidths[name], 10) || 0;\n }\n });\n\n this.adapterColumns = [];\n const WIDTHS = SCREEN_WIDTHS[this.props.width].widths;\n\n if (columnsAuto) {\n this.columnsVisibility = {\n id: SCREEN_WIDTHS[this.props.width].idWidth,\n name: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n nameHeader: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n type: this.visibleCols.includes('type') ? WIDTHS.type || 0 : 0,\n role: this.visibleCols.includes('role') ? WIDTHS.role || 0 : 0,\n room: this.visibleCols.includes('room') ? WIDTHS.room || 0 : 0,\n func: this.visibleCols.includes('func') ? WIDTHS.func || 0 : 0,\n changedFrom: this.visibleCols.includes('changedFrom') ? WIDTHS.changedFrom || 0 : 0,\n qualityCode: this.visibleCols.includes('qualityCode') ? WIDTHS.qualityCode || 0 : 0,\n timestamp: this.visibleCols.includes('timestamp') ? WIDTHS.timestamp || 0 : 0,\n lastChange: this.visibleCols.includes('lastChange') ? WIDTHS.lastChange || 0 : 0,\n val: this.visibleCols.includes('val') ? WIDTHS.val || 0 : 0,\n buttons: this.visibleCols.includes('buttons') ? WIDTHS.buttons || 0 : 0,\n };\n\n if (this.columnsVisibility.name && !this.customWidth) {\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.name = `calc(100% - ${widthSum + 5}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else if (!this.customWidth) {\n // Calculate the with of ID\n let widthSum = 0; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.id = `calc(100% - ${widthSum + 5}px)`;\n }\n } else {\n this.columnsVisibility = {\n id: columnsWidths.id || SCREEN_WIDTHS[this.props.width].idWidth,\n name: columns.includes('name') ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0 : 0,\n type: columns.includes('type') ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0 : 0,\n role: columns.includes('role') ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0 : 0,\n room: columns.includes('room') ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0 : 0,\n func: columns.includes('func') ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0 : 0,\n };\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.columnsVisibility.name) {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n\n if (columnsForAdmin && columns) {\n Object.keys(columnsForAdmin).sort().forEach(adapter =>\n columnsForAdmin[adapter].forEach(column => {\n const id = `_${adapter}_${column.path}`;\n this.columnsVisibility[id] = columns.includes(id);\n if (columns.includes(id)) {\n const item = {\n adapter,\n id: `_${adapter}_${column.path}`,\n name: column.name,\n path: column.path.split('.'),\n pathText: column.path,\n };\n if (column.edit) {\n item.edit = true;\n if (column.type) {\n item.type = column.type;\n }\n if (column.objTypes) {\n item.objTypes = column.objTypes;\n }\n }\n\n this.adapterColumns.push(item);\n this.columnsVisibility[id] = columnsWidths[item.id] || column.width || SCREEN_WIDTHS[this.props.width].widths.func || SCREEN_WIDTHS.xl.widths.func;\n widthSum += this.columnsVisibility[id];\n } else {\n this.columnsVisibility[id] = 0;\n }\n }));\n }\n this.adapterColumns.sort((a, b) => (a.id > b.id ? -1 : (a.id < b.id ? 1 : 0)));\n this.columnsVisibility.val = columns.includes('val') ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val : 0;\n\n // do not show buttons if not desired\n if (!this.props.columns || this.props.columns.includes('buttons')) {\n this.columnsVisibility.buttons = columns.includes('buttons') ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons : 0;\n widthSum += this.columnsVisibility.buttons;\n }\n\n if (this.columnsVisibility.name && !columnsWidths.name) {\n widthSum += this.columnsVisibility.val;\n this.columnsVisibility.name = `calc(100% - ${widthSum}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else {\n const newWidth = Object.keys(this.columnsVisibility).reduce(\n (accumulator, name) => {\n if (name === 'id' || typeof this.columnsVisibility[name] === 'string' || !this.columnsVisibility[name]) {\n return accumulator;\n }\n return accumulator + this.columnsVisibility[name];\n },\n 0,\n );\n this.columnsVisibility.id = `calc(100% - ${newWidth}px)`;\n }\n }\n }\n\n resizerMouseMove = e => {\n if (this.resizerActiveDiv) {\n let width;\n let widthNext;\n if (this.resizeLeft) {\n width = this.resizerOldWidth - e.clientX + this.resizerPosition;\n widthNext = this.resizerOldWidthNext + e.clientX - this.resizerPosition;\n } else {\n width = this.resizerOldWidth + e.clientX - this.resizerPosition;\n widthNext = this.resizerOldWidthNext - e.clientX + this.resizerPosition;\n }\n\n if ((!this.resizerMin || width > this.resizerMin) &&\n (!this.resizerNextMin || widthNext > this.resizerNextMin)) {\n this.resizerCurrentWidths[this.resizerActiveName] = width;\n this.resizerCurrentWidths[this.resizerNextName] = widthNext;\n\n this.resizerActiveDiv.style.width = `${width}px`;\n this.resizerNextDiv.style.width = `${widthNext}px`;\n\n this.columnsVisibility[this.resizerActiveName] = width;\n this.columnsVisibility[this.resizerNextName] = widthNext;\n if (this.resizerNextName === 'nameHeader') {\n this.columnsVisibility.name = widthNext - this.state.scrollBarWidth;\n this.resizerCurrentWidths.name = widthNext - this.state.scrollBarWidth;\n } else\n if (this.resizerActiveName === 'nameHeader') {\n this.columnsVisibility.name = width - this.state.scrollBarWidth;\n this.resizerCurrentWidths.name = width - this.state.scrollBarWidth;\n }\n this.customWidth = true;\n this.resizeTimeout && clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.resizeTimeout = null;\n this.forceUpdate();\n }, 200);\n }\n }\n };\n\n resizerMouseUp = () => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.table`, JSON.stringify(this.resizerCurrentWidths));\n this.resizerActiveName = null;\n this.resizerNextName = null;\n this.resizerActiveDiv = null;\n this.resizerNextDiv = null;\n window.removeEventListener('mousemove', this.resizerMouseMove);\n window.removeEventListener('mouseup', this.resizerMouseUp);\n };\n\n resizerMouseDown = e => {\n if (this.resizerActiveIndex === null || this.resizerActiveIndex === undefined) {\n if (!this.storedWidths) {\n this.storedWidths = JSON.parse(JSON.stringify(SCREEN_WIDTHS[this.props.width]));\n }\n\n this.resizerCurrentWidths = this.resizerCurrentWidths || {};\n this.resizerActiveDiv = e.target.parentNode;\n this.resizerActiveName = this.resizerActiveDiv.dataset.name;\n\n let i = 0;\n if (e.target.dataset.left === 'true') {\n this.resizeLeft = true;\n this.resizerNextDiv = this.resizerActiveDiv.previousElementSibling;\n let handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);\n while (this.resizerNextDiv && !handle && i < 10) {\n this.resizerNextDiv = this.resizerNextDiv.previousElementSibling;\n handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);\n i++;\n }\n if (handle && handle.dataset.left !== 'true') {\n this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;\n }\n } else {\n this.resizeLeft = false;\n this.resizerNextDiv = this.resizerActiveDiv.nextElementSibling;\n /* while (this.resizerNextDiv && !this.resizerNextDiv.querySelector('.' + this.props.classes.resizeHandle) && i < 10) {\n this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;\n i++;\n } */\n }\n this.resizerNextName = this.resizerNextDiv.dataset.name;\n\n this.resizerMin = parseInt(this.resizerActiveDiv.dataset.min, 10) || 0;\n this.resizerNextMin = parseInt(this.resizerNextDiv.dataset.min, 10) || 0;\n\n this.resizerPosition = e.clientX;\n\n this.resizerCurrentWidths[this.resizerActiveName] = this.resizerActiveDiv.offsetWidth;\n this.resizerCurrentWidths[this.resizerNextName] = this.resizerNextDiv.offsetWidth;\n\n this.resizerOldWidth = this.resizerCurrentWidths[this.resizerActiveName];\n this.resizerOldWidthNext = this.resizerCurrentWidths[this.resizerNextName];\n\n window.addEventListener('mousemove', this.resizerMouseMove);\n window.addEventListener('mouseup', this.resizerMouseUp);\n }\n };\n\n resizerReset = () => {\n this.customWidth = false;\n SCREEN_WIDTHS[this.props.width] = JSON.parse(JSON.stringify(this.storedWidths));\n this.calculateColumnsVisibility();\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.table`);\n this.forceUpdate();\n };\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderHeader() {\n const classes = this.props.classes;\n\n let filterClearInValue = null;\n if (!this.columnsVisibility.buttons && !this.isFilterEmpty()) {\n filterClearInValue = <IconButton\n onClick={() => this.clearFilter()}\n className={classes.buttonClearFilter}\n title={this.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose className={classes.buttonClearFilterIcon} />\n </IconButton>;\n }\n\n return <div className={classes.headerRow}>\n <div className={classes.headerCell} style={{ width: this.columnsVisibility.id, position: 'relative' }} data-min={240} data-name=\"id\">\n {this.getFilterInput('id')}\n <div className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleRight}`} onMouseDown={this.resizerMouseDown} onDoubleClick={this.resizerReset} title={this.props.t('ra_Double click to reset table layout')} />\n </div>\n {this.columnsVisibility.name ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.nameHeader }} data-min={100} data-name=\"nameHeader\">{this.getFilterInput('name')}</div> : null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.type }} data-min={100} data-name=\"type\">{this.getFilterSelectType()}</div> : null}\n {this.columnsVisibility.role ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.role }} data-min={100} data-name=\"role\">{this.getFilterSelectRole()}</div> : null}\n {this.columnsVisibility.room ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.room }} data-min={100} data-name=\"room\">{this.getFilterSelectRoom()}</div> : null}\n {this.columnsVisibility.func ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.func }} data-min={100} data-name=\"func\">{this.getFilterSelectFunction()}</div> : null}\n </>}\n {this.state.statesView && <>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.changedFrom }} data-min={100} data-name=\"changedFrom\">{this.props.t('ra_Changed from')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.qualityCode }} data-min={100} data-name=\"qualityCode\">{this.props.t('ra_Quality code')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.timestamp }} data-min={100} data-name=\"timestamp\">{this.props.t('ra_Timestamp')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.lastChange }} data-min={100} data-name=\"lastChange\">{this.props.t('ra_Last change')}</div>\n </>}\n {this.adapterColumns.map(item => <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility[item.id] }} title={item.adapter} key={item.id} data-min={100} data-name={item.id}>{item.name}</div>)}\n {this.columnsVisibility.val ? <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.val, position: 'relative' }} data-min={120} data-name=\"val\">\n <div className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleLeft}`} data-left=\"true\" onMouseDown={this.resizerMouseDown} onDoubleClick={this.resizerReset} title={this.props.t('ra_Double click to reset table layout')} />\n {this.props.t('ra_Value')}\n {filterClearInValue}\n </div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.buttons }}>\n {' '}\n {this.getFilterSelectCustoms()}\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderToast() {\n return <Snackbar\n open={!!this.state.toast}\n autoHideDuration={3000}\n onClick={() => this.setState({ toast: '' })}\n onClose={() => this.setState({ toast: '' })}\n message={this.state.toast}\n action={\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={() => this.setState({ toast: '' })}>\n <IconClose fontSize=\"small\" />\n </IconButton>\n }\n />;\n }\n\n /**\n * Called when component is updated.\n */\n componentDidUpdate() {\n if (this.tableRef.current) {\n const scrollBarWidth = this.tableRef.current.offsetWidth - this.tableRef.current.clientWidth;\n if (this.state.scrollBarWidth !== scrollBarWidth) {\n setTimeout(() => this.setState({ scrollBarWidth }), 100);\n } else if (!this.selectedFound && ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)) {\n this.scrollToItem((this.state.selected && this.state.selected[0]) || this.lastSelectedItems);\n }\n }\n }\n\n scrollToItem(id) {\n const node = window.document.getElementById(id);\n node && node.scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center',\n });\n this.selectedFound = true;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderCustomDialog() {\n if (this.state.customDialog && this.props.objectCustomDialog) {\n const ObjectCustomDialog = this.props.objectCustomDialog;\n\n return <ObjectCustomDialog\n reportChangedIds={changedIds => this.changedIds = [...changedIds]}\n objectIDs={this.state.customDialog}\n expertMode={this.state.filter.expertMode}\n isFloatComma={this.props.isFloatComma}\n t={this.props.t}\n lang={this.props.lang}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n theme={this.props.theme}\n objects={this.objects}\n customsInstances={this.info.customs}\n onClose={() => {\n this.pauseSubscribe(false);\n this.setState({ customDialog: null });\n if (this.changedIds) {\n this.changedIds = null;\n // update all changed IDs\n this.forceUpdate();\n }\n\n this.props.router && this.props.router.doNavigate('tab-objects');\n }}\n />;\n }\n return null;\n }\n\n /**\n * @private\n * @param {Partial<ioBroker.State>} valAck\n */\n onUpdate(valAck) {\n this.props.socket.setState(this.edit.id, {\n val: valAck.val, ack: valAck.ack, q: valAck.q || 0, expire: valAck.expire || undefined,\n })\n .catch(e => this.showError(`Cannot write value: ${e}`));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditObjectDialog() {\n if (!this.state.editObjectDialog || !this.props.objectBrowserEditObject) {\n return null;\n }\n\n const ObjectBrowserEditObject = this.props.objectBrowserEditObject;\n\n return <ObjectBrowserEditObject\n key={this.state.editObjectDialog}\n obj={this.objects[this.state.editObjectDialog]}\n roleArray={this.info.roles}\n objects={this.objects}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n themeName={this.props.themeName}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onNewObject={obj =>\n this.props.socket.setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id }, () => this.onSelect(obj._id)))\n .catch(e => this.showError(`Cannot write object: ${e}`))}\n onClose={obj => {\n if (obj) {\n let updateAlias;\n if (this.state.editObjectDialog.startsWith('alias.')) {\n if (JSON.stringify(this.objects[this.state.editObjectDialog].common?.alias) !== JSON.stringify(obj.common?.alias)) {\n updateAlias = this.state.editObjectDialog;\n }\n }\n\n this.props.socket.setObject(obj._id, obj)\n .then(() => {\n if (updateAlias && this.subscribes.includes(updateAlias)) {\n this.unsubscribe(updateAlias);\n setTimeout(() => this.subscribe(updateAlias), 100);\n }\n })\n .catch(e => this.showError(`Cannot write object: ${e}`));\n }\n this.setState({ editObjectDialog: '' });\n }}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderViewObjectFileDialog() {\n if (!this.state.viewFileDialog || !this.props.objectBrowserViewFile) {\n return null;\n }\n const ObjectBrowserViewFile = this.props.objectBrowserViewFile;\n\n return <ObjectBrowserViewFile\n key=\"viewFile\"\n obj={this.objects[this.state.viewFileDialog]}\n themeType={this.props.themeType}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onClose={() => this.setState({ viewFileDialog: '' })}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditValueDialog() {\n if (!this.state.updateOpened || !this.props.objectBrowserValue) {\n return null;\n }\n\n if (!this.edit.id) {\n console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`);\n return null;\n }\n\n if (!this.objects[this.edit.id]) {\n console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`);\n return null;\n }\n\n const type = this.objects[this.edit.id].common?.type ?\n this.objects[this.edit.id].common.type : typeof this.edit.val;\n\n const ObjectBrowserValue = this.props.objectBrowserValue;\n\n return <ObjectBrowserValue\n t={this.props.t}\n lang={this.props.lang}\n type={type}\n states={Utils.getStates(this.objects[this.edit.id])}\n themeType={this.props.themeType}\n expertMode={this.state.filter.expertMode}\n value={this.edit.val}\n socket={this.props.socket}\n object={this.objects[this.edit.id]}\n defaultHistory={this.defaultHistory}\n dateFormat={this.props.dateFormat}\n onClose={res => {\n this.setState({ updateOpened: false });\n res && this.onUpdate(res);\n }}\n />;\n }\n\n extendObject = (id, data) =>\n this.props.socket.extendObject(id, data)\n .catch(error => window.alert(error));\n\n setObject = (id, data) =>\n this.props.socket.setObject(id, data)\n .catch(error => window.alert(error));\n\n /**\n * The rendering method of this component.\n * @returns {JSX.Element}\n */\n render() {\n this.recordStates = [];\n this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);\n\n // apply filter if changed\n const jsonFilter = JSON.stringify(this.state.filter);\n\n if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {\n const counter = { count: 0 };\n\n applyFilter(this.root, this.state.filter, this.props.lang, this.objects, null, counter, this.props.customFilter, this.props.types);\n\n if (counter.count < 500 && !this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: true }));\n } else if (counter.count >= 500 && this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: false }));\n }\n\n this.lastAppliedFilter = jsonFilter;\n }\n\n this.unsubscribeTimer = setTimeout(() => {\n this.unsubscribeTimer = null;\n this.checkUnsubscribes();\n }, 200);\n\n if (!this.state.loaded) {\n return <CircularProgress key={`${this.props.dialogName}_c`} />;\n }\n const classes = this.props.classes;\n const items = this.renderItem(this.root, undefined, classes);\n\n return <TabContainer key={this.props.dialogName} classes={{ }}>\n <TabHeader>\n {this.getToolbar()}\n </TabHeader>\n <TabContent classes={{ }}>\n {this.renderHeader()}\n <div className={this.props.classes.tableDiv} ref={this.tableRef}>\n {items}\n </div>\n </TabContent>\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderViewObjectFileDialog()}\n {this.renderEditRoleDialog()}\n {this.renderEnumDialog()}\n {this.renderErrorDialog()}\n {this.renderExportDialog()}\n {this.state.modalNewObj && this.props.modalNewObject && this.props.modalNewObject(this)}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n </TabContainer>;\n }\n}\n\nObjectBrowser.defaultProps = {\n objectAddBoolean: false,\n objectEditBoolean: false,\n objectStatesView: false,\n objectImportExport: false,\n objectEditOfAccessControl: false,\n modalNewObject: () => { },\n modalEditOfAccessControl: () => { },\n};\n\nObjectBrowser.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n defaultFilters: PropTypes.object,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n ]),\n onSelect: PropTypes.func,\n onFilterChanged: PropTypes.func,\n socket: PropTypes.object,\n showExpertButton: PropTypes.bool,\n expertMode: PropTypes.bool,\n imagePrefix: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n theme: PropTypes.object,\n t: PropTypes.func,\n lang: PropTypes.string.isRequired,\n multiSelect: PropTypes.bool,\n notEditable: PropTypes.bool,\n foldersFirst: PropTypes.bool,\n disableColumnSelector: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n levelPadding: PropTypes.number,\n\n // components\n objectCustomDialog: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]),\n objectAddBoolean: PropTypes.bool, // optional toolbar button\n objectEditBoolean: PropTypes.bool, // optional toolbar button\n objectStatesView: PropTypes.bool, // optional toolbar button\n objectImportExport: PropTypes.bool, // optional toolbar button\n objectEditOfAccessControl: PropTypes.bool, // Access Control\n modalNewObject: PropTypes.func, // modal add object\n modalEditOfAccessControl: PropTypes.func, // modal Edit Of Access Control\n onObjectDelete: PropTypes.func, // optional function (id, hasChildren, objectExists, childrenCount+1) { }\n customFilter: PropTypes.object, // optional\n // `{common: {custom: true}}` - show only objects with some custom settings\n // `{common: {custom: 'sql.0'}}` - show only objects with sql.0 custom settings (only of the specific instance)\n // `{common: {custom: '_dataSources'}}` - show only objects of adapters `influxdb' or 'sql' or 'history'\n // `{common: {custom: 'adapterName.'}}` - show only objects of custom settings of specific adapter (all instances)\n // `{type: 'channel'}` - show only channels\n // `{type: ['channel', 'device']}` - show only channels and devices\n // `{common: {type: 'number'}` - show only states of type 'number\n // `{common: {type: ['number', 'string']}` - show only states of type 'number and string\n // `{common: {role: 'switch']}` - show only states with roles starting from switch\n // `{common: {role: ['switch', 'button]}` - show only states with roles starting from `switch` and `button`\n objectBrowserValue: PropTypes.object,\n objectBrowserEditObject: PropTypes.object,\n objectBrowserEditRole: PropTypes.object, // on Edit role\n objectBrowserViewFile: PropTypes.func, // on view file state\n router: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]),\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n root: PropTypes.string, // optional, shows only elements of this root\n\n objectsWorker: PropTypes.object, // optional cache of objects\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n\n dragSettings: PropTypes.object,\n DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\n useDrag: PropTypes.func,\n};\n\n/** @type {typeof ObjectBrowser} */\nconst _export = withWidth()(withStyles(styles)(ObjectBrowser));\nexport default _export;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ObjectBrowser.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_withStyles","_reactInlinesvg","_IconButton","_CircularProgress","_MenuItem","_Select","_FormControl","_Input","_Grid","_Badge","_Tooltip","_Snackbar","_Checkbox","_List","_ListItem","_ListItemButton","_ListItemIcon","_ListItemSecondaryAction","_ListItemText","_DialogTitle","_Dialog","_DialogContent","_DialogContentText","_DialogActions","_Button","_Fab","_TextField","_FormControlLabel","_Switch","_Edit","_Delete","_Settings","_SettingsApplications","_Photo","_SupervisedUserCircle","_CalendarToday","_PersonOutlined","_Router","_Wifi","_Info","_Description","_Code","_ShowChart","_ListAlt","_ViewColumn","_Close","_Check","_Build","_Publish","_Add","_Refresh","_LooksOne","_RoomService","_Error","_WifiOff","_TextFields","_IconExpert","_IconAdapter","_IconAlias","_IconChannel","_IconCopy","_IconDevice","_IconDocument","_IconDocumentReadOnly","_IconInstance","_IconState","_IconClosed","_IconOpen","_IconClearFilter","_Icon","_withWidth","_Utils","_TabContainer","_TabContent","_TabHeader","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","ICON_SIZE","ROW_HEIGHT","ITEM_LEVEL","SMALL_BUTTON_SIZE","COLOR_NAME_SYSTEM","COLOR_NAME_SYSTEM_ADAPTER","COLOR_NAME_ERROR_DARK","COLOR_NAME_ERROR_LIGHT","COLOR_NAME_CONNECTED_DARK","COLOR_NAME_CONNECTED_LIGHT","COLOR_NAME_DISCONNECTED_DARK","COLOR_NAME_DISCONNECTED_LIGHT","styles","theme","toolbar","minHeight","toolbarButtons","padding","marginLeft","switchColumnAuto","spacing","dialogColumns","transition","dialogColumnsLabel","fontSize","paddingTop","columnCustom","width","display","columnCustomEditable","cursor","columnCustomCenter","textAlign","columnCustomLeft","columnCustomRight","width100","transparent_10","opacity","transparent_20","transparent_30","transparent_40","transparent_50","transparent_60","transparent_70","transparent_80","transparent_90","transparent_100","columnsDialogInputWidth","headerRow","paddingLeft","height","whiteSpace","userSelect","buttonClearFilter","position","buttonClearFilterIcon","zIndex","top","left","color","tableDiv","concat","overflow","tableRow","lineHeight","verticalAlign","background","palette","mode","primary","dark","light","Utils","invertColor","main","flexWrap","tableRowLines","borderBottom","borderRight","tableRowNoDragging","tableRowAlias","tableRowAliasReadWrite","checkBox","cellId","textOverflow","marginTop","cellIdSpan","cellIdIconFolder","marginRight","secondary","cellIdIconDocument","cellIdIconOwn","cellIdTooltip","cellIdTooltipLink","cellCopyButton","right","cellEditButton","cellName","cellNameWithDesc","cellNameDivDiv","cellDescription","fontStyle","cellIdAlias","cellIdAliasReadWriteDiv","cellIdAliasAlone","cellIdAliasReadWrite","cellType","cellRole","cellRoom","cellEnumParent","cellFunc","cellValue","cellValueButton","transform","cellValueButtonFalse","cellAdapter","cellValueTooltip","cellValueText","cellValueFile","cellValueTooltipTitle","cellValueTooltipValue","cellValueTooltipBoth","cellValueTooltipBox","pointerEvents","tooltip","cellValueTextUnit","newValue","animation","cellValueTextState","cellValueTooltipCopy","bottom","cellValueTooltipEdit","cellButtons","cellButtonsButton","cellButtonsEmptyButton","cellButtonMinWidth","minWidth","cellButtonsButtonAlone","cellButtonsButtonWithCustoms","cellButtonsButtonWithoutCustoms","cellButtonsValueButton","action","active","cellButtonsValueButtonCopy","cellButtonsValueButtonEdit","parseInt","filteredOut","filteredParentOut","filterInput","marginBottom","selectIcon","selectNone","itemSelected","header","headerCell","headerCellValue","headerCellInput","headerCellSelectItem","visibleButtons","grow","flexGrow","enumIconDiv","borderRadius","enumIcon","enumDialog","enumList","enumButton","enumCheckbox","buttonDiv","alignItems","aclText","rightsObject","rightsState","textCenter","tooltipAccessControl","flexDirection","fontSizeTitle","draggable","nonDraggable","selectClearButton","backgroundColor","iconDeviceConnected","iconDeviceDisconnected","iconDeviceError","resizeHandle","resizeHandleRight","borderColor","borderRightStyle","resizeHandleLeft","borderLeft","borderLeftStyle","invertedBackground","invertedBackgroundFlex","generateFile","filename","el","document","createElement","setAttribute","encodeURIComponent","JSON","stringify","style","body","appendChild","click","removeChild","binarySearch","list","find","_start","_end","undefined","middle","Math","floor","getName","name","lang","_typeof2","en","toString","getSelectIdIcon","objects","id","imagePrefix","src","_id_","aIcon","common","icon","startsWith","includes","className","cIcon","instance","type","split","applyFilter","item","filters","context","counter","customFilter","selectedTypes","_depth","toLowerCase","custom","role","room","members","func","data","_data$obj","_customFilter$common","_customFilter$common2","_customFilter$common3","_customFilter$common4","_customFilter$common5","Array","isArray","expertMode","endsWith","expert","fID","fName","visible","hasVisibleChildren","children","_item","sumVisibility","count","hasVisibleParent","getVisibleItems","_result","_item$children","getSystemIcon","k","getObjectTooltip","_data$obj2","getIdFieldTooltip","classes","clsx","href","rel","buildTree","options","ids","sort","a","b","replace","root","currentPathArr","currentPath","currentPathLen","info","funcEnums","roomEnums","roles","types","customs","enums","hasSomeCustoms","croot","_loop","parts","_common$adminUI","supportCustoms","adminUI","substring","repeat","_obj$common","_obj$common2","_obj$common3","curPath","_loop2","_croot","parent","level","generated","title","hasCustoms","button","write","u","move","splice","join","_ret","_objects$a","_objects$b","aName","pop","bName","_objects$a2","_objects$b2","findNode","_parts","_path","_level","found","_id","findRoomsForObject","withParentInfo","rooms","per","_data$objects$data$ro","_common$members","origin","ownEnums","findEnumsForObjectAsIds","enumName","funcs","_data$objects$data$en","_common$members2","findFunctionsForObject","pef","_data$objects$data$fu","_common$members3","formatValue","state","texts","dateFormat","isFloatComma","states","getStates","isCommon","valText","v","val","match","Date","round","s","unit","valFull","t","value","ack","ts","formatDate","lc","from","user","c","quality","quality2text","q","nbr","prepareSparkData","values","time","DEFAULT_FILTER","ITEM_IMAGES","channel","device","adapter","meta","chart","config","group","host","schedule","script","folder","StyledBadge","withStyles","badge","border","paper","Badge","SCREEN_WIDTHS","xs","idWidth","fields","widths","sm","md","buttons","lg","changedFrom","qualityCode","timestamp","lastChange","xl","objectsAlreadyLoaded","ObjectBrowser","_Component","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","console","log","findItem","pausedSubscribes","statesUpdateTimer","setTimeout","forceUpdate","clearTimeout","newState","event","filterFunc","columnsForAdmin","parse","parseObjectForAdmins","setState","objectsUpdateTimer","_buildTree","lastAppliedFilter","_this$objects$_id","mobile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","objId","_enObj$common","_enObj","enObj","wrap","_callee$","_context","prev","next","socket","setObject","stop","_x","_x2","_ref2","_callee2","objs","_callee2$","_context2","t0","t1","done","hasOwn","abrupt","t2","_createAllEnums","getState","sent","def","t3","window","alert","t4","t5","_x3","evt","f","files","r","FileReader","onload","_ref3","_callee3","contents","json","len","_callee3$","_context3","loadObjects","_x4","readAsText","selected","selectedNonObject","_this$objects$id","_this$objects$id2","acl","check","valueNum","arrayTooltipText","funcRenderStateObject","rights","ownerGroup","ownerUser","owner","map","resizerActiveDiv","widthNext","resizeLeft","resizerOldWidth","clientX","resizerPosition","resizerOldWidthNext","resizerMin","resizerNextMin","resizerCurrentWidths","resizerActiveName","resizerNextName","resizerNextDiv","columnsVisibility","scrollBarWidth","customWidth","resizeTimeout","_localStorage","localStorage","setItem","dialogName","removeEventListener","resizerMouseMove","resizerMouseUp","resizerActiveIndex","storedWidths","parentNode","dataset","previousElementSibling","handle","querySelector","nextElementSibling","min","offsetWidth","addEventListener","calculateColumnsVisibility","removeItem","extendObject","error","lastSelectedItems","getItem","expanded","defaultFilters","_sessionStorage","sessionStorage","tableRef","createRef","filterRefs","selectedFound","subscribes","visibleCols","columns","pos","indexOf","possibleCols","customDialog","router","location","getLocation","dialog","pauseSubscribe","columnsWidths","foldersFirst","statesView","objectStatesView","loaded","filterKey","depth","expandAllVisible","toast","editObjectDialog","viewFileDialog","roleDialog","columnsSelectorShow","columnsAuto","columnsDialogTransparent","columnsEditCustomDialog","customColumnDialogValueChanged","showExportDialog","linesEnabled","showDescription","edit","editObject","deleteObject","customConfig","copyState","editState","close","filter_id","filter_name","filter_type","filter_role","filter_room","filter_func","filter_custom","filterCustomsWithout","objectChangedByUser","objectChangedBy","objectChangedFrom","stateChangedBy","stateChangedFrom","deviceError","deviceDisconnected","deviceConnected","aclOwner_read_object","aclOwner_read_state","aclOwner_write_object","aclOwner_write_state","aclGroup_read_object","aclGroup_read_state","aclGroup_write_object","aclGroup_write_state","aclEveryone_read_object","aclEveryone_read_state","aclEveryone_write_object","aclEveryone_write_state","levelPadding","_createClass2","loadAllObjects","update","_this2","Promise","resolve","updating","then","objectsWorker","getObjects","_objects","getObjectViewSystem","getObject","moreObjects","systemConfig","assign","defaultNewAcl","defaultHistory","getAdditionalColumns","_buildTree2","node","expandAllSelected","onAfterSelect","showError","cb","_toConsumableArray2","changed","path","isDouble","_this3","getObjectName","language","onSelect","componentDidMount","_this4","registerHandler","onObjectChange","subscribeObject","componentWillUnmount","_this5","filterTimer","unregisterHandler","unsubscribeObject","pattern","unsubscribeState","onStateChange","refreshComponent","_this6","renderErrorDialog","_this7","open","maxWidth","fullWidth","onClose","variant","onClick","autoFocus","startIcon","toggleItem","_this8","multiSelect","_renderDefinedList","isLast","_this9","cols","unshift","edge","disabled","checked","disableRipple","renderColumnsSelectorDialog","_this10","control","onChange","label","column","_this11","getAdapters","instances","checkUnsubscribes","recordStates","unsubscribe","_root","_partyId","shift","_this12","adminColumns","objTypes","warn","subscribe","subscribeState","isPause","_this13","onFilter","_this14","_name","current","tagName","onFilterChanged","clearFilter","_this15","childNodes","isFilterEmpty","_this16","someNotEmpty","attr","getFilterInput","_this17","_this$filterRefs$name","margin","ref","underline","placeholder","defaultValue","autoComplete","firstChild","size","getFilterSelect","_this18","_this$filterRefs$name2","hasIcons","inputProps","displayEmpty","newFilter","getFilterSelectRole","getFilterSelectRoom","_this19","_this19$objects$id","_this19$objects$id2","getFilterSelectFunction","_this20","_this20$objects$id","getFilterSelectType","getFilterSelectCustoms","_this21","onExpandAll","_this22","onCollapseAll","_this23","expandDepth","_this24","onExpandVisible","onStatesViewVisible","onCollapseVisible","collapseDepth","_getSelectedIdsForExport","idDot","idLen","_exportObjects","isAll","_this25","getEnumsForId","renderExportDialog","_this26","getToolbar","_this27","allowObjectCreation","popper","showExpertButton","disableColumnSelector","badgeContent","objectAddBoolean","toolTipObjectCreating","modalNewObj","objectImportExport","input","handleJsonUpload","objectBrowserEditObject","objectEditBoolean","doNavigate","toggleExpanded","onCopy","text","stopPropagation","preventDefault","copyToClipboard","renderColumnButtons","_this28","_item$children2","_item$data$obj$common","_item$data$obj$common3","onObjectDelete","objectEditOfAccessControl","modalEditOfAccess","modalEditOfAccessObjData","start","cellButtonsButtonIcon","aclTooltip","renderTooltipAccessControl","aclSystemConfig","Number","isNaN","dontDelete","_item$children3","_item$data$obj$common2","objectCustomDialog","readHistory","sparkline","now","setHours","getHours","setMinutes","setSeconds","setMilliseconds","nowMs","getTime","getHistory","end","step","addID","aggregate","sparks","getElementsByClassName","renderColumnValue","_obj$common4","_this29","fill","strokeWidth","copyText","onOpen","_syncEnum","enumIds","newArray","_this$info$objects$en","_this30","enumId","promises","_this$info$objects$en2","_this$info$objects$en3","all","syncEnum","_this31","toCheck","renderEnumDialog","_this32","itemEnums","enumDialogEnums","enumsOriginal","alt","labelId","tabIndex","renderEditRoleDialog","_this33","objectBrowserEditRole","ObjectBrowserEditRole","onColumnsEditCustomDialogClose","isSave","_this34","customColumnDialog","parseFloat","setCustomValue","it","Error","renderColumnsEditCustomDialog","_this35","getCustomValue","initValue","onKeyUp","keyCode","defaultChecked","pathText","renderCustomValue","_this36","notEditable","align","renderLeaf","isExpanded","_this37","_common$alias","_common$alias2","_this$states$id2","_item$data","_item$data2","_this$states$id3","_this$states$id4","_this$states$id5","iconFolder","itemType","iconItem","typeImg","_findRoomsForObject","_findFunctionsForObje","checkbox","valueEditable","objectBrowserViewFile","enumEditable","checkVisibleObjectType","newValueTitle","_this$states$id","readWriteAlias","alias","read","scrollToItem","checkColor","invertBackground","themeName","distance","colorDistance","themeType","icons","statusStates","_this37$objects$_id","colorSet","errorId","onlineId","offlineId","useDesc","container","direction","dragEnabled","onDoubleClick","Fragment","adapterColumns","updateOpened","renderItem","_this38","items","leaf","DragWrapper","_this39","WIDTHS","nameHeader","widthSum","newWidth","reduce","accumulator","renderHeader","_this40","filterClearInValue","onMouseDown","resizerMouseDown","resizerReset","renderToast","_this41","autoHideDuration","message","componentDidUpdate","_this42","clientWidth","getElementById","scrollIntoView","behavior","block","inline","renderCustomDialog","_this43","ObjectCustomDialog","reportChangedIds","changedIds","objectIDs","customsInstances","onUpdate","valAck","_this44","expire","renderEditObjectDialog","_this45","ObjectBrowserEditObject","roleArray","onNewObject","updateAlias","_this45$objects$_this","_obj$common5","renderViewObjectFileDialog","_this46","ObjectBrowserViewFile","renderEditValueDialog","_this$objects$this$ed","_this47","objectBrowserValue","ObjectBrowserValue","res","render","_this48","unsubscribeTimer","jsonFilter","modalNewObject","modalEditOfAccessControl","getDerivedStateFromProps","p","Component","defaultProps","propTypes","PropTypes","string","oneOfType","array","bool","isRequired","number","dragSettings","useDrag","_export","withWidth","_default","exports"],"sources":["ObjectBrowser.js"],"sourcesContent":["/**\n * Copyright 2020-2023, bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n **/\nimport React, { Component, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport SVG from 'react-inlinesvg';\n\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport FormControl from '@mui/material/FormControl';\nimport Input from '@mui/material/Input';\nimport Grid from '@mui/material/Grid';\nimport Badge from '@mui/material/Badge';\nimport Tooltip from '@mui/material/Tooltip';\nimport Snackbar from '@mui/material/Snackbar';\nimport Checkbox from '@mui/material/Checkbox';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemButton from '@mui/material/ListItemButton';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';\nimport ListItemText from '@mui/material/ListItemText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Fab from '@mui/material/Fab';\nimport TextField from '@mui/material/TextField';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Switch from '@mui/material/Switch';\n// import ListItemButton from '@mui/material/ListItemButton';\n// import Slider from '@mui/material/Slider';\n// import Typography from '@mui/material/Typography';\n\n// Icons\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconConfig from '@mui/icons-material/Settings';\nimport IconSystem from '@mui/icons-material/SettingsApplications';\nimport IconPhoto from '@mui/icons-material/Photo';\nimport IconGroup from '@mui/icons-material/SupervisedUserCircle';\nimport IconSchedule from '@mui/icons-material/CalendarToday';\nimport IconUser from '@mui/icons-material/PersonOutlined';\nimport IconHost from '@mui/icons-material/Router';\nimport IconConnection from '@mui/icons-material/Wifi';\nimport IconInfo from '@mui/icons-material/Info';\nimport IconMeta from '@mui/icons-material/Description';\nimport IconScript from '@mui/icons-material/Code';\nimport IconChart from '@mui/icons-material/ShowChart';\nimport IconEnum from '@mui/icons-material/ListAlt';\nimport IconColumns from '@mui/icons-material/ViewColumn';\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\nimport BuildIcon from '@mui/icons-material/Build';\nimport PublishIcon from '@mui/icons-material/Publish';\nimport AddIcon from '@mui/icons-material/Add';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport LooksOneIcon from '@mui/icons-material/LooksOne';\nimport PressButtonIcon from '@mui/icons-material/RoomService';\nimport IconError from '@mui/icons-material/Error';\nimport IconDisconnected from '@mui/icons-material/WifiOff';\nimport TextFieldsIcon from '@mui/icons-material/TextFields';\n\nimport IconExpert from '../icons/IconExpert';\nimport IconAdapter from '../icons/IconAdapter';\nimport IconAlias from '../icons/IconAlias';\nimport IconChannel from '../icons/IconChannel';\nimport IconCopy from '../icons/IconCopy';\nimport IconDevice from '../icons/IconDevice';\nimport IconDocument from '../icons/IconDocument';\nimport IconDocumentReadOnly from '../icons/IconDocumentReadOnly';\nimport IconInstance from '../icons/IconInstance';\nimport IconState from '../icons/IconState';\nimport IconClosed from '../icons/IconClosed';\nimport IconOpen from '../icons/IconOpen';\nimport IconClearFilter from '../icons/IconClearFilter';\n\n// own\nimport Icon from './Icon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\nimport TabContainer from './TabContainer';\nimport TabContent from './TabContent';\nimport TabHeader from './TabHeader';\n\nconst ICON_SIZE = 24;\nconst ROW_HEIGHT = 32;\nconst ITEM_LEVEL = 16;\nconst SMALL_BUTTON_SIZE = 20;\nconst COLOR_NAME_SYSTEM = '#ff6d69';\nconst COLOR_NAME_SYSTEM_ADAPTER = '#5773ff';\nconst COLOR_NAME_ERROR_DARK = '#ff413c';\nconst COLOR_NAME_ERROR_LIGHT = '#86211f';\nconst COLOR_NAME_CONNECTED_DARK = '#57ff45';\nconst COLOR_NAME_CONNECTED_LIGHT = '#098c04';\nconst COLOR_NAME_DISCONNECTED_DARK = '#f3ad11';\nconst COLOR_NAME_DISCONNECTED_LIGHT = '#6c5008';\n\nconst styles = theme => ({\n toolbar: {\n minHeight: 38, // Theme.toolbar.height,\n // boxShadow: '0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)'\n },\n toolbarButtons: {\n padding: 4,\n marginLeft: 4,\n },\n switchColumnAuto: {\n marginLeft: theme.spacing(2),\n },\n dialogColumns: {\n transition: 'opacity 1s',\n },\n dialogColumnsLabel: {\n fontSize: 12,\n paddingTop: theme.spacing(1),\n },\n columnCustom: {\n width: '100%',\n display: 'inline-block',\n },\n columnCustomEditable: {\n cursor: 'text',\n },\n columnCustomCenter: {\n textAlign: 'center',\n },\n columnCustomLeft: {\n textAlign: 'left',\n },\n columnCustomRight: {\n textAlign: 'right',\n },\n width100: {\n width: '100%',\n },\n transparent_10: {\n opacity: 0.1,\n },\n transparent_20: {\n opacity: 0.2,\n },\n transparent_30: {\n opacity: 0.3,\n },\n transparent_40: {\n opacity: 0.4,\n },\n transparent_50: {\n opacity: 0.5,\n },\n transparent_60: {\n opacity: 0.6,\n },\n transparent_70: {\n opacity: 0.7,\n },\n transparent_80: {\n opacity: 0.8,\n },\n transparent_90: {\n opacity: 0.9,\n },\n transparent_100: {\n opacity: 1,\n },\n columnsDialogInputWidth: {\n width: 80,\n },\n headerRow: {\n paddingLeft: theme.spacing(1),\n height: 38,\n whiteSpace: 'nowrap',\n userSelect: 'none',\n },\n buttonClearFilter: {\n position: 'relative',\n float: 'right',\n padding: 0,\n },\n buttonClearFilterIcon: {\n zIndex: 2,\n position: 'absolute',\n top: 0,\n left: 0,\n color: '#FF0000',\n opacity: 0.7,\n },\n\n tableDiv: {\n paddingTop: 0, // theme.spacing(1),\n paddingLeft: 0,\n width: `calc(100% - ${theme.spacing(1)})`,\n height: 'calc(100% - 38px)',\n overflow: 'auto',\n },\n tableRow: {\n paddingLeft: theme.spacing(1),\n height: ROW_HEIGHT,\n lineHeight: `${ROW_HEIGHT}px`,\n verticalAlign: 'top',\n userSelect: 'none',\n width: '100%',\n '&:hover': {\n background: `${theme.palette.mode === 'dark' ? theme.palette.primary.dark : theme.palette.primary.light} !important`,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n whiteSpace: 'nowrap',\n flexWrap: 'nowrap',\n },\n tableRowLines: {\n borderBottom: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n '& > div': {\n borderRight: `1px solid ${theme.palette.mode === 'dark' ? '#8888882e' : '#8888882e'}`,\n },\n },\n tableRowNoDragging: {\n cursor: 'pointer',\n },\n tableRowAlias: {\n height: ROW_HEIGHT + 10,\n },\n tableRowAliasReadWrite: {\n height: ROW_HEIGHT + 22,\n },\n checkBox: {\n padding: 0,\n },\n cellId: {\n position: 'relative',\n fontSize: '1rem',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n // verticalAlign: 'top',\n // position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n '& .iconOwn': {\n display: 'block',\n width: ROW_HEIGHT - 4,\n height: ROW_HEIGHT - 4,\n marginTop: 2,\n float: 'right',\n },\n '&:hover .iconOwn': {\n display: 'none',\n },\n '& *': {\n width: 'initial',\n },\n },\n cellIdSpan: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n // display: 'inline-block',\n // verticalAlign: 'top',\n },\n cellIdIconFolder: {\n marginRight: theme.spacing(1),\n width: ROW_HEIGHT - 4,\n height: ROW_HEIGHT - 4,\n cursor: 'pointer',\n color: theme.palette.secondary.main || '#fbff7d',\n verticalAlign: 'top',\n },\n cellIdIconDocument: {\n verticalAlign: 'middle',\n marginLeft: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n marginRight: theme.spacing(1),\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n },\n cellIdIconOwn: {\n\n },\n cellIdTooltip: {\n fontSize: 14,\n },\n cellIdTooltipLink: {\n color: \"#7ec2fd\",\n \"&:hover\": {\n color: \"#7ec2fd\"\n },\n \"&:visited\": {\n color: \"#7ec2fd\"\n }\n },\n cellCopyButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n opacity: 0.8,\n '&:hover': {\n opacity: 1,\n },\n position: 'absolute',\n right: 3,\n },\n cellEditButton: {\n width: SMALL_BUTTON_SIZE,\n height: SMALL_BUTTON_SIZE,\n color: 'white',\n position: 'absolute',\n top: (ROW_HEIGHT - SMALL_BUTTON_SIZE) / 2,\n right: SMALL_BUTTON_SIZE + 3,\n opacity: 0.7,\n '&:hover': {\n opacity: 1,\n },\n },\n cellName: {\n display: 'inline-block',\n verticalAlign: 'top',\n fontSize: 14,\n marginLeft: 5,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellNameWithDesc: {\n lineHeight: 'normal',\n },\n cellNameDivDiv: {\n\n },\n cellDescription: {\n fontSize: 10,\n opacity: 0.5,\n fontStyle: 'italic',\n },\n cellIdAlias: {\n fontStyle: 'italic',\n fontSize: 12,\n opacity: 0.7,\n '&:hover': {\n color: theme.palette.mode === 'dark' ? '#009900' : '#007700',\n },\n },\n cellIdAliasReadWriteDiv: {\n height: 24,\n marginTop: -5,\n },\n cellIdAliasAlone: {\n lineHeight: 0,\n },\n cellIdAliasReadWrite: {\n lineHeight: '12px',\n },\n cellType: {\n display: 'inline-block',\n verticalAlign: 'top',\n '& .itemIcon': {\n verticalAlign: 'middle',\n width: ICON_SIZE,\n height: ICON_SIZE,\n display: 'inline-block',\n },\n '& .itemIconFolder': {\n marginLeft: 3,\n },\n },\n cellRole: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellRoom: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellEnumParent: {\n opacity: 0.4,\n },\n cellFunc: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellValue: {\n display: 'inline-block',\n verticalAlign: 'top',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n cellValueButton: {\n marginTop: 5,\n '&:active': {\n transform: 'scale(0.8)',\n },\n },\n cellValueButtonFalse: {\n opacity: 0.3,\n },\n cellAdapter: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n cellValueTooltip: {\n fontSize: 12,\n },\n cellValueText: {\n width: '100%',\n height: ROW_HEIGHT,\n fontSize: 16,\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n position: 'relative',\n verticalAlign: 'top',\n '& .copyButton': {\n display: 'none',\n },\n '&:hover .copyButton': {\n display: 'block',\n },\n },\n cellValueFile: {\n color: '#2837b9',\n },\n cellValueTooltipTitle: {\n fontStyle: 'italic',\n width: 100,\n display: 'inline-block',\n },\n cellValueTooltipValue: {\n width: 120,\n display: 'inline-block',\n // overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n cellValueTooltipBoth: {\n width: 220,\n display: 'inline-block',\n whiteSpace: 'nowrap',\n },\n cellValueTooltipBox: {\n width: 250,\n overflow: 'hidden',\n pointerEvents: 'none',\n },\n tooltip: {\n pointerEvents: 'none',\n },\n cellValueTextUnit: {\n marginLeft: theme.spacing(0.5),\n opacity: 0.8,\n },\n newValue: {\n animation: '$newValueAnimation 2s ease-in-out',\n },\n '@keyframes newValueAnimation': {\n '0%': {\n color: '#00f900',\n },\n '80%': {\n color: '#008000',\n },\n '100%': {\n color: theme.palette.mode === 'dark' ? '#fff' : '#000',\n },\n },\n cellValueTextState: {\n opacity: 0.7,\n },\n cellValueTooltipCopy: {\n position: 'absolute',\n bottom: 3,\n right: 3,\n },\n cellValueTooltipEdit: {\n position: 'absolute',\n bottom: 3,\n right: 15,\n },\n cellButtons: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n cellButtonsButton: {\n display: 'inline-block',\n opacity: 0.7,\n width: SMALL_BUTTON_SIZE + 4,\n height: SMALL_BUTTON_SIZE + 4,\n '&:hover': {\n opacity: 1,\n },\n paddingTop: 0,\n paddingLeft: 0,\n marginTop: -2,\n },\n cellButtonsEmptyButton: {\n fontSize: 12,\n },\n cellButtonMinWidth: {\n minWidth: 47,\n },\n cellButtonsButtonAlone: {\n marginLeft: SMALL_BUTTON_SIZE + 4,\n paddingTop: 0,\n marginTop: -2,\n },\n cellButtonsButtonWithCustoms: {\n color: theme.palette.secondary.main,\n },\n cellButtonsButtonWithoutCustoms: {\n opacity: 0.2,\n },\n cellButtonsValueButton: {\n position: 'absolute',\n display: 'inline-block',\n top: SMALL_BUTTON_SIZE / 2 - 2,\n opacity: 0.7,\n width: SMALL_BUTTON_SIZE - 2,\n height: SMALL_BUTTON_SIZE - 2,\n color: theme.palette.action.active,\n '&:hover': {\n opacity: 1,\n },\n },\n cellButtonsValueButtonCopy: {\n right: theme.spacing(1),\n cursor: 'pointer',\n },\n cellButtonsValueButtonEdit: {\n right: SMALL_BUTTON_SIZE / 2 + parseInt(theme.spacing(2), 10),\n },\n\n filteredOut: {\n opacity: 0.5,\n },\n filteredParentOut: {\n opacity: 0.3,\n },\n filterInput: {\n marginTop: 0,\n marginBottom: 0,\n },\n selectIcon: {\n width: 24,\n height: 24,\n marginRight: 4,\n },\n selectNone: {\n opacity: 0.5,\n },\n itemSelected: {\n background: `${theme.palette.primary.main} !important`,\n color: `${Utils.invertColor(theme.palette.primary.main, true)} !important`,\n },\n header: {\n width: '100%',\n },\n headerCell: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n headerCellValue: {\n paddingTop: 4,\n // paddingLeft: 5,\n fontSize: 16,\n },\n headerCellInput: {\n width: 'calc(100% - 5px)',\n height: ROW_HEIGHT,\n paddingTop: 3,\n '& .itemIcon': {\n verticalAlign: 'middle',\n width: ICON_SIZE,\n height: ICON_SIZE,\n display: 'inline-block',\n },\n },\n headerCellSelectItem: {\n '& .itemIcon': {\n width: ICON_SIZE,\n height: ICON_SIZE,\n marginRight: 5,\n display: 'inline-block',\n },\n },\n visibleButtons: {\n color: '#2196f3',\n opacity: 0.7,\n },\n grow: {\n flexGrow: 1,\n },\n enumIconDiv: {\n marginRight: theme.spacing(1),\n width: 32,\n height: 32,\n borderRadius: 8,\n background: '#FFFFFF',\n },\n enumIcon: {\n marginTop: 4,\n marginLeft: 4,\n width: 24,\n height: 24,\n },\n enumDialog: {\n overflow: 'hidden',\n },\n enumList: {\n minWidth: 250,\n height: 'calc(100% - 50px)',\n overflow: 'auto',\n },\n enumButton: {\n float: 'right',\n },\n enumCheckbox: {\n minWidth: 0,\n },\n buttonDiv: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n aclText: {\n fontSize: 13,\n },\n rightsObject: {\n color: '#55ff55',\n paddingLeft: 3,\n },\n rightsState: {\n color: '#86b6ff',\n paddingLeft: 3,\n },\n textCenter: {\n padding: 12,\n textAlign: 'center',\n },\n tooltipAccessControl: {\n display: 'flex',\n flexDirection: 'column',\n },\n '@media screen and (max-width: 465px)': {\n columnsDialogInputWidth: {\n width: 50,\n },\n fontSizeTitle: {\n '& *': {\n fontSize: 12,\n },\n },\n },\n '@media screen and (max-width: 700px)': {\n\n },\n '@media screen and (max-width: 430px)': {\n\n },\n draggable: {\n cursor: 'copy',\n },\n nonDraggable: {\n cursor: 'no-drop',\n },\n selectClearButton: {\n position: 'absolute',\n top: 0,\n right: 0,\n borderRadius: 20,\n backgroundColor: theme.palette.background.default,\n },\n iconDeviceConnected: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 32,\n width: 20,\n },\n iconDeviceDisconnected: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 32,\n width: 20,\n },\n iconDeviceError: {\n color: theme.palette.mode === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT,\n opacity: 0.8,\n position: 'absolute',\n top: 4,\n right: 50,\n width: 20,\n },\n resizeHandle: {\n display: 'block',\n position: 'absolute',\n cursor: 'col-resize',\n width: 7,\n top: 2,\n bottom: 2,\n zIndex: 1,\n },\n resizeHandleRight: {\n right: 3,\n borderRight: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderRightStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderRightStyle: 'solid',\n },\n },\n resizeHandleLeft: {\n left: -4,\n borderLeft: '2px dotted #888',\n '&:hover': {\n borderColor: '#ccc',\n borderLeftStyle: 'solid',\n },\n '&.active': {\n borderColor: '#517ea5',\n borderLeftStyle: 'solid',\n },\n },\n invertedBackground: {\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n padding: '0 3px',\n borderRadius: '2px 0 0 2px',\n },\n invertedBackgroundFlex: {\n backgroundColor: theme.palette.mode === 'dark' ? '#9a9a9a' : '#565656',\n borderRadius: '0 2px 2px 0',\n },\n});\n\nfunction generateFile(filename, obj) {\n const el = document.createElement('a');\n el.setAttribute('href', `data:application/json;charset=utf-8,${encodeURIComponent(JSON.stringify(obj, null, 2))}`);\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n document.body.appendChild(el);\n\n el.click();\n\n document.body.removeChild(el);\n}\n\n// d=data, t=target, s=start, e=end, m=middle\nfunction binarySearch(list, find, _start, _end) {\n _start = _start || 0;\n if (_end === undefined) {\n _end = list.length - 1;\n if (!_end) {\n return list[0] === find;\n }\n }\n const middle = Math.floor((_start + _end) / 2);\n if (find === list[middle]) {\n return list[middle];\n }\n if (_end - 1 === _start) {\n return list[_start] === find || list[_end] === find;\n }\n if (find > list[middle]) {\n return binarySearch(list, find, middle, _end);\n }\n if (find < list[middle]) {\n return binarySearch(list, find, _start, middle);\n }\n return false;\n}\n\nfunction getName(name, lang) {\n if (name && typeof name === 'object') {\n return (name[lang] || name.en || '').toString();\n }\n\n return (name || '').toString();\n}\n\nfunction getSelectIdIcon(objects, id, imagePrefix) {\n imagePrefix = imagePrefix || '.'; // http://localhost:8081';\n let src = '';\n const _id_ = `system.adapter.${id}`;\n const aIcon = id && objects[_id_] && objects[_id_].common && objects[_id_].common.icon;\n if (aIcon) {\n // if not BASE64\n if (!aIcon.startsWith('data:image/')) {\n if (aIcon.includes('.')) {\n src = `${imagePrefix}/adapter/${objects[_id_].common.name}/${aIcon}`;\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null; // '<i class=\"material-icons iob-list-icon\">' + objects[_id_].common.icon + '</i>';\n }\n } else {\n if (aIcon.startsWith('data:image/svg')) {\n src = <SVG className=\"iconOwn\" src={aIcon} width={28} height={28} />;\n } else {\n src = aIcon;\n }\n }\n } else {\n const common = objects[id] && objects[id].common;\n\n if (common) {\n const cIcon = common.icon;\n if (cIcon) {\n if (!cIcon.startsWith('data:image/')) {\n if (cIcon.includes('.')) {\n let instance;\n if (objects[id].type === 'instance' || objects[id].type === 'adapter') {\n src = `${imagePrefix}/adapter/${common.name}/${cIcon}`;\n } else if (id && id.startsWith('system.adapter.')) {\n instance = id.split('.', 3);\n if (cIcon[0] === '/') {\n instance[2] += cIcon;\n } else {\n instance[2] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[2]}`;\n } else {\n instance = id.split('.', 2);\n if (cIcon[0] === '/') {\n instance[0] += cIcon;\n } else {\n instance[0] += `/${cIcon}`;\n }\n src = `${imagePrefix}/adapter/${instance[0]}`;\n }\n } else if (aIcon && aIcon.length < 3) {\n return aIcon; // utf-8\n } else {\n return null;\n }\n } else if (cIcon.startsWith('data:image/svg')) {\n // if base 64 image\n src = <SVG className=\"iconOwn\" src={cIcon} width={28} height={28} />;\n } else {\n src = cIcon;\n }\n }\n }\n }\n\n return src || null;\n}\n\nfunction applyFilter(item, filters, lang, objects, context, counter, customFilter, selectedTypes, _depth) {\n _depth = _depth || 0;\n let filteredOut = false;\n if (!context) {\n context = {};\n if (filters.id) {\n context.id = filters.id.toLowerCase();\n }\n if (filters.name) {\n context.name = filters.name.toLowerCase();\n }\n if (filters.type) {\n context.type = filters.type.toLowerCase();\n }\n if (filters.custom) {\n context.custom = filters.custom.toLowerCase();\n }\n if (filters.role) {\n context.role = filters.role.toLowerCase();\n }\n if (filters.room) {\n context.room = (objects[filters.room] && objects[filters.room].common && objects[filters.room].common.members) || [];\n }\n if (filters.func) {\n context.func = (objects[filters.func] && objects[filters.func].common && objects[filters.func].common.members) || [];\n }\n }\n\n const data = item.data;\n\n if (data && data.id) {\n const common = data.obj?.common;\n\n if (customFilter) {\n if (customFilter.type) {\n if (typeof customFilter.type === 'string') {\n if (!data.obj || customFilter.type !== data.obj.type) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.type)) {\n if (!data.obj || !customFilter.type.includes(data.obj.type)) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.type) {\n if (!common?.type) {\n filteredOut = true;\n } else if (typeof customFilter.common.type === 'string') {\n if (customFilter.common.type !== common.type) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.common.type)) {\n if (!customFilter.type.includes(common.type)) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.role) {\n if (!common?.role) {\n filteredOut = true;\n } else if (typeof customFilter.common.role === 'string') {\n if (common.role.startsWith(customFilter.common.role)) {\n filteredOut = true;\n }\n } else if (Array.isArray(customFilter.common.role)) {\n if (!customFilter.common.role.find(role => customFilter.role.includes(role))) {\n filteredOut = true;\n }\n }\n }\n if (!filteredOut && customFilter.common?.custom === '_' && common?.custom) {\n filteredOut = true;\n }\n\n if (!filteredOut && customFilter.common?.custom && customFilter.common?.custom !== '_') {\n if (!common?.custom) {\n filteredOut = true;\n } else\n if (customFilter.common.custom === '_dataSources') {\n // TODO: make it configurable\n if (!Object.keys(common.custom).find(id => id.startsWith('history.') || id.startsWith('sql.') || id.startsWith('influxdb.'))) {\n filteredOut = true;\n }\n } else\n if (customFilter.common.custom !== true &&\n !Object.keys(common.custom).find(id => id.startsWith(customFilter.common.custom))\n ) {\n filteredOut = true;\n }\n }\n }\n\n if (!filteredOut && !filters.expertMode) {\n filteredOut =\n data.id === 'system' ||\n data.id === 'enum' ||\n // (data.obj && data.obj.type === 'meta') ||\n data.id.startsWith('system.') ||\n data.id.startsWith('enum.') ||\n data.id.startsWith('_design/') ||\n data.id.endsWith('.admin') ||\n (common && common.expert);\n }\n if (!filteredOut && context.id) {\n if (data.fID === undefined) {\n data.fID = data.id.toLowerCase();\n }\n filteredOut = !data.fID.includes(context.id);\n }\n if (!filteredOut && context.name) {\n if (common) {\n if (data.fName === undefined) {\n data.fName = (common && getName(common.name, lang)) || '';\n data.fName = data.fName.toLowerCase();\n }\n filteredOut = !data.fName.includes(context.name);\n } else {\n filteredOut = true;\n }\n }\n if (!filteredOut && filters.role && common) {\n if (common) {\n filteredOut = !(common.role && common.role.startsWith(context.role));\n } else {\n filteredOut = true;\n }\n }\n if (!filteredOut && context.room) {\n filteredOut = !context.room.find(id => id === data.id || data.id.startsWith(`${id}.`));\n }\n if (!filteredOut && context.func) {\n filteredOut = !context.func.find(id => id === data.id || data.id.startsWith(`${id}.`));\n }\n if (!filteredOut && context.type) {\n filteredOut = !(data.obj && data.obj.type && data.obj.type === context.type);\n }\n if (!filteredOut && selectedTypes) {\n filteredOut = !(data.obj && data.obj.type && selectedTypes.includes(data.obj.type));\n }\n if (!filteredOut && context.custom) {\n if (common) {\n if (context.custom === '_') {\n filteredOut = !!common.custom;\n } else {\n filteredOut = !common.custom || !common.custom[context.custom];\n }\n } else {\n filteredOut = true;\n }\n }\n }\n\n data.visible = !filteredOut;\n\n data.hasVisibleChildren = false;\n if (item.children && _depth < 20) {\n item.children.forEach(_item => {\n const visible = applyFilter(_item, filters, lang, objects, context, counter, customFilter, selectedTypes, _depth + 1);\n if (visible) {\n data.hasVisibleChildren = true;\n }\n });\n }\n\n // const visible = data.visible || data.hasVisibleChildren;\n data.sumVisibility = data.visible || data.hasVisibleChildren;// || data.hasVisibleParent;\n if (counter && data.sumVisibility) {\n counter.count++;\n }\n\n // show all children of visible object with opacity 0.5\n if (data.id && data.sumVisibility && item.children) {\n item.children.forEach(_item => _item.data.hasVisibleParent = true);\n }\n\n return data.visible || data.hasVisibleChildren;\n}\n\nfunction getVisibleItems(item, type, objects, _result) {\n _result = _result || [];\n const data = item.data;\n if (data.sumVisibility) {\n data.id && objects[data.id] && (!type || objects[data.id].type === type) && _result.push(data.id);\n item.children?.forEach(_item =>\n getVisibleItems(_item, type, objects, _result));\n }\n\n return _result;\n}\n\nfunction getSystemIcon(objects, id, k, imagePrefix) {\n let icon;\n\n // system or design have special icons\n if (id.startsWith('_design/') || (id === 'system')) {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === '0_userdata' || id === '0_userdata.0') {\n icon = <IconPhoto className=\"iconOwn\" />;\n } else if (id === 'alias' || id === 'alias.0') {\n icon = <IconAlias className=\"iconOwn\" />;\n } else if (id === 'system.adapter') {\n icon = <IconSystem className=\"iconOwn\" />;\n } else if (id === 'system.group') {\n icon = <IconGroup className=\"iconOwn\" />;\n } else if (id === 'system.user') {\n icon = <IconUser className=\"iconOwn\" />;\n } else if (id === 'system.host') {\n icon = <IconHost className=\"iconOwn\" />;\n } else if (id.endsWith('.connection') || id.endsWith('.connected')) {\n icon = <IconConnection className=\"iconOwn\" />;\n } else if (id.endsWith('.info')) {\n icon = <IconInfo className=\"iconOwn\" />;\n } else if (objects[id] && objects[id].type === 'meta') {\n icon = <IconMeta className=\"iconOwn\" />;\n } else if (k < 2) {\n // detect \"cloud.0\"\n if (objects[`system.adapter.${id}`]) {\n icon = getSelectIdIcon(objects, `system.adapter.${id}`, imagePrefix);\n }\n }\n\n return icon || null;\n}\n\nfunction getObjectTooltip(data, lang) {\n if (!data) {\n return null;\n }\n if (data.obj?.common?.desc) {\n let tooltip = '';\n\n if (typeof data.obj.common.desc === 'object') {\n tooltip = data.obj.common.desc[lang] || data.obj.common.desc.en;\n } else {\n tooltip = data.obj.common.desc;\n }\n if (!tooltip) {\n return null;\n }\n\n return tooltip.toString();\n }\n\n return null;\n}\n\nfunction getIdFieldTooltip(data, classes, lang) {\n const tooltip = getObjectTooltip(data, lang);\n if (tooltip?.startsWith('http')) {\n return <a\n className={Utils.clsx(classes.cellIdTooltipLink)}\n href={tooltip}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {tooltip}\n </a>;\n } else {\n return <span className={Utils.clsx(classes.cellIdTooltip)}>{tooltip || data.id || ''}</span>;\n }\n}\n\nfunction buildTree(objects, options) {\n options = options || {};\n const imagePrefix = options.imagePrefix || '.';\n\n let ids = Object.keys(objects);\n\n ids.sort((a, b) => {\n if (a === b) {\n return 0;\n }\n a = a.replace(/\\./g, '!!!');\n b = b.replace(/\\./g, '!!!');\n if (a > b) {\n return 1;\n }\n return -1;\n });\n\n if (options.root) {\n ids = ids.filter(id => id === options.root || id.startsWith(`${options.root}.`));\n }\n\n // find empty nodes and create names for it\n let currentPathArr = [];\n let currentPath = '';\n let currentPathLen = 0;\n const root = {\n data: {\n name: '',\n id: '',\n },\n children: [],\n };\n\n const info = {\n funcEnums: [],\n roomEnums: [],\n roles: [],\n ids: [],\n types: [],\n objects,\n customs: ['_'],\n enums: [],\n hasSomeCustoms: false,\n };\n\n let croot = root;\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n if (!id) {\n continue;\n }\n const obj = objects[id];\n const parts = id.split('.');\n\n if (obj.type && !info.types.includes(obj.type)) {\n info.types.push(obj.type);\n }\n\n if (obj) {\n const common = obj.common;\n const role = common && common.role;\n if (role && !info.roles.includes(role)) {\n info.roles.push(role);\n } else if (id.startsWith('enum.rooms.')) {\n info.roomEnums.push(id);\n info.enums.push(id);\n } else if (id.startsWith('enum.functions.')) {\n info.funcEnums.push(id);\n info.enums.push(id);\n } else if (obj.type === 'enum') {\n info.enums.push(id);\n } else if (obj.type === 'instance' && common && (common.supportCustoms || common.adminUI?.custom)) {\n info.hasSomeCustoms = true;\n info.customs.push(id.substring('system.adapter.'.length));\n }\n }\n\n info.ids.push(id);\n\n let repeat;\n\n // if next level\n do {\n repeat = false;\n\n // If current level is still OK, and we can add ID to children\n if (!currentPath || id.startsWith(`${currentPath}.`)) {\n // if more than one level added\n if (parts.length - currentPathLen > 1) {\n let curPath = currentPath;\n // generate missing levels\n for (let k = currentPathLen; k < parts.length - 1; k++) {\n curPath += (curPath ? '.' : '') + parts[k];\n // level does not exist\n if (!binarySearch(info.ids, curPath)) {\n const _croot = {\n data: {\n name: parts[k],\n parent: croot,\n id: curPath,\n obj: objects[curPath],\n level: k,\n icon: getSystemIcon(objects, curPath, k, imagePrefix),\n generated: true,\n },\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n info.ids.push(curPath); // IDs will be added by alphabet\n } else {\n croot = croot.children.find(item => item.data.name === parts[k]);\n }\n }\n }\n\n const _croot = {\n data: {\n name: parts[parts.length - 1],\n title: getName(obj && obj.common && obj.common.name, options.lang),\n obj,\n parent: croot,\n icon: getSelectIdIcon(objects, id, imagePrefix) || getSystemIcon(objects, id, 0, imagePrefix),\n id,\n hasCustoms: obj.common?.custom && Object.keys(obj.common.custom).length,\n level: parts.length - 1,\n generated: false,\n button: obj.type === 'state' && obj.common?.role && typeof obj.common.role === 'string' && obj.common.role.startsWith('button') && obj.common?.write !== false,\n },\n };\n\n croot.children = croot.children || [];\n croot.children.push(_croot);\n croot = _croot;\n\n currentPathLen = parts.length;\n currentPathArr = parts;\n currentPath = id;\n } else {\n let u = 0;\n\n while (currentPathArr[u] === parts[u]) {\n u++;\n }\n\n if (u > 0) {\n let move = currentPathArr.length;\n currentPathArr = currentPathArr.splice(0, u);\n currentPathLen = u;\n currentPath = currentPathArr.join('.');\n while (move > u) {\n croot = croot.data.parent;\n move--;\n }\n } else {\n croot = root;\n currentPathArr = [];\n currentPath = '';\n currentPathLen = 0;\n }\n repeat = true;\n }\n } while (repeat);\n }\n\n info.roomEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n }\n if (aName < bName) {\n return -1;\n }\n return 0;\n });\n info.funcEnums.sort((a, b) => {\n const aName = getName(objects[a]?.common?.name || a.split('.').pop());\n const bName = getName(objects[b]?.common?.name || b.split('.').pop());\n if (aName > bName) {\n return 1;\n }\n if (aName < bName) {\n return -1;\n }\n return 0;\n });\n info.roles.sort();\n info.types.sort();\n\n return { info, root };\n}\n\nfunction findNode(root, id, _parts, _path, _level) {\n if (root.data.id === id) {\n return root;\n }\n if (!_parts) {\n _parts = id.split('.');\n _level = 0;\n _path = _parts[_level];\n }\n if (!root.children && root.data.id !== id) {\n return null;\n }\n let found;\n for (let i = 0; i < root.children.length; i++) {\n const _id = root.children[i].data.id;\n if (_id === _path) {\n found = root.children[i];\n break;\n } else\n if (_id > _path) {\n break;\n }\n }\n if (found) {\n return findNode(found, id, _parts, `${_path}.${_parts[_level + 1]}`, _level + 1);\n }\n\n return null;\n}\n\nfunction findRoomsForObject(data, id, lang, withParentInfo, rooms) {\n if (!id) {\n return { rooms: [], per: false };\n }\n rooms = rooms || [];\n for (let i = 0; i < data.roomEnums.length; i++) {\n const common = data.objects[data.roomEnums[i]]?.common;\n const name = getName(common.name, lang);\n\n if (common?.members?.includes(id) && !rooms.includes(name)) {\n if (!withParentInfo) {\n rooms.push(name);\n } else {\n rooms.push({ name, origin: id });\n }\n }\n }\n\n let ownEnums;\n\n // Check parent\n const parts = id.split('.');\n parts.pop();\n id = parts.join('.');\n if (data.objects[id]) {\n ownEnums = rooms.length;\n findRoomsForObject(data, id, lang, withParentInfo, rooms);\n }\n\n return { rooms, per: !ownEnums }; // pe is if the enums are from parent\n}\n\nfunction findEnumsForObjectAsIds(data, id, enumName, funcs) {\n if (!id) {\n return [];\n }\n funcs = funcs || [];\n for (let i = 0; i < data[enumName].length; i++) {\n const common = data.objects[data[enumName][i]]?.common;\n if (common?.members?.includes(id) && !funcs.includes(data[enumName][i])) {\n funcs.push(data[enumName][i]);\n }\n }\n funcs.sort();\n\n return funcs;\n}\n\nfunction findFunctionsForObject(data, id, lang, withParentInfo, funcs) {\n if (!id) {\n return { funcs: [], pef: false };\n }\n funcs = funcs || [];\n for (let i = 0; i < data.funcEnums.length; i++) {\n const common = data.objects[data.funcEnums[i]]?.common;\n const name = getName(common.name, lang);\n if (common?.members?.includes(id) && !funcs.includes(name)) {\n if (!withParentInfo) {\n funcs.push(name);\n } else {\n funcs.push({ name, origin: id });\n }\n }\n }\n\n let ownEnums;\n\n // Check parent\n const parts = id.split('.');\n parts.pop();\n id = parts.join('.');\n if (data.objects[id]) {\n ownEnums = funcs.length;\n findFunctionsForObject(data, id, lang, withParentInfo, funcs);\n }\n\n return { funcs, pef: !ownEnums };\n}\n\n/*\nfunction quality2text(q) {\n if (!q) {\n return 'ok';\n }\n const custom = q & 0xFFFF0000;\n let text = '';\n if (q & 0x40) text += 'device';\n if (q & 0x80) text += 'sensor';\n if (q & 0x01) text += ' bad';\n if (q & 0x02) text += ' not connected';\n if (q & 0x04) text += ' error';\n\n return text + (custom ? '|0x' + (custom >> 16).toString(16).toUpperCase() : '') + ' [0x' + q.toString(16).toUpperCase() + ']';\n}\n*/\n\nfunction formatValue(id, state, obj, texts, dateFormat, isFloatComma) {\n const states = Utils.getStates(obj);\n const isCommon = obj.common;\n\n const valText = {};\n let v = (isCommon && isCommon.type === 'file') ? '[file]' : (!state || state.val === null ? '(null)' : (state.val === undefined ? '[undef]' : state.val));\n const type = typeof v;\n\n if (isCommon && isCommon.role && typeof isCommon.role === 'string' && isCommon.role.match(/^value\\.time|^date/)) {\n if (v && typeof v === 'string') {\n if (v.length === 13) { // (length of \"1647597254924\") warning, this solution only works till Nov 20 2286 18:46:39CET\n v = new Date(parseInt(v, 10)).toString();\n } else {\n // we don't know what is that, so leave it as it is\n }\n } else {\n if (v > 946681200 && v < 946681200000) { // '2000-01-01T00:00:00' => 946681200000\n v *= 1000; // may be the time is in seconds (UNIX time)\n }\n // null and undefined could not be here. See `let v = (isCommon && isCommon.type === 'file') ....` above\n v = v ? new Date(v).toString() : v;\n }\n } else {\n if (type === 'number') {\n v = Math.round(v * 100000000) / 100000000; // remove 4.00000000000000001\n if (isFloatComma) {\n v = v.toString().replace('.', ',');\n }\n } else if (type === 'object') {\n v = JSON.stringify(v);\n } else if (type !== 'string') {\n v = v.toString();\n }\n\n if (typeof v !== 'string') {\n v = v.toString();\n }\n }\n\n // try to replace number with \"common.states\"\n if (states && states[v] !== undefined) {\n if (v !== states[v]) {\n valText.s = v;\n v = states[v];\n }\n }\n\n if (isCommon && isCommon.unit) {\n valText.u = isCommon.unit;\n }\n const valFull = [{ t: texts.value, v }];\n\n if (state) {\n if (state.ack !== undefined && state.ack !== null) {\n valFull.push({ t: texts.ack, v: state.ack.toString() });\n }\n if (state.ts) {\n valFull.push({ t: texts.ts, v: state.ts ? Utils.formatDate(new Date(state.ts), dateFormat) : '' });\n }\n if (state.lc) {\n valFull.push({ t: texts.lc, v: state.lc ? Utils.formatDate(new Date(state.lc), dateFormat) : '' });\n }\n if (state.from) {\n let from = state.from.toString();\n if (from.startsWith('system.adapter.')) {\n from = from.substring(15);\n }\n valFull.push({ t: texts.from, v: from });\n }\n if (state.user) {\n let user = state.user.toString();\n if (user.startsWith('system.user.')) {\n user = user.substring(12);\n }\n valFull.push({ t: texts.user, v: user });\n }\n if (state.c) {\n valFull.push({ t: texts.c, v: state.c });\n }\n valFull.push({ t: texts.quality, v: Utils.quality2text(state.q || 0).join(', '), nbr: true });\n }\n\n valText.v = v;\n\n return {\n valText,\n valFull,\n style: { color: state?.ack ? (state.q ? '#ffa500' : '') : '#ff2222c9' },\n };\n}\n\nfunction prepareSparkData(values, from) {\n // set every hour one point\n let time = from;\n let i = 1;\n const v = [];\n\n while (i < values.length && time < from + 25 * 3600000) {\n // find the interval\n while (values[i - 1].ts < time && time <= values[i].ts && i < values.length) {\n i++;\n }\n if (i === 1 && values[i - 1].ts >= time) {\n // assume the value was always null\n v.push(0);\n } else\n if (i < values.length) {\n if (typeof values[i].val === 'boolean' || typeof values[i - 1].val === 'boolean') {\n v.push(values[i].val ? 1 : 0);\n } else {\n // remove nulls\n values[i - 1].val = values[i - 1].val || 0;\n values[i].val = values[i].val || 0;\n // interpolate\n const val = values[i - 1].val + ((values[i].val - values[i - 1].val) * (time - values[i - 1].ts)) / (values[i].ts - values[i - 1].ts);\n\n v.push(val);\n }\n }\n\n time += 3600000;\n }\n\n return v;\n}\n\n/**\n * @type {import('./types').ObjectBrowserTableFilter}\n */\nconst DEFAULT_FILTER = {\n id: '',\n name: '',\n room: '',\n func: '',\n role: '',\n type: '',\n custom: '',\n expertMode: false,\n};\n\nconst ITEM_IMAGES = {\n state: <IconState className=\"itemIcon\" />,\n channel: <IconChannel className=\"itemIcon\" />,\n device: <IconDevice className=\"itemIcon\" />,\n adapter: <IconAdapter className=\"itemIcon\" />,\n meta: <IconMeta className=\"itemIcon\" />,\n instance: <IconInstance className=\"itemIcon\" style={{ color: '#7da7ff' }} />,\n enum: <IconEnum className=\"itemIcon\" />,\n chart: <IconChart className=\"itemIcon\" />,\n config: <IconConfig className=\"itemIcon\" />,\n group: <IconGroup className=\"itemIcon\" />,\n user: <IconUser className=\"itemIcon\" />,\n host: <IconHost className=\"itemIcon\" />,\n schedule: <IconSchedule className=\"itemIcon\" />,\n script: <IconScript className=\"itemIcon\" />,\n folder: <IconClosed className=\"itemIcon itemIconFolder\" />,\n};\n\nconst StyledBadge = withStyles(theme => ({\n badge: {\n right: 3,\n top: 3,\n border: `2px solid ${theme.palette.background.paper}`,\n padding: '0 4px',\n },\n}))(Badge);\n\nconst SCREEN_WIDTHS = {\n // extra-small: 0px\n xs: { idWidth: '100%', fields: [], widths: {} },\n // small: 600px\n sm: { idWidth: 300, fields: ['room', 'val'], widths: { room: 100, val: 200 } },\n // medium: 960px\n md: {\n idWidth: 300,\n fields: ['room', 'func', 'val', 'buttons'],\n widths: {\n name: 200, room: 150, func: 150, val: 120, buttons: 120,\n },\n },\n // large: 1280px\n lg: {\n idWidth: 300,\n fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 300,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 165,\n lastChange: 165,\n },\n },\n // /////////////\n // extra-large: 1920px\n xl: {\n idWidth: 550,\n fields: ['name', 'type', 'role', 'room', 'func', 'val', 'buttons', 'changedFrom', 'qualityCode', 'timestamp', 'lastChange'],\n widths: {\n name: 400,\n type: 80,\n role: 120,\n room: 180,\n func: 180,\n val: 140,\n buttons: 120,\n changedFrom: 120,\n qualityCode: 100,\n timestamp: 170,\n lastChange: 170,\n },\n },\n};\n\nlet objectsAlreadyLoaded = false;\n\n/**\n * @extends {React.Component<import('./types').ObjectBrowserProps>}\n */\nclass ObjectBrowser extends Component {\n /**\n * @param {import('./types').ObjectBrowserProps} props\n */\n constructor(props) {\n super(props);\n\n this.lastSelectedItems = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectSelected`) || '[]';\n try {\n this.lastSelectedItems = JSON.parse(this.lastSelectedItems);\n if (typeof this.lastSelectedItems !== 'object') {\n this.lastSelectedItems = [this.lastSelectedItems];\n }\n this.lastSelectedItems = this.lastSelectedItems.filter(id => id);\n } catch (e) {\n // ignore\n }\n\n let expanded = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectExpanded`) || '[]';\n try {\n expanded = JSON.parse(expanded);\n } catch (e) {\n expanded = [];\n }\n\n let filter =\n props.defaultFilters ||\n (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectFilter`) ||\n { ...DEFAULT_FILTER };\n\n if (typeof filter === 'string') {\n try {\n filter = JSON.parse(filter);\n } catch (e) {\n filter = { ...DEFAULT_FILTER };\n }\n }\n\n filter.expertMode = props.expertMode !== undefined ? props.expertMode : ((window._sessionStorage || window.sessionStorage).getItem('App.expertMode') === 'true');\n this.tableRef = createRef();\n this.filterRefs = {};\n\n Object.keys(DEFAULT_FILTER).forEach(name =>\n this.filterRefs[name] = createRef());\n\n this.lastAppliedFilter = null;\n this.pausedSubscribes = false;\n\n this.selectedFound = false;\n this.root = null;\n this.states = {};\n this.subscribes = [];\n this.statesUpdateTimer = null;\n this.objectsUpdateTimer = null;\n\n this.visibleCols = props.columns || SCREEN_WIDTHS[props.width].fields;\n // remove type column if only one type must be selected\n if (props.types && props.types.length === 1) {\n const pos = this.visibleCols.indexOf('type');\n pos !== -1 && this.visibleCols.splice(pos, 1);\n }\n\n this.possibleCols = SCREEN_WIDTHS.xl.fields;\n\n let customDialog = null;\n\n if (props.router) {\n const location = props.router.getLocation();\n if (location.id && location.dialog === 'customs') {\n customDialog = [location.id];\n this.pauseSubscribe(true);\n }\n }\n\n let selected = (props.selected || '');\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.map(id => id.replace(/[\"']/g, '')).filter(id => id);\n\n let columns = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columns`);\n try {\n columns = columns ? JSON.parse(columns) : null;\n } catch (e) {\n columns = null;\n }\n\n let columnsWidths = null; // (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsWidths`);\n try {\n columnsWidths = columnsWidths ? JSON.parse(columnsWidths) : {};\n } catch (e) {\n columnsWidths = {};\n }\n\n this.imagePrefix = props.imagePrefix || '.';\n let foldersFirst = (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.foldersFirst`);\n if (foldersFirst === 'false') {\n foldersFirst = false;\n } else if (foldersFirst === 'true') {\n foldersFirst = true;\n } else {\n foldersFirst = props.foldersFirst === undefined ? true : props.foldersFirst;\n }\n\n let statesView = false;\n try {\n statesView = this.props.objectStatesView ? JSON.parse((window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.objectStatesView`)) || false : false;\n } catch (error) {\n // ignore\n }\n\n this.state = {\n loaded: false,\n foldersFirst,\n selected,\n selectedNonObject: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.selectedNonObject`) || '',\n filter,\n filterKey: 0,\n depth: 0,\n expandAllVisible: false,\n expanded,\n toast: '',\n scrollBarWidth: 16,\n customDialog,\n editObjectDialog: '',\n viewFileDialog: '',\n enumDialog: null,\n roleDialog: null,\n statesView,\n columns,\n columnsForAdmin: null,\n columnsSelectorShow: false,\n columnsAuto: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.columnsAuto`) !== 'false',\n columnsWidths,\n columnsDialogTransparent: 100,\n columnsEditCustomDialog: null,\n customColumnDialogValueChanged: false,\n showExportDialog: false,\n linesEnabled: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.lines`) === 'true',\n showDescription: (window._localStorage || window.localStorage).getItem(`${props.dialogName || 'App'}.desc`) !== 'false',\n };\n\n this.edit = {};\n\n this.texts = {\n value: props.t('ra_tooltip_value'),\n ack: props.t('ra_tooltip_ack'),\n ts: props.t('ra_tooltip_ts'),\n lc: props.t('ra_tooltip_lc'),\n from: props.t('ra_tooltip_from'),\n user: props.t('ra_tooltip_user'),\n c: props.t('ra_tooltip_comment'),\n quality: props.t('ra_tooltip_quality'),\n editObject: props.t('ra_tooltip_editObject'),\n deleteObject: props.t('ra_tooltip_deleteObject'),\n customConfig: props.t('ra_tooltip_customConfig'),\n copyState: props.t('ra_tooltip_copyState'),\n editState: props.t('ra_tooltip_editState'),\n close: props.t('ra_Close'),\n filter_id: props.t('ra_filter_id'),\n filter_name: props.t('ra_filter_name'),\n filter_type: props.t('ra_filter_type'),\n filter_role: props.t('ra_filter_role'),\n filter_room: props.t('ra_filter_room'),\n filter_func: props.t('ra_filter_func'),\n filter_custom: props.t('ra_filter_customs'), //\n filterCustomsWithout: props.t('ra_filter_customs_without'), //\n objectChangedByUser: props.t('ra_object_changed_by_user'), // Object last changed at\n objectChangedBy: props.t('ra_object_changed_by'), // Object changed by\n objectChangedFrom: props.t('ra_state_changed_from'), // Object changed from\n stateChangedBy: props.t('ra_state_changed_by'), // State changed by\n stateChangedFrom: props.t('ra_state_changed_from'), // State changed from\n ownerGroup: props.t('ra_Owner group'),\n ownerUser: props.t('ra_Owner user'),\n deviceError: props.t('ra_Error'),\n deviceDisconnected: props.t('ra_Disconnected'),\n deviceConnected: props.t('ra_Connected'),\n\n aclOwner_read_object: props.t('ra_aclOwner_read_object'),\n aclOwner_read_state: props.t('ra_aclOwner_read_state'),\n aclOwner_write_object: props.t('ra_aclOwner_write_object'),\n aclOwner_write_state: props.t('ra_aclOwner_write_state'),\n aclGroup_read_object: props.t('ra_aclGroup_read_object'),\n aclGroup_read_state: props.t('ra_aclGroup_read_state'),\n aclGroup_write_object: props.t('ra_aclGroup_write_object'),\n aclGroup_write_state: props.t('ra_aclGroup_write_state'),\n aclEveryone_read_object: props.t('ra_aclEveryone_read_object'),\n aclEveryone_read_state: props.t('ra_aclEveryone_read_state'),\n aclEveryone_write_object: props.t('ra_aclEveryone_write_object'),\n aclEveryone_write_state: props.t('ra_aclEveryone_write_state'),\n };\n\n this.levelPadding = props.levelPadding || ITEM_LEVEL;\n\n let resizerCurrentWidths = (window._localStorage || window.localStorage).getItem(`${this.props.dialogName || 'App'}.table`);\n if (resizerCurrentWidths) {\n try {\n resizerCurrentWidths = JSON.parse(resizerCurrentWidths);\n this.storedWidths = JSON.parse(JSON.stringify(SCREEN_WIDTHS[this.props.width]));\n Object.keys(resizerCurrentWidths)\n .forEach(id => {\n if (id === 'id') {\n SCREEN_WIDTHS[this.props.width].idWidth = resizerCurrentWidths.id;\n } else if (id === 'nameHeader') {\n SCREEN_WIDTHS[this.props.width].widths.name = resizerCurrentWidths[id];\n } else if (SCREEN_WIDTHS[this.props.width].widths[id] !== undefined) {\n SCREEN_WIDTHS[this.props.width].widths[id] = resizerCurrentWidths[id];\n }\n });\n\n this.customWidth = true;\n } catch (e) {\n // ignore\n }\n }\n\n this.calculateColumnsVisibility();\n }\n\n loadAllObjects(update) {\n const props = this.props;\n let objects;\n\n return new Promise(resolve => {\n this.setState({ updating: true }, () => resolve());\n })\n .then(() => (this.props.objectsWorker ?\n this.props.objectsWorker.getObjects(update) :\n props.socket.getObjects(update, true)))\n .then(_objects => {\n objects = _objects;\n if (props.types && props.types[0] !== 'state') {\n if (props.length >= 1) {\n console.error('more than one type does not supported! Use filterFunc instead');\n }\n return props.socket.getObjectViewSystem(props.types[0], null, null);\n }\n return !objects['system.config'] ? props.socket.getObject('system.config')\n .then(obj => ({ 'system.config': obj })) : Promise.resolve(null);\n })\n .then(moreObjects => {\n this.systemConfig = objects['system.config'] || moreObjects['system.config'] || {};\n\n if (moreObjects) {\n if (moreObjects['system.config']) {\n delete moreObjects['system.config'];\n }\n Object.assign(objects, moreObjects);\n }\n\n this.systemConfig.common = this.systemConfig.common || {};\n this.systemConfig.common.defaultNewAcl = this.systemConfig.common.defaultNewAcl || {};\n this.systemConfig.common.defaultNewAcl.owner = this.systemConfig.common.defaultNewAcl.owner || 'system.user.admin';\n this.systemConfig.common.defaultNewAcl.ownerGroup = this.systemConfig.common.defaultNewAcl.ownerGroup || 'system.group.administrator';\n if (typeof this.systemConfig.common.defaultNewAcl.state !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n if (typeof this.systemConfig.common.defaultNewAcl.object !== 'number') {\n // TODO: may be convert here from string\n this.systemConfig.common.defaultNewAcl.state = 0x664;\n }\n\n if (typeof props.filterFunc === 'function') {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n try {\n if (props.filterFunc(objects[id])) {\n this.objects[id] = objects[id];\n }\n } catch (e) {\n console.log(`Error by filtering of \"${id}\": ${e}`);\n }\n });\n } else\n if (props.types) {\n this.objects = {};\n Object.keys(objects).forEach(id => {\n const type = objects[id] && objects[id].type;\n // include \"folder\" types too\n if (type && (\n type === 'channel' ||\n type === 'device' ||\n type === 'enum' ||\n type === 'folder' ||\n type === 'adapter' ||\n type === 'instance' ||\n props.types.includes(type))\n ) {\n this.objects[id] = objects[id];\n }\n });\n } else {\n this.objects = objects;\n }\n\n // read default history\n this.defaultHistory = this.systemConfig.common.defaultHistory;\n if (this.defaultHistory) {\n props.socket.getState(`system.adapter.${this.defaultHistory}.alive`)\n .then(state => {\n if (!state || !state.val) {\n this.defaultHistory = '';\n }\n })\n .catch(e => window.alert(`Cannot get state: ${e}`));\n }\n\n return this.getAdditionalColumns();\n })\n .then(columnsForAdmin => {\n this.calculateColumnsVisibility(null, null, columnsForAdmin);\n\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n\n // Show first selected item\n const node = this.state.selected && this.state.selected.length && findNode(this.root, this.state.selected[0]);\n\n this.lastAppliedFilter = null;\n\n // If selected ID is not visible, reset filter\n if (node && !applyFilter(node, this.state.filter, this.props.lang, this.objects, null, null, props.customFilter, props.types)) {\n // reset filter\n this.setState({ filter: { ...DEFAULT_FILTER }, columnsForAdmin }, () => {\n this.setState({ loaded: true, updating: false }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n });\n } else {\n this.setState({ loaded: true, updating: false, columnsForAdmin }, () =>\n this.expandAllSelected(() =>\n this.onAfterSelect()));\n }\n })\n .catch(e => this.showError(e));\n }\n\n /**\n * @private\n * @param {ioBroker.EmptyCallback} cb\n */\n expandAllSelected(cb) {\n const expanded = [...this.state.expanded];\n let changed = false;\n this.state.selected.forEach(id => {\n const parts = id.split('.');\n const path = [];\n for (let i = 0; i < parts.length - 1; i++) {\n path.push(parts[i]);\n if (!expanded.includes(path.join('.'))) {\n expanded.push(path.join('.'));\n changed = true;\n }\n }\n });\n if (changed) {\n expanded.sort();\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ expanded }, cb);\n } else {\n cb && cb();\n }\n }\n\n /**\n * @private\n * @param {boolean} [isDouble]\n */\n onAfterSelect(isDouble) {\n this.lastSelectedItems = [...this.state.selected];\n if (this.state.selected && this.state.selected.length) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, JSON.stringify(this.lastSelectedItems));\n\n const name = this.lastSelectedItems.length === 1 ? Utils.getObjectName(this.objects, this.lastSelectedItems[0], null, { language: this.props.lang }) : '';\n this.props.onSelect && this.props.onSelect(this.lastSelectedItems, name, isDouble);\n } else {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, '');\n if (this.state.selected.length) {\n this.setState({ selected: [] }, () => this.props.onSelect && this.props.onSelect([], ''));\n } else {\n this.props.onSelect && this.props.onSelect([], '');\n }\n }\n }\n\n /**\n * @private\n * @param {import('./types').ObjectBrowserProps} props\n * @param {any} state\n */\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n if (props.expertMode !== undefined && props.expertMode !== state.filter.expertMode) {\n changed = true;\n newState.filter = { ...state.filter };\n newState.filter.expertMode = props.expertMode;\n }\n return changed ? newState : null;\n }\n\n /**\n * Called when component is mounted.\n */\n componentDidMount() {\n this.loadAllObjects(!objectsAlreadyLoaded)\n .then(() => {\n if (this.props.objectsWorker) {\n this.props.objectsWorker.registerHandler(this.onObjectChange);\n } else {\n this.props.socket.subscribeObject('*', this.onObjectChange);\n }\n\n objectsAlreadyLoaded = true;\n });\n }\n\n /**\n * Called when component is unmounted.\n */\n componentWillUnmount() {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = null;\n\n if (this.props.objectsWorker) {\n this.props.objectsWorker.unregisterHandler(this.onObjectChange, true);\n } else {\n this.props.socket.unsubscribeObject('*', this.onObjectChange);\n }\n\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log(`- unsubscribe ${pattern}`);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n this.objects = {};\n }\n\n /**\n * Called when component is mounted.\n */\n refreshComponent() {\n // remove all subscribes\n this.subscribes.forEach(pattern => {\n console.log(`- unsubscribe ${pattern}`);\n this.props.socket.unsubscribeState(pattern, this.onStateChange);\n });\n\n this.subscribes = [];\n\n this.loadAllObjects(true)\n .then(() => console.log('updated!'));\n }\n\n /**\n * Renders the error dialog.\n * @returns {JSX.Element | null}\n */\n renderErrorDialog() {\n return this.state.error ? <Dialog\n open={!0}\n maxWidth=\"sm\"\n fullWidth\n onClose={() => this.setState({ error: '' })}\n aria-labelledby=\"error-dialog-title\"\n aria-describedby=\"error-dialog-description\"\n >\n <DialogTitle id=\"alert-dialog-title\">{this.props.title || this.props.t('ra_Error')}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.state.error}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ error: '' })}\n color=\"primary\"\n autoFocus\n startIcon={<IconCheck />}\n >\n {this.props.t('ra_Ok')}\n </Button>\n </DialogActions>\n </Dialog> : null;\n }\n\n /**\n * Show the error dialog.\n * @param {any} error\n */\n showError(error) {\n this.setState({ error: typeof error === 'object' ? (error && typeof error.toString === 'function' ? error.toString() : JSON.stringify(error)) : error });\n }\n\n /**\n * Called when an item is selected/deselected.\n * @param {string} toggleItem\n * @param {boolean} [isDouble]\n */\n onSelect(toggleItem, isDouble) {\n if (!this.props.multiSelect) {\n if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n if (this.state.selected[0] !== toggleItem) {\n this.setState({ selected: [toggleItem], selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n } else if (isDouble && this.props.onSelect) {\n this.onAfterSelect(isDouble);\n }\n } else {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.selectedNonObject`, toggleItem);\n this.setState({ selected: [], selectedNonObject: toggleItem }, () =>\n this.onAfterSelect());\n }\n } else if (this.objects[toggleItem] && (!this.props.types || this.props.types.includes(this.objects[toggleItem].type))) {\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.selectedNonObject`);\n\n const selected = [...this.state.selected];\n const pos = selected.indexOf(toggleItem);\n if (pos === -1) {\n selected.push(toggleItem);\n selected.sort();\n } else if (!isDouble) {\n selected.splice(pos, 1);\n }\n\n this.setState({ selected, selectedNonObject: '' }, () =>\n this.onAfterSelect(isDouble));\n }\n }\n\n /**\n * @private\n * @param {boolean} isLast\n */\n _renderDefinedList(isLast) {\n const cols = [...this.possibleCols];\n cols.unshift('id');\n if (this.props.columns && !this.props.columns.includes('buttons')) {\n const pos = cols.indexOf('buttons');\n if (pos !== -1) {\n cols.splice(pos, 1);\n }\n }\n return cols\n .filter(id => (isLast && (id === 'val' || id === 'buttons')) || (!isLast && id !== 'val' && id !== 'buttons'))\n .map(id =>\n <ListItemButton onClick={() => {\n if (!this.state.columnsAuto && id !== 'id') {\n const columns = [...(this.state.columns || [])];\n const pos = columns.indexOf(id);\n if (pos === -1) {\n columns.push(id);\n columns.sort();\n } else {\n columns.splice(pos, 1);\n }\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columns', JSON.stringify(columns));\n this.calculateColumnsVisibility(null, columns);\n this.setState({ columns });\n }\n }} key={id}>\n <Checkbox\n edge=\"start\"\n disabled={id === 'id' || this.state.columnsAuto}\n checked={id === 'id' || (this.state.columnsAuto ? this.visibleCols.includes(id) : (this.state.columns && this.state.columns.includes(id)))}\n disableRipple\n />\n <ListItemText primary={this.texts['filter_' + id] || this.props.t('ra_' + id)} />\n {/*\n <ListItemSecondaryAction>\n <FormControl\n variant=\"standard\"\n className={this.props.classes.columnsDialogInputWidth}\n style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n classes={{ underline: 'no-underline' }}\n placeholder={this.props.t('ra_Width')}\n value={this.state.columnsWidths[id] || ''}\n onChange={e => {\n const columnsWidths = JSON.parse(JSON.stringify(this.state.columnsWidths));\n columnsWidths[id] = e.target.value;\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsWidths', JSON.stringify(columnsWidths));\n this.calculateColumnsVisibility(null, null, null, columnsWidths);\n this.setState({ columnsWidths });\n }}\n autoComplete=\"off\"\n />\n </FormControl>\n </ListItemSecondaryAction>\n */}\n </ListItemButton>\n );\n }\n\n /**\n * Renders the columns' selector.\n * @returns {JSX.Element | null}\n */\n renderColumnsSelectorDialog() {\n if (!this.state.columnsSelectorShow) {\n return null;\n }\n return <Dialog\n onClose={() => this.setState({ columnsSelectorShow: false })}\n open={!0}\n classes={{ root: Utils.clsx(this.props.classes.dialogColumns, this.props.classes[`transparent_${this.state.columnsDialogTransparent}`]) }}\n >\n <DialogTitle className={this.props.classes.fontSizeTitle}>{this.props.t('ra_Configure')}</DialogTitle>\n <DialogContent className={this.props.classes.fontSizeTitle}>\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch\n checked={this.state.foldersFirst}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.foldersFirst`, this.state.foldersFirst ? 'false' : 'true');\n this.setState({ foldersFirst: !this.state.foldersFirst });\n }}\n />}\n label={this.props.t('ra_Folders always first')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch\n checked={this.state.linesEnabled}\n onChange={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.lines`, this.state.linesEnabled ? 'false' : 'true');\n this.setState({ linesEnabled: !this.state.linesEnabled });\n }}\n />}\n label={this.props.t('ra_Show lines between rows')}\n />\n <FormControlLabel\n className={this.props.classes.switchColumnAuto}\n control={<Switch checked={this.state.columnsAuto} onChange={() => {\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsAuto', this.state.columnsAuto ? 'false' : 'true');\n if (!this.state.columnsAuto) {\n this.calculateColumnsVisibility(true);\n this.setState({ columnsAuto: true });\n } else {\n if (!this.state.columns) {\n this.calculateColumnsVisibility(false, [...this.visibleCols]);\n this.setState({ columnsAuto: false, columns: [...this.visibleCols] });\n } else {\n this.calculateColumnsVisibility(false);\n this.setState({ columnsAuto: false });\n }\n }\n }} />}\n label={this.props.t('ra_Auto (no custom columns)')}\n />\n {\n /*\n <Typography classes={{ root: this.props.classes.dialogColumnsLabel }}>{this.props.t('ra_Transparent dialog')}</Typography>\n <Slider classes={{ root: this.props.classes.width100 }} value={this.state.columnsDialogTransparent} min={20} max={100} step={10} onChange={(event, newValue) =>\n this.setState({ columnsDialogTransparent: newValue })\n } />\n */\n }\n <List>\n {this._renderDefinedList(false)}\n\n {this.state.columnsForAdmin && Object.keys(this.state.columnsForAdmin).sort().map(adapter =>\n this.state.columnsForAdmin[adapter].map(column =>\n <ListItemButton onClick={() => {\n if (!this.state.columnsAuto) {\n const columns = [...(this.state.columns || [])];\n const id = `_${adapter}_${column.path}`;\n const pos = columns.indexOf(id);\n if (pos === -1) {\n columns.push(id);\n columns.sort();\n } else {\n columns.splice(pos, 1);\n }\n this.calculateColumnsVisibility(null, columns);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.columns`, JSON.stringify(columns));\n this.setState({ columns });\n }\n }} key={`${adapter}_${column.name}`}>\n <ListItemIcon>\n <Checkbox\n disabled={this.state.columnsAuto}\n edge=\"start\"\n checked={!this.state.columnsAuto && this.state.columns && this.state.columns.includes(`_${adapter}_${column.path}`)}\n disableRipple\n />\n </ListItemIcon>\n <ListItemText primary={`${column.name} (${adapter})`} />\n {/*\n <ListItemSecondaryAction>\n <FormControl\n variant=\"standard\"\n className={this.props.classes.columnsDialogInputWidth}\n style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n classes={{ underline: 'no-underline' }}\n placeholder={this.props.t('ra_Width')}\n value={this.state.columnsWidths['_' + adapter + '_' + column.path] || ''}\n onChange={e => {\n const columnsWidths = JSON.parse(JSON.stringify(this.state.columnsWidths));\n columnsWidths['_' + adapter + '_' + column.path] = e.target.value;\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.columnsWidths', JSON.stringify(columnsWidths));\n this.calculateColumnsVisibility(null, null, null, columnsWidths);\n this.setState({ columnsWidths });\n }}\n autoComplete=\"off\"\n />\n </FormControl>\n </ListItemSecondaryAction>\n */}\n </ListItemButton>\n )\n )}\n {this._renderDefinedList(true)}\n </List>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.setState({ columnsSelectorShow: false })}\n color=\"primary\"\n startIcon={<IconClose />}\n >\n {this.texts.close}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n\n /**\n * @private\n */\n getAdditionalColumns() {\n return this.props.socket.getAdapters()\n .then(instances => {\n let columnsForAdmin = null;\n // find all additional columns\n instances.forEach(obj =>\n columnsForAdmin = this.parseObjectForAdmins(columnsForAdmin, obj));\n\n return columnsForAdmin;\n })\n .catch(() => {\n // window.alert('Cannot get adapters: ' + e);\n // Object browser in Web has no additional columns\n });\n }\n\n /**\n * @private\n */\n checkUnsubscribes() {\n // Remove unused subscriptions\n for (let i = this.subscribes.length - 1; i >= 0; i--) {\n !this.recordStates.includes(this.subscribes[i]) && this.unsubscribe(this.subscribes[i]);\n }\n this.recordStates = [];\n }\n\n /**\n * Find an item.\n * @param {string} id\n * @param {string[] | undefined} [_parts]\n * @param {{ data: { name: string; id: string; }; children: never[]; } | null | undefined} [_root]\n * @param {string | undefined} [_partyId]\n * @returns {any}\n */\n findItem(id, _parts, _root, _partyId) {\n _parts = _parts || id.split('.');\n _root = _root || this.root;\n if (!_root || !_parts.length) {\n return null;\n }\n\n _partyId = (_partyId ? `${_partyId}.` : '') + _parts.shift();\n\n if (_root.children) {\n const item = _root.children.find(i => i.data.id === _partyId);\n if (item) {\n if (item.data.id === id) {\n return item;\n }\n if (_parts.length) {\n return this.findItem(id, _parts, item, _partyId);\n }\n } else {\n return null;\n }\n }\n\n return null;\n }\n\n /**\n * Called when a state changes.\n * @param {string} id\n * @param {ioBroker.State} state\n */\n onStateChange = (id, state) => {\n console.log(`> stateChange ${id}`);\n if (this.states[id]) {\n const item = this.findItem(id);\n if (item && item.data.state) {\n item.data.state = null;\n }\n }\n this.states[id] = state;\n\n if (!this.pausedSubscribes) {\n if (!this.statesUpdateTimer) {\n this.statesUpdateTimer = setTimeout(() => {\n this.statesUpdateTimer = null;\n this.forceUpdate();\n }, 300);\n }\n } else if (this.statesUpdateTimer) {\n clearTimeout(this.statesUpdateTimer);\n this.statesUpdateTimer = null;\n }\n };\n\n /**\n * @private\n * @param {{ [x: string]: any; }} columnsForAdmin\n * @param {any} obj\n */\n parseObjectForAdmins(columnsForAdmin, obj) {\n if (obj.common && obj.common.adminColumns && obj.common.name) {\n let columns = obj.common.adminColumns;\n if (typeof columns !== 'object') {\n columns = [columns];\n }\n columns = columns.map(item => {\n if (typeof item !== 'object') {\n return { path: item, name: item.split('.').pop() };\n }\n\n // string => array\n if (item.objTypes && typeof item.objTypes !== 'object') {\n item.objTypes = [item.objTypes];\n } else if (!item.objTypes) {\n item.objTypes = null;\n }\n\n if (!item.name && item.path) {\n return {\n path: item.path,\n name: item.path.split('.').pop(),\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }\n if (typeof item.name !== 'object' && item.path) {\n return {\n path: item.path,\n name: item.name,\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }\n if (!item.path) {\n console.warn(`Admin columns for ${obj._id} ignored, because path not found`);\n return null;\n }\n return {\n path: item.path,\n name: item.name[this.props.lang] || item.name.en,\n width: item.width,\n edit: !!item.edit,\n type: item.type,\n objTypes: item.objTypes,\n };\n }).filter(item => item);\n\n if (columns && columns.length) {\n columnsForAdmin = columnsForAdmin || {};\n columnsForAdmin[obj.common.name] = columns.sort((a, b) => (a.path > b.path ? -1 : (a.path < b.path ? 1 : 0)));\n }\n } else if (obj.common && obj.common.name && columnsForAdmin && columnsForAdmin[obj.common.name]) {\n delete columnsForAdmin[obj.common.name];\n }\n return columnsForAdmin;\n }\n\n /**\n * @param {string} id\n * @param {ioBroker.Object} obj\n */\n onObjectChange = (id, obj/* , oldObj */) => {\n let newState;\n\n if (Array.isArray(id)) {\n id.forEach(event => {\n console.log(`> objectChange ${event.id}`);\n\n if (event.obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(event.obj)) {\n return;\n }\n\n if (event.id.startsWith('system.adapter.') && event.obj && event.obj.type === 'adapter') {\n const columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));\n\n this.parseObjectForAdmins(columnsForAdmin, event.obj);\n\n if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {\n newState = { columnsForAdmin };\n }\n }\n this.objects = this.objects || [];\n if (this.objects[event.id]) {\n if (event.obj) {\n this.objects[event.id] = event.obj;\n } else {\n delete this.objects[event.id];\n }\n }\n });\n } else {\n console.log(`> objectChange ${id}`);\n this.objects = this.objects || [];\n\n if (obj && typeof this.props.filterFunc === 'function' && !this.props.filterFunc(obj)) {\n return;\n }\n\n if (id.startsWith('system.adapter.') && obj && obj.type === 'adapter') {\n const columnsForAdmin = JSON.parse(JSON.stringify(this.state.columnsForAdmin));\n this.parseObjectForAdmins(columnsForAdmin, obj);\n if (JSON.stringify(this.state.columnsForAdmin) !== JSON.stringify(columnsForAdmin)) {\n newState = { columnsForAdmin };\n }\n }\n\n if (this.objects[id]) {\n if (obj) {\n this.objects[id] = obj;\n } else {\n delete this.objects[id];\n }\n }\n }\n\n newState && this.setState(newState);\n\n if (!this.objectsUpdateTimer && this.objects) {\n this.objectsUpdateTimer = setTimeout(() => {\n this.objectsUpdateTimer = null;\n const { info, root } = buildTree(this.objects, this.props);\n this.root = root;\n this.info = info;\n this.lastAppliedFilter = null; // apply filter anew\n\n if (!this.pausedSubscribes) {\n this.forceUpdate();\n }\n // else it will be re-rendered when dialog will be closed\n }, 500);\n }\n };\n\n /**\n * @private\n * @param {string} id\n */\n subscribe(id) {\n if (!this.subscribes.includes(id)) {\n this.subscribes.push(id);\n console.log(`+ subscribe ${id}`);\n !this.pausedSubscribes && this.props.socket.subscribeState(id, this.onStateChange);\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n unsubscribe(id) {\n const pos = this.subscribes.indexOf(id);\n if (pos !== -1) {\n this.subscribes.splice(pos, 1);\n if (this.states[id]) {\n delete this.states[id];\n }\n console.log(`- unsubscribe ${id}`);\n this.props.socket.unsubscribeState(id, this.onStateChange);\n\n if (this.pausedSubscribes) {\n console.warn('Unsubscribe during pause?');\n }\n }\n }\n\n /**\n * @private\n * @param {boolean} isPause\n */\n pauseSubscribe(isPause) {\n if (!this.pausedSubscribes && isPause) {\n this.pausedSubscribes = true;\n this.subscribes.forEach(id => this.props.socket.unsubscribeState(id, this.onStateChange));\n } else if (this.pausedSubscribes && !isPause) {\n this.pausedSubscribes = false;\n this.subscribes.forEach(id => this.props.socket.subscribeState(id, this.onStateChange));\n }\n }\n\n /**\n * @private\n * @param {string} [name]\n * @param {boolean} [value]\n */\n onFilter(name, value) {\n this.filterTimer = null;\n const filter = { ...this.state.filter };\n\n Object.keys(this.filterRefs).forEach(_name => {\n if (this.filterRefs[_name] && this.filterRefs[_name].current) {\n for (let i = 0; i < this.filterRefs[_name].current.children.length; i++) {\n if (this.filterRefs[_name].current.children[i].tagName === 'INPUT') {\n filter[_name] = this.filterRefs[_name].current.children[i].value;\n break;\n }\n }\n }\n });\n\n if (name) {\n filter[name] = value;\n if (name === 'expertMode') {\n (window._sessionStorage || window.sessionStorage).setItem('App.expertMode', value ? 'true' : 'false');\n }\n }\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));\n this.setState({ filter }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n clearFilter() {\n const filter = { ...this.state.filter };\n\n Object.keys(this.filterRefs).forEach(name => {\n if (this.filterRefs[name] && this.filterRefs[name].current) {\n for (let i = 0; i < this.filterRefs[name].current.childNodes.length; i++) {\n const item = this.filterRefs[name].current.childNodes[i];\n if (item.tagName === 'INPUT') {\n filter[name] = '';\n item.value = '';\n break;\n }\n }\n }\n });\n\n if (JSON.stringify(this.state.filter) !== JSON.stringify(filter)) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(filter));\n this.setState({ filter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(filter));\n }\n }\n\n isFilterEmpty() {\n const someNotEmpty = Object.keys(this.state.filter).find(attr =>\n attr !== 'expertMode' && this.state.filter[attr]);\n return !someNotEmpty;\n }\n\n /**\n * @private\n * @param {string} name\n */\n getFilterInput(name) {\n return <FormControl\n className={Utils.clsx(this.props.classes.headerCellInput, this.props.classes.filterInput)}\n key={`${name}_${this.state.filterKey}`}\n // style={{ marginTop: 0, marginBottom: 0 }}\n margin=\"dense\"\n >\n <Input\n ref={this.filterRefs[name]}\n classes={{ underline: 'no-underline' }}\n id={name}\n placeholder={this.texts[`filter_${name}`]}\n defaultValue={this.state.filter[name]}\n onChange={() => {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => this.onFilter(), 400);\n }}\n autoComplete=\"off\"\n />\n {this.filterRefs[name]?.current?.firstChild.value ?\n <div\n style={{\n position: 'absolute',\n right: 0,\n }}\n >\n <IconButton\n size=\"small\"\n onClick={() => {\n this.filterRefs[name].current.firstChild.value = '';\n this.onFilter(name, '');\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </FormControl>;\n }\n\n /**\n * @private\n * @param {string} name\n * @param {any[]} values\n */\n getFilterSelect(name, values) {\n const hasIcons = !!values.find(item => item.icon);\n return <div style={{ position: 'relative' }}>\n <Select\n variant=\"standard\"\n key={`${name}_${this.state.filterKey}`}\n ref={this.filterRefs[name]}\n className={`${this.props.classes.headerCellInput} no-underline`}\n onChange={() => {\n this.filterTimer && clearTimeout(this.filterTimer);\n this.filterTimer = setTimeout(() => this.onFilter(), 400);\n }}\n defaultValue={this.state.filter[name] || ''}\n inputProps={{ name, id: name }}\n displayEmpty\n >\n <MenuItem key=\"empty\" value=\"\">\n <span className={this.props.classes.selectNone}>{this.texts[`filter_${name}`]}</span>\n </MenuItem>\n {values.map(item => {\n let id;\n let _name;\n let icon;\n if (typeof item === 'object') {\n id = item.value;\n _name = item.name;\n icon = item.icon;\n } else {\n id = item;\n _name = item;\n }\n return <MenuItem className={this.props.classes.headerCellSelectItem} key={id} value={id}>\n {icon || (hasIcons ? <div className=\"itemIcon\" /> : null)}\n {_name}\n </MenuItem>;\n })}\n </Select>\n {this.filterRefs[name]?.current?.childNodes[1]?.value ?\n <div className={Utils.clsx(this.props.classes.selectClearButton)}>\n <IconButton\n size=\"small\"\n onClick={() => {\n const newFilter = { ...this.state.filter };\n newFilter[name] = '';\n this.filterRefs[name].current.childNodes[1].value = '';\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectFilter`, JSON.stringify(newFilter));\n this.setState({ filter: newFilter, filterKey: this.state.filterKey + 1 }, () =>\n this.props.onFilterChanged && this.props.onFilterChanged(newFilter));\n }}\n >\n <IconClose />\n </IconButton>\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n */\n getFilterSelectRole() {\n return this.getFilterSelect('role', this.info.roles);\n }\n\n /**\n * @private\n */\n getFilterSelectRoom() {\n const rooms = this.info.roomEnums.map(id => ({\n name: getName(this.objects[id]?.common?.name || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon || ''} className={this.props.classes.selectIcon} />,\n }));\n\n return this.getFilterSelect('room', rooms);\n }\n\n /**\n * @private\n */\n getFilterSelectFunction() {\n const func = this.info.funcEnums.map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop()),\n value: id,\n icon: <Icon src={this.objects[id]?.common?.icon || ''} className={this.props.classes.selectIcon} />,\n }));\n\n return this.getFilterSelect('func', func);\n }\n\n /**\n * @private\n */\n getFilterSelectType() {\n const types = this.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type],\n }));\n\n return this.getFilterSelect('type', types);\n }\n\n /**\n * @private\n */\n getFilterSelectCustoms() {\n if (this.info.customs.length > 1) {\n const customs = this.info.customs.map(id => ({\n name: id === '_' ? this.texts.filterCustomsWithout : id,\n value: id,\n icon: id === '_' ? null : <Icon src={getSelectIdIcon(this.objects, id, this.imagePrefix) || ''} className={this.props.classes.selectIcon} />,\n }));\n return this.getFilterSelect('custom', customs);\n }\n return null;\n }\n\n /**\n * @private\n * @param {any} [root]\n * @param {any[]} [expanded]\n */\n onExpandAll(root, expanded) {\n root = root || this.root;\n expanded = expanded || [];\n\n root.children && root.children.forEach(item => {\n if (item.data.sumVisibility) {\n expanded.push(item.data.id);\n this.onExpandAll(item, expanded);\n }\n });\n\n if (root === this.root) {\n expanded.sort();\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify([]));\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, '[]');\n this.setState({ expanded: [], depth: 0, selected: [] }, () =>\n this.onAfterSelect());\n }\n\n /**\n * @private\n * @param {any} root\n * @param {number} depth\n * @param {any[]} expanded\n */\n expandDepth(root, depth, expanded) {\n root = root || this.root;\n if (depth > 0) {\n if (root.children) {\n root.children.forEach(item => {\n if (item.data.sumVisibility) {\n if (!binarySearch(expanded, item.data.id)) {\n expanded.push(item.data.id);\n expanded.sort();\n }\n if (depth - 1 > 0) {\n this.expandDepth(item, depth - 1, expanded);\n }\n }\n });\n }\n }\n }\n\n /**\n * @private\n * @param {number} depth\n * @param {any[]} expanded\n */\n static collapseDepth(depth, expanded) {\n return expanded.filter(id => id.split('.').length <= depth);\n }\n\n /**\n * @private\n */\n onExpandVisible() {\n if (this.state.depth < 9) {\n const depth = this.state.depth + 1;\n const expanded = [...this.state.expanded];\n this.expandDepth(this.root, depth, expanded);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n */\n onStatesViewVisible() {\n const statesView = !this.state.statesView;\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectStatesView`, JSON.stringify(statesView));\n this.setState({ statesView });\n }\n\n /**\n * @private\n */\n onCollapseVisible() {\n if (this.state.depth > 0) {\n const depth = this.state.depth - 1;\n const expanded = ObjectBrowser.collapseDepth(depth, this.state.expanded);\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n getEnumsForId = id => {\n const result = [];\n this.info.enums.forEach(_id => {\n if (this.objects[_id]?.common?.members?.includes(id)) {\n const en = {\n _id: this.objects[_id]._id,\n common: JSON.parse(JSON.stringify(this.objects[_id].common)),\n native: this.objects[_id].native,\n type: 'enum',\n };\n if (en.common) {\n delete en.common.members;\n delete en.common.custom;\n delete en.common.mobile;\n }\n result.push(en);\n }\n });\n\n return result.length ? result : undefined;\n };\n\n /**\n * @private\n * @param {array} enums\n * @param {string} objId\n */\n _createAllEnums = async (enums, objId) => {\n for (let e = 0; e < enums.length; e++) {\n let id = enums[e];\n let _enObj;\n if (typeof id === 'object') {\n _enObj = id;\n id = id._id;\n }\n let enObj = this.objects[id];\n if (!enObj) {\n enObj = _enObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {},\n };\n\n enObj.common = enObj.common || {};\n enObj.common.members = [objId];\n\n await this.props.socket.setObject(id, enObj);\n } else if (!enObj.common?.members?.includes(objId)) {\n enObj.common = enObj.common || {};\n enObj.common.members = enObj.common.members || [];\n // add missing object\n enObj.common.members.push(objId);\n enObj.common.members.sort();\n await this.props.socket.setObject(id, enObj);\n }\n }\n };\n\n /**\n * @private\n * @param {any} objs\n */\n loadObjects = async objs => {\n if (objs) {\n for (const id in objs) {\n if (!Object.hasOwn(objs, id) || !objs[id]) {\n continue;\n }\n const obj = objs[id];\n let enums = null;\n if (obj && obj.common && obj.common.enums) {\n enums = obj.common.enums;\n delete obj.common.enums;\n } else {\n enums = null;\n }\n try {\n await this.props.socket.setObject(id, obj);\n enums && (await this._createAllEnums(enums, obj._id));\n if (obj.type === 'state') {\n try {\n const state = await this.props.socket.getState(obj._id);\n if (!state || state.val === null) {\n try {\n await this.props.socket.setState(obj._id, !obj.common || obj.common.def === undefined ? null : obj.common.def, true);\n } catch (e) {\n window.alert(`Cannot set state \"${obj._id}\": ${e}`);\n }\n }\n } catch (e) {\n window.alert(`Cannot read state \"${obj._id}\": ${e}`);\n }\n }\n } catch (error) {\n window.alert(error);\n }\n }\n }\n };\n\n _getSelectedIdsForExport() {\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = [];\n const keys = Object.keys(this.objects);\n keys.sort();\n const id = this.state.selected[0] || this.state.selectedNonObject;\n const idDot = `${id}.`;\n const idLen = idDot.length;\n for (let k = 0; k < keys.length; k++) {\n const key = keys[k];\n if (id === key || key.startsWith(idDot)) {\n result.push(key);\n }\n if (key.substring(0, idLen) > idDot) {\n break;\n }\n }\n\n return result;\n }\n return [];\n }\n\n _exportObjects(isAll) {\n if (isAll) {\n generateFile('allObjects.json', this.objects);\n } else\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = {};\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n this._getSelectedIdsForExport().forEach(key => {\n result[key] = JSON.parse(JSON.stringify(this.objects[key]));\n // add enum information\n if (result[key].common) {\n const enums = this.getEnumsForId(key);\n if (enums) {\n result[key].common.enums = enums;\n }\n }\n });\n\n generateFile(`${id}.json`, result);\n } else {\n window.alert(this.props.t('ra_Save of objects-tree is not possible'));\n }\n }\n\n renderExportDialog() {\n if (this.state.showExportDialog === false) {\n return null;\n }\n return <Dialog open={!0}>\n <DialogTitle>{this.props.t('Select type of export')}</DialogTitle>\n <DialogContent>\n <DialogContentText>\n {this.props.t('You can export all objects or just the selected branch.')}\n <br />\n {this.props.t('Selected %s object(s)', this.state.showExportDialog)}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button color=\"grey\" variant=\"outlined\" onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(true))}>{this.props.t('ra_All objects')} ({Object.keys(this.objects).length})</Button>\n <Button color=\"primary\" variant=\"contained\" autoFocus onClick={() => this.setState({ showExportDialog: false }, () => this._exportObjects(false))}>{this.props.t('ra_Only selected')} ({this.state.showExportDialog})</Button>\n <Button color=\"grey\" variant=\"contained\" onClick={() => this.setState({ showExportDialog: false })} startIcon={<IconClose />}>{this.props.t('ra_Cancel')}</Button>\n </DialogActions>\n </Dialog>;\n }\n\n /**\n * @private\n * @param {object} evt\n */\n handleJsonUpload = evt => {\n const f = evt.target.files[0];\n if (f) {\n const r = new FileReader();\n r.onload = async e => {\n const contents = e.target.result;\n try {\n const json = JSON.parse(contents);\n const len = Object.keys(json).length;\n const id = json._id;\n if (id === undefined && len) {\n await this.loadObjects(json);\n window.alert(this.props.t('ra_%s object(s) processed', len));\n } else {\n // it is only one object in form\n // {\n // \"_id\": \"xxx\",\n // \"common\": \"yyy\",\n // \"native\": \"zzz\"\n // }\n if (!id) {\n return window.alert(this.props.t('ra_Invalid structure'));\n }\n try {\n let enums;\n if (json.common.enums) {\n enums = json.common.enums;\n delete json.common.enums;\n }\n await this.props.socket.setObject(json._id, json);\n if (json.type === 'state') {\n const state = await this.props.socket.getState(json._id);\n if (!state || state.val === null || state.val === undefined) {\n await this.props.socket.getState(json._id, json.common.def === undefined ? null : json.common.def, true);\n }\n }\n if (enums) {\n await this._createAllEnums(enums, json._id);\n }\n\n window.alert(this.props.t('ra_%s was imported', json._id));\n } catch (err) {\n window.alert(err);\n }\n }\n } catch (err) {\n window.alert(err);\n }\n return null;\n };\n r.readAsText(f);\n } else {\n window.alert(this.props.t('ra_Failed to open JSON File'));\n }\n };\n\n toolTipObjectCreating = () => {\n const { t } = this.props;\n\n let value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id]?.type === 'state')) {\n // show default tooltip\n } else if (this.state.filter.expertMode) {\n switch (this.objects[id]?.type) {\n case 'device':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n case 'folder':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n case 'channel':\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={1}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={8}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={9}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n break;\n default:\n break;\n }\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n value = [\n <div key={1}>{t('ra_Only following structures of objects are available:')}</div>,\n <div key={2}>{t('ra_Folder → State')}</div>,\n <div key={3}>{t('ra_Folder → Channel → State')}</div>,\n <div key={4}>{t('ra_Folder → Device → Channel → State')}</div>,\n <div key={5}>{t('ra_Device → Channel → State')}</div>,\n <div key={6}>{t('ra_Channel → State')}</div>,\n <div key={7} style={{ height: 10 }} />,\n <div key={7}>{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}</div>,\n <div key={8}>{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}</div>,\n ];\n }\n }\n\n return value.length ? value : t('ra_Add new child object to selected parent');\n };\n\n /**\n * Renders the toolbar.\n * @returns {JSX.Element}\n */\n getToolbar() {\n let allowObjectCreation = false;\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else if (this.state.filter.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n\n return <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n <div style={{\n display: 'flex',\n width: '100%',\n alignItems: 'center',\n }}\n >\n\n <Tooltip title={this.props.t('ra_Refresh tree')} classes={{ popper: this.props.classes.tooltip }}>\n <div>\n <IconButton\n onClick={() => this.refreshComponent()}\n disabled={this.state.updating}\n size=\"large\"\n >\n <RefreshIcon />\n </IconButton>\n </div>\n </Tooltip>\n {this.props.showExpertButton && !this.props.expertMode &&\n <Tooltip title={this.props.t('ra_expertMode')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"expertMode\"\n color={this.state.filter.expertMode ? 'secondary' : 'default'}\n onClick={() => this.onFilter('expertMode', !this.state.filter.expertMode)}\n size=\"large\"\n >\n <IconExpert />\n </IconButton>\n </Tooltip>}\n {!this.props.disableColumnSelector &&\n <Tooltip title={this.props.t('ra_Configure')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"columnSelector\"\n color={this.state.columnsAuto ? 'primary' : 'default'}\n onClick={() => this.setState({ columnsSelectorShow: true })}\n size=\"large\"\n >\n <IconColumns />\n </IconButton>\n </Tooltip>}\n {this.state.expandAllVisible &&\n <Tooltip title={this.props.t('ra_Expand all nodes')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"expandAll\"\n onClick={() => this.onExpandAll()}\n size=\"large\"\n >\n <IconOpen />\n </IconButton>\n </Tooltip>}\n <Tooltip title={this.props.t('ra_Collapse all nodes')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"collapseAll\"\n onClick={() => this.onCollapseAll()}\n size=\"large\"\n >\n <IconClosed />\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Expand one step node')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"expandVisible\"\n color=\"primary\"\n onClick={() => this.onExpandVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconOpen />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n <Tooltip title={this.props.t('ra_Collapse one step node')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n key=\"collapseVisible\"\n color=\"primary\"\n onClick={() => this.onCollapseVisible()}\n size=\"large\"\n >\n <StyledBadge badgeContent={this.state.depth} color=\"secondary\">\n <IconClosed />\n </StyledBadge>\n </IconButton>\n </Tooltip>\n {this.props.objectStatesView && <Tooltip title={this.props.t('ra_Toggle the states view')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => this.onStatesViewVisible()}\n size=\"large\"\n >\n <LooksOneIcon color={this.state.statesView ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>}\n\n {<Tooltip title={this.props.t('ra_Show/Hide object descriptions')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.desc`, this.state.showDescription ? 'false' : 'true');\n this.setState({ showDescription: !this.state.showDescription })\n }}\n size=\"large\"\n >\n <TextFieldsIcon color={this.state.showDescription ? 'primary' : 'inherit'} />\n </IconButton>\n </Tooltip>}\n\n {this.props.objectAddBoolean ?\n <Tooltip title={this.toolTipObjectCreating()} classes={{ popper: this.props.classes.tooltip }}>\n <div>\n <IconButton\n disabled={!allowObjectCreation}\n onClick={() => this.setState({ modalNewObj: true })}\n size=\"large\"\n >\n <AddIcon />\n </IconButton>\n </div>\n </Tooltip>\n : null}\n\n {this.props.objectImportExport &&\n <Tooltip title={this.props.t('ra_Add objects tree from JSON file')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleJsonUpload(e), false);\n input.click();\n }}\n size=\"large\"\n >\n <PublishIcon />\n </IconButton>\n </Tooltip>}\n {this.props.objectImportExport && (!!this.state.selected.length || this.state.selectedNonObject) &&\n <Tooltip title={this.props.t('ra_Save objects tree as JSON file')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => this.setState({ showExportDialog: this._getSelectedIdsForExport().length })}\n size=\"large\"\n >\n <PublishIcon style={{ transform: 'rotate(180deg)' }} />\n </IconButton>\n </Tooltip>}\n </div>\n {!!this.props.objectBrowserEditObject && <div style={{ display: 'flex', whiteSpace: 'nowrap' }}>\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t('ra_States')}: ${Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length}`}\n </div>}\n {this.props.objectEditBoolean &&\n <Tooltip title={this.props.t('ra_Edit custom config')} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n onClick={() => {\n // get all visible states\n const ids = getVisibleItems(this.root, 'state', this.objects);\n\n if (ids.length) {\n this.pauseSubscribe(true);\n\n if (ids.length === 1) {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, this.state.selected[0]);\n this.props.router && this.props.router.doNavigate(null, 'custom', this.state.selected[0]);\n }\n this.setState({ customDialog: ids });\n } else {\n this.setState({ toast: this.props.t('ra_please select object') });\n }\n }}\n size=\"large\"\n >\n <BuildIcon />\n </IconButton>\n </Tooltip>}\n </div>;\n }\n\n /**\n * @private\n * @param {string} id\n */\n toggleExpanded(id) {\n const expanded = JSON.parse(JSON.stringify(this.state.expanded));\n const pos = expanded.indexOf(id);\n if (pos === -1) {\n expanded.push(id);\n expanded.sort();\n } else {\n expanded.splice(pos, 1);\n }\n\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectExpanded`, JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n\n /**\n * @private\n * @param {Event} e\n * @param {string} text\n */\n onCopy(e, text) {\n e.stopPropagation();\n e.preventDefault();\n Utils.copyToClipboard(text, null);\n if (text.length < 50) {\n this.setState({ toast: this.props.t('ra_Copied %s', text) });\n } else {\n this.setState({ toast: this.props.t('ra_Copied') });\n }\n }\n\n renderTooltipAccessControl = acl => {\n // acl ={object,state,owner,ownerGroup}\n if (!acl) {\n return null;\n }\n const check = [\n {\n value: '0x400', valueNum: 0x400, title: 'read', group: 'Owner',\n },\n {\n value: '0x200', valueNum: 0x200, title: 'write', group: 'Owner',\n },\n {\n value: '0x40', valueNum: 0x40, title: 'read', group: 'Group',\n },\n {\n value: '0x20', valueNum: 0x20, title: 'write', group: 'Group',\n },\n {\n value: '0x4', valueNum: 0x4, title: 'read', group: 'Everyone',\n },\n {\n value: '0x2', valueNum: 0x2, title: 'write', group: 'Everyone',\n },\n ];\n const arrayTooltipText = [];\n const funcRenderStateObject = (value = 'object') => {\n const rights = acl[value];\n check.forEach((el, i) => {\n // eslint-disable-next-line no-bitwise\n if (rights & el.valueNum) {\n arrayTooltipText.push(<span key={value + i}>\n {this.texts[`acl${el.group}_${el.title}_${value}`]}\n,\n <span className={value === 'object' ? this.props.classes.rightsObject : this.props.classes.rightsState}>\n {el.value}\n </span>\n </span>);\n }\n });\n };\n arrayTooltipText.push(<span key=\"group\">{`${this.texts.ownerGroup}: ${(acl.ownerGroup || '').replace('system.group.', '')}`}</span>);\n arrayTooltipText.push(<span key=\"owner\">{`${this.texts.ownerUser}: ${(acl.owner || '').replace('system.user.', '')}`}</span>);\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n return arrayTooltipText.length ? <span className={this.props.classes.tooltipAccessControl}>{arrayTooltipText.map(el => el)}</span> : '';\n };\n\n /**\n * @param {string} id\n * @param {{ data: { obj: { type: string; }; hasCustoms: any; }; }} item\n * @param {{ cellButtonsButton: string | undefined; cellButtonsButtonAlone: any; cellButtonsButtonIcon: string | undefined; cellButtonsButtonWithCustoms: any; }} classes\n */\n renderColumnButtons(id, item, classes) {\n if (!item.data.obj) {\n return this.props.onObjectDelete || this.props.objectEditOfAccessControl ? <div className={classes.buttonDiv}>\n {this.state.filter.expertMode && this.props.objectEditOfAccessControl ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsEmptyButton, classes.cellButtonMinWidth)}\n onClick={() =>\n this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n---\n </IconButton> : null}\n {this.props.onObjectDelete && item.children && item.children.length ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, classes.cellButtonsButtonAlone)}\n size=\"small\"\n aria-label=\"delete\"\n title={this.texts.deleteObject}\n onClick={() => {\n // calculate number of children\n const keys = Object.keys(this.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n\n this.props.onObjectDelete(id, !!(item.children && item.children.length), false, count + 1);\n }}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null}\n </div> : null;\n }\n\n item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);\n\n const acl = item.data.obj.acl ? (item.data.obj.type === 'state' ? item.data.obj.acl.state : item.data.obj.acl.object) : 0;\n const aclSystemConfig = item.data.obj.acl && (item.data.obj.type === 'state' ? this.systemConfig.common.defaultNewAcl.state : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.state.filter.expertMode && this.props.objectEditOfAccessControl ? <Tooltip key=\"acl\" title={item.data.aclTooltip} classes={{ popper: this.props.classes.tooltip }}>\n <IconButton\n className={classes.cellButtonMinWidth}\n onClick={() => this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n size=\"large\"\n >\n <div className={classes.aclText}>{Number.isNaN(Number(acl)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16)}</div>\n </IconButton>\n </Tooltip> : <div key=\"aclEmpty\" className={classes.cellButtonMinWidth} />,\n <IconButton\n key=\"edit\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"edit\"\n title={this.texts.editObject}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n this.setState({ editObjectDialog: id });\n }}\n >\n <IconEdit className={classes.cellButtonsButtonIcon} />\n </IconButton>,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ? <IconButton\n key=\"delete\"\n className={classes.cellButtonsButton}\n size=\"small\"\n aria-label=\"delete\"\n onClick={() => {\n const keys = Object.keys(this.objects);\n keys.sort();\n let count = 0;\n const start = `${id}.`;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].startsWith(start)) {\n count++;\n } else if (keys[i] > start) {\n break;\n }\n }\n this.props.onObjectDelete(id, !!item.children?.length, !item.data.obj.common?.dontDelete, count);\n }}\n title={this.texts.deleteObject}\n >\n <IconDelete className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n this.props.objectCustomDialog && this.info.hasSomeCustoms && item.data.obj.type === 'state' && item.data.obj.common?.type !== 'file' ? <IconButton\n className={Utils.clsx(classes.cellButtonsButton, item.data.hasCustoms ? classes.cellButtonsButtonWithCustoms : classes.cellButtonsButtonWithoutCustoms)}\n key=\"custom\"\n size=\"small\"\n aria-label=\"config\"\n title={this.texts.customConfig}\n onClick={() => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id] });\n }}\n >\n <IconConfig className={classes.cellButtonsButtonIcon} />\n </IconButton> : null,\n ];\n }\n\n /**\n * @private\n * @param {string} id\n */\n readHistory(id) {\n /* interface GetHistoryOptions {\n instance?: string;\n start?: number;\n end?: number;\n step?: number;\n count?: number;\n from?: boolean;\n ack?: boolean;\n q?: boolean;\n addID?: boolean;\n limit?: number;\n ignoreNull?: boolean;\n sessionId?: any;\n aggregate?: 'minmax' | 'min' | 'max' | 'average' | 'total' | 'count' | 'none';\n } */\n if (window.sparkline &&\n this.defaultHistory &&\n this.objects[id] &&\n this.objects[id].common &&\n this.objects[id].common.custom &&\n this.objects[id].common.custom[this.defaultHistory]) {\n\n const now = new Date();\n now.setHours(now.getHours() - 24);\n now.setMinutes(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n const nowMs = now.getTime();\n\n this.props.socket.getHistory(id, {\n instance: this.defaultHistory,\n start: nowMs,\n end: Date.now(),\n step: 3600000,\n from: false,\n ack: false,\n q: false,\n addID: false,\n aggregate: 'minmax',\n })\n .then(values => {\n const sparks = window.document.getElementsByClassName('sparkline');\n\n for (let s = 0; s < sparks.length; s++) {\n if (sparks[s].dataset.id === id) {\n const v = prepareSparkData(values, nowMs);\n\n window.sparkline.sparkline(sparks[s], v);\n break;\n }\n }\n })\n .catch(e => console.warn(`Cannot read history: ${e}`));\n }\n }\n\n /**\n * @private\n * @param {string} id\n * @param {any} item\n * @param {Record<string, any>} classes\n * @returns {JSX.Element | null}\n */\n renderColumnValue(id, item, classes) {\n const obj = item.data.obj;\n if (!obj || !this.states) {\n return null;\n }\n\n if (obj.common?.type === 'file') {\n return <div className={Utils.clsx(classes.cellValueText, classes.cellValueFile)}>[file]</div>;\n }\n if (!this.states[id]) {\n if (obj.type === 'state') {\n !this.recordStates.includes(id) && this.recordStates.push(id);\n this.states[id] = { val: null };\n this.subscribe(id);\n }\n return null;\n }\n !this.recordStates.includes(id) && this.recordStates.push(id);\n\n const state = this.states[id];\n let info = item.data.state;\n if (!info) {\n item.data.state = item.data.state || formatValue(id, state, obj, this.texts, this.props.dateFormat, this.props.isFloatComma);\n info = item.data.state;\n\n info.valFull = info.valFull.map(_item => {\n if (_item.t === this.texts.quality && state.q) {\n return [\n <div className={classes.cellValueTooltipBoth} key={_item.t}>\n {_item.t}\n :&nbsp;\n {_item.v}\n </div>,\n // <div className={classes.cellValueTooltipValue} key={item.t + '_v'}>{item.v}</div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n }\n return [\n <div className={classes.cellValueTooltipTitle} key={_item.t}>\n {_item.t}\n :&nbsp;\n </div>,\n <div className={classes.cellValueTooltipValue} key={`${_item.t}_v`}>{_item.v}</div>,\n !_item.nbr ? <br key={`${_item.t}_br`} /> : null,\n ];\n });\n\n if (this.defaultHistory && this.objects[id] && this.objects[id].common && this.objects[id].common.custom && this.objects[id].common.custom[this.defaultHistory]) {\n info.valFull.push(<svg key=\"sparkline\" className=\"sparkline\" data-id={id} style={{ fill: '#3d85de' }} width=\"200\" height=\"30\" strokeWidth=\"3\" />);\n }\n\n const copyText = info.valText.v || '';\n info.val = copyText;\n info.valText = [\n <span className={classes.newValue} key={`${info.valText.v.toString()}valText`}>{info.valText.v.toString()}</span>,\n info.valText.u ? <span className={Utils.clsx(classes.cellValueTextUnit, classes.newValue)} key={`${info.valText.v.toString()}unit`}>{info.valText.u}</span> : null,\n info.valText.s !== undefined ? <span className={Utils.clsx(classes.cellValueTextState, classes.newValue)} key={`${info.valText.v.toString()}states`}>\n (\n {info.valText.s}\n )\n </span> : null,\n <IconCopy className={Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonCopy)} onClick={e => this.onCopy(e, copyText)} key=\"cc\" />,\n // <IconEdit className={ Utils.clsx(classes.cellButtonsValueButton, 'copyButton', classes.cellButtonsValueButtonEdit) } key=\"ce\" />\n ];\n }\n\n let val = info.valText;\n if (!this.state.filter.expertMode && item.data.button) {\n val = <PressButtonIcon className={Utils.clsx(this.props.classes.cellValueButton, !this.states[id] || !this.states[id].val ? this.props.classes.cellValueButtonFalse : '')} />;\n }\n\n return <Tooltip\n key=\"value\"\n title={info.valFull}\n classes={{ tooltip: this.props.classes.cellValueTooltip, popper: this.props.classes.cellValueTooltipBox }}\n onOpen={() => this.readHistory(id)}\n >\n <div style={info.style} className={classes.cellValueText}>\n {val}\n </div>\n </Tooltip>;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n _syncEnum(id, enumIds, newArray, cb) {\n if (!enumIds || !enumIds.length) {\n cb && cb();\n return;\n }\n const enumId = enumIds.pop();\n const promises = [];\n if (this.info.objects[enumId]?.common) {\n if (this.info.objects[enumId].common.members?.length) {\n const pos = this.info.objects[enumId].common.members.indexOf(id);\n if (pos !== -1 && !newArray.includes(enumId)) {\n // delete from members\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members.splice(pos, 1);\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e)));\n }\n }\n\n // add to it\n if (newArray.includes(enumId) && !this.info.objects[enumId].common.members?.includes(id)) {\n // add to object\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members = obj.common.members || [];\n obj.common.members.push(id);\n obj.common.members.sort();\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e)));\n }\n }\n\n Promise.all(promises)\n .then(() => setTimeout(() =>\n this._syncEnum(id, enumIds, newArray, cb), 0));\n }\n\n /**\n * @private\n * @returns {Promise}\n */\n syncEnum(id, enumName, newArray) {\n const toCheck = [...this.info[enumName === 'func' ? 'funcEnums' : 'roomEnums']];\n\n return new Promise(resolve => {\n this._syncEnum(id, toCheck, newArray, error => {\n error && this.showError(error);\n // force update of object\n resolve();\n });\n });\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEnumDialog() {\n if (this.state.enumDialog) {\n const type = this.state.enumDialog.type;\n const item = this.state.enumDialog.item;\n const itemEnums = this.state.enumDialogEnums;\n const enumsOriginal = this.state.enumDialog.enumsOriginal;\n\n const enums = (type === 'room' ? this.info.roomEnums : this.info.funcEnums).map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(), this.props.lang),\n value: id,\n icon: getSelectIdIcon(this.objects, id, this.imagePrefix),\n }))\n .sort((a, b) => a.name > b.name ? 1 : -1);\n\n enums.forEach(_item => {\n if (_item.icon && typeof _item.icon === 'string') {\n _item.icon = <div className={this.props.classes.enumIconDiv}>\n <img src={_item.icon} className={this.props.classes.enumIcon} alt={_item.name} />\n </div>;\n }\n });\n\n // const hasIcons = !!enums.find(item => item.icon);\n\n return <Dialog\n className={this.props.classes.enumDialog}\n onClose={() => this.setState({ enumDialog: null })}\n aria-labelledby=\"enum-dialog-title\"\n open={!0} // true\n >\n <DialogTitle id=\"enum-dialog-title\">\n {type === 'func' ? this.props.t('ra_Define functions') : this.props.t('ra_Define rooms')}\n <Fab\n className={this.props.classes.enumButton}\n color=\"primary\"\n disabled={JSON.stringify(enumsOriginal) === JSON.stringify(itemEnums)}\n size=\"small\"\n onClick={() =>\n this.syncEnum(item.data.id, type, itemEnums)\n .then(() => this.setState({ enumDialog: null, enumDialogEnums: null }))}\n >\n <IconCheck />\n </Fab>\n </DialogTitle>\n <List classes={{ root: this.props.classes.enumList }}>\n {\n enums.map(_item => {\n let id;\n let name;\n let icon;\n\n if (typeof _item === 'object') {\n id = _item.value;\n name = _item.name;\n icon = _item.icon;\n } else {\n id = _item;\n name = _item;\n }\n const labelId = `checkbox-list-label-${id}`;\n\n return <ListItem\n className={this.props.classes.headerCellSelectItem}\n key={id}\n onClick={() => {\n const pos = itemEnums.indexOf(id);\n const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));\n if (pos === -1) {\n enumDialogEnums.push(id);\n enumDialogEnums.sort();\n } else {\n enumDialogEnums.splice(pos, 1);\n }\n this.setState({ enumDialogEnums });\n }}\n >\n <ListItemIcon classes={{ root: this.props.classes.enumCheckbox }}>\n <Checkbox\n edge=\"start\"\n checked={itemEnums.includes(id)}\n tabIndex={-1}\n disableRipple\n inputProps={{ 'aria-labelledby': labelId }}\n />\n </ListItemIcon>\n <ListItemText id={labelId}>{name}</ListItemText>\n {icon ? <ListItemSecondaryAction>{icon}</ListItemSecondaryAction> : null}\n </ListItem>;\n })\n }\n </List>\n </Dialog>;\n }\n return null;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditRoleDialog() {\n if (this.state.roleDialog && this.props.objectBrowserEditRole) {\n const ObjectBrowserEditRole = this.props.objectBrowserEditRole;\n return <ObjectBrowserEditRole\n key=\"objectBrowserEditRole\"\n id={this.state.roleDialog}\n socket={this.props.socket}\n t={this.props.t}\n roles={this.info.roles}\n onClose={obj => {\n if (obj) {\n this.info.objects[this.state.roleDialog] = obj;\n }\n this.setState({ roleDialog: false });\n }}\n />;\n }\n return null;\n }\n\n /**\n * @private\n * @param {boolean} [isSave]\n */\n onColumnsEditCustomDialogClose(isSave) {\n if (isSave) {\n let value = this.customColumnDialog.value;\n if (this.customColumnDialog.type === 'boolean') {\n value = value === 'true' || value === true;\n } else if (this.customColumnDialog.type === 'number') {\n value = parseFloat(value);\n }\n this.customColumnDialog = null;\n this.props.socket.getObject(this.state.columnsEditCustomDialog.obj._id)\n .then(obj => {\n if (ObjectBrowser.setCustomValue(obj, this.state.columnsEditCustomDialog.it, value)) {\n return this.props.socket.setObject(obj._id, obj);\n }\n throw new Error(this.props.t('ra_Cannot update attribute, because not found in the object'));\n })\n .then(() => this.setState({ columnsEditCustomDialog: null }))\n .catch(e => this.showError(e));\n } else {\n this.customColumnDialog = null;\n this.setState({ columnsEditCustomDialog: null });\n }\n }\n\n /**\n * @private\n */\n renderColumnsEditCustomDialog() {\n if (this.state.columnsEditCustomDialog) {\n if (!this.customColumnDialog) {\n const value = ObjectBrowser.getCustomValue(this.state.columnsEditCustomDialog.obj, this.state.columnsEditCustomDialog.it);\n this.customColumnDialog = {\n type: this.state.columnsEditCustomDialog.it.type || typeof value,\n initValue: (value === null || value === undefined ? '' : value).toString(),\n value: (value === null || value === undefined ? '' : value).toString(),\n };\n }\n\n return <Dialog\n onClose={() => this.setState({ columnsEditCustomDialog: null })}\n maxWidth=\"md\"\n aria-labelledby=\"custom-dialog-title\"\n open={!0}\n >\n <DialogTitle id=\"custom-dialog-title\">{`${this.props.t('ra_Edit object field')}: ${this.state.columnsEditCustomDialog.obj._id}`}</DialogTitle>\n <DialogContent>\n <DialogContentText id=\"alert-dialog-description\">\n {this.customColumnDialog.type === 'boolean' ?\n <FormControlLabel\n control={<Checkbox\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n defaultChecked={this.customColumnDialog.value === 'true'}\n onChange={e => {\n this.customColumnDialog.value = e.target.checked.toString();\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n />}\n label={`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}\n />\n :\n <TextField\n variant=\"standard\"\n defaultValue={this.customColumnDialog.value}\n fullWidth\n onKeyUp={e => e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n label={`${this.state.columnsEditCustomDialog.it.name} (${this.state.columnsEditCustomDialog.it.pathText})`}\n onChange={e => {\n this.customColumnDialog.value = e.target.value;\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n autoFocus\n />}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button\n variant=\"contained\"\n onClick={() => this.onColumnsEditCustomDialogClose(true)}\n disabled={!this.state.customColumnDialogValueChanged}\n color=\"primary\"\n startIcon={<IconCheck />}\n >\n {this.props.t('ra_Update')}\n </Button>\n <Button\n color=\"grey\"\n variant=\"contained\"\n onClick={() => this.onColumnsEditCustomDialogClose()}\n startIcon={<IconClose />}\n >\n {this.props.t('ra_Cancel')}\n </Button>\n </DialogActions>\n </Dialog>;\n }\n return null;\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n */\n static getCustomValue(obj, it) {\n if (obj && obj._id && obj._id.startsWith(`${it.adapter}.`) && it.path.length > 1) {\n const p = it.path;\n let value;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n value = obj[p[0]][p[1]];\n } else if (p.length === 3) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' ? obj[p[0]][p[1]][p[2]] : null;\n } else if (p.length === 4) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] ? obj[p[0]][p[1]][p[2]][p[3]] : null;\n } else if (p.length === 5) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]] : null;\n } else if (p.length === 6) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] && obj[p[0]][p[1]][p[2]][p[3]][p[4]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] : null;\n }\n if (value === undefined || value === null) {\n return null;\n }\n return value;\n }\n }\n\n return null;\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n * @param {any} value\n */\n static setCustomValue(obj, it, value) {\n if (obj && obj._id && obj._id.startsWith(`${it.adapter}.`) && it.path.length > 1) {\n const p = it.path;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n obj[p[0]][p[1]] = value;\n return true;\n }\n if (p.length === 3) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object') {\n obj[p[0]][p[1]][p[2]] = value;\n return true;\n }\n } else if (p.length === 4) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] = value;\n return true;\n }\n } else if (p.length === 6) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]][p[4]] && typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] = value;\n return true;\n }\n }\n }\n }\n return false;\n }\n\n /**\n * Renders a custom value.\n * @param {any} obj\n * @param {any} it\n * @param {any} item\n * @returns {JSX.Element | null}\n */\n renderCustomValue(obj, it, item) {\n const text = ObjectBrowser.getCustomValue(obj, it);\n if (text !== null && text !== undefined) {\n if (it.edit && !this.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes.columnCustomEditable, this.props.classes[`columnCustom_${it.align}`])}\n onClick={() => this.setState({ columnsEditCustomDialog: { item, it, obj }, customColumnDialogValueChanged: false })}\n >\n {text}\n </div>;\n }\n return <div\n className={Utils.clsx(this.props.classes.columnCustom, this.props.classes[`columnCustom_${it.align}`])}\n >\n {text}\n </div>;\n }\n return null;\n }\n\n /**\n * Renders a leaf.\n * @param {any} item\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: number; }} counter\n * @returns {JSX.Element}\n */\n renderLeaf(item, isExpanded, classes, counter) {\n const id = item.data.id;\n counter.count++;\n isExpanded = isExpanded === undefined ? this.state.expanded.includes(id) : isExpanded;\n\n // icon\n let iconFolder;\n const obj = item.data.obj;\n const itemType = obj?.type;\n\n if (item.children || itemType === 'folder' || itemType === 'device' || itemType === 'channel' || itemType === 'meta') {\n iconFolder = isExpanded ? <IconOpen\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n /> : <IconClosed\n className={classes.cellIdIconFolder}\n onClick={() => this.toggleExpanded(id)}\n />;\n } else if (obj.common && (obj.common.write === false) && obj.type === 'state') {\n iconFolder = <IconDocumentReadOnly className={classes.cellIdIconDocument} />;\n } else {\n iconFolder = <IconDocument className={classes.cellIdIconDocument} />;\n }\n\n let iconItem = null;\n if (item.data.icon) {\n if (typeof item.data.icon === 'string') {\n if (item.data.icon.length < 3) {\n iconItem = <span className={Utils.clsx(classes.cellIdIconOwn, 'iconOwn')}>{item.data.icon}</span>; // utf-8 char\n } else {\n iconItem = <img className={Utils.clsx(classes.cellIdIconOwn, 'iconOwn')} src={item.data.icon} alt=\"\" />;\n }\n } else {\n iconItem = item.data.icon;\n }\n }\n\n const common = obj?.common;\n\n const typeImg = (obj && obj.type && ITEM_IMAGES[obj.type]) || <div className=\"itemIcon\" />;\n\n const paddingLeft = this.levelPadding * item.data.level;\n\n if (item.data.lang !== this.props.lang) {\n const { rooms, per } = findRoomsForObject(this.info, id, this.props.lang);\n item.data.rooms = rooms.join(', ');\n item.data.per = per;\n const { funcs, pef } = findFunctionsForObject(this.info, id, this.props.lang);\n item.data.funcs = funcs.join(', ');\n item.data.pef = pef;\n item.data.lang = this.props.lang;\n }\n\n const checkbox =\n this.props.multiSelect &&\n this.objects[id] && (!this.props.types || this.props.types.includes(this.objects[id].type)) ?\n <Checkbox\n className={classes.checkBox}\n checked={this.state.selected.includes(id)}\n /> :\n null;\n\n let valueEditable = !this.props.notEditable && itemType === 'state' && (this.state.filter.expertMode || common?.write !== false);\n if (this.props.objectBrowserViewFile && common?.type === 'file') {\n valueEditable = true;\n }\n const enumEditable = !this.props.notEditable && this.objects[id] && (this.state.filter.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType = this.state.statesView && (itemType === 'state' || itemType === 'channel' || itemType === 'device');\n let newValue = '';\n const newValueTitle = [];\n if (checkVisibleObjectType) {\n newValue = this.states[id]?.from;\n if (newValue === undefined) {\n newValue = '&nbsp;';\n } else {\n newValue = newValue ? newValue.replace(/^system\\.adapter\\.|^system\\./, '') : '';\n newValueTitle.push(`${this.texts.stateChangedFrom} ${newValue}`);\n }\n if (obj.user) {\n const user = obj.user.replace('system.user.', '');\n newValue += `/${user}`;\n newValueTitle.push(`${this.texts.stateChangedBy} ${user}`);\n }\n }\n if (obj) {\n obj.from && newValueTitle.push(`${this.texts.objectChangedFrom} ${obj.from.replace(/^system\\.adapter\\.|^system\\./, '')}`);\n obj.user && newValueTitle.push(`${this.texts.objectChangedBy} ${obj.user.replace(/^system\\.user\\./, '')}`);\n obj.ts && newValueTitle.push(`${this.texts.objectChangedByUser} ${Utils.formatDate(new Date(obj.ts), this.props.dateFormat)}`);\n }\n\n const readWriteAlias = typeof common?.alias?.id === 'object';\n\n const alias = id.startsWith('alias.') && common?.alias?.id ?\n (readWriteAlias ?\n <div className={classes.cellIdAliasReadWriteDiv}>\n {common.alias.id.read ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id.read);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id.read));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >\n ←\n {common.alias.id.read}\n </div> : null}\n {common.alias.id.write ? <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id.write);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id.write));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >\n →\n {common.alias.id.write}\n </div> : null}\n </div>\n :\n <div\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(common.alias.id);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(common.alias.id));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasAlone)}\n >\n →\n {common.alias.id}\n </div>\n ) : null;\n\n let checkColor = common?.color;\n let invertBackground = undefined;\n if (checkColor && !this.state.selected.includes(id)) {\n let background = this.props.themeName === 'dark' ? '#1f1f1f' : (this.props.themeName === 'blue' ? '#222a2e' : '#FFFFFF');\n const distance = Utils.colorDistance(checkColor, background);\n // console.log(`Distance: ${checkColor} - ${background} = ${distance}`);\n if (distance < 1000) {\n invertBackground = this.props.themeType === 'dark' ? '#9a9a9a' : '#565656';\n }\n }\n if (id === 'system') {\n checkColor = COLOR_NAME_SYSTEM;\n } else if (id === 'system.adapter') {\n checkColor = COLOR_NAME_SYSTEM_ADAPTER;\n } else\n if (!checkColor || this.state.selected.includes(id)) {\n checkColor = 'inherit';\n }\n\n const icons = [];\n\n if (common?.statusStates) {\n const ids = {};\n Object.keys(common.statusStates).forEach(name => {\n let _id = common.statusStates[name];\n if (_id.split('.').length < 3) {\n _id = `${id}.${_id}`;\n }\n ids[name] = _id;\n\n if (!this.states[_id]) {\n if (this.objects[_id]?.type === 'state') {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n this.states[_id] = { val: null };\n this.subscribe(_id);\n }\n } else {\n !this.recordStates.includes(_id) && this.recordStates.push(_id);\n }\n });\n // calculate color\n // errorId has priority\n let colorSet = false;\n if (common.statusStates.errorId && this.states[ids.errorId] && this.states[ids.errorId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_ERROR_DARK : COLOR_NAME_ERROR_LIGHT;\n colorSet = true;\n icons.push(<IconError key=\"error\" title={this.texts.deviceError} className={this.props.classes.iconDeviceError} />);\n }\n\n if (ids.onlineId && this.states[ids.onlineId] && this.states[ids.onlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.onlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n }\n } else if (this.states[ids.onlineId].val) {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n } else {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n }\n } else\n if (ids.offlineId && this.states[ids.offlineId] && this.states[ids.offlineId].val !== null) {\n if (!colorSet) {\n if (this.states[ids.offlineId].val) {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_DISCONNECTED_DARK : COLOR_NAME_DISCONNECTED_LIGHT;\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n } else {\n checkColor = this.props.themeType === 'dark' ? COLOR_NAME_CONNECTED_DARK : COLOR_NAME_CONNECTED_LIGHT;\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n }\n } else if (this.states[ids.offlineId].val) {\n icons.push(<IconDisconnected key=\"disc\" title={this.texts.deviceError} className={this.props.classes.iconDeviceDisconnected} />);\n } else {\n icons.push(<IconConnection key=\"conn\" title={this.texts.deviceError} className={this.props.classes.iconDeviceConnected} />);\n }\n }\n }\n\n const q = checkVisibleObjectType ? Utils.quality2text(this.states[id]?.q || 0).join(', ') : null;\n\n let name = item.data?.title || '';\n let useDesc;\n if (this.state.showDescription) {\n useDesc = getObjectTooltip(item.data, this.props.lang);\n if (useDesc) {\n name = [\n <div key=\"name\" className={classes.cellNameDivDiv}>{name}</div>,\n <div key=\"desc\" className={classes.cellDescription}>{useDesc}</div>,\n ];\n useDesc = !!useDesc;\n }\n }\n\n return <Grid\n container\n direction=\"row\"\n wrap=\"nowrap\"\n className={Utils.clsx(\n classes.tableRow,\n this.state.linesEnabled && classes.tableRowLines,\n !this.props.dragEnabled && classes.tableRowNoDragging,\n alias && classes.tableRowAlias,\n readWriteAlias && classes.tableRowAliasReadWrite,\n !item.data.visible && classes.filteredOut,\n item.data.hasVisibleParent && !item.data.visible && !item.data.hasVisibleChildren && classes.filteredParentOut,\n this.state.selected.includes(id) && classes.itemSelected,\n this.state.selectedNonObject === id && classes.itemSelected,\n )}\n key={id}\n id={id}\n onClick={() => this.onSelect(id)}\n onDoubleClick={() => {\n if (!item.children) {\n this.onSelect(id, true);\n } else {\n this.toggleExpanded(id);\n }\n }}\n >\n <Grid\n container\n wrap=\"nowrap\"\n direction=\"row\"\n className={classes.cellId}\n style={{ width: this.columnsVisibility.id, paddingLeft }}\n >\n <Grid\n item\n container\n alignItems=\"center\"\n style={{\n // color: checkColor,\n // background: invertBackground,\n }}\n >\n {checkbox}\n {iconFolder}\n </Grid>\n <Grid\n item\n style={{ color: checkColor }}\n className={Utils.clsx(classes.cellIdSpan, invertBackground && classes.invertedBackground)}\n >\n <Tooltip\n title={getIdFieldTooltip(item.data, this.props.classes, this.props.lang)}\n classes={{ popper: this.props.classes.tooltip }}\n >\n <div>{item.data.name}</div>\n </Tooltip>\n {alias}\n {icons}\n </Grid>\n <div className={Utils.clsx(classes.grow, invertBackground && classes.invertedBackgroundFlex)} />\n <Grid\n item\n container\n alignItems=\"center\"\n >\n {iconItem}\n </Grid>\n <div>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, id)} />\n </div>\n </Grid>\n\n {this.columnsVisibility.name ? <div className={Utils.clsx(classes.cellName, useDesc && classes.cellNameWithDesc)} style={{ width: this.columnsVisibility.name }}>\n {name}\n {item.data?.title ? <div style={{ color: checkColor }}>\n <IconCopy className={Utils.clsx(classes.cellCopyButton, 'copyButton')} onClick={e => this.onCopy(e, item.data.title)} />\n </div> : null}\n </div> : null}\n\n {!this.state.statesView ?\n <>\n {this.columnsVisibility.type ? <div className={classes.cellType} style={{ width: this.columnsVisibility.type }}>\n {typeImg}\n &nbsp;\n {obj && obj.type}\n </div> : null}\n {this.columnsVisibility.role ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.role, cursor: this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole ? 'text' : 'default' }} onClick={this.state.filter.expertMode && enumEditable && this.props.objectBrowserEditRole ? () => this.setState({ roleDialog: item.data.id }) : undefined}>{common?.role}</div> : null}\n {this.columnsVisibility.room ? <div className={`${classes.cellRoom} ${item.data.per ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.room, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'room', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.rooms}</div> : null}\n {this.columnsVisibility.func ? <div className={`${classes.cellFunc} ${item.data.pef ? classes.cellEnumParent : ''}`} style={{ width: this.columnsVisibility.func, cursor: enumEditable ? 'text' : 'default' }} onClick={enumEditable ? () => { const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'func', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.funcs}</div> : null}\n </>\n :\n <>\n {this.columnsVisibility.changedFrom ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.changedFrom }} title={newValueTitle.join('\\n')}>{checkVisibleObjectType && this.states[id]?.from ? newValue : null}</div> : null}\n {this.columnsVisibility.qualityCode ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.qualityCode }} title={q || ''}>{q}</div> : null}\n {this.columnsVisibility.timestamp ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.timestamp }}>{checkVisibleObjectType && this.states[id]?.ts ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat) : null}</div> : null}\n {this.columnsVisibility.lastChange ? <div className={classes.cellRole} style={{ width: this.columnsVisibility.lastChange }}>{checkVisibleObjectType && this.states[id]?.lc ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat) : null}</div> : null}\n </>}\n {this.adapterColumns.map(it => <div className={classes.cellAdapter} style={{ width: this.columnsVisibility[it.id] }} key={it.id} title={`${it.adapter} => ${it.pathText}`}>{this.renderCustomValue(obj, it, item)}</div>)}\n {this.columnsVisibility.val ? <div\n className={classes.cellValue}\n style={{ width: this.columnsVisibility.val, cursor: valueEditable ? (common?.type === 'file' ? 'zoom-in' : (item.data.button ? 'grab' : 'text')) : 'default' }}\n onClick={valueEditable ? () => {\n if (!obj || !this.states) {\n // return;\n } else\n if (common?.type === 'file') {\n this.setState({ viewFileDialog: id });\n } else\n // in non-expert mode control button directly\n if (!this.state.filter.expertMode && item.data.button) {\n this.props.socket.setState(id, true)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n } else {\n this.edit = {\n val: this.states[id] ? this.states[id].val : '',\n q: this.states[id] ? this.states[id].q || 0 : 0,\n ack: false,\n id,\n };\n this.setState({ updateOpened: true });\n }\n } : undefined}\n >\n {this.renderColumnValue(id, item, classes)}\n </div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.cellButtons} style={{ width: this.columnsVisibility.buttons }}>{this.renderColumnButtons(id, item, classes)}</div> : null}\n </Grid>;\n }\n\n /**\n * Renders an item.\n * @param {any} root\n * @param {boolean} isExpanded\n * @param {Record<string, any>} classes\n * @param {{ count: any; }} [counter]\n * @returns {JSX.Element[]}\n */\n renderItem(root, isExpanded, classes, counter) {\n const items = [];\n counter = counter || { count: 0 };\n let leaf = this.renderLeaf(root, isExpanded, classes, counter);\n const DragWrapper = this.props.DragWrapper;\n if (this.props.dragEnabled) {\n if (root.data.sumVisibility) {\n leaf = <DragWrapper key={root.data.id} item={root} className={classes.draggable}>{leaf}</DragWrapper>;\n } else {\n // change cursor\n leaf = <div key={root.data.id} className={classes.nonDraggable}>{leaf}</div>;\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children && items.push(root.children.map(item => {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n return null;\n }));\n } else {\n // first only folder\n root.children && items.push(root.children.map(item => {\n if (item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n\n return null;\n }));\n // then items\n root.children && items.push(root.children.map(item => {\n if (!item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n return null;\n }));\n }\n }\n\n return items;\n }\n\n /**\n * @private\n * @param {boolean} [columnsAuto]\n * @param {string[]} [columns]\n * @param {any} [columnsForAdmin]\n * @param {Record<string, number>} [columnsWidths]\n */\n calculateColumnsVisibility(columnsAuto, columns, columnsForAdmin, columnsWidths) {\n columnsWidths = columnsWidths || this.state.columnsWidths;\n columnsForAdmin = columnsForAdmin || this.state.columnsForAdmin;\n columns = columns || this.state.columns || [];\n columnsAuto = typeof columnsAuto !== 'boolean' ? this.state.columnsAuto : columnsAuto;\n\n columnsWidths = JSON.parse(JSON.stringify(columnsWidths));\n Object.keys(columnsWidths).forEach(name => {\n if (columnsWidths[name]) {\n columnsWidths[name] = parseInt(columnsWidths[name], 10) || 0;\n }\n });\n\n this.adapterColumns = [];\n const WIDTHS = SCREEN_WIDTHS[this.props.width].widths;\n\n if (columnsAuto) {\n this.columnsVisibility = {\n id: SCREEN_WIDTHS[this.props.width].idWidth,\n name: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n nameHeader: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n type: this.visibleCols.includes('type') ? WIDTHS.type || 0 : 0,\n role: this.visibleCols.includes('role') ? WIDTHS.role || 0 : 0,\n room: this.visibleCols.includes('room') ? WIDTHS.room || 0 : 0,\n func: this.visibleCols.includes('func') ? WIDTHS.func || 0 : 0,\n changedFrom: this.visibleCols.includes('changedFrom') ? WIDTHS.changedFrom || 0 : 0,\n qualityCode: this.visibleCols.includes('qualityCode') ? WIDTHS.qualityCode || 0 : 0,\n timestamp: this.visibleCols.includes('timestamp') ? WIDTHS.timestamp || 0 : 0,\n lastChange: this.visibleCols.includes('lastChange') ? WIDTHS.lastChange || 0 : 0,\n val: this.visibleCols.includes('val') ? WIDTHS.val || 0 : 0,\n buttons: this.visibleCols.includes('buttons') ? WIDTHS.buttons || 0 : 0,\n };\n\n if (this.columnsVisibility.name && !this.customWidth) {\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.name = `calc(100% - ${widthSum + 5}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else if (!this.customWidth) {\n // Calculate the with of ID\n let widthSum = 0; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.id = `calc(100% - ${widthSum + 5}px)`;\n }\n } else {\n this.columnsVisibility = {\n id: columnsWidths.id || SCREEN_WIDTHS[this.props.width].idWidth,\n name: columns.includes('name') ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0 : 0,\n type: columns.includes('type') ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0 : 0,\n role: columns.includes('role') ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0 : 0,\n room: columns.includes('room') ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0 : 0,\n func: columns.includes('func') ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0 : 0,\n };\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.columnsVisibility.name) {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n\n if (columnsForAdmin && columns) {\n Object.keys(columnsForAdmin).sort().forEach(adapter =>\n columnsForAdmin[adapter].forEach(column => {\n const id = `_${adapter}_${column.path}`;\n this.columnsVisibility[id] = columns.includes(id);\n if (columns.includes(id)) {\n const item = {\n adapter,\n id: `_${adapter}_${column.path}`,\n name: column.name,\n path: column.path.split('.'),\n pathText: column.path,\n };\n if (column.edit) {\n item.edit = true;\n if (column.type) {\n item.type = column.type;\n }\n if (column.objTypes) {\n item.objTypes = column.objTypes;\n }\n }\n\n this.adapterColumns.push(item);\n this.columnsVisibility[id] = columnsWidths[item.id] || column.width || SCREEN_WIDTHS[this.props.width].widths.func || SCREEN_WIDTHS.xl.widths.func;\n widthSum += this.columnsVisibility[id];\n } else {\n this.columnsVisibility[id] = 0;\n }\n }));\n }\n this.adapterColumns.sort((a, b) => (a.id > b.id ? -1 : (a.id < b.id ? 1 : 0)));\n this.columnsVisibility.val = columns.includes('val') ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val : 0;\n\n // do not show buttons if not desired\n if (!this.props.columns || this.props.columns.includes('buttons')) {\n this.columnsVisibility.buttons = columns.includes('buttons') ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons : 0;\n widthSum += this.columnsVisibility.buttons;\n }\n\n if (this.columnsVisibility.name && !columnsWidths.name) {\n widthSum += this.columnsVisibility.val;\n this.columnsVisibility.name = `calc(100% - ${widthSum}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else {\n const newWidth = Object.keys(this.columnsVisibility).reduce(\n (accumulator, name) => {\n if (name === 'id' || typeof this.columnsVisibility[name] === 'string' || !this.columnsVisibility[name]) {\n return accumulator;\n }\n return accumulator + this.columnsVisibility[name];\n },\n 0,\n );\n this.columnsVisibility.id = `calc(100% - ${newWidth}px)`;\n }\n }\n }\n\n resizerMouseMove = e => {\n if (this.resizerActiveDiv) {\n let width;\n let widthNext;\n if (this.resizeLeft) {\n width = this.resizerOldWidth - e.clientX + this.resizerPosition;\n widthNext = this.resizerOldWidthNext + e.clientX - this.resizerPosition;\n } else {\n width = this.resizerOldWidth + e.clientX - this.resizerPosition;\n widthNext = this.resizerOldWidthNext - e.clientX + this.resizerPosition;\n }\n\n if ((!this.resizerMin || width > this.resizerMin) &&\n (!this.resizerNextMin || widthNext > this.resizerNextMin)) {\n this.resizerCurrentWidths[this.resizerActiveName] = width;\n this.resizerCurrentWidths[this.resizerNextName] = widthNext;\n\n this.resizerActiveDiv.style.width = `${width}px`;\n this.resizerNextDiv.style.width = `${widthNext}px`;\n\n this.columnsVisibility[this.resizerActiveName] = width;\n this.columnsVisibility[this.resizerNextName] = widthNext;\n if (this.resizerNextName === 'nameHeader') {\n this.columnsVisibility.name = widthNext - this.state.scrollBarWidth;\n this.resizerCurrentWidths.name = widthNext - this.state.scrollBarWidth;\n } else\n if (this.resizerActiveName === 'nameHeader') {\n this.columnsVisibility.name = width - this.state.scrollBarWidth;\n this.resizerCurrentWidths.name = width - this.state.scrollBarWidth;\n }\n this.customWidth = true;\n this.resizeTimeout && clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n this.resizeTimeout = null;\n this.forceUpdate();\n }, 200);\n }\n }\n };\n\n resizerMouseUp = () => {\n (window._localStorage || window.localStorage).setItem(`${this.props.dialogName || 'App'}.table`, JSON.stringify(this.resizerCurrentWidths));\n this.resizerActiveName = null;\n this.resizerNextName = null;\n this.resizerActiveDiv = null;\n this.resizerNextDiv = null;\n window.removeEventListener('mousemove', this.resizerMouseMove);\n window.removeEventListener('mouseup', this.resizerMouseUp);\n };\n\n resizerMouseDown = e => {\n if (this.resizerActiveIndex === null || this.resizerActiveIndex === undefined) {\n if (!this.storedWidths) {\n this.storedWidths = JSON.parse(JSON.stringify(SCREEN_WIDTHS[this.props.width]));\n }\n\n this.resizerCurrentWidths = this.resizerCurrentWidths || {};\n this.resizerActiveDiv = e.target.parentNode;\n this.resizerActiveName = this.resizerActiveDiv.dataset.name;\n\n let i = 0;\n if (e.target.dataset.left === 'true') {\n this.resizeLeft = true;\n this.resizerNextDiv = this.resizerActiveDiv.previousElementSibling;\n let handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);\n while (this.resizerNextDiv && !handle && i < 10) {\n this.resizerNextDiv = this.resizerNextDiv.previousElementSibling;\n handle = this.resizerNextDiv.querySelector(`.${this.props.classes.resizeHandle}`);\n i++;\n }\n if (handle && handle.dataset.left !== 'true') {\n this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;\n }\n } else {\n this.resizeLeft = false;\n this.resizerNextDiv = this.resizerActiveDiv.nextElementSibling;\n /* while (this.resizerNextDiv && !this.resizerNextDiv.querySelector('.' + this.props.classes.resizeHandle) && i < 10) {\n this.resizerNextDiv = this.resizerNextDiv.nextElementSibling;\n i++;\n } */\n }\n this.resizerNextName = this.resizerNextDiv.dataset.name;\n\n this.resizerMin = parseInt(this.resizerActiveDiv.dataset.min, 10) || 0;\n this.resizerNextMin = parseInt(this.resizerNextDiv.dataset.min, 10) || 0;\n\n this.resizerPosition = e.clientX;\n\n this.resizerCurrentWidths[this.resizerActiveName] = this.resizerActiveDiv.offsetWidth;\n this.resizerCurrentWidths[this.resizerNextName] = this.resizerNextDiv.offsetWidth;\n\n this.resizerOldWidth = this.resizerCurrentWidths[this.resizerActiveName];\n this.resizerOldWidthNext = this.resizerCurrentWidths[this.resizerNextName];\n\n window.addEventListener('mousemove', this.resizerMouseMove);\n window.addEventListener('mouseup', this.resizerMouseUp);\n }\n };\n\n resizerReset = () => {\n this.customWidth = false;\n SCREEN_WIDTHS[this.props.width] = JSON.parse(JSON.stringify(this.storedWidths));\n this.calculateColumnsVisibility();\n (window._localStorage || window.localStorage).removeItem(`${this.props.dialogName || 'App'}.table`);\n this.forceUpdate();\n };\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderHeader() {\n const classes = this.props.classes;\n\n let filterClearInValue = null;\n if (!this.columnsVisibility.buttons && !this.isFilterEmpty()) {\n filterClearInValue = <IconButton\n onClick={() => this.clearFilter()}\n className={classes.buttonClearFilter}\n title={this.props.t('ra_Clear filter')}\n size=\"large\"\n >\n <IconClearFilter />\n <IconClose className={classes.buttonClearFilterIcon} />\n </IconButton>;\n }\n\n return <div className={classes.headerRow}>\n <div className={classes.headerCell} style={{ width: this.columnsVisibility.id, position: 'relative' }} data-min={240} data-name=\"id\">\n {this.getFilterInput('id')}\n <div className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleRight}`} onMouseDown={this.resizerMouseDown} onDoubleClick={this.resizerReset} title={this.props.t('ra_Double click to reset table layout')} />\n </div>\n {this.columnsVisibility.name ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.nameHeader }} data-min={100} data-name=\"nameHeader\">{this.getFilterInput('name')}</div> : null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.type }} data-min={100} data-name=\"type\">{this.getFilterSelectType()}</div> : null}\n {this.columnsVisibility.role ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.role }} data-min={100} data-name=\"role\">{this.getFilterSelectRole()}</div> : null}\n {this.columnsVisibility.room ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.room }} data-min={100} data-name=\"room\">{this.getFilterSelectRoom()}</div> : null}\n {this.columnsVisibility.func ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.func }} data-min={100} data-name=\"func\">{this.getFilterSelectFunction()}</div> : null}\n </>}\n {this.state.statesView && <>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.changedFrom }} data-min={100} data-name=\"changedFrom\">{this.props.t('ra_Changed from')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.qualityCode }} data-min={100} data-name=\"qualityCode\">{this.props.t('ra_Quality code')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.timestamp }} data-min={100} data-name=\"timestamp\">{this.props.t('ra_Timestamp')}</div>\n <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.lastChange }} data-min={100} data-name=\"lastChange\">{this.props.t('ra_Last change')}</div>\n </>}\n {this.adapterColumns.map(item => <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility[item.id] }} title={item.adapter} key={item.id} data-min={100} data-name={item.id}>{item.name}</div>)}\n {this.columnsVisibility.val ? <div className={Utils.clsx(classes.headerCell, classes.headerCellValue)} style={{ width: this.columnsVisibility.val, position: 'relative' }} data-min={120} data-name=\"val\">\n <div className={`${this.props.classes.resizeHandle} ${this.props.classes.resizeHandleLeft}`} data-left=\"true\" onMouseDown={this.resizerMouseDown} onDoubleClick={this.resizerReset} title={this.props.t('ra_Double click to reset table layout')} />\n {this.props.t('ra_Value')}\n {filterClearInValue}\n </div> : null}\n {this.columnsVisibility.buttons ? <div className={classes.headerCell} style={{ width: this.columnsVisibility.buttons }}>\n {' '}\n {this.getFilterSelectCustoms()}\n </div> : null}\n </div>;\n }\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderToast() {\n return <Snackbar\n open={!!this.state.toast}\n autoHideDuration={3000}\n onClick={() => this.setState({ toast: '' })}\n onClose={() => this.setState({ toast: '' })}\n message={this.state.toast}\n action={\n <IconButton size=\"small\" aria-label=\"close\" color=\"inherit\" onClick={() => this.setState({ toast: '' })}>\n <IconClose fontSize=\"small\" />\n </IconButton>\n }\n />;\n }\n\n /**\n * Called when component is updated.\n */\n componentDidUpdate() {\n if (this.tableRef.current) {\n const scrollBarWidth = this.tableRef.current.offsetWidth - this.tableRef.current.clientWidth;\n if (this.state.scrollBarWidth !== scrollBarWidth) {\n setTimeout(() => this.setState({ scrollBarWidth }), 100);\n } else if (!this.selectedFound && ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)) {\n this.scrollToItem((this.state.selected && this.state.selected[0]) || this.lastSelectedItems);\n }\n }\n }\n\n scrollToItem(id) {\n const node = window.document.getElementById(id);\n node && node.scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center',\n });\n this.selectedFound = true;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderCustomDialog() {\n if (this.state.customDialog && this.props.objectCustomDialog) {\n const ObjectCustomDialog = this.props.objectCustomDialog;\n\n return <ObjectCustomDialog\n reportChangedIds={changedIds => this.changedIds = [...changedIds]}\n objectIDs={this.state.customDialog}\n expertMode={this.state.filter.expertMode}\n isFloatComma={this.props.isFloatComma}\n t={this.props.t}\n lang={this.props.lang}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n theme={this.props.theme}\n objects={this.objects}\n customsInstances={this.info.customs}\n onClose={() => {\n this.pauseSubscribe(false);\n this.setState({ customDialog: null });\n if (this.changedIds) {\n this.changedIds = null;\n // update all changed IDs\n this.forceUpdate();\n }\n\n this.props.router && this.props.router.doNavigate('tab-objects');\n }}\n />;\n }\n return null;\n }\n\n /**\n * @private\n * @param {Partial<ioBroker.State>} valAck\n */\n onUpdate(valAck) {\n this.props.socket.setState(this.edit.id, {\n val: valAck.val, ack: valAck.ack, q: valAck.q || 0, expire: valAck.expire || undefined,\n })\n .catch(e => this.showError(`Cannot write value: ${e}`));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditObjectDialog() {\n if (!this.state.editObjectDialog || !this.props.objectBrowserEditObject) {\n return null;\n }\n\n const ObjectBrowserEditObject = this.props.objectBrowserEditObject;\n\n return <ObjectBrowserEditObject\n key={this.state.editObjectDialog}\n obj={this.objects[this.state.editObjectDialog]}\n roleArray={this.info.roles}\n objects={this.objects}\n dateFormat={this.props.dateFormat}\n isFloatComma={this.props.isFloatComma}\n themeName={this.props.themeName}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onNewObject={obj =>\n this.props.socket.setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id }, () => this.onSelect(obj._id)))\n .catch(e => this.showError(`Cannot write object: ${e}`))}\n onClose={obj => {\n if (obj) {\n let updateAlias;\n if (this.state.editObjectDialog.startsWith('alias.')) {\n if (JSON.stringify(this.objects[this.state.editObjectDialog].common?.alias) !== JSON.stringify(obj.common?.alias)) {\n updateAlias = this.state.editObjectDialog;\n }\n }\n\n this.props.socket.setObject(obj._id, obj)\n .then(() => {\n if (updateAlias && this.subscribes.includes(updateAlias)) {\n this.unsubscribe(updateAlias);\n setTimeout(() => this.subscribe(updateAlias), 100);\n }\n })\n .catch(e => this.showError(`Cannot write object: ${e}`));\n }\n this.setState({ editObjectDialog: '' });\n }}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderViewObjectFileDialog() {\n if (!this.state.viewFileDialog || !this.props.objectBrowserViewFile) {\n return null;\n }\n const ObjectBrowserViewFile = this.props.objectBrowserViewFile;\n\n return <ObjectBrowserViewFile\n key=\"viewFile\"\n obj={this.objects[this.state.viewFileDialog]}\n themeType={this.props.themeType}\n socket={this.props.socket}\n dialogName={this.props.dialogName}\n t={this.props.t}\n expertMode={this.state.filter.expertMode}\n onClose={() => this.setState({ viewFileDialog: '' })}\n />;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditValueDialog() {\n if (!this.state.updateOpened || !this.props.objectBrowserValue) {\n return null;\n }\n\n if (!this.edit.id) {\n console.error(`Invalid ID for edit: ${JSON.stringify(this.edit)}`);\n return null;\n }\n\n if (!this.objects[this.edit.id]) {\n console.error(`Something went wrong. Possibly the object ${this.edit.id} was deleted.`);\n return null;\n }\n\n const type = this.objects[this.edit.id].common?.type ?\n this.objects[this.edit.id].common.type : typeof this.edit.val;\n\n const ObjectBrowserValue = this.props.objectBrowserValue;\n\n return <ObjectBrowserValue\n t={this.props.t}\n lang={this.props.lang}\n type={type}\n states={Utils.getStates(this.objects[this.edit.id])}\n themeType={this.props.themeType}\n expertMode={this.state.filter.expertMode}\n value={this.edit.val}\n socket={this.props.socket}\n object={this.objects[this.edit.id]}\n defaultHistory={this.defaultHistory}\n dateFormat={this.props.dateFormat}\n onClose={res => {\n this.setState({ updateOpened: false });\n res && this.onUpdate(res);\n }}\n />;\n }\n\n extendObject = (id, data) =>\n this.props.socket.extendObject(id, data)\n .catch(error => window.alert(error));\n\n setObject = (id, data) =>\n this.props.socket.setObject(id, data)\n .catch(error => window.alert(error));\n\n /**\n * The rendering method of this component.\n * @returns {JSX.Element}\n */\n render() {\n this.recordStates = [];\n this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);\n\n // apply filter if changed\n const jsonFilter = JSON.stringify(this.state.filter);\n\n if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {\n const counter = { count: 0 };\n\n applyFilter(this.root, this.state.filter, this.props.lang, this.objects, null, counter, this.props.customFilter, this.props.types);\n\n if (counter.count < 500 && !this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: true }));\n } else if (counter.count >= 500 && this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: false }));\n }\n\n this.lastAppliedFilter = jsonFilter;\n }\n\n this.unsubscribeTimer = setTimeout(() => {\n this.unsubscribeTimer = null;\n this.checkUnsubscribes();\n }, 200);\n\n if (!this.state.loaded) {\n return <CircularProgress key={`${this.props.dialogName}_c`} />;\n }\n const classes = this.props.classes;\n const items = this.renderItem(this.root, undefined, classes);\n\n return <TabContainer key={this.props.dialogName} classes={{ }}>\n <TabHeader>\n {this.getToolbar()}\n </TabHeader>\n <TabContent classes={{ }}>\n {this.renderHeader()}\n <div className={this.props.classes.tableDiv} ref={this.tableRef}>\n {items}\n </div>\n </TabContent>\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderViewObjectFileDialog()}\n {this.renderEditRoleDialog()}\n {this.renderEnumDialog()}\n {this.renderErrorDialog()}\n {this.renderExportDialog()}\n {this.state.modalNewObj && this.props.modalNewObject && this.props.modalNewObject(this)}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n </TabContainer>;\n }\n}\n\nObjectBrowser.defaultProps = {\n objectAddBoolean: false,\n objectEditBoolean: false,\n objectStatesView: false,\n objectImportExport: false,\n objectEditOfAccessControl: false,\n modalNewObject: () => { },\n modalEditOfAccessControl: () => { },\n};\n\nObjectBrowser.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n defaultFilters: PropTypes.object,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array,\n ]),\n onSelect: PropTypes.func,\n onFilterChanged: PropTypes.func,\n socket: PropTypes.object,\n showExpertButton: PropTypes.bool,\n expertMode: PropTypes.bool,\n imagePrefix: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n theme: PropTypes.object,\n t: PropTypes.func,\n lang: PropTypes.string.isRequired,\n multiSelect: PropTypes.bool,\n notEditable: PropTypes.bool,\n foldersFirst: PropTypes.bool,\n disableColumnSelector: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n levelPadding: PropTypes.number,\n\n // components\n objectCustomDialog: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]),\n objectAddBoolean: PropTypes.bool, // optional toolbar button\n objectEditBoolean: PropTypes.bool, // optional toolbar button\n objectStatesView: PropTypes.bool, // optional toolbar button\n objectImportExport: PropTypes.bool, // optional toolbar button\n objectEditOfAccessControl: PropTypes.bool, // Access Control\n modalNewObject: PropTypes.func, // modal add object\n modalEditOfAccessControl: PropTypes.func, // modal Edit Of Access Control\n onObjectDelete: PropTypes.func, // optional function (id, hasChildren, objectExists, childrenCount+1) { }\n customFilter: PropTypes.object, // optional\n // `{common: {custom: true}}` - show only objects with some custom settings\n // `{common: {custom: 'sql.0'}}` - show only objects with sql.0 custom settings (only of the specific instance)\n // `{common: {custom: '_dataSources'}}` - show only objects of adapters `influxdb' or 'sql' or 'history'\n // `{common: {custom: 'adapterName.'}}` - show only objects of custom settings of specific adapter (all instances)\n // `{type: 'channel'}` - show only channels\n // `{type: ['channel', 'device']}` - show only channels and devices\n // `{common: {type: 'number'}` - show only states of type 'number\n // `{common: {type: ['number', 'string']}` - show only states of type 'number and string\n // `{common: {role: 'switch']}` - show only states with roles starting from switch\n // `{common: {role: ['switch', 'button]}` - show only states with roles starting from `switch` and `button`\n objectBrowserValue: PropTypes.object,\n objectBrowserEditObject: PropTypes.object,\n objectBrowserEditRole: PropTypes.object, // on Edit role\n objectBrowserViewFile: PropTypes.func, // on view file state\n router: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n ]),\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n root: PropTypes.string, // optional, shows only elements of this root\n\n objectsWorker: PropTypes.object, // optional cache of objects\n filterFunc: PropTypes.func, // function to filter out all unnecessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n\n dragSettings: PropTypes.object,\n DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\n useDrag: PropTypes.func,\n};\n\n/** @type {typeof ObjectBrowser} */\nconst _export = withWidth()(withStyles(styles)(ObjectBrowser));\nexport default _export;\n"],"mappings":"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"}